]> gitweb.factorcode.org Git - factor.git/commitdiff
Move gstreamer and clutter bindings to unmaintained/ for now, until Anton can fix...
authorSlava Pestov <slava@factorcode.org>
Fri, 4 Mar 2011 23:11:42 +0000 (18:11 -0500)
committerSlava Pestov <slava@factorcode.org>
Fri, 4 Mar 2011 23:11:42 +0000 (18:11 -0500)
136 files changed:
extra/clutter/Clutter-1.0.gir [deleted file]
extra/clutter/authors.txt [deleted file]
extra/clutter/clutter.factor [deleted file]
extra/clutter/cogl/Cogl-1.0.gir [deleted file]
extra/clutter/cogl/cogl.factor [deleted file]
extra/clutter/cogl/ffi/ffi.factor [deleted file]
extra/clutter/ffi/ffi.factor [deleted file]
extra/clutter/gtk/GtkClutter-0.10.gir [deleted file]
extra/clutter/gtk/ffi/ffi.factor [deleted file]
extra/clutter/gtk/gtk.factor [deleted file]
extra/clutter/json/Json-1.0.gir [deleted file]
extra/clutter/json/ffi/ffi.factor [deleted file]
extra/clutter/json/json.factor [deleted file]
extra/clutter/summary.txt [deleted file]
extra/clutter/tags.txt [deleted file]
extra/gir/samples/lowlevel/gstreamer/authors.txt [deleted file]
extra/gir/samples/lowlevel/gstreamer/gstreamer.factor [deleted file]
extra/gstreamer/Gst-0.10.gir [deleted file]
extra/gstreamer/app/GstApp-0.10.gir [deleted file]
extra/gstreamer/app/app.factor [deleted file]
extra/gstreamer/app/ffi/ffi.factor [deleted file]
extra/gstreamer/audio/GstAudio-0.10.gir [deleted file]
extra/gstreamer/audio/audio.factor [deleted file]
extra/gstreamer/audio/ffi/ffi.factor [deleted file]
extra/gstreamer/authors.txt [deleted file]
extra/gstreamer/base/GstBase-0.10.gir [deleted file]
extra/gstreamer/base/base.factor [deleted file]
extra/gstreamer/base/ffi/ffi.factor [deleted file]
extra/gstreamer/controller/GstController-0.10.gir [deleted file]
extra/gstreamer/controller/controller.factor [deleted file]
extra/gstreamer/controller/ffi/ffi.factor [deleted file]
extra/gstreamer/ffi/ffi.factor [deleted file]
extra/gstreamer/fft/GstFft-0.10.gir [deleted file]
extra/gstreamer/fft/ffi/ffi.factor [deleted file]
extra/gstreamer/fft/fft.factor [deleted file]
extra/gstreamer/gstreamer.factor [deleted file]
extra/gstreamer/interfaces/GstInterfaces-0.10.gir [deleted file]
extra/gstreamer/interfaces/ffi/ffi.factor [deleted file]
extra/gstreamer/interfaces/interfaces.factor [deleted file]
extra/gstreamer/net/GstNet-0.10.gir [deleted file]
extra/gstreamer/net/ffi/ffi.factor [deleted file]
extra/gstreamer/net/net.factor [deleted file]
extra/gstreamer/netbuffer/GstNetbuffer-0.10.gir [deleted file]
extra/gstreamer/netbuffer/ffi/ffi.factor [deleted file]
extra/gstreamer/netbuffer/netbuffer.factor [deleted file]
extra/gstreamer/pbutils/GstPbutils-0.10.gir [deleted file]
extra/gstreamer/pbutils/ffi/ffi.factor [deleted file]
extra/gstreamer/pbutils/pbutils.factor [deleted file]
extra/gstreamer/riff/GstRiff-0.10.gir [deleted file]
extra/gstreamer/riff/ffi/ffi.factor [deleted file]
extra/gstreamer/riff/riff.factor [deleted file]
extra/gstreamer/rtp/GstRtp-0.10.gir [deleted file]
extra/gstreamer/rtp/ffi/ffi.factor [deleted file]
extra/gstreamer/rtp/rtp.factor [deleted file]
extra/gstreamer/rtsp/GstRtsp-0.10.gir [deleted file]
extra/gstreamer/rtsp/ffi/ffi.factor [deleted file]
extra/gstreamer/rtsp/rtsp.factor [deleted file]
extra/gstreamer/sdp/GstSdp-0.10.gir [deleted file]
extra/gstreamer/sdp/ffi/ffi.factor [deleted file]
extra/gstreamer/sdp/sdp.factor [deleted file]
extra/gstreamer/summary.txt [deleted file]
extra/gstreamer/tag/GstTag-0.10.gir [deleted file]
extra/gstreamer/tag/ffi/ffi.factor [deleted file]
extra/gstreamer/tag/tag.factor [deleted file]
extra/gstreamer/tags.txt [deleted file]
extra/gstreamer/video/GstVideo-0.10.gir [deleted file]
extra/gstreamer/video/ffi/ffi.factor [deleted file]
extra/gstreamer/video/video.factor [deleted file]
unmaintained/clutter/Clutter-1.0.gir [new file with mode: 0644]
unmaintained/clutter/authors.txt [new file with mode: 0644]
unmaintained/clutter/clutter.factor [new file with mode: 0644]
unmaintained/clutter/cogl/Cogl-1.0.gir [new file with mode: 0644]
unmaintained/clutter/cogl/cogl.factor [new file with mode: 0644]
unmaintained/clutter/cogl/ffi/ffi.factor [new file with mode: 0644]
unmaintained/clutter/ffi/ffi.factor [new file with mode: 0644]
unmaintained/clutter/gtk/GtkClutter-0.10.gir [new file with mode: 0644]
unmaintained/clutter/gtk/ffi/ffi.factor [new file with mode: 0644]
unmaintained/clutter/gtk/gtk.factor [new file with mode: 0644]
unmaintained/clutter/json/Json-1.0.gir [new file with mode: 0644]
unmaintained/clutter/json/ffi/ffi.factor [new file with mode: 0644]
unmaintained/clutter/json/json.factor [new file with mode: 0644]
unmaintained/clutter/summary.txt [new file with mode: 0644]
unmaintained/clutter/tags.txt [new file with mode: 0755]
unmaintained/gir/samples/lowlevel/gstreamer/authors.txt [new file with mode: 0644]
unmaintained/gir/samples/lowlevel/gstreamer/gstreamer.factor [new file with mode: 0644]
unmaintained/gstreamer/Gst-0.10.gir [new file with mode: 0644]
unmaintained/gstreamer/app/GstApp-0.10.gir [new file with mode: 0644]
unmaintained/gstreamer/app/app.factor [new file with mode: 0644]
unmaintained/gstreamer/app/ffi/ffi.factor [new file with mode: 0644]
unmaintained/gstreamer/audio/GstAudio-0.10.gir [new file with mode: 0644]
unmaintained/gstreamer/audio/audio.factor [new file with mode: 0644]
unmaintained/gstreamer/audio/ffi/ffi.factor [new file with mode: 0644]
unmaintained/gstreamer/authors.txt [new file with mode: 0644]
unmaintained/gstreamer/base/GstBase-0.10.gir [new file with mode: 0644]
unmaintained/gstreamer/base/base.factor [new file with mode: 0644]
unmaintained/gstreamer/base/ffi/ffi.factor [new file with mode: 0644]
unmaintained/gstreamer/controller/GstController-0.10.gir [new file with mode: 0644]
unmaintained/gstreamer/controller/controller.factor [new file with mode: 0644]
unmaintained/gstreamer/controller/ffi/ffi.factor [new file with mode: 0644]
unmaintained/gstreamer/ffi/ffi.factor [new file with mode: 0644]
unmaintained/gstreamer/fft/GstFft-0.10.gir [new file with mode: 0644]
unmaintained/gstreamer/fft/ffi/ffi.factor [new file with mode: 0644]
unmaintained/gstreamer/fft/fft.factor [new file with mode: 0644]
unmaintained/gstreamer/gstreamer.factor [new file with mode: 0644]
unmaintained/gstreamer/interfaces/GstInterfaces-0.10.gir [new file with mode: 0644]
unmaintained/gstreamer/interfaces/ffi/ffi.factor [new file with mode: 0644]
unmaintained/gstreamer/interfaces/interfaces.factor [new file with mode: 0644]
unmaintained/gstreamer/net/GstNet-0.10.gir [new file with mode: 0644]
unmaintained/gstreamer/net/ffi/ffi.factor [new file with mode: 0644]
unmaintained/gstreamer/net/net.factor [new file with mode: 0644]
unmaintained/gstreamer/netbuffer/GstNetbuffer-0.10.gir [new file with mode: 0644]
unmaintained/gstreamer/netbuffer/ffi/ffi.factor [new file with mode: 0644]
unmaintained/gstreamer/netbuffer/netbuffer.factor [new file with mode: 0644]
unmaintained/gstreamer/pbutils/GstPbutils-0.10.gir [new file with mode: 0644]
unmaintained/gstreamer/pbutils/ffi/ffi.factor [new file with mode: 0644]
unmaintained/gstreamer/pbutils/pbutils.factor [new file with mode: 0644]
unmaintained/gstreamer/riff/GstRiff-0.10.gir [new file with mode: 0644]
unmaintained/gstreamer/riff/ffi/ffi.factor [new file with mode: 0644]
unmaintained/gstreamer/riff/riff.factor [new file with mode: 0644]
unmaintained/gstreamer/rtp/GstRtp-0.10.gir [new file with mode: 0644]
unmaintained/gstreamer/rtp/ffi/ffi.factor [new file with mode: 0644]
unmaintained/gstreamer/rtp/rtp.factor [new file with mode: 0644]
unmaintained/gstreamer/rtsp/GstRtsp-0.10.gir [new file with mode: 0644]
unmaintained/gstreamer/rtsp/ffi/ffi.factor [new file with mode: 0644]
unmaintained/gstreamer/rtsp/rtsp.factor [new file with mode: 0644]
unmaintained/gstreamer/sdp/GstSdp-0.10.gir [new file with mode: 0644]
unmaintained/gstreamer/sdp/ffi/ffi.factor [new file with mode: 0644]
unmaintained/gstreamer/sdp/sdp.factor [new file with mode: 0644]
unmaintained/gstreamer/summary.txt [new file with mode: 0644]
unmaintained/gstreamer/tag/GstTag-0.10.gir [new file with mode: 0644]
unmaintained/gstreamer/tag/ffi/ffi.factor [new file with mode: 0644]
unmaintained/gstreamer/tag/tag.factor [new file with mode: 0644]
unmaintained/gstreamer/tags.txt [new file with mode: 0755]
unmaintained/gstreamer/video/GstVideo-0.10.gir [new file with mode: 0644]
unmaintained/gstreamer/video/ffi/ffi.factor [new file with mode: 0644]
unmaintained/gstreamer/video/video.factor [new file with mode: 0644]

diff --git a/extra/clutter/Clutter-1.0.gir b/extra/clutter/Clutter-1.0.gir
deleted file mode 100644 (file)
index e8fc46f..0000000
+++ /dev/null
@@ -1,40940 +0,0 @@
-<?xml version="1.0"?>
-<!-- This file was automatically generated from C sources - DO NOT EDIT!
-To affect the contents of this file, edit the original C definitions,
-and/or use gtk-doc annotations.  -->
-<repository version="1.2"
-            xmlns="http://www.gtk.org/introspection/core/1.0"
-            xmlns:c="http://www.gtk.org/introspection/c/1.0"
-            xmlns:glib="http://www.gtk.org/introspection/glib/1.0">
-  <include name="Atk" version="1.0"/>
-  <include name="Cogl" version="1.0"/>
-  <include name="GL" version="1.0"/>
-  <include name="GLib" version="2.0"/>
-  <include name="GObject" version="2.0"/>
-  <include name="Gio" version="2.0"/>
-  <include name="Json" version="1.0"/>
-  <include name="Pango" version="1.0"/>
-  <include name="PangoCairo" version="1.0"/>
-  <include name="PangoFT2" version="1.0"/>
-  <include name="cairo" version="1.0"/>
-  <include name="fontconfig" version="2.0"/>
-  <include name="freetype2" version="2.0"/>
-  <package name="clutter-1.0"/>
-  <c:include name="clutter/clutter.h"/>
-  <namespace name="Clutter"
-             version="1.0"
-             shared-library="libclutter-glx-1.0.so.0"
-             c:identifier-prefixes="Clutter"
-             c:symbol-prefixes="clutter">
-    <constant name="0" value="48">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="1" value="49">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="2" value="50">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="3" value="51">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="3270_AltCursor" value="64784">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="3270_Attn" value="64782">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="3270_BackTab" value="64773">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="3270_ChangeScreen" value="64793">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="3270_Copy" value="64789">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="3270_CursorBlink" value="64783">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="3270_CursorSelect" value="64796">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="3270_DeleteWord" value="64794">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="3270_Duplicate" value="64769">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="3270_Enter" value="64798">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="3270_EraseEOF" value="64774">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="3270_EraseInput" value="64775">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="3270_ExSelect" value="64795">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="3270_FieldMark" value="64770">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="3270_Ident" value="64787">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="3270_Jump" value="64786">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="3270_KeyClick" value="64785">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="3270_Left2" value="64772">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="3270_PA1" value="64778">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="3270_PA2" value="64779">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="3270_PA3" value="64780">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="3270_Play" value="64790">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="3270_PrintScreen" value="64797">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="3270_Quit" value="64777">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="3270_Record" value="64792">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="3270_Reset" value="64776">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="3270_Right2" value="64771">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="3270_Rule" value="64788">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="3270_Setup" value="64791">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="3270_Test" value="64781">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="4" value="52">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="5" value="53">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="6" value="54">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="7" value="55">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="8" value="56">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="9" value="57">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="A" value="65">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="AE" value="198">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Aacute" value="193">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Abelowdot" value="16785056">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Abreve" value="451">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Abreveacute" value="16785070">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Abrevebelowdot" value="16785078">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Abrevegrave" value="16785072">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Abrevehook" value="16785074">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Abrevetilde" value="16785076">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="AccessX_Enable" value="65136">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="AccessX_Feedback_Enable" value="65137">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Acircumflex" value="194">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Acircumflexacute" value="16785060">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Acircumflexbelowdot" value="16785068">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Acircumflexgrave" value="16785062">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Acircumflexhook" value="16785064">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Acircumflextilde" value="16785066">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <class name="Action"
-           c:symbol-prefix="action"
-           c:type="ClutterAction"
-           version="1.4"
-           parent="ActorMeta"
-           abstract="1"
-           glib:type-name="ClutterAction"
-           glib:get-type="clutter_action_get_type"
-           glib:type-struct="ActionClass">
-      <doc xml:whitespace="preserve">The &lt;structname&gt;ClutterAction&lt;/structname&gt; structure contains only
-private data and should be accessed using the provided API</doc>
-      <field name="parent_instance">
-        <type name="ActorMeta" c:type="ClutterActorMeta"/>
-      </field>
-    </class>
-    <record name="ActionClass"
-            c:type="ClutterActionClass"
-            glib:is-gtype-struct-for="Action"
-            version="1.4">
-      <doc xml:whitespace="preserve">The &lt;structname&gt;ClutterActionClass&lt;/structname&gt; structure contains
-only private data</doc>
-      <field name="parent_class">
-        <type name="ActorMetaClass" c:type="ClutterActorMetaClass"/>
-      </field>
-      <field name="_clutter_action1" introspectable="0">
-        <callback name="_clutter_action1">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-      <field name="_clutter_action2" introspectable="0">
-        <callback name="_clutter_action2">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-      <field name="_clutter_action3" introspectable="0">
-        <callback name="_clutter_action3">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-      <field name="_clutter_action4" introspectable="0">
-        <callback name="_clutter_action4">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-      <field name="_clutter_action5" introspectable="0">
-        <callback name="_clutter_action5">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-      <field name="_clutter_action6" introspectable="0">
-        <callback name="_clutter_action6">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-      <field name="_clutter_action7" introspectable="0">
-        <callback name="_clutter_action7">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-      <field name="_clutter_action8" introspectable="0">
-        <callback name="_clutter_action8">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-    </record>
-    <class name="Actor"
-           c:symbol-prefix="actor"
-           c:type="ClutterActor"
-           parent="GObject.InitiallyUnowned"
-           abstract="1"
-           glib:type-name="ClutterActor"
-           glib:get-type="clutter_actor_get_type"
-           glib:type-struct="ActorClass">
-      <doc xml:whitespace="preserve">Base class for actors.</doc>
-      <implements name="Atk.ImplementorIface"/>
-      <implements name="Animatable"/>
-      <implements name="Scriptable"/>
-      <virtual-method name="allocate" invoker="allocate" version="0.8">
-        <doc xml:whitespace="preserve">Called by the parent of an actor to assign the actor its size.
-Should never be called by applications (except when implementing
-a container or layout manager).
-Actors can know from their allocation box whether they have moved
-with respect to their parent actor. The @flags parameter describes
-additional information about the allocation, for instance whether
-the parent has moved with respect to the stage, for example because
-a grandparent's origin has moved.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="box" transfer-ownership="none">
-            <doc xml:whitespace="preserve">new allocation of the actor, in parent-relative coordinates</doc>
-            <type name="ActorBox" c:type="ClutterActorBox*"/>
-          </parameter>
-          <parameter name="flags" transfer-ownership="none">
-            <doc xml:whitespace="preserve">flags that control the allocation</doc>
-            <type name="AllocationFlags" c:type="ClutterAllocationFlags"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <virtual-method name="apply_transform">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="matrix" transfer-ownership="none">
-            <type name="Cogl.Matrix" c:type="CoglMatrix*"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <virtual-method name="get_accessible" invoker="get_accessible">
-        <doc xml:whitespace="preserve">Returns the accessible object that describes the actor to an
-assistive technology.
-If no class-specific #AtkObject implementation is available for the
-actor instance in question, it will inherit an #AtkObject
-implementation from the first ancestor class for which such an
-implementation is defined.
-The documentation of the &lt;ulink
-url="http://developer.gnome.org/doc/API/2.0/atk/index.html"&gt;ATK&lt;/ulink&gt;
-library contains more information about accessible objects and
-their uses.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the #AtkObject associated with @actor</doc>
-          <type name="Atk.Object" c:type="AtkObject*"/>
-        </return-value>
-      </virtual-method>
-      <virtual-method name="get_preferred_height"
-                      invoker="get_preferred_height"
-                      version="0.8">
-        <doc xml:whitespace="preserve">Computes the requested minimum and natural heights for an actor,
-or if they are already computed, returns the cached values.
-An actor may not get its request - depending on the layout
-manager that's in effect.
-A request should not incorporate the actor's scale or anchor point;
-those transformations do not affect layout, only rendering.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="for_width" transfer-ownership="none">
-            <doc xml:whitespace="preserve">available width to assume in computing desired height, or a negative value to indicate that no width is defined</doc>
-            <type name="gfloat" c:type="gfloat"/>
-          </parameter>
-          <parameter name="min_height_p"
-                     direction="out"
-                     caller-allocates="0"
-                     transfer-ownership="full"
-                     allow-none="1">
-            <doc xml:whitespace="preserve">return location for minimum height, or %NULL</doc>
-            <type name="gfloat" c:type="gfloat*"/>
-          </parameter>
-          <parameter name="natural_height_p"
-                     direction="out"
-                     caller-allocates="0"
-                     transfer-ownership="full"
-                     allow-none="1">
-            <doc xml:whitespace="preserve">return location for natural height, or %NULL</doc>
-            <type name="gfloat" c:type="gfloat*"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <virtual-method name="get_preferred_width"
-                      invoker="get_preferred_width"
-                      version="0.8">
-        <doc xml:whitespace="preserve">Computes the requested minimum and natural widths for an actor,
-optionally depending on the specified height, or if they are
-already computed, returns the cached values.
-An actor may not get its request - depending on the layout
-manager that's in effect.
-A request should not incorporate the actor's scale or anchor point;
-those transformations do not affect layout, only rendering.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="for_height" transfer-ownership="none">
-            <doc xml:whitespace="preserve">available height when computing the preferred width, or a negative value to indicate that no height is defined</doc>
-            <type name="gfloat" c:type="gfloat"/>
-          </parameter>
-          <parameter name="min_width_p"
-                     direction="out"
-                     caller-allocates="0"
-                     transfer-ownership="full"
-                     allow-none="1">
-            <doc xml:whitespace="preserve">return location for minimum width, or %NULL</doc>
-            <type name="gfloat" c:type="gfloat*"/>
-          </parameter>
-          <parameter name="natural_width_p"
-                     direction="out"
-                     caller-allocates="0"
-                     transfer-ownership="full"
-                     allow-none="1">
-            <doc xml:whitespace="preserve">return location for the natural width, or %NULL</doc>
-            <type name="gfloat" c:type="gfloat*"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <virtual-method name="hide_all" invoker="hide_all" version="0.2">
-        <doc xml:whitespace="preserve">Calls clutter_actor_hide() on all child actors (if any).</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </virtual-method>
-      <virtual-method name="map" invoker="map" version="1.0">
-        <doc xml:whitespace="preserve">Sets the %CLUTTER_ACTOR_MAPPED flag on the actor and possibly maps
-and realizes its children if they are visible. Does nothing if the
-actor is not visible.
-#ClutterActor &lt;function&gt;map()&lt;/function&gt; virtual function in an actor
-and you need to map the children of that actor. It is not necessary
-to call this if you implement #ClutterContainer because the default
-implementation will automatically map children of containers.
-When overriding map, it is mandatory to chain up to the parent
-implementation.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </virtual-method>
-      <virtual-method name="show_all" invoker="show_all" version="0.2">
-        <doc xml:whitespace="preserve">Calls clutter_actor_show() on all children of an actor (if any).</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </virtual-method>
-      <virtual-method name="unmap" invoker="unmap" version="1.0">
-        <doc xml:whitespace="preserve">Unsets the %CLUTTER_ACTOR_MAPPED flag on the actor and possibly
-unmaps its children if they were mapped.
-#ClutterActor &lt;function&gt;unmap()&lt;/function&gt; virtual function in an actor
-and you need to unmap the children of that actor. It is not necessary
-to call this if you implement #ClutterContainer because the default
-implementation will automatically unmap children of containers.
-When overriding unmap, it is mandatory to chain up to the parent
-implementation.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </virtual-method>
-      <method name="add_action"
-              c:identifier="clutter_actor_add_action"
-              version="1.4">
-        <doc xml:whitespace="preserve">Adds @action to the list of actions applied to @self
-A #ClutterAction can only belong to one actor at a time
-The #ClutterActor will hold a reference on @action until either
-clutter_actor_remove_action() or clutter_actor_clear_actions()
-is called</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="action" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #ClutterAction</doc>
-            <type name="Action" c:type="ClutterAction*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="add_action_with_name"
-              c:identifier="clutter_actor_add_action_with_name"
-              version="1.4">
-        <doc xml:whitespace="preserve">A convenience function for setting the name of a #ClutterAction
-while adding it to the list of actions applied to @self
-This function is the logical equivalent of:
-|[
-clutter_actor_meta_set_name (CLUTTER_ACTOR_META (action), name);
-clutter_actor_add_action (self, action);
-]|</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="name" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the name to set on the action</doc>
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="action" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #ClutterAction</doc>
-            <type name="Action" c:type="ClutterAction*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="add_constraint"
-              c:identifier="clutter_actor_add_constraint"
-              version="1.4">
-        <doc xml:whitespace="preserve">Adds @constraint to the list of #ClutterConstraint&lt;!-- --&gt;s applied
-to @self
-The #ClutterActor will hold a reference on the @constraint until
-either clutter_actor_remove_constraint() or
-clutter_actor_clear_constraints() is called.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="constraint" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #ClutterConstraint</doc>
-            <type name="Constraint" c:type="ClutterConstraint*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="add_constraint_with_name"
-              c:identifier="clutter_actor_add_constraint_with_name"
-              version="1.4">
-        <doc xml:whitespace="preserve">A convenience function for setting the name of a #ClutterConstraint
-while adding it to the list of constraints applied to @self
-This function is the logical equivalent of:
-|[
-clutter_actor_meta_set_name (CLUTTER_ACTOR_META (constraint), name);
-clutter_actor_add_constraint (self, constraint);
-]|</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="name" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the name to set on the constraint</doc>
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="constraint" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #ClutterConstraint</doc>
-            <type name="Constraint" c:type="ClutterConstraint*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="add_effect"
-              c:identifier="clutter_actor_add_effect"
-              version="1.4">
-        <doc xml:whitespace="preserve">Adds @effect to the list of #ClutterEffect&lt;!-- --&gt;s applied to @self
-The #ClutterActor will hold a reference on the @effect until either
-clutter_actor_remove_effect() or clutter_actor_clear_effects() is
-called.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="effect" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #ClutterEffect</doc>
-            <type name="Effect" c:type="ClutterEffect*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="add_effect_with_name"
-              c:identifier="clutter_actor_add_effect_with_name"
-              version="1.4">
-        <doc xml:whitespace="preserve">A convenience function for setting the name of a #ClutterEffect
-while adding it to the list of effectss applied to @self
-This function is the logical equivalent of:
-|[
-clutter_actor_meta_set_name (CLUTTER_ACTOR_META (effect), name);
-clutter_actor_add_effect (self, effect);
-]|</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="name" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the name to set on the effect</doc>
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="effect" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #ClutterEffect</doc>
-            <type name="Effect" c:type="ClutterEffect*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="allocate"
-              c:identifier="clutter_actor_allocate"
-              version="0.8">
-        <doc xml:whitespace="preserve">Called by the parent of an actor to assign the actor its size.
-Should never be called by applications (except when implementing
-a container or layout manager).
-Actors can know from their allocation box whether they have moved
-with respect to their parent actor. The @flags parameter describes
-additional information about the allocation, for instance whether
-the parent has moved with respect to the stage, for example because
-a grandparent's origin has moved.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="box" transfer-ownership="none">
-            <doc xml:whitespace="preserve">new allocation of the actor, in parent-relative coordinates</doc>
-            <type name="ActorBox" c:type="ClutterActorBox*"/>
-          </parameter>
-          <parameter name="flags" transfer-ownership="none">
-            <doc xml:whitespace="preserve">flags that control the allocation</doc>
-            <type name="AllocationFlags" c:type="ClutterAllocationFlags"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="allocate_align_fill"
-              c:identifier="clutter_actor_allocate_align_fill"
-              version="1.4">
-        <doc xml:whitespace="preserve">Allocates @self by taking into consideration the available allocation
-area; an alignment factor on either axis; and whether the actor should
-fill the allocation on either axis.
-The @box should contain the available allocation width and height;
-if the x1 and y1 members of #ClutterActorBox are not set to 0, the
-allocation will be offset by their value.
-This function takes into consideration the geometry request specified by
-the #ClutterActor:request-mode property, and the text direction.
-This function is useful for fluid layout managers, like #ClutterBinLayout
-or #ClutterTableLayout</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="box" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #ClutterActorBox, containing the available width and height</doc>
-            <type name="ActorBox" c:type="ClutterActorBox*"/>
-          </parameter>
-          <parameter name="x_align" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the horizontal alignment, between 0 and 1</doc>
-            <type name="gdouble" c:type="gdouble"/>
-          </parameter>
-          <parameter name="y_align" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the vertical alignment, between 0 and 1</doc>
-            <type name="gdouble" c:type="gdouble"/>
-          </parameter>
-          <parameter name="x_fill" transfer-ownership="none">
-            <doc xml:whitespace="preserve">whether the actor should fill horizontally</doc>
-            <type name="gboolean" c:type="gboolean"/>
-          </parameter>
-          <parameter name="y_fill" transfer-ownership="none">
-            <doc xml:whitespace="preserve">whether the actor should fill vertically</doc>
-            <type name="gboolean" c:type="gboolean"/>
-          </parameter>
-          <parameter name="flags" transfer-ownership="none">
-            <doc xml:whitespace="preserve">allocation flags to be passed to clutter_actor_allocate()</doc>
-            <type name="AllocationFlags" c:type="ClutterAllocationFlags"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="allocate_available_size"
-              c:identifier="clutter_actor_allocate_available_size"
-              version="1.0">
-        <doc xml:whitespace="preserve">Allocates @self taking into account the #ClutterActor&lt;!-- --&gt;'s
-preferred size, but limiting it to the maximum available width
-and height provided.
-This function will do the right thing when dealing with the
-actor's request mode.
-The implementation of this function is equivalent to:
-|[
-if (request_mode == CLUTTER_REQUEST_HEIGHT_FOR_WIDTH)
-{
-clutter_actor_get_preferred_width (self, available_height,
-&amp;amp;min_width,
-&amp;amp;natural_width);
-width = CLAMP (natural_width, min_width, available_width);
-clutter_actor_get_preferred_height (self, width,
-&amp;amp;min_height,
-&amp;amp;natural_height);
-height = CLAMP (natural_height, min_height, available_height);
-}
-else
-{
-clutter_actor_get_preferred_height (self, available_width,
-&amp;amp;min_height,
-&amp;amp;natural_height);
-height = CLAMP (natural_height, min_height, available_height);
-clutter_actor_get_preferred_width (self, height,
-&amp;amp;min_width,
-&amp;amp;natural_width);
-width = CLAMP (natural_width, min_width, available_width);
-}
-box.x1 = x; box.y1 = y;
-box.x2 = box.x1 + available_width;
-box.y2 = box.y1 + available_height;
-clutter_actor_allocate (self, &amp;amp;box, flags);
-]|
-This function can be used by fluid layout managers to allocate
-an actor's preferred size without making it bigger than the area
-available for the container.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="x" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the actor's X coordinate</doc>
-            <type name="gfloat" c:type="gfloat"/>
-          </parameter>
-          <parameter name="y" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the actor's Y coordinate</doc>
-            <type name="gfloat" c:type="gfloat"/>
-          </parameter>
-          <parameter name="available_width" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the maximum available width, or -1 to use the actor's natural width</doc>
-            <type name="gfloat" c:type="gfloat"/>
-          </parameter>
-          <parameter name="available_height" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the maximum available height, or -1 to use the actor's natural height</doc>
-            <type name="gfloat" c:type="gfloat"/>
-          </parameter>
-          <parameter name="flags" transfer-ownership="none">
-            <doc xml:whitespace="preserve">flags controlling the allocation</doc>
-            <type name="AllocationFlags" c:type="ClutterAllocationFlags"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="allocate_preferred_size"
-              c:identifier="clutter_actor_allocate_preferred_size"
-              version="0.8">
-        <doc xml:whitespace="preserve">Allocates the natural size of @self.
-This function is a utility call for #ClutterActor implementations
-that allocates the actor's preferred natural size. It can be used
-by fixed layout managers (like #ClutterGroup or so called
-'composite actors') inside the ClutterActor::allocate
-implementation to give each child exactly how much space it
-requires.
-This function is not meant to be used by applications. It is also
-not meant to be used outside the implementation of the
-ClutterActor::allocate virtual function.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="flags" transfer-ownership="none">
-            <doc xml:whitespace="preserve">flags controlling the allocation</doc>
-            <type name="AllocationFlags" c:type="ClutterAllocationFlags"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="animate"
-              c:identifier="clutter_actor_animate"
-              version="1.0"
-              introspectable="0">
-        <doc xml:whitespace="preserve">Animates the given list of properties of @actor between the current
-value for each property and a new final value. The animation has a
-definite duration and a speed given by the @mode.
-For example, this:
-|[
-clutter_actor_animate (rectangle, CLUTTER_LINEAR, 250,
-"width", 100.0,
-"height", 100.0,
-NULL);
-]|
-will make width and height properties of the #ClutterActor "rectangle"
-grow linearly between the current value and 100 pixels, in 250 milliseconds.
-The animation @mode is a logical id, either from the #ClutterAnimationMode
-enumeration of from clutter_alpha_register_func().
-All the properties specified will be animated between the current value
-and the final value. If a property should be set at the beginning of
-the animation but not updated during the animation, it should be prefixed
-by the "fixed::" string, for instance:
-|[
-clutter_actor_animate (actor, CLUTTER_EASE_IN_SINE, 100,
-"rotation-angle-z", 360.0,
-"fixed::rotation-center-z", &amp;amp;center,
-NULL);
-]|
-Will animate the "rotation-angle-z" property between the current value
-and 360 degrees, and set the "rotation-center-z" property to the fixed
-value of the #ClutterVertex "center".
-This function will implicitly create a #ClutterAnimation object which
-will be assigned to the @actor and will be returned to the developer
-to control the animation or to know when the animation has been
-completed.
-If a name argument starts with "signal::", "signal-after::",
-"signal-swapped::" or "signal-swapped-after::" the two following arguments
-are used as callback function and data for a signal handler installed on
-the #ClutterAnimation object for the specified signal name, for instance:
-|[
-static void
-on_animation_completed (ClutterAnimation *animation,
-ClutterActor     *actor)
-{
-clutter_actor_hide (actor);
-}
-clutter_actor_animate (actor, CLUTTER_EASE_IN_CUBIC, 100,
-"opacity", 0,
-"signal::completed", on_animation_completed, actor,
-NULL);
-]|
-or, to automatically destroy an actor at the end of the animation:
-|[
-clutter_actor_animate (actor, CLUTTER_EASE_IN_CUBIC, 100,
-"opacity", 0,
-"signal-swapped-after::completed",
-clutter_actor_destroy,
-actor,
-NULL);
-]|
-The "signal::" modifier is the equivalent of using g_signal_connect();
-the "signal-after::" modifier is the equivalent of using
-g_signal_connect_after() or g_signal_connect_data() with the
-%G_CONNECT_AFTER; the "signal-swapped::" modifier is the equivalent
-of using g_signal_connect_swapped() or g_signal_connect_data() with the
-%G_CONNECT_SWAPPED flah; finally, the "signal-swapped-after::" modifier
-is the equivalent of using g_signal_connect_data() with both the
-%G_CONNECT_AFTER and %G_CONNECT_SWAPPED flags. The clutter_actor_animate()
-function will not keep track of multiple connections to the same signal,
-so it is your responsability to avoid them when calling
-clutter_actor_animate() multiple times on the same actor.
-Calling this function on an actor that is already being animated
-will cause the current animation to change with the new final values,
-the new easing mode and the new duration - that is, this code:
-|[
-clutter_actor_animate (actor, CLUTTER_LINEAR, 250,
-"width", 100.0,
-"height", 100.0,
-NULL);
-clutter_actor_animate (actor, CLUTTER_EASE_IN_CUBIC, 500,
-"x", 100.0,
-"y", 100.0,
-"width", 200.0,
-NULL);
-]|
-is the equivalent of:
-|[
-clutter_actor_animate (actor, CLUTTER_EASE_IN_CUBIC, 500,
-"x", 100.0,
-"y", 100.0,
-"width", 200.0,
-"height", 100.0,
-NULL);
-]|
-&lt;note&gt;Unless the animation is looping, the #ClutterAnimation created by
-clutter_actor_animate() will become invalid as soon as it is
-complete.&lt;/note&gt;
-Since the created #ClutterAnimation instance attached to @actor
-is guaranteed to be valid throughout the #ClutterAnimation::completed
-signal emission chain, you will not be able to create a new animation
-using clutter_actor_animate() on the same @actor from within the
-#ClutterAnimation::completed signal handler unless you use
-g_signal_connect_after() to connect the callback function, for instance:
-|[
-static void
-on_animation_completed (ClutterAnimation *animation,
-ClutterActor     *actor)
-{
-clutter_actor_animate (actor, CLUTTER_EASE_OUT_CUBIC, 250,
-"x", 500.0,
-"y", 500.0,
-NULL);
-}
-...
-animation = clutter_actor_animate (actor, CLUTTER_EASE_IN_CUBIC, 250,
-"x", 100.0,
-"y", 100.0,
-NULL);
-g_signal_connect (animation, "completed",
-G_CALLBACK (on_animation_completed),
-actor);
-...
-]|
-owned by the #ClutterActor and should not be unreferenced with
-g_object_unref()</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">a #ClutterAnimation object. The object is</doc>
-          <type name="Animation" c:type="ClutterAnimation*"/>
-        </return-value>
-        <parameters>
-          <parameter name="mode" transfer-ownership="none">
-            <doc xml:whitespace="preserve">an animation mode logical id</doc>
-            <type name="gulong" c:type="gulong"/>
-          </parameter>
-          <parameter name="duration" transfer-ownership="none">
-            <doc xml:whitespace="preserve">duration of the animation, in milliseconds</doc>
-            <type name="guint" c:type="guint"/>
-          </parameter>
-          <parameter name="first_property_name" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the name of a property</doc>
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter transfer-ownership="none">
-            <varargs>
-            </varargs>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="animate_with_alpha"
-              c:identifier="clutter_actor_animate_with_alpha"
-              version="1.0"
-              introspectable="0">
-        <doc xml:whitespace="preserve">Animates the given list of properties of @actor between the current
-value for each property and a new final value. The animation has a
-definite behaviour given by the passed @alpha.
-See clutter_actor_animate() for further details.
-This function is useful if you want to use an existing #ClutterAlpha
-to animate @actor.
-#ClutterActor and should not be unreferenced with g_object_unref()</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">a #ClutterAnimation object. The object is owned by the</doc>
-          <type name="Animation" c:type="ClutterAnimation*"/>
-        </return-value>
-        <parameters>
-          <parameter name="alpha" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #ClutterAlpha</doc>
-            <type name="Alpha" c:type="ClutterAlpha*"/>
-          </parameter>
-          <parameter name="first_property_name" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the name of a property</doc>
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter transfer-ownership="none">
-            <varargs>
-            </varargs>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="animate_with_alphav"
-              c:identifier="clutter_actor_animate_with_alphav"
-              version="1.0">
-        <doc xml:whitespace="preserve">Animates the given list of properties of @actor between the current
-value for each property and a new final value. The animation has a
-definite behaviour given by the passed @alpha.
-See clutter_actor_animate() for further details.
-This function is useful if you want to use an existing #ClutterAlpha
-to animate @actor.
-This is the vector-based variant of clutter_actor_animate_with_alpha(),
-useful for language bindings.
-&lt;warning&gt;Unlike clutter_actor_animate_with_alpha(), this function will
-not allow you to specify "signal::" names and callbacks.&lt;/warning&gt;
-#ClutterActor and should not be unreferenced with g_object_unref()</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">a #ClutterAnimation object. The object is owned by the</doc>
-          <type name="Animation" c:type="ClutterAnimation*"/>
-        </return-value>
-        <parameters>
-          <parameter name="alpha" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #ClutterAlpha</doc>
-            <type name="Alpha" c:type="ClutterAlpha*"/>
-          </parameter>
-          <parameter name="n_properties" transfer-ownership="none">
-            <doc xml:whitespace="preserve">number of property names and values</doc>
-            <type name="gint" c:type="gint"/>
-          </parameter>
-          <parameter name="properties" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a vector containing the property names to set</doc>
-            <array length="1" c:type="gchar*">
-              <type name="utf8"/>
-            </array>
-          </parameter>
-          <parameter name="values" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a vector containing the property values to set</doc>
-            <array length="1" c:type="GValue*">
-              <type name="GObject.Value"/>
-            </array>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="animate_with_timeline"
-              c:identifier="clutter_actor_animate_with_timeline"
-              version="1.0"
-              introspectable="0">
-        <doc xml:whitespace="preserve">Animates the given list of properties of @actor between the current
-value for each property and a new final value. The animation has a
-definite duration given by @timeline and a speed given by the @mode.
-See clutter_actor_animate() for further details.
-This function is useful if you want to use an existing timeline
-to animate @actor.
-owned by the #ClutterActor and should not be unreferenced with
-g_object_unref()</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">a #ClutterAnimation object. The object is</doc>
-          <type name="Animation" c:type="ClutterAnimation*"/>
-        </return-value>
-        <parameters>
-          <parameter name="mode" transfer-ownership="none">
-            <doc xml:whitespace="preserve">an animation mode logical id</doc>
-            <type name="gulong" c:type="gulong"/>
-          </parameter>
-          <parameter name="timeline" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #ClutterTimeline</doc>
-            <type name="Timeline" c:type="ClutterTimeline*"/>
-          </parameter>
-          <parameter name="first_property_name" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the name of a property</doc>
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter transfer-ownership="none">
-            <varargs>
-            </varargs>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="animate_with_timelinev"
-              c:identifier="clutter_actor_animate_with_timelinev"
-              version="1.0">
-        <doc xml:whitespace="preserve">Animates the given list of properties of @actor between the current
-value for each property and a new final value. The animation has a
-definite duration given by @timeline and a speed given by the @mode.
-See clutter_actor_animate() for further details.
-This function is useful if you want to use an existing timeline
-to animate @actor.
-This is the vector-based variant of clutter_actor_animate_with_timeline(),
-useful for language bindings.
-&lt;warning&gt;Unlike clutter_actor_animate_with_timeline(), this function
-will not allow you to specify "signal::" names and callbacks.&lt;/warning&gt;
-owned by the #ClutterActor and should not be unreferenced with
-g_object_unref()</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">a #ClutterAnimation object. The object is</doc>
-          <type name="Animation" c:type="ClutterAnimation*"/>
-        </return-value>
-        <parameters>
-          <parameter name="mode" transfer-ownership="none">
-            <doc xml:whitespace="preserve">an animation mode logical id</doc>
-            <type name="gulong" c:type="gulong"/>
-          </parameter>
-          <parameter name="timeline" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #ClutterTimeline</doc>
-            <type name="Timeline" c:type="ClutterTimeline*"/>
-          </parameter>
-          <parameter name="n_properties" transfer-ownership="none">
-            <doc xml:whitespace="preserve">number of property names and values</doc>
-            <type name="gint" c:type="gint"/>
-          </parameter>
-          <parameter name="properties" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a vector containing the property names to set</doc>
-            <array length="2" c:type="gchar*">
-              <type name="utf8"/>
-            </array>
-          </parameter>
-          <parameter name="values" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a vector containing the property values to set</doc>
-            <array length="2" c:type="GValue*">
-              <type name="GObject.Value"/>
-            </array>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="animatev"
-              c:identifier="clutter_actor_animatev"
-              version="1.0">
-        <doc xml:whitespace="preserve">Animates the given list of properties of @actor between the current
-value for each property and a new final value. The animation has a
-definite duration and a speed given by the @mode.
-This is the vector-based variant of clutter_actor_animate(), useful
-for language bindings.
-&lt;warning&gt;Unlike clutter_actor_animate(), this function will not
-allow you to specify "signal::" names and callbacks.&lt;/warning&gt;
-owned by the #ClutterActor and should not be unreferenced with
-g_object_unref()</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">a #ClutterAnimation object. The object is</doc>
-          <type name="Animation" c:type="ClutterAnimation*"/>
-        </return-value>
-        <parameters>
-          <parameter name="mode" transfer-ownership="none">
-            <doc xml:whitespace="preserve">an animation mode logical id</doc>
-            <type name="gulong" c:type="gulong"/>
-          </parameter>
-          <parameter name="duration" transfer-ownership="none">
-            <doc xml:whitespace="preserve">duration of the animation, in milliseconds</doc>
-            <type name="guint" c:type="guint"/>
-          </parameter>
-          <parameter name="n_properties" transfer-ownership="none">
-            <doc xml:whitespace="preserve">number of property names and values</doc>
-            <type name="gint" c:type="gint"/>
-          </parameter>
-          <parameter name="properties" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a vector containing the property names to set</doc>
-            <array length="2" c:type="gchar*">
-              <type name="utf8"/>
-            </array>
-          </parameter>
-          <parameter name="values" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a vector containing the property values to set</doc>
-            <array length="2" c:type="GValue*">
-              <type name="GObject.Value"/>
-            </array>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="apply_relative_transform_to_point"
-              c:identifier="clutter_actor_apply_relative_transform_to_point"
-              version="0.6">
-        <doc xml:whitespace="preserve">Transforms @point in coordinates relative to the actor into
-ancestor-relative coordinates using the relevant transform
-stack (i.e. scale, rotation, etc).
-If @ancestor is %NULL the ancestor will be the #ClutterStage. In
-this case, the coordinates returned will be the coordinates on
-the stage before the projection is applied. This is different from
-the behaviour of clutter_actor_apply_transform_to_point().</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="ancestor" transfer-ownership="none" allow-none="1">
-            <doc xml:whitespace="preserve">A #ClutterActor ancestor, or %NULL to use the default #ClutterStage</doc>
-            <type name="Actor" c:type="ClutterActor*"/>
-          </parameter>
-          <parameter name="point" transfer-ownership="none">
-            <doc xml:whitespace="preserve">A point as #ClutterVertex</doc>
-            <type name="Vertex" c:type="ClutterVertex*"/>
-          </parameter>
-          <parameter name="vertex" transfer-ownership="none">
-            <doc xml:whitespace="preserve">The translated #ClutterVertex</doc>
-            <type name="Vertex" c:type="ClutterVertex*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="apply_transform_to_point"
-              c:identifier="clutter_actor_apply_transform_to_point"
-              version="0.4">
-        <doc xml:whitespace="preserve">Transforms @point in coordinates relative to the actor
-into screen-relative coordinates with the current actor
-transformation (i.e. scale, rotation, etc)</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="point" transfer-ownership="none">
-            <doc xml:whitespace="preserve">A point as #ClutterVertex</doc>
-            <type name="Vertex" c:type="ClutterVertex*"/>
-          </parameter>
-          <parameter name="vertex" transfer-ownership="none">
-            <doc xml:whitespace="preserve">The translated #ClutterVertex</doc>
-            <type name="Vertex" c:type="ClutterVertex*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="clear_actions"
-              c:identifier="clutter_actor_clear_actions"
-              version="1.4">
-        <doc xml:whitespace="preserve">Clears the list of actions applied to @self</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </method>
-      <method name="clear_constraints"
-              c:identifier="clutter_actor_clear_constraints"
-              version="1.4">
-        <doc xml:whitespace="preserve">Clears the list of constraints applied to @self</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </method>
-      <method name="clear_effects"
-              c:identifier="clutter_actor_clear_effects"
-              version="1.4">
-        <doc xml:whitespace="preserve">Clears the list of effects applied to @self</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </method>
-      <method name="contains"
-              c:identifier="clutter_actor_contains"
-              version="1.4">
-        <doc xml:whitespace="preserve">Determines if @descendant is contained inside @self (either as an
-immediate child, or as a deeper descendant).</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">whether @descendent is contained within @self</doc>
-          <type name="gboolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="descendant" transfer-ownership="none">
-            <doc xml:whitespace="preserve">A #ClutterActor, possibly contained in @self</doc>
-            <type name="Actor" c:type="ClutterActor*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="create_pango_context"
-              c:identifier="clutter_actor_create_pango_context"
-              version="1.0">
-        <doc xml:whitespace="preserve">Creates a #PangoContext for the given actor. The #PangoContext
-is already configured using the appropriate font map, resolution
-and font options.
-See also clutter_actor_get_pango_context().
-Use g_object_unref() on the returned value to deallocate its
-resources</doc>
-        <return-value transfer-ownership="full">
-          <doc xml:whitespace="preserve">the newly created #PangoContext.</doc>
-          <type name="Pango.Context" c:type="PangoContext*"/>
-        </return-value>
-      </method>
-      <method name="create_pango_layout"
-              c:identifier="clutter_actor_create_pango_layout"
-              version="1.0">
-        <doc xml:whitespace="preserve">Creates a new #PangoLayout from the same #PangoContext used
-by the #ClutterActor. The #PangoLayout is already configured
-with the font map, resolution and font options, and the
-given @text.
-If you want to keep around a #PangoLayout created by this
-function you will have to connect to the #ClutterBackend::font-changed
-and #ClutterBackend::resolution-changed signals, and call
-pango_layout_context_changed() in response to them.
-Use g_object_unref() when done</doc>
-        <return-value transfer-ownership="full">
-          <doc xml:whitespace="preserve">the newly created #PangoLayout.</doc>
-          <type name="Pango.Layout" c:type="PangoLayout*"/>
-        </return-value>
-        <parameters>
-          <parameter name="text" transfer-ownership="none">
-            <doc xml:whitespace="preserve">(allow-none) the text to set on the #PangoLayout, or %NULL</doc>
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="destroy" c:identifier="clutter_actor_destroy">
-        <doc xml:whitespace="preserve">Destroys an actor.  When an actor is destroyed, it will break any
-references it holds to other objects.  If the actor is inside a
-container, the actor will be removed.
-When you destroy a container, its children will be destroyed as well.
-clutter_stage_get_default().</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </method>
-      <method name="detach_animation"
-              c:identifier="clutter_actor_detach_animation"
-              version="1.4">
-        <doc xml:whitespace="preserve">Detaches the #ClutterAnimation used by @actor, if clutter_actor_animate()
-has been called on @actor.
-Once the animation has been detached, it loses a reference. If it was
-the only reference then the #ClutterAnimation becomes invalid.
-The #ClutterAnimation::completed signal will not be emitted.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </method>
-      <method name="event" c:identifier="clutter_actor_event" version="0.6">
-        <doc xml:whitespace="preserve">This function is used to emit an event on the main stage.
-You should rarely need to use this function, except for
-synthetising events.
-if the actor handled the event, or %FALSE if the event was
-not handled</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the return value from the signal emission: %TRUE</doc>
-          <type name="gboolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="event" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #ClutterEvent</doc>
-            <type name="Event" c:type="ClutterEvent*"/>
-          </parameter>
-          <parameter name="capture" transfer-ownership="none">
-            <doc xml:whitespace="preserve">TRUE if event in in capture phase, FALSE otherwise.</doc>
-            <type name="gboolean" c:type="gboolean"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_abs_allocation_vertices"
-              c:identifier="clutter_actor_get_abs_allocation_vertices"
-              version="0.4">
-        <doc xml:whitespace="preserve">Calculates the transformed screen coordinates of the four corners of
-the actor; the returned vertices relate to the #ClutterActorBox
-coordinates  as follows:
-&lt;itemizedlist&gt;
-&lt;listitem&gt;&lt;para&gt;v[0] contains (x1, y1)&lt;/para&gt;&lt;/listitem&gt;
-&lt;listitem&gt;&lt;para&gt;v[1] contains (x2, y1)&lt;/para&gt;&lt;/listitem&gt;
-&lt;listitem&gt;&lt;para&gt;v[2] contains (x1, y2)&lt;/para&gt;&lt;/listitem&gt;
-&lt;listitem&gt;&lt;para&gt;v[3] contains (x2, y2)&lt;/para&gt;&lt;/listitem&gt;
-&lt;/itemizedlist&gt;</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="verts"
-                     direction="out"
-                     caller-allocates="1"
-                     transfer-ownership="none">
-            <doc xml:whitespace="preserve">Pointer to a location of an array of 4 #ClutterVertex where to store the result.</doc>
-            <array c:type="ClutterVertex" fixed-size="4">
-              <type name="Vertex"/>
-            </array>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_accessible"
-              c:identifier="clutter_actor_get_accessible">
-        <doc xml:whitespace="preserve">Returns the accessible object that describes the actor to an
-assistive technology.
-If no class-specific #AtkObject implementation is available for the
-actor instance in question, it will inherit an #AtkObject
-implementation from the first ancestor class for which such an
-implementation is defined.
-The documentation of the &lt;ulink
-url="http://developer.gnome.org/doc/API/2.0/atk/index.html"&gt;ATK&lt;/ulink&gt;
-library contains more information about accessible objects and
-their uses.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the #AtkObject associated with @actor</doc>
-          <type name="Atk.Object" c:type="AtkObject*"/>
-        </return-value>
-      </method>
-      <method name="get_action"
-              c:identifier="clutter_actor_get_action"
-              version="1.4">
-        <doc xml:whitespace="preserve">Retrieves the #ClutterAction with the given name in the list
-of actions applied to @self
-name, or %NULL. The returned #ClutterAction is owned by the
-actor and it should not be unreferenced directly</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">a #ClutterAction for the given</doc>
-          <type name="Action" c:type="ClutterAction*"/>
-        </return-value>
-        <parameters>
-          <parameter name="name" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the name of the action to retrieve</doc>
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_actions"
-              c:identifier="clutter_actor_get_actions"
-              version="1.4">
-        <doc xml:whitespace="preserve">Retrieves the list of actions applied to @self
-of the list of #ClutterAction&lt;!-- --&gt;s. The contents of the list are
-owned by the #ClutterActor. Use g_list_free() to free the resources
-allocated by the returned #GList</doc>
-        <return-value transfer-ownership="container">
-          <doc xml:whitespace="preserve">a copy</doc>
-          <type name="GLib.List" c:type="GList*">
-            <type name="Action"/>
-          </type>
-        </return-value>
-      </method>
-      <method name="get_allocation_box"
-              c:identifier="clutter_actor_get_allocation_box"
-              version="0.8">
-        <doc xml:whitespace="preserve">Gets the layout box an actor has been assigned. The allocation can
-only be assumed valid inside a paint() method; anywhere else, it
-may be out-of-date.
-An allocation does not incorporate the actor's scale or anchor point;
-those transformations do not affect layout, only rendering.
-&lt;note&gt;Do not call any of the clutter_actor_get_allocation_*() family
-of functions inside the implementation of the get_preferred_width()
-or get_preferred_height() virtual functions.&lt;/note&gt;</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="box"
-                     direction="out"
-                     caller-allocates="1"
-                     transfer-ownership="none">
-            <doc xml:whitespace="preserve">the function fills this in with the actor's allocation</doc>
-            <type name="ActorBox" c:type="ClutterActorBox*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_allocation_geometry"
-              c:identifier="clutter_actor_get_allocation_geometry"
-              version="0.8">
-        <doc xml:whitespace="preserve">Gets the layout box an actor has been assigned.  The allocation can
-only be assumed valid inside a paint() method; anywhere else, it
-may be out-of-date.
-An allocation does not incorporate the actor's scale or anchor point;
-those transformations do not affect layout, only rendering.
-The returned rectangle is in pixels.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="geom"
-                     direction="out"
-                     caller-allocates="1"
-                     transfer-ownership="none">
-            <doc xml:whitespace="preserve">allocation geometry in pixels</doc>
-            <type name="Geometry" c:type="ClutterGeometry*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_allocation_vertices"
-              c:identifier="clutter_actor_get_allocation_vertices"
-              version="0.6">
-        <doc xml:whitespace="preserve">Calculates the transformed coordinates of the four corners of the
-actor in the plane of @ancestor. The returned vertices relate to
-the #ClutterActorBox coordinates as follows:
-&lt;itemizedlist&gt;
-&lt;listitem&gt;&lt;para&gt;@verts[0] contains (x1, y1)&lt;/para&gt;&lt;/listitem&gt;
-&lt;listitem&gt;&lt;para&gt;@verts[1] contains (x2, y1)&lt;/para&gt;&lt;/listitem&gt;
-&lt;listitem&gt;&lt;para&gt;@verts[2] contains (x1, y2)&lt;/para&gt;&lt;/listitem&gt;
-&lt;listitem&gt;&lt;para&gt;@verts[3] contains (x2, y2)&lt;/para&gt;&lt;/listitem&gt;
-&lt;/itemizedlist&gt;
-If @ancestor is %NULL the ancestor will be the #ClutterStage. In
-this case, the coordinates returned will be the coordinates on
-the stage before the projection is applied. This is different from
-the behaviour of clutter_actor_get_abs_allocation_vertices().</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="ancestor" transfer-ownership="none" allow-none="1">
-            <doc xml:whitespace="preserve">A #ClutterActor to calculate the vertices against, or %NULL to use the #ClutterStage</doc>
-            <type name="Actor" c:type="ClutterActor*"/>
-          </parameter>
-          <parameter name="verts"
-                     direction="out"
-                     caller-allocates="1"
-                     transfer-ownership="none">
-            <doc xml:whitespace="preserve">return location for an array of 4 #ClutterVertex in which to store the result</doc>
-            <array c:type="ClutterVertex" fixed-size="4">
-              <type name="Vertex"/>
-            </array>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_anchor_point"
-              c:identifier="clutter_actor_get_anchor_point"
-              version="0.6">
-        <doc xml:whitespace="preserve">Gets the current anchor point of the @actor in pixels.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="anchor_x"
-                     direction="out"
-                     caller-allocates="0"
-                     transfer-ownership="full">
-            <doc xml:whitespace="preserve">return location for the X coordinate of the anchor point</doc>
-            <type name="gfloat" c:type="gfloat*"/>
-          </parameter>
-          <parameter name="anchor_y"
-                     direction="out"
-                     caller-allocates="0"
-                     transfer-ownership="full">
-            <doc xml:whitespace="preserve">return location for the Y coordinate of the anchor point</doc>
-            <type name="gfloat" c:type="gfloat*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_anchor_point_gravity"
-              c:identifier="clutter_actor_get_anchor_point_gravity"
-              version="1.0">
-        <doc xml:whitespace="preserve">Retrieves the anchor position expressed as a #ClutterGravity. If
-the anchor point was specified using pixels or units this will
-return %CLUTTER_GRAVITY_NONE.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the #ClutterGravity used by the anchor point</doc>
-          <type name="Gravity" c:type="ClutterGravity"/>
-        </return-value>
-      </method>
-      <method name="get_animation"
-              c:identifier="clutter_actor_get_animation"
-              version="1.0">
-        <doc xml:whitespace="preserve">Retrieves the #ClutterAnimation used by @actor, if clutter_actor_animate()
-has been called on @actor.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">a #ClutterAnimation, or %NULL</doc>
-          <type name="Animation" c:type="ClutterAnimation*"/>
-        </return-value>
-      </method>
-      <method name="get_clip"
-              c:identifier="clutter_actor_get_clip"
-              version="0.6">
-        <doc xml:whitespace="preserve">Gets the clip area for @self, if any is set</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="xoff"
-                     direction="out"
-                     caller-allocates="0"
-                     transfer-ownership="full"
-                     allow-none="1">
-            <doc xml:whitespace="preserve">return location for the X offset of the clip rectangle, or %NULL</doc>
-            <type name="gfloat" c:type="gfloat*"/>
-          </parameter>
-          <parameter name="yoff"
-                     direction="out"
-                     caller-allocates="0"
-                     transfer-ownership="full"
-                     allow-none="1">
-            <doc xml:whitespace="preserve">return location for the Y offset of the clip rectangle, or %NULL</doc>
-            <type name="gfloat" c:type="gfloat*"/>
-          </parameter>
-          <parameter name="width"
-                     direction="out"
-                     caller-allocates="0"
-                     transfer-ownership="full"
-                     allow-none="1">
-            <doc xml:whitespace="preserve">return location for the width of the clip rectangle, or %NULL</doc>
-            <type name="gfloat" c:type="gfloat*"/>
-          </parameter>
-          <parameter name="height"
-                     direction="out"
-                     caller-allocates="0"
-                     transfer-ownership="full"
-                     allow-none="1">
-            <doc xml:whitespace="preserve">return location for the height of the clip rectangle, or %NULL</doc>
-            <type name="gfloat" c:type="gfloat*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_clip_to_allocation"
-              c:identifier="clutter_actor_get_clip_to_allocation"
-              version="1.4">
-        <doc xml:whitespace="preserve">Retrieves the value set using clutter_actor_set_clip_to_allocation()</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">%TRUE if the #ClutterActor is clipped to its allocation</doc>
-          <type name="gboolean" c:type="gboolean"/>
-        </return-value>
-      </method>
-      <method name="get_constraint"
-              c:identifier="clutter_actor_get_constraint"
-              version="1.4">
-        <doc xml:whitespace="preserve">Retrieves the #ClutterConstraint with the given name in the list
-of constraints applied to @self
-name, or %NULL. The returned #ClutterConstraint is owned by the
-actor and it should not be unreferenced directly</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">a #ClutterConstraint for the given</doc>
-          <type name="Constraint" c:type="ClutterConstraint*"/>
-        </return-value>
-        <parameters>
-          <parameter name="name" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the name of the constraint to retrieve</doc>
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_constraints"
-              c:identifier="clutter_actor_get_constraints"
-              version="1.4">
-        <doc xml:whitespace="preserve">Retrieves the list of constraints applied to @self
-of the list of #ClutterConstraint&lt;!-- --&gt;s. The contents of the list are
-owned by the #ClutterActor. Use g_list_free() to free the resources
-allocated by the returned #GList</doc>
-        <return-value transfer-ownership="container">
-          <doc xml:whitespace="preserve">a copy</doc>
-          <type name="GLib.List" c:type="GList*">
-            <type name="Constraint"/>
-          </type>
-        </return-value>
-      </method>
-      <method name="get_depth" c:identifier="clutter_actor_get_depth">
-        <doc xml:whitespace="preserve">Retrieves the depth of @self.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the depth of the actor</doc>
-          <type name="gfloat" c:type="gfloat"/>
-        </return-value>
-      </method>
-      <method name="get_effect"
-              c:identifier="clutter_actor_get_effect"
-              version="1.4">
-        <doc xml:whitespace="preserve">Retrieves the #ClutterEffect with the given name in the list
-of effects applied to @self
-name, or %NULL. The returned #ClutterEffect is owned by the
-actor and it should not be unreferenced directly</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">a #ClutterEffect for the given</doc>
-          <type name="Effect" c:type="ClutterEffect*"/>
-        </return-value>
-        <parameters>
-          <parameter name="name" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the name of the effect to retrieve</doc>
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_effects"
-              c:identifier="clutter_actor_get_effects"
-              version="1.4">
-        <doc xml:whitespace="preserve">Retrieves the #ClutterEffect&lt;!-- --&gt;s applied on @self, if any
-of #ClutterEffect&lt;!-- --&gt;s, or %NULL. The elements of the returned
-list are owned by Clutter and they should not be freed. You should
-free the returned list using g_list_free() when done</doc>
-        <return-value transfer-ownership="container">
-          <doc xml:whitespace="preserve">a list</doc>
-          <type name="GLib.List" c:type="GList*">
-            <type name="Effect"/>
-          </type>
-        </return-value>
-      </method>
-      <method name="get_fixed_position_set"
-              c:identifier="clutter_actor_get_fixed_position_set"
-              version="0.8">
-        <doc xml:whitespace="preserve">Checks whether an actor has a fixed position set (and will thus be
-unaffected by any layout manager).</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">%TRUE if the fixed position is set on the actor</doc>
-          <type name="gboolean" c:type="gboolean"/>
-        </return-value>
-      </method>
-      <method name="get_flags"
-              c:identifier="clutter_actor_get_flags"
-              version="1.0">
-        <doc xml:whitespace="preserve">Retrieves the flags set on @self</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">a bitwise or of #ClutterActorFlags or 0</doc>
-          <type name="ActorFlags" c:type="ClutterActorFlags"/>
-        </return-value>
-      </method>
-      <method name="get_geometry" c:identifier="clutter_actor_get_geometry">
-        <doc xml:whitespace="preserve">Gets the size and position of an actor relative to its parent
-actor. This is the same as calling clutter_actor_get_position() and
-clutter_actor_get_size(). It tries to "do what you mean" and get the
-requested size and position if the actor's allocation is invalid.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="geometry"
-                     direction="out"
-                     caller-allocates="1"
-                     transfer-ownership="none">
-            <doc xml:whitespace="preserve">A location to store actors #ClutterGeometry</doc>
-            <type name="Geometry" c:type="ClutterGeometry*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_gid"
-              c:identifier="clutter_actor_get_gid"
-              version="0.6">
-        <doc xml:whitespace="preserve">Retrieves the unique id for @self.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">Globally unique value for this object instance.</doc>
-          <type name="guint32" c:type="guint32"/>
-        </return-value>
-      </method>
-      <method name="get_height" c:identifier="clutter_actor_get_height">
-        <doc xml:whitespace="preserve">Retrieves the height of a #ClutterActor.
-If the actor has a valid allocation, this function will return the
-height of the allocated area given to the actor.
-If the actor does not have a valid allocation, this function will
-return the actor's natural height, that is the preferred height of
-the actor.
-If you care whether you get the preferred height or the height that
-has been assigned to the actor, you should probably call a different
-function like clutter_actor_get_allocation_box() to retrieve the
-allocated size or clutter_actor_get_preferred_height() to retrieve the
-preferred height.
-If an actor has a fixed height, for instance a height that has been
-assigned using clutter_actor_set_height(), the height returned will
-be the same value.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the height of the actor, in pixels</doc>
-          <type name="gfloat" c:type="gfloat"/>
-        </return-value>
-      </method>
-      <method name="get_name" c:identifier="clutter_actor_get_name">
-        <doc xml:whitespace="preserve">Retrieves the name of @self.
-owned by the actor and should not be modified or freed.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the name of the actor, or %NULL. The returned string is</doc>
-          <type name="utf8" c:type="gchar*"/>
-        </return-value>
-      </method>
-      <method name="get_opacity" c:identifier="clutter_actor_get_opacity">
-        <doc xml:whitespace="preserve">Retrieves the opacity value of an actor, as set by
-clutter_actor_set_opacity().
-For retrieving the absolute opacity of the actor inside a paint
-virtual function, see clutter_actor_get_paint_opacity().</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the opacity of the actor</doc>
-          <type name="guint8" c:type="guint8"/>
-        </return-value>
-      </method>
-      <method name="get_paint_opacity"
-              c:identifier="clutter_actor_get_paint_opacity"
-              version="0.8">
-        <doc xml:whitespace="preserve">Retrieves the absolute opacity of the actor, as it appears on the stage.
-This function traverses the hierarchy chain and composites the opacity of
-the actor with that of its parents.
-This function is intended for subclasses to use in the paint virtual
-function, to paint themselves with the correct opacity.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">The actor opacity value.</doc>
-          <type name="guint8" c:type="guint8"/>
-        </return-value>
-      </method>
-      <method name="get_paint_visibility"
-              c:identifier="clutter_actor_get_paint_visibility"
-              version="0.8.4">
-        <doc xml:whitespace="preserve">Retrieves the 'paint' visibility of an actor recursively checking for non
-visible parents.
-This is by definition the same as CLUTTER_ACTOR_IS_MAPPED().</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">TRUE if the actor is visibile and will be painted.</doc>
-          <type name="gboolean" c:type="gboolean"/>
-        </return-value>
-      </method>
-      <method name="get_pango_context"
-              c:identifier="clutter_actor_get_pango_context"
-              version="1.0">
-        <doc xml:whitespace="preserve">Retrieves the #PangoContext for @self. The actor's #PangoContext
-is already configured using the appropriate font map, resolution
-and font options.
-Unlike clutter_actor_create_pango_context(), this context is owend
-by the #ClutterActor and it will be updated each time the options
-stored by the #ClutterBackend change.
-You can use the returned #PangoContext to create a #PangoLayout
-and render text using cogl_pango_render_layout() to reuse the
-glyphs cache also used by Clutter.
-The returned #PangoContext is owned by the actor and should not be
-unreferenced by the application code</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the #PangoContext for a #ClutterActor.</doc>
-          <type name="Pango.Context" c:type="PangoContext*"/>
-        </return-value>
-      </method>
-      <method name="get_parent" c:identifier="clutter_actor_get_parent">
-        <doc xml:whitespace="preserve">Retrieves the parent of @self.
-if no parent is set</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">The #ClutterActor parent, or %NULL</doc>
-          <type name="Actor" c:type="ClutterActor*"/>
-        </return-value>
-      </method>
-      <method name="get_position"
-              c:identifier="clutter_actor_get_position"
-              version="0.6">
-        <doc xml:whitespace="preserve">This function tries to "do what you mean" and tell you where the
-actor is, prior to any transformations. Retrieves the fixed
-position of an actor in pixels, if one has been set; otherwise, if
-the allocation is valid, returns the actor's allocated position;
-otherwise, returns 0,0.
-The returned position is in pixels.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="x"
-                     direction="out"
-                     caller-allocates="0"
-                     transfer-ownership="full"
-                     allow-none="1">
-            <doc xml:whitespace="preserve">return location for the X coordinate, or %NULL</doc>
-            <type name="gfloat" c:type="gfloat*"/>
-          </parameter>
-          <parameter name="y"
-                     direction="out"
-                     caller-allocates="0"
-                     transfer-ownership="full"
-                     allow-none="1">
-            <doc xml:whitespace="preserve">return location for the Y coordinate, or %NULL</doc>
-            <type name="gfloat" c:type="gfloat*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_preferred_height"
-              c:identifier="clutter_actor_get_preferred_height"
-              version="0.8">
-        <doc xml:whitespace="preserve">Computes the requested minimum and natural heights for an actor,
-or if they are already computed, returns the cached values.
-An actor may not get its request - depending on the layout
-manager that's in effect.
-A request should not incorporate the actor's scale or anchor point;
-those transformations do not affect layout, only rendering.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="for_width" transfer-ownership="none">
-            <doc xml:whitespace="preserve">available width to assume in computing desired height, or a negative value to indicate that no width is defined</doc>
-            <type name="gfloat" c:type="gfloat"/>
-          </parameter>
-          <parameter name="min_height_p"
-                     direction="out"
-                     caller-allocates="0"
-                     transfer-ownership="full"
-                     allow-none="1">
-            <doc xml:whitespace="preserve">return location for minimum height, or %NULL</doc>
-            <type name="gfloat" c:type="gfloat*"/>
-          </parameter>
-          <parameter name="natural_height_p"
-                     direction="out"
-                     caller-allocates="0"
-                     transfer-ownership="full"
-                     allow-none="1">
-            <doc xml:whitespace="preserve">return location for natural height, or %NULL</doc>
-            <type name="gfloat" c:type="gfloat*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_preferred_size"
-              c:identifier="clutter_actor_get_preferred_size"
-              version="0.8">
-        <doc xml:whitespace="preserve">Computes the preferred minimum and natural size of an actor, taking into
-account the actor's geometry management (either height-for-width
-or width-for-height).
-The width and height used to compute the preferred height and preferred
-width are the actor's natural ones.
-If you need to control the height for the preferred width, or the width for
-the preferred height, you should use clutter_actor_get_preferred_width()
-and clutter_actor_get_preferred_height(), and check the actor's preferred
-geometry management using the #ClutterActor:request-mode property.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="min_width_p"
-                     direction="out"
-                     caller-allocates="0"
-                     transfer-ownership="full"
-                     allow-none="1">
-            <doc xml:whitespace="preserve">return location for the minimum width, or %NULL</doc>
-            <type name="gfloat" c:type="gfloat*"/>
-          </parameter>
-          <parameter name="min_height_p"
-                     direction="out"
-                     caller-allocates="0"
-                     transfer-ownership="full"
-                     allow-none="1">
-            <doc xml:whitespace="preserve">return location for the minimum height, or %NULL</doc>
-            <type name="gfloat" c:type="gfloat*"/>
-          </parameter>
-          <parameter name="natural_width_p"
-                     direction="out"
-                     caller-allocates="0"
-                     transfer-ownership="full"
-                     allow-none="1">
-            <doc xml:whitespace="preserve">return location for the natural width, or %NULL</doc>
-            <type name="gfloat" c:type="gfloat*"/>
-          </parameter>
-          <parameter name="natural_height_p"
-                     direction="out"
-                     caller-allocates="0"
-                     transfer-ownership="full"
-                     allow-none="1">
-            <doc xml:whitespace="preserve">return location for the natural height, or %NULL</doc>
-            <type name="gfloat" c:type="gfloat*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_preferred_width"
-              c:identifier="clutter_actor_get_preferred_width"
-              version="0.8">
-        <doc xml:whitespace="preserve">Computes the requested minimum and natural widths for an actor,
-optionally depending on the specified height, or if they are
-already computed, returns the cached values.
-An actor may not get its request - depending on the layout
-manager that's in effect.
-A request should not incorporate the actor's scale or anchor point;
-those transformations do not affect layout, only rendering.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="for_height" transfer-ownership="none">
-            <doc xml:whitespace="preserve">available height when computing the preferred width, or a negative value to indicate that no height is defined</doc>
-            <type name="gfloat" c:type="gfloat"/>
-          </parameter>
-          <parameter name="min_width_p"
-                     direction="out"
-                     caller-allocates="0"
-                     transfer-ownership="full"
-                     allow-none="1">
-            <doc xml:whitespace="preserve">return location for minimum width, or %NULL</doc>
-            <type name="gfloat" c:type="gfloat*"/>
-          </parameter>
-          <parameter name="natural_width_p"
-                     direction="out"
-                     caller-allocates="0"
-                     transfer-ownership="full"
-                     allow-none="1">
-            <doc xml:whitespace="preserve">return location for the natural width, or %NULL</doc>
-            <type name="gfloat" c:type="gfloat*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_reactive"
-              c:identifier="clutter_actor_get_reactive"
-              version="0.6">
-        <doc xml:whitespace="preserve">Checks whether @actor is marked as reactive.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">%TRUE if the actor is reactive</doc>
-          <type name="gboolean" c:type="gboolean"/>
-        </return-value>
-      </method>
-      <method name="get_request_mode"
-              c:identifier="clutter_actor_get_request_mode"
-              version="1.2">
-        <doc xml:whitespace="preserve">Retrieves the geometry request mode of @self</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the request mode for the actor</doc>
-          <type name="RequestMode" c:type="ClutterRequestMode"/>
-        </return-value>
-      </method>
-      <method name="get_rotation"
-              c:identifier="clutter_actor_get_rotation"
-              version="0.8">
-        <doc xml:whitespace="preserve">Retrieves the angle and center of rotation on the given axis,
-set using clutter_actor_set_rotation().</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the angle of rotation</doc>
-          <type name="gdouble" c:type="gdouble"/>
-        </return-value>
-        <parameters>
-          <parameter name="axis" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the axis of rotation</doc>
-            <type name="RotateAxis" c:type="ClutterRotateAxis"/>
-          </parameter>
-          <parameter name="x"
-                     direction="out"
-                     caller-allocates="0"
-                     transfer-ownership="full">
-            <doc xml:whitespace="preserve">return value for the X coordinate of the center of rotation</doc>
-            <type name="gfloat" c:type="gfloat*"/>
-          </parameter>
-          <parameter name="y"
-                     direction="out"
-                     caller-allocates="0"
-                     transfer-ownership="full">
-            <doc xml:whitespace="preserve">return value for the Y coordinate of the center of rotation</doc>
-            <type name="gfloat" c:type="gfloat*"/>
-          </parameter>
-          <parameter name="z"
-                     direction="out"
-                     caller-allocates="0"
-                     transfer-ownership="full">
-            <doc xml:whitespace="preserve">return value for the Z coordinate of the center of rotation</doc>
-            <type name="gfloat" c:type="gfloat*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_scale"
-              c:identifier="clutter_actor_get_scale"
-              version="0.2">
-        <doc xml:whitespace="preserve">Retrieves an actors scale factors.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="scale_x"
-                     direction="out"
-                     caller-allocates="0"
-                     transfer-ownership="full"
-                     allow-none="1">
-            <doc xml:whitespace="preserve">Location to store horizonal scale factor, or %NULL.</doc>
-            <type name="gdouble" c:type="gdouble*"/>
-          </parameter>
-          <parameter name="scale_y"
-                     direction="out"
-                     caller-allocates="0"
-                     transfer-ownership="full"
-                     allow-none="1">
-            <doc xml:whitespace="preserve">Location to store vertical scale factor, or %NULL.</doc>
-            <type name="gdouble" c:type="gdouble*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_scale_center"
-              c:identifier="clutter_actor_get_scale_center"
-              version="1.0">
-        <doc xml:whitespace="preserve">Retrieves the scale center coordinate in pixels relative to the top
-left corner of the actor. If the scale center was specified using a
-#ClutterGravity this will calculate the pixel offset using the
-current size of the actor.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="center_x"
-                     direction="out"
-                     caller-allocates="0"
-                     transfer-ownership="full"
-                     allow-none="1">
-            <doc xml:whitespace="preserve">Location to store the X position of the scale center, or %NULL.</doc>
-            <type name="gfloat" c:type="gfloat*"/>
-          </parameter>
-          <parameter name="center_y"
-                     direction="out"
-                     caller-allocates="0"
-                     transfer-ownership="full"
-                     allow-none="1">
-            <doc xml:whitespace="preserve">Location to store the Y position of the scale center, or %NULL.</doc>
-            <type name="gfloat" c:type="gfloat*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_scale_gravity"
-              c:identifier="clutter_actor_get_scale_gravity"
-              version="1.0">
-        <doc xml:whitespace="preserve">Retrieves the scale center as a compass direction. If the scale
-center was specified in pixels or units this will return
-%CLUTTER_GRAVITY_NONE.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the scale gravity</doc>
-          <type name="Gravity" c:type="ClutterGravity"/>
-        </return-value>
-      </method>
-      <method name="get_shader"
-              c:identifier="clutter_actor_get_shader"
-              version="0.6">
-        <doc xml:whitespace="preserve">Queries the currently set #ClutterShader on @self.
-or %NULL if no shader is set.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">The currently set #ClutterShader</doc>
-          <type name="Shader" c:type="ClutterShader*"/>
-        </return-value>
-      </method>
-      <method name="get_size"
-              c:identifier="clutter_actor_get_size"
-              version="0.2">
-        <doc xml:whitespace="preserve">This function tries to "do what you mean" and return
-the size an actor will have. If the actor has a valid
-allocation, the allocation will be returned; otherwise,
-the actors natural size request will be returned.
-If you care whether you get the request vs. the allocation, you
-should probably call a different function like
-clutter_actor_get_allocation_box() or
-clutter_actor_get_preferred_width().</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="width"
-                     direction="out"
-                     caller-allocates="0"
-                     transfer-ownership="full"
-                     allow-none="1">
-            <doc xml:whitespace="preserve">return location for the width, or %NULL.</doc>
-            <type name="gfloat" c:type="gfloat*"/>
-          </parameter>
-          <parameter name="height"
-                     direction="out"
-                     caller-allocates="0"
-                     transfer-ownership="full"
-                     allow-none="1">
-            <doc xml:whitespace="preserve">return location for the height, or %NULL.</doc>
-            <type name="gfloat" c:type="gfloat*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_stage"
-              c:identifier="clutter_actor_get_stage"
-              version="0.8">
-        <doc xml:whitespace="preserve">Retrieves the #ClutterStage where @actor is contained.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the stage containing the actor, or %NULL</doc>
-          <type name="Actor" c:type="ClutterActor*"/>
-        </return-value>
-      </method>
-      <method name="get_text_direction"
-              c:identifier="clutter_actor_get_text_direction"
-              version="1.2">
-        <doc xml:whitespace="preserve">Retrieves the value set using clutter_actor_set_text_direction()
-If no text direction has been previously set, the default text
-direction, as returned by clutter_get_default_text_direction(), will
-be returned instead</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the #ClutterTextDirection for the actor</doc>
-          <type name="TextDirection" c:type="ClutterTextDirection"/>
-        </return-value>
-      </method>
-      <method name="get_transformation_matrix"
-              c:identifier="clutter_actor_get_transformation_matrix"
-              version="1.0">
-        <doc xml:whitespace="preserve">Retrieves the transformations applied to @self relative to its
-parent.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="matrix"
-                     direction="out"
-                     caller-allocates="1"
-                     transfer-ownership="none">
-            <doc xml:whitespace="preserve">the return location for a #CoglMatrix</doc>
-            <type name="Cogl.Matrix" c:type="CoglMatrix*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_transformed_position"
-              c:identifier="clutter_actor_get_transformed_position"
-              version="0.8">
-        <doc xml:whitespace="preserve">Gets the absolute position of an actor, in pixels relative to the stage.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="x"
-                     direction="out"
-                     caller-allocates="0"
-                     transfer-ownership="full"
-                     allow-none="1">
-            <doc xml:whitespace="preserve">return location for the X coordinate, or %NULL</doc>
-            <type name="gfloat" c:type="gfloat*"/>
-          </parameter>
-          <parameter name="y"
-                     direction="out"
-                     caller-allocates="0"
-                     transfer-ownership="full"
-                     allow-none="1">
-            <doc xml:whitespace="preserve">return location for the Y coordinate, or %NULL</doc>
-            <type name="gfloat" c:type="gfloat*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_transformed_size"
-              c:identifier="clutter_actor_get_transformed_size"
-              version="0.8">
-        <doc xml:whitespace="preserve">Gets the absolute size of an actor in pixels, taking into account the
-scaling factors.
-If the actor has a valid allocation, the allocated size will be used.
-If the actor has not a valid allocation then the preferred size will
-be transformed and returned.
-If you want the transformed allocation, see
-clutter_actor_get_abs_allocation_vertices() instead.
-&lt;note&gt;When the actor (or one of its ancestors) is rotated around the
-X or Y axis, it no longer appears as on the stage as a rectangle, but
-as a generic quadrangle; in that case this function returns the size
-of the smallest rectangle that encapsulates the entire quad. Please
-note that in this case no assumptions can be made about the relative
-position of this envelope to the absolute position of the actor, as
-returned by clutter_actor_get_transformed_position(); if you need this
-information, you need to use clutter_actor_get_abs_allocation_vertices()
-to get the coords of the actual quadrangle.&lt;/note&gt;</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="width"
-                     direction="out"
-                     caller-allocates="0"
-                     transfer-ownership="full"
-                     allow-none="1">
-            <doc xml:whitespace="preserve">return location for the width, or %NULL</doc>
-            <type name="gfloat" c:type="gfloat*"/>
-          </parameter>
-          <parameter name="height"
-                     direction="out"
-                     caller-allocates="0"
-                     transfer-ownership="full"
-                     allow-none="1">
-            <doc xml:whitespace="preserve">return location for the height, or %NULL</doc>
-            <type name="gfloat" c:type="gfloat*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_width" c:identifier="clutter_actor_get_width">
-        <doc xml:whitespace="preserve">Retrieves the width of a #ClutterActor.
-If the actor has a valid allocation, this function will return the
-width of the allocated area given to the actor.
-If the actor does not have a valid allocation, this function will
-return the actor's natural width, that is the preferred width of
-the actor.
-If you care whether you get the preferred width or the width that
-has been assigned to the actor, you should probably call a different
-function like clutter_actor_get_allocation_box() to retrieve the
-allocated size or clutter_actor_get_preferred_width() to retrieve the
-preferred width.
-If an actor has a fixed width, for instance a width that has been
-assigned using clutter_actor_set_width(), the width returned will
-be the same value.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the width of the actor, in pixels</doc>
-          <type name="gfloat" c:type="gfloat"/>
-        </return-value>
-      </method>
-      <method name="get_x" c:identifier="clutter_actor_get_x">
-        <return-value transfer-ownership="none">
-          <type name="gfloat" c:type="gfloat"/>
-        </return-value>
-      </method>
-      <method name="get_y" c:identifier="clutter_actor_get_y">
-        <return-value transfer-ownership="none">
-          <type name="gfloat" c:type="gfloat"/>
-        </return-value>
-      </method>
-      <method name="get_z_rotation_gravity"
-              c:identifier="clutter_actor_get_z_rotation_gravity"
-              version="1.0">
-        <doc xml:whitespace="preserve">Retrieves the center for the rotation around the Z axis as a
-compass direction. If the center was specified in pixels or units
-this will return %CLUTTER_GRAVITY_NONE.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the Z rotation center</doc>
-          <type name="Gravity" c:type="ClutterGravity"/>
-        </return-value>
-      </method>
-      <method name="grab_key_focus"
-              c:identifier="clutter_actor_grab_key_focus"
-              version="1.0">
-        <doc xml:whitespace="preserve">Sets the key focus of the #ClutterStage including @self
-to this #ClutterActor.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </method>
-      <method name="has_allocation"
-              c:identifier="clutter_actor_has_allocation"
-              version="1.4">
-        <doc xml:whitespace="preserve">Checks if the actor has an up-to-date allocation assigned to
-visible and has a parent. It also means that there is no
-outstanding relayout request in progress for the actor or its
-children (There might be other outstanding layout requests in
-progress that will cause the actor to get a new allocation
-when the stage is laid out, however).
-If this function returns %FALSE, then the actor will normally
-be allocated before it is next drawn on the screen.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">%TRUE if the actor has an up-to-date allocation</doc>
-          <type name="gboolean" c:type="gboolean"/>
-        </return-value>
-      </method>
-      <method name="has_clip"
-              c:identifier="clutter_actor_has_clip"
-              version="0.1.1">
-        <doc xml:whitespace="preserve">Determines whether the actor has a clip area set or not.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">%TRUE if the actor has a clip area set.</doc>
-          <type name="gboolean" c:type="gboolean"/>
-        </return-value>
-      </method>
-      <method name="has_key_focus"
-              c:identifier="clutter_actor_has_key_focus"
-              version="1.4">
-        <doc xml:whitespace="preserve">Checks whether @self is the #ClutterActor that has key focus</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">%TRUE if the actor has key focus, and %FALSE otherwise</doc>
-          <type name="gboolean" c:type="gboolean"/>
-        </return-value>
-      </method>
-      <method name="has_pointer"
-              c:identifier="clutter_actor_has_pointer"
-              version="1.2">
-        <doc xml:whitespace="preserve">Checks whether an actor contains the the pointer of a
-#ClutterInputDevice
-%FALSE otherwise</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">%TRUE if the actor contains the pointer, and</doc>
-          <type name="gboolean" c:type="gboolean"/>
-        </return-value>
-      </method>
-      <method name="hide" c:identifier="clutter_actor_hide">
-        <doc xml:whitespace="preserve">Flags an actor to be hidden. A hidden actor will not be
-rendered on the stage.
-Actors are visible by default.
-If this function is called on an actor without a parent, the
-#ClutterActor:show-on-set-parent property will be set to %FALSE
-as a side-effect.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </method>
-      <method name="hide_all"
-              c:identifier="clutter_actor_hide_all"
-              version="0.2">
-        <doc xml:whitespace="preserve">Calls clutter_actor_hide() on all child actors (if any).</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </method>
-      <method name="is_in_clone_paint"
-              c:identifier="clutter_actor_is_in_clone_paint"
-              version="1.0">
-        <doc xml:whitespace="preserve">Checks whether @self is being currently painted by a #ClutterClone
-This function is useful only inside the ::paint virtual function
-implementations or within handlers for the #ClutterActor::paint
-signal
-This function should not be used by applications
-by a #ClutterClone, and %FALSE otherwise</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">%TRUE if the #ClutterActor is currently being painted</doc>
-          <type name="gboolean" c:type="gboolean"/>
-        </return-value>
-      </method>
-      <method name="is_rotated"
-              c:identifier="clutter_actor_is_rotated"
-              version="0.6">
-        <doc xml:whitespace="preserve">Checks whether any rotation is applied to the actor.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">%TRUE if the actor is rotated.</doc>
-          <type name="gboolean" c:type="gboolean"/>
-        </return-value>
-      </method>
-      <method name="is_scaled"
-              c:identifier="clutter_actor_is_scaled"
-              version="0.6">
-        <doc xml:whitespace="preserve">Checks whether the actor is scaled in either dimension.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">%TRUE if the actor is scaled.</doc>
-          <type name="gboolean" c:type="gboolean"/>
-        </return-value>
-      </method>
-      <method name="lower" c:identifier="clutter_actor_lower">
-        <doc xml:whitespace="preserve">Puts @self below @above.
-Both actors must have the same parent, and the parent must implement
-the #ClutterContainer interface.
-This function is the equivalent of clutter_container_lower_child().</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="above" transfer-ownership="none" allow-none="1">
-            <doc xml:whitespace="preserve">A #ClutterActor to lower below</doc>
-            <type name="Actor" c:type="ClutterActor*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="lower_bottom" c:identifier="clutter_actor_lower_bottom">
-        <doc xml:whitespace="preserve">Lowers @self to the bottom.
-This function calls clutter_actor_lower() internally.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </method>
-      <method name="map" c:identifier="clutter_actor_map" version="1.0">
-        <doc xml:whitespace="preserve">Sets the %CLUTTER_ACTOR_MAPPED flag on the actor and possibly maps
-and realizes its children if they are visible. Does nothing if the
-actor is not visible.
-#ClutterActor &lt;function&gt;map()&lt;/function&gt; virtual function in an actor
-and you need to map the children of that actor. It is not necessary
-to call this if you implement #ClutterContainer because the default
-implementation will automatically map children of containers.
-When overriding map, it is mandatory to chain up to the parent
-implementation.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </method>
-      <method name="move_anchor_point"
-              c:identifier="clutter_actor_move_anchor_point"
-              version="0.6">
-        <doc xml:whitespace="preserve">Sets an anchor point for the actor, and adjusts the actor postion so that
-the relative position of the actor toward its parent remains the same.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="anchor_x" transfer-ownership="none">
-            <doc xml:whitespace="preserve">X coordinate of the anchor point</doc>
-            <type name="gfloat" c:type="gfloat"/>
-          </parameter>
-          <parameter name="anchor_y" transfer-ownership="none">
-            <doc xml:whitespace="preserve">Y coordinate of the anchor point</doc>
-            <type name="gfloat" c:type="gfloat"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="move_anchor_point_from_gravity"
-              c:identifier="clutter_actor_move_anchor_point_from_gravity"
-              version="0.6">
-        <doc xml:whitespace="preserve">Sets an anchor point on the actor based on the given gravity, adjusting the
-actor postion so that its relative position within its parent remains
-unchanged.
-Since version 1.0 the anchor point will be stored as a gravity so
-that if the actor changes size then the anchor point will move. For
-example, if you set the anchor point to %CLUTTER_GRAVITY_SOUTH_EAST
-and later double the size of the actor, the anchor point will move
-to the bottom right.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="gravity" transfer-ownership="none">
-            <doc xml:whitespace="preserve">#ClutterGravity.</doc>
-            <type name="Gravity" c:type="ClutterGravity"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="move_by"
-              c:identifier="clutter_actor_move_by"
-              version="0.2">
-        <doc xml:whitespace="preserve">Moves an actor by the specified distance relative to its current
-position in pixels.
-This function modifies the fixed position of an actor and thus removes
-it from any layout management. Another way to move an actor is with an
-anchor point, see clutter_actor_set_anchor_point().</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="dx" transfer-ownership="none">
-            <doc xml:whitespace="preserve">Distance to move Actor on X axis.</doc>
-            <type name="gfloat" c:type="gfloat"/>
-          </parameter>
-          <parameter name="dy" transfer-ownership="none">
-            <doc xml:whitespace="preserve">Distance to move Actor on Y axis.</doc>
-            <type name="gfloat" c:type="gfloat"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="paint" c:identifier="clutter_actor_paint">
-        <doc xml:whitespace="preserve">Renders the actor to display.
-This function should not be called directly by applications.
-Call clutter_actor_queue_redraw() to queue paints, instead.
-This function is context-aware, and will either cause a
-regular paint or a pick paint.
-This function will emit the #ClutterActor::paint signal or
-the #ClutterActor::pick signal, depending on the context.
-This function does not paint the actor if the actor is set to 0,
-unless it is performing a pick paint.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </method>
-      <method name="pop_internal"
-              c:identifier="clutter_actor_pop_internal"
-              version="1.2">
-        <doc xml:whitespace="preserve">Disables the effects of clutter_actor_pop_internal()</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </method>
-      <method name="push_internal"
-              c:identifier="clutter_actor_push_internal"
-              version="1.2">
-        <doc xml:whitespace="preserve">Should be used by actors implementing the #ClutterContainer and with
-internal children added through clutter_actor_set_parent(), for instance:
-|[
-static void
-my_actor_init (MyActor *self)
-{
-self-&gt;priv = SELF_ACTOR_GET_PRIVATE (self);
-clutter_actor_push_internal (CLUTTER_ACTOR (self));
-/&amp;ast; calling clutter_actor_set_parent() now will result in
-&amp;ast; the internal flag being set on a child of MyActor
-&amp;ast;/
-/&amp;ast; internal child - a background texture &amp;ast;/
-self-&gt;priv-&gt;background_tex = clutter_texture_new ();
-clutter_actor_set_parent (self-&gt;priv-&gt;background_tex,
-CLUTTER_ACTOR (self));
-/&amp;ast; internal child - a label &amp;ast;/
-self-&gt;priv-&gt;label = clutter_text_new ();
-clutter_actor_set_parent (self-&gt;priv-&gt;label,
-CLUTTER_ACTOR (self));
-clutter_actor_pop_internal (CLUTTER_ACTOR (self));
-/&amp;ast; calling clutter_actor_set_parent() now will not result in
-&amp;ast; the internal flag being set on a child of MyActor
-&amp;ast;/
-}
-]|
-This function will be used by Clutter to toggle an "internal child"
-flag whenever clutter_actor_set_parent() is called; internal children
-are handled differently by Clutter, specifically when destroying their
-parent.
-Call clutter_actor_pop_internal() when you finished adding internal
-children.
-Nested calls to clutter_actor_push_internal() are allowed, but each
-one must by followed by a clutter_actor_pop_internal() call.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </method>
-      <method name="queue_redraw" c:identifier="clutter_actor_queue_redraw">
-        <doc xml:whitespace="preserve">Queues up a redraw of an actor and any children. The redraw occurs
-once the main loop becomes idle (after the current batch of events
-has been processed, roughly).
-Applications rarely need to call this, as redraws are handled
-automatically by modification functions.
-This function will not do anything if @self is not visible, or
-if the actor is inside an invisible part of the scenegraph.
-Also be aware that painting is a NOP for actors with an opacity of
-0
-When you are implementing a custom actor you must queue a redraw
-whenever some private state changes that will affect painting or
-picking of your actor.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </method>
-      <method name="queue_relayout"
-              c:identifier="clutter_actor_queue_relayout"
-              version="0.8">
-        <doc xml:whitespace="preserve">Indicates that the actor's size request or other layout-affecting
-properties may have changed. This function is used inside #ClutterActor
-subclass implementations, not by applications directly.
-Queueing a new layout automatically queues a redraw as well.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </method>
-      <method name="raise" c:identifier="clutter_actor_raise">
-        <doc xml:whitespace="preserve">Puts @self above @below.
-Both actors must have the same parent, and the parent must implement
-the #ClutterContainer interface
-This function is the equivalent of clutter_container_raise_child().</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="below" transfer-ownership="none" allow-none="1">
-            <doc xml:whitespace="preserve">A #ClutterActor to raise above.</doc>
-            <type name="Actor" c:type="ClutterActor*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="raise_top" c:identifier="clutter_actor_raise_top">
-        <doc xml:whitespace="preserve">Raises @self to the top.
-This function calls clutter_actor_raise() internally.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </method>
-      <method name="realize" c:identifier="clutter_actor_realize">
-        <doc xml:whitespace="preserve">Realization informs the actor that it is attached to a stage. It
-can use this to allocate resources if it wanted to delay allocation
-until it would be rendered. However it is perfectly acceptable for
-an actor to create resources before being realized because Clutter
-only ever has a single rendering context so that actor is free to
-be moved from one stage to another.
-This function does nothing if the actor is already realized.
-Because a realized actor must have realized parent actors, calling
-clutter_actor_realize() will also realize all parents of the actor.
-This function does not realize child actors, except in the special
-case that realizing the stage, when the stage is visible, will
-suddenly map (and thus realize) the children of the stage.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </method>
-      <method name="remove_action"
-              c:identifier="clutter_actor_remove_action"
-              version="1.4">
-        <doc xml:whitespace="preserve">Removes @action from the list of actions applied to @self
-The reference held by @self on the #ClutterAction will be released</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="action" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #ClutterAction</doc>
-            <type name="Action" c:type="ClutterAction*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="remove_action_by_name"
-              c:identifier="clutter_actor_remove_action_by_name"
-              version="1.4">
-        <doc xml:whitespace="preserve">Removes the #ClutterAction with the given name from the list
-of actions applied to @self</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="name" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the name of the action to remove</doc>
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="remove_clip" c:identifier="clutter_actor_remove_clip">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </method>
-      <method name="remove_constraint"
-              c:identifier="clutter_actor_remove_constraint"
-              version="1.4">
-        <doc xml:whitespace="preserve">Removes @constraint from the list of constraints applied to @self
-The reference held by @self on the #ClutterConstraint will be released</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="constraint" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #ClutterConstraint</doc>
-            <type name="Constraint" c:type="ClutterConstraint*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="remove_constraint_by_name"
-              c:identifier="clutter_actor_remove_constraint_by_name"
-              version="1.4">
-        <doc xml:whitespace="preserve">Removes the #ClutterConstraint with the given name from the list
-of constraints applied to @self</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="name" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the name of the constraint to remove</doc>
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="remove_effect"
-              c:identifier="clutter_actor_remove_effect"
-              version="1.4">
-        <doc xml:whitespace="preserve">Removes @effect from the list of effects applied to @self
-The reference held by @self on the #ClutterEffect will be released</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="effect" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #ClutterEffect</doc>
-            <type name="Effect" c:type="ClutterEffect*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="remove_effect_by_name"
-              c:identifier="clutter_actor_remove_effect_by_name"
-              version="1.4">
-        <doc xml:whitespace="preserve">Removes the #ClutterEffect with the given name from the list
-of effects applied to @self</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="name" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the name of the effect to remove</doc>
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="reparent"
-              c:identifier="clutter_actor_reparent"
-              version="0.2">
-        <doc xml:whitespace="preserve">This function resets the parent actor of @self.  It is
-logically equivalent to calling clutter_actor_unparent()
-and clutter_actor_set_parent(), but more efficiently
-implemented, ensures the child is not finalized
-when unparented, and emits the parent-set signal only
-one time.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="new_parent" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the new #ClutterActor parent</doc>
-            <type name="Actor" c:type="ClutterActor*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_anchor_point"
-              c:identifier="clutter_actor_set_anchor_point"
-              version="0.6">
-        <doc xml:whitespace="preserve">Sets an anchor point for @self. The anchor point is a point in the
-coordinate space of an actor to which the actor position within its
-parent is relative; the default is (0, 0), i.e. the top-left corner
-of the actor.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="anchor_x" transfer-ownership="none">
-            <doc xml:whitespace="preserve">X coordinate of the anchor point</doc>
-            <type name="gfloat" c:type="gfloat"/>
-          </parameter>
-          <parameter name="anchor_y" transfer-ownership="none">
-            <doc xml:whitespace="preserve">Y coordinate of the anchor point</doc>
-            <type name="gfloat" c:type="gfloat"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_anchor_point_from_gravity"
-              c:identifier="clutter_actor_set_anchor_point_from_gravity"
-              version="0.6">
-        <doc xml:whitespace="preserve">Sets an anchor point on the actor, based on the given gravity (this is a
-convenience function wrapping clutter_actor_set_anchor_point()).
-Since version 1.0 the anchor point will be stored as a gravity so
-that if the actor changes size then the anchor point will move. For
-example, if you set the anchor point to %CLUTTER_GRAVITY_SOUTH_EAST
-and later double the size of the actor, the anchor point will move
-to the bottom right.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="gravity" transfer-ownership="none">
-            <doc xml:whitespace="preserve">#ClutterGravity.</doc>
-            <type name="Gravity" c:type="ClutterGravity"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_clip"
-              c:identifier="clutter_actor_set_clip"
-              version="0.6">
-        <doc xml:whitespace="preserve">Sets clip area for @self. The clip area is always computed from the
-upper left corner of the actor, even if the anchor point is set
-otherwise.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="xoff" transfer-ownership="none">
-            <doc xml:whitespace="preserve">X offset of the clip rectangle</doc>
-            <type name="gfloat" c:type="gfloat"/>
-          </parameter>
-          <parameter name="yoff" transfer-ownership="none">
-            <doc xml:whitespace="preserve">Y offset of the clip rectangle</doc>
-            <type name="gfloat" c:type="gfloat"/>
-          </parameter>
-          <parameter name="width" transfer-ownership="none">
-            <doc xml:whitespace="preserve">Width of the clip rectangle</doc>
-            <type name="gfloat" c:type="gfloat"/>
-          </parameter>
-          <parameter name="height" transfer-ownership="none">
-            <doc xml:whitespace="preserve">Height of the clip rectangle</doc>
-            <type name="gfloat" c:type="gfloat"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_clip_to_allocation"
-              c:identifier="clutter_actor_set_clip_to_allocation"
-              version="1.4">
-        <doc xml:whitespace="preserve">Sets whether @self should be clipped to the same size as its
-allocation</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="clip_set" transfer-ownership="none">
-            <doc xml:whitespace="preserve">%TRUE to apply a clip tracking the allocation</doc>
-            <type name="gboolean" c:type="gboolean"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_depth" c:identifier="clutter_actor_set_depth">
-        <doc xml:whitespace="preserve">Sets the Z coordinate of @self to @depth.
-The unit used by @depth is dependant on the perspective setup. See
-also clutter_stage_set_perspective().</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="depth" transfer-ownership="none">
-            <doc xml:whitespace="preserve">Z co-ord</doc>
-            <type name="gfloat" c:type="gfloat"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_fixed_position_set"
-              c:identifier="clutter_actor_set_fixed_position_set"
-              version="0.8">
-        <doc xml:whitespace="preserve">Sets whether an actor has a fixed position set (and will thus be
-unaffected by any layout manager).</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="is_set" transfer-ownership="none">
-            <doc xml:whitespace="preserve">whether to use fixed position</doc>
-            <type name="gboolean" c:type="gboolean"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_flags"
-              c:identifier="clutter_actor_set_flags"
-              version="1.0">
-        <doc xml:whitespace="preserve">Sets @flags on @self
-This function will emit notifications for the changed properties</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="flags" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the flags to set</doc>
-            <type name="ActorFlags" c:type="ClutterActorFlags"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_geometry" c:identifier="clutter_actor_set_geometry">
-        <doc xml:whitespace="preserve">Sets the actor's fixed position and forces its minimum and natural
-size, in pixels. This means the untransformed actor will have the
-given geometry. This is the same as calling clutter_actor_set_position()
-and clutter_actor_set_size().</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="geometry" transfer-ownership="none">
-            <doc xml:whitespace="preserve">A #ClutterGeometry</doc>
-            <type name="Geometry" c:type="ClutterGeometry*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_height" c:identifier="clutter_actor_set_height">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="height" transfer-ownership="none">
-            <type name="gfloat" c:type="gfloat"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_name" c:identifier="clutter_actor_set_name">
-        <doc xml:whitespace="preserve">Sets the given name to @self. The name can be used to identify
-a #ClutterActor.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="name" transfer-ownership="none">
-            <doc xml:whitespace="preserve">Textual tag to apply to actor</doc>
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_opacity" c:identifier="clutter_actor_set_opacity">
-        <doc xml:whitespace="preserve">Sets the actor's opacity, with zero being completely transparent and
-255 (0xff) being fully opaque.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="opacity" transfer-ownership="none">
-            <doc xml:whitespace="preserve">New opacity value for the actor.</doc>
-            <type name="guint8" c:type="guint8"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_parent" c:identifier="clutter_actor_set_parent">
-        <doc xml:whitespace="preserve">Sets the parent of @self to @parent.  The opposite function is
-clutter_actor_unparent().
-This function should not be used by applications, but by custom
-container actor subclasses.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="parent" transfer-ownership="none">
-            <doc xml:whitespace="preserve">A new #ClutterActor parent</doc>
-            <type name="Actor" c:type="ClutterActor*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_position" c:identifier="clutter_actor_set_position">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="x" transfer-ownership="none">
-            <type name="gfloat" c:type="gfloat"/>
-          </parameter>
-          <parameter name="y" transfer-ownership="none">
-            <type name="gfloat" c:type="gfloat"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_reactive"
-              c:identifier="clutter_actor_set_reactive"
-              version="0.6">
-        <doc xml:whitespace="preserve">Sets @actor as reactive. Reactive actors will receive events.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="reactive" transfer-ownership="none">
-            <doc xml:whitespace="preserve">whether the actor should be reactive to events</doc>
-            <type name="gboolean" c:type="gboolean"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_request_mode"
-              c:identifier="clutter_actor_set_request_mode"
-              version="1.2">
-        <doc xml:whitespace="preserve">Sets the geometry request mode of @self.
-The @mode determines the order for invoking
-clutter_actor_get_preferred_width() and
-clutter_actor_get_preferred_height()</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="mode" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the request mode</doc>
-            <type name="RequestMode" c:type="ClutterRequestMode"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_rotation"
-              c:identifier="clutter_actor_set_rotation"
-              version="0.8">
-        <doc xml:whitespace="preserve">Sets the rotation angle of @self around the given axis.
-The rotation center coordinates used depend on the value of @axis:
-&lt;itemizedlist&gt;
-&lt;listitem&gt;&lt;para&gt;%CLUTTER_X_AXIS requires @y and @z&lt;/para&gt;&lt;/listitem&gt;
-&lt;listitem&gt;&lt;para&gt;%CLUTTER_Y_AXIS requires @x and @z&lt;/para&gt;&lt;/listitem&gt;
-&lt;listitem&gt;&lt;para&gt;%CLUTTER_Z_AXIS requires @x and @y&lt;/para&gt;&lt;/listitem&gt;
-&lt;/itemizedlist&gt;
-The rotation coordinates are relative to the anchor point of the
-actor, set using clutter_actor_set_anchor_point(). If no anchor
-point is set, the upper left corner is assumed as the origin.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="axis" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the axis of rotation</doc>
-            <type name="RotateAxis" c:type="ClutterRotateAxis"/>
-          </parameter>
-          <parameter name="angle" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the angle of rotation</doc>
-            <type name="gdouble" c:type="gdouble"/>
-          </parameter>
-          <parameter name="x" transfer-ownership="none">
-            <doc xml:whitespace="preserve">X coordinate of the rotation center</doc>
-            <type name="gfloat" c:type="gfloat"/>
-          </parameter>
-          <parameter name="y" transfer-ownership="none">
-            <doc xml:whitespace="preserve">Y coordinate of the rotation center</doc>
-            <type name="gfloat" c:type="gfloat"/>
-          </parameter>
-          <parameter name="z" transfer-ownership="none">
-            <doc xml:whitespace="preserve">Z coordinate of the rotation center</doc>
-            <type name="gfloat" c:type="gfloat"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_scale"
-              c:identifier="clutter_actor_set_scale"
-              version="0.2">
-        <doc xml:whitespace="preserve">Scales an actor with the given factors. The scaling is relative to
-the scale center and the anchor point. The scale center is
-unchanged by this function and defaults to 0,0.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="scale_x" transfer-ownership="none">
-            <doc xml:whitespace="preserve">double factor to scale actor by horizontally.</doc>
-            <type name="gdouble" c:type="gdouble"/>
-          </parameter>
-          <parameter name="scale_y" transfer-ownership="none">
-            <doc xml:whitespace="preserve">double factor to scale actor by vertically.</doc>
-            <type name="gdouble" c:type="gdouble"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_scale_full"
-              c:identifier="clutter_actor_set_scale_full"
-              version="1.0">
-        <doc xml:whitespace="preserve">Scales an actor with the given factors around the given center
-point. The center point is specified in pixels relative to the
-anchor point (usually the top left corner of the actor).</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="scale_x" transfer-ownership="none">
-            <doc xml:whitespace="preserve">double factor to scale actor by horizontally.</doc>
-            <type name="gdouble" c:type="gdouble"/>
-          </parameter>
-          <parameter name="scale_y" transfer-ownership="none">
-            <doc xml:whitespace="preserve">double factor to scale actor by vertically.</doc>
-            <type name="gdouble" c:type="gdouble"/>
-          </parameter>
-          <parameter name="center_x" transfer-ownership="none">
-            <doc xml:whitespace="preserve">X coordinate of the center of the scale.</doc>
-            <type name="gfloat" c:type="gfloat"/>
-          </parameter>
-          <parameter name="center_y" transfer-ownership="none">
-            <doc xml:whitespace="preserve">Y coordinate of the center of the scale</doc>
-            <type name="gfloat" c:type="gfloat"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_scale_with_gravity"
-              c:identifier="clutter_actor_set_scale_with_gravity"
-              version="1.0">
-        <doc xml:whitespace="preserve">Scales an actor with the given factors around the given
-center point. The center point is specified as one of the compass
-directions in #ClutterGravity. For example, setting it to north
-will cause the top of the actor to remain unchanged and the rest of
-the actor to expand left, right and downwards.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="scale_x" transfer-ownership="none">
-            <doc xml:whitespace="preserve">double factor to scale actor by horizontally.</doc>
-            <type name="gdouble" c:type="gdouble"/>
-          </parameter>
-          <parameter name="scale_y" transfer-ownership="none">
-            <doc xml:whitespace="preserve">double factor to scale actor by vertically.</doc>
-            <type name="gdouble" c:type="gdouble"/>
-          </parameter>
-          <parameter name="gravity" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the location of the scale center expressed as a compass direction.</doc>
-            <type name="Gravity" c:type="ClutterGravity"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_shader"
-              c:identifier="clutter_actor_set_shader"
-              version="0.6">
-        <doc xml:whitespace="preserve">Sets the #ClutterShader to be used when rendering @self.
-If @shader is %NULL it will unset any currently set shader
-for the actor.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">%TRUE if the shader was successfully applied</doc>
-          <type name="gboolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="shader" transfer-ownership="none" allow-none="1">
-            <doc xml:whitespace="preserve">a #ClutterShader or %NULL to unset the shader.</doc>
-            <type name="Shader" c:type="ClutterShader*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_shader_param"
-              c:identifier="clutter_actor_set_shader_param"
-              version="1.0">
-        <doc xml:whitespace="preserve">Sets the value for a named parameter of the shader applied
-to @actor.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="param" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the name of the parameter</doc>
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="value" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the value of the parameter</doc>
-            <type name="GObject.Value" c:type="GValue*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_shader_param_float"
-              c:identifier="clutter_actor_set_shader_param_float"
-              version="0.8">
-        <doc xml:whitespace="preserve">Sets the value for a named float parameter of the shader applied
-to @actor.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="param" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the name of the parameter</doc>
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="value" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the value of the parameter</doc>
-            <type name="gfloat" c:type="gfloat"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_shader_param_int"
-              c:identifier="clutter_actor_set_shader_param_int"
-              version="0.8">
-        <doc xml:whitespace="preserve">Sets the value for a named int parameter of the shader applied to</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="param" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the name of the parameter</doc>
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="value" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the value of the parameter</doc>
-            <type name="gint" c:type="gint"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_size" c:identifier="clutter_actor_set_size">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="width" transfer-ownership="none">
-            <type name="gfloat" c:type="gfloat"/>
-          </parameter>
-          <parameter name="height" transfer-ownership="none">
-            <type name="gfloat" c:type="gfloat"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_text_direction"
-              c:identifier="clutter_actor_set_text_direction"
-              version="1.2">
-        <doc xml:whitespace="preserve">Sets the #ClutterTextDirection for an actor
-The passed text direction must not be %CLUTTER_TEXT_DIRECTION_DEFAULT
-If @self implements #ClutterContainer then this function will recurse
-inside all the children of @self (including the internal ones).
-Composite actors not implementing #ClutterContainer, or actors requiring
-special handling when the text direction changes, should connect to
-the #GObject::notify signal for the #ClutterActor:text-direction property</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="text_dir" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the text direction for @self</doc>
-            <type name="TextDirection" c:type="ClutterTextDirection"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_width" c:identifier="clutter_actor_set_width">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="width" transfer-ownership="none">
-            <type name="gfloat" c:type="gfloat"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_x" c:identifier="clutter_actor_set_x" version="0.6">
-        <doc xml:whitespace="preserve">Sets the actor's X coordinate, relative to its parent, in pixels.
-Overrides any layout manager and forces a fixed position for
-the actor.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="x" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the actor's position on the X axis</doc>
-            <type name="gfloat" c:type="gfloat"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_y" c:identifier="clutter_actor_set_y" version="0.6">
-        <doc xml:whitespace="preserve">Sets the actor's Y coordinate, relative to its parent, in pixels.#
-Overrides any layout manager and forces a fixed position for
-the actor.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="y" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the actor's position on the Y axis</doc>
-            <type name="gfloat" c:type="gfloat"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_z_rotation_from_gravity"
-              c:identifier="clutter_actor_set_z_rotation_from_gravity"
-              version="1.0">
-        <doc xml:whitespace="preserve">Sets the rotation angle of @self around the Z axis using the center
-point specified as a compass point. For example to rotate such that
-the center of the actor remains static you can use
-%CLUTTER_GRAVITY_CENTER. If the actor changes size the center point
-will move accordingly.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="angle" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the angle of rotation</doc>
-            <type name="gdouble" c:type="gdouble"/>
-          </parameter>
-          <parameter name="gravity" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the center point of the rotation</doc>
-            <type name="Gravity" c:type="ClutterGravity"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="should_pick_paint"
-              c:identifier="clutter_actor_should_pick_paint">
-        <doc xml:whitespace="preserve">Should be called inside the implementation of the
-#ClutterActor::pick virtual function in order to check whether
-the actor should paint itself in pick mode or not.
-This function should never be called directly by applications.
-%FALSE otherwise</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">%TRUE if the actor should paint its silhouette,</doc>
-          <type name="gboolean" c:type="gboolean"/>
-        </return-value>
-      </method>
-      <method name="show" c:identifier="clutter_actor_show">
-        <doc xml:whitespace="preserve">Flags an actor to be displayed. An actor that isn't shown will not
-be rendered on the stage.
-Actors are visible by default.
-If this function is called on an actor without a parent, the
-#ClutterActor:show-on-set-parent will be set to %TRUE as a side
-effect.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </method>
-      <method name="show_all"
-              c:identifier="clutter_actor_show_all"
-              version="0.2">
-        <doc xml:whitespace="preserve">Calls clutter_actor_show() on all children of an actor (if any).</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </method>
-      <method name="transform_stage_point"
-              c:identifier="clutter_actor_transform_stage_point"
-              version="0.6">
-        <doc xml:whitespace="preserve">This function translates screen coordinates (@x, @y) to
-coordinates relative to the actor. For example, it can be used to translate
-screen events from global screen coordinates into actor-local coordinates.
-The conversion can fail, notably if the transform stack results in the
-actor being projected on the screen as a mere line.
-The conversion should not be expected to be pixel-perfect due to the
-nature of the operation. In general the error grows when the skewing
-of the actor rectangle on screen increases.
-&lt;note&gt;&lt;para&gt;This function can be computationally intensive.&lt;/para&gt;&lt;/note&gt;
-&lt;note&gt;&lt;para&gt;This function only works when the allocation is up-to-date,
-i.e. inside of paint().&lt;/para&gt;&lt;/note&gt;</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">%TRUE if conversion was successful.</doc>
-          <type name="gboolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="x" transfer-ownership="none">
-            <doc xml:whitespace="preserve">x screen coordinate of the point to unproject</doc>
-            <type name="gfloat" c:type="gfloat"/>
-          </parameter>
-          <parameter name="y" transfer-ownership="none">
-            <doc xml:whitespace="preserve">y screen coordinate of the point to unproject</doc>
-            <type name="gfloat" c:type="gfloat"/>
-          </parameter>
-          <parameter name="x_out"
-                     direction="out"
-                     caller-allocates="0"
-                     transfer-ownership="full">
-            <doc xml:whitespace="preserve">return location for the unprojected x coordinance</doc>
-            <type name="gfloat" c:type="gfloat*"/>
-          </parameter>
-          <parameter name="y_out"
-                     direction="out"
-                     caller-allocates="0"
-                     transfer-ownership="full">
-            <doc xml:whitespace="preserve">return location for the unprojected y coordinance</doc>
-            <type name="gfloat" c:type="gfloat*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="unmap" c:identifier="clutter_actor_unmap" version="1.0">
-        <doc xml:whitespace="preserve">Unsets the %CLUTTER_ACTOR_MAPPED flag on the actor and possibly
-unmaps its children if they were mapped.
-#ClutterActor &lt;function&gt;unmap()&lt;/function&gt; virtual function in an actor
-and you need to unmap the children of that actor. It is not necessary
-to call this if you implement #ClutterContainer because the default
-implementation will automatically unmap children of containers.
-When overriding unmap, it is mandatory to chain up to the parent
-implementation.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </method>
-      <method name="unparent"
-              c:identifier="clutter_actor_unparent"
-              version="0.1.1">
-        <doc xml:whitespace="preserve">Removes the parent of @self.
-This function should not be used in applications.  It should be called by
-implementations of container actors, to dissociate a child from the
-container.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </method>
-      <method name="unrealize" c:identifier="clutter_actor_unrealize">
-        <doc xml:whitespace="preserve">Unrealization informs the actor that it may be being destroyed or
-moved to another stage. The actor may want to destroy any
-underlying graphics resources at this point. However it is
-perfectly acceptable for it to retain the resources until the actor
-is destroyed because Clutter only ever uses a single rendering
-context and all of the graphics resources are valid on any stage.
-Because mapped actors must be realized, actors may not be
-unrealized if they are mapped. This function hides the actor to be
-sure it isn't mapped, an application-visible side effect that you
-may not be expecting.
-This function should not be called by application code.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </method>
-      <method name="unset_flags"
-              c:identifier="clutter_actor_unset_flags"
-              version="1.0">
-        <doc xml:whitespace="preserve">Unsets @flags on @self
-This function will emit notifications for the changed properties</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="flags" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the flags to unset</doc>
-            <type name="ActorFlags" c:type="ClutterActorFlags"/>
-          </parameter>
-        </parameters>
-      </method>
-      <property name="actions"
-                version="1.4"
-                readable="0"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">Adds a #ClutterAction to the actor</doc>
-        <type name="Action"/>
-      </property>
-      <property name="allocation" version="0.8" transfer-ownership="none">
-        <doc xml:whitespace="preserve">The allocation for the actor, in pixels
-This is property is read-only, but you might monitor it to know when an
-actor moves or resizes</doc>
-        <type name="ActorBox"/>
-      </property>
-      <property name="anchor-gravity"
-                version="1.0"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">The anchor point expressed as a #ClutterGravity</doc>
-        <type name="Gravity"/>
-      </property>
-      <property name="anchor-x"
-                version="0.8"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">The X coordinate of an actor's anchor point, relative to
-the actor coordinate space, in pixels</doc>
-        <type name="gfloat"/>
-      </property>
-      <property name="anchor-y"
-                version="0.8"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">The Y coordinate of an actor's anchor point, relative to
-the actor coordinate space, in pixels</doc>
-        <type name="gfloat"/>
-      </property>
-      <property name="clip" writable="1" transfer-ownership="none">
-        <doc xml:whitespace="preserve">The clip region for the actor, in actor-relative coordinates
-Every part of the actor outside the clip region will not be
-painted</doc>
-        <type name="Geometry"/>
-      </property>
-      <property name="clip-to-allocation"
-                version="1.0"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">Whether the clip region should track the allocated area
-of the actor.
-This property is ignored if a clip area has been explicitly
-set using clutter_actor_set_clip().</doc>
-        <type name="gboolean"/>
-      </property>
-      <property name="constraints"
-                version="1.4"
-                readable="0"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">Adds a #ClutterConstraint to the actor</doc>
-        <type name="Constraint"/>
-      </property>
-      <property name="depth"
-                version="0.6"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">The position of the actor on the Z axis</doc>
-        <type name="gfloat"/>
-      </property>
-      <property name="effect"
-                version="1.4"
-                readable="0"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">Adds #ClutterEffect to the list of effects be applied on a #ClutterActor</doc>
-        <type name="Effect"/>
-      </property>
-      <property name="fixed-position-set"
-                version="0.8"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">This flag controls whether the #ClutterActor:fixed-x and
-#ClutterActor:fixed-y properties are used</doc>
-        <type name="gboolean"/>
-      </property>
-      <property name="fixed-x"
-                version="0.8"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">The fixed X position of the actor in pixels.
-Writing this property sets #ClutterActor:fixed-position-set
-property as well, as a side effect</doc>
-        <type name="gfloat"/>
-      </property>
-      <property name="fixed-y"
-                version="0.8"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">The fixed Y position of the actor in pixels.
-Writing this property sets the #ClutterActor:fixed-position-set
-property as well, as a side effect</doc>
-        <type name="gfloat"/>
-      </property>
-      <property name="has-clip" transfer-ownership="none">
-        <doc xml:whitespace="preserve">Whether the actor has the #ClutterActor:clip property set or not</doc>
-        <type name="gboolean"/>
-      </property>
-      <property name="has-pointer" version="1.2" transfer-ownership="none">
-        <doc xml:whitespace="preserve">Whether the actor contains the pointer of a #ClutterInputDevice
-or not.</doc>
-        <type name="gboolean"/>
-      </property>
-      <property name="height" writable="1" transfer-ownership="none">
-        <doc xml:whitespace="preserve">Height of the actor (in pixels).  If written, forces the minimum and
-natural size request of the actor to the given height. If read, returns
-the allocated height if available, otherwise the height request.</doc>
-        <type name="gfloat"/>
-      </property>
-      <property name="mapped" version="1.0" transfer-ownership="none">
-        <doc xml:whitespace="preserve">Whether the actor is mapped (will be painted when the stage
-to which it belongs is mapped)</doc>
-        <type name="gboolean"/>
-      </property>
-      <property name="min-height"
-                version="0.8"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">A forced minimum height request for the actor, in pixels
-Writing this property sets the #ClutterActor:min-height-set property
-as well, as a side effect. This property overrides the usual height
-request of the actor.</doc>
-        <type name="gfloat"/>
-      </property>
-      <property name="min-height-set"
-                version="0.8"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">This flag controls whether the #ClutterActor:min-height property
-is used</doc>
-        <type name="gboolean"/>
-      </property>
-      <property name="min-width"
-                version="0.8"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">A forced minimum width request for the actor, in pixels
-Writing this property sets the #ClutterActor:min-width-set property
-as well, as a side effect.
-This property overrides the usual width request of the actor.</doc>
-        <type name="gfloat"/>
-      </property>
-      <property name="min-width-set"
-                version="0.8"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">This flag controls whether the #ClutterActor:min-width property
-is used</doc>
-        <type name="gboolean"/>
-      </property>
-      <property name="name"
-                version="0.2"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">The name of the actor</doc>
-        <type name="utf8"/>
-      </property>
-      <property name="natural-height"
-                version="0.8"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">A forced natural height request for the actor, in pixels
-Writing this property sets the #ClutterActor:natural-height-set
-property as well, as a side effect. This property overrides the
-usual height request of the actor</doc>
-        <type name="gfloat"/>
-      </property>
-      <property name="natural-height-set"
-                version="0.8"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">This flag controls whether the #ClutterActor:natural-height property
-is used</doc>
-        <type name="gboolean"/>
-      </property>
-      <property name="natural-width"
-                version="0.8"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">A forced natural width request for the actor, in pixels
-Writing this property sets the #ClutterActor:natural-width-set
-property as well, as a side effect. This property overrides the
-usual width request of the actor</doc>
-        <type name="gfloat"/>
-      </property>
-      <property name="natural-width-set"
-                version="0.8"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">This flag controls whether the #ClutterActor:natural-width property
-is used</doc>
-        <type name="gboolean"/>
-      </property>
-      <property name="opacity" writable="1" transfer-ownership="none">
-        <doc xml:whitespace="preserve">Opacity of an actor, between 0 (fully transparent) and
-255 (fully opaque)</doc>
-        <type name="guint"/>
-      </property>
-      <property name="reactive"
-                version="0.6"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">Whether the actor is reactive to events or not
-Only reactive actors will emit event-related signals</doc>
-        <type name="gboolean"/>
-      </property>
-      <property name="realized" version="1.0" transfer-ownership="none">
-        <doc xml:whitespace="preserve">Whether the actor has been realized</doc>
-        <type name="gboolean"/>
-      </property>
-      <property name="request-mode"
-                version="0.8"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">Request mode for the #ClutterActor. The request mode determines the
-type of geometry management used by the actor, either height for width
-(the default) or width for height.
-For actors implementing height for width, the parent container should get
-the preferred width first, and then the preferred height for that width.
-For actors implementing width for height, the parent container should get
-the preferred height first, and then the preferred width for that height.
-For instance:
-|[
-ClutterRequestMode mode;
-gfloat natural_width, min_width;
-gfloat natural_height, min_height;
-mode = clutter_actor_get_request_mode (child);
-if (mode == CLUTTER_REQUEST_HEIGHT_FOR_WIDTH)
-{
-clutter_actor_get_preferred_width (child, -1,
-&amp;amp;min_width,
-&amp;amp;natural_width);
-clutter_actor_get_preferred_height (child, natural_width,
-&amp;amp;min_height,
-&amp;amp;natural_height);
-}
-else
-{
-clutter_actor_get_preferred_height (child, -1,
-&amp;amp;min_height,
-&amp;amp;natural_height);
-clutter_actor_get_preferred_width (child, natural_height,
-&amp;amp;min_width,
-&amp;amp;natural_width);
-}
-]|
-will retrieve the minimum and natural width and height depending on the
-preferred request mode of the #ClutterActor "child".
-The clutter_actor_get_preferred_size() function will implement this
-check for you.</doc>
-        <type name="RequestMode"/>
-      </property>
-      <property name="rotation-angle-x"
-                version="0.6"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">The rotation angle on the X axis</doc>
-        <type name="gdouble"/>
-      </property>
-      <property name="rotation-angle-y"
-                version="0.6"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">The rotation angle on the Y axis</doc>
-        <type name="gdouble"/>
-      </property>
-      <property name="rotation-angle-z"
-                version="0.6"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">The rotation angle on the Z axis</doc>
-        <type name="gdouble"/>
-      </property>
-      <property name="rotation-center-x"
-                version="0.6"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">The rotation center on the X axis.</doc>
-        <type name="Vertex"/>
-      </property>
-      <property name="rotation-center-y"
-                version="0.6"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">The rotation center on the Y axis.</doc>
-        <type name="Vertex"/>
-      </property>
-      <property name="rotation-center-z"
-                version="0.6"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">The rotation center on the Z axis.</doc>
-        <type name="Vertex"/>
-      </property>
-      <property name="rotation-center-z-gravity"
-                version="1.0"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">The rotation center on the Z axis expressed as a #ClutterGravity.</doc>
-        <type name="Gravity"/>
-      </property>
-      <property name="scale-center-x"
-                version="1.0"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">The horizontal center point for scaling</doc>
-        <type name="gfloat"/>
-      </property>
-      <property name="scale-center-y"
-                version="1.0"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">The vertical center point for scaling</doc>
-        <type name="gfloat"/>
-      </property>
-      <property name="scale-gravity"
-                version="1.0"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">The center point for scaling expressed as a #ClutterGravity</doc>
-        <type name="Gravity"/>
-      </property>
-      <property name="scale-x"
-                version="0.6"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">The horizontal scale of the actor</doc>
-        <type name="gdouble"/>
-      </property>
-      <property name="scale-y"
-                version="0.6"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">The vertical scale of the actor</doc>
-        <type name="gdouble"/>
-      </property>
-      <property name="show-on-set-parent"
-                version="0.8"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">If %TRUE, the actor is automatically shown when parented.
-Calling clutter_actor_hide() on an actor which has not been
-parented will set this property to %FALSE as a side effect.</doc>
-        <type name="gboolean"/>
-      </property>
-      <property name="text-direction" writable="1" transfer-ownership="none">
-        <type name="TextDirection"/>
-      </property>
-      <property name="visible" writable="1" transfer-ownership="none">
-        <doc xml:whitespace="preserve">Whether the actor is set to be visible or not
-See also #ClutterActor:mapped</doc>
-        <type name="gboolean"/>
-      </property>
-      <property name="width" writable="1" transfer-ownership="none">
-        <doc xml:whitespace="preserve">Width of the actor (in pixels). If written, forces the minimum and
-natural size request of the actor to the given width. If read, returns
-the allocated width if available, otherwise the width request.</doc>
-        <type name="gfloat"/>
-      </property>
-      <property name="x" writable="1" transfer-ownership="none">
-        <doc xml:whitespace="preserve">X coordinate of the actor in pixels. If written, forces a fixed
-position for the actor. If read, returns the fixed position if any,
-otherwise the allocation if available, otherwise 0.</doc>
-        <type name="gfloat"/>
-      </property>
-      <property name="y" writable="1" transfer-ownership="none">
-        <doc xml:whitespace="preserve">Y coordinate of the actor in pixels. If written, forces a fixed
-position for the actor.  If read, returns the fixed position if
-any, otherwise the allocation if available, otherwise 0.</doc>
-        <type name="gfloat"/>
-      </property>
-      <field name="parent_instance">
-        <type name="GObject.InitiallyUnowned" c:type="GInitiallyUnowned"/>
-      </field>
-      <field name="flags">
-        <type name="guint32" c:type="guint32"/>
-      </field>
-      <field name="private_flags">
-        <type name="guint32" c:type="guint32"/>
-      </field>
-      <field name="priv">
-        <type name="ActorPrivate" c:type="ClutterActorPrivate*"/>
-      </field>
-      <glib:signal name="allocation-changed" version="1.0">
-        <doc xml:whitespace="preserve">The ::allocation-changed signal is emitted when the
-#ClutterActor:allocation property changes. Usually, application
-code should just use the notifications for the :allocation property
-but if you want to track the allocation flags as well, for instance
-to know whether the absolute origin of @actor changed, then you might
-want use this signal instead.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none"/>
-        </return-value>
-        <parameters>
-          <parameter name="object" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #ClutterActorBox with the new allocation</doc>
-            <type name="ActorBox"/>
-          </parameter>
-          <parameter name="p0" transfer-ownership="none">
-            <doc xml:whitespace="preserve">#ClutterAllocationFlags for the allocation</doc>
-            <type name="AllocationFlags"/>
-          </parameter>
-        </parameters>
-      </glib:signal>
-      <glib:signal name="button-press-event" version="0.6">
-        <doc xml:whitespace="preserve">The ::button-press-event signal is emitted each time a mouse button
-is pressed on @actor.
-or %FALSE to continue the emission.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">%TRUE if the event has been handled by the actor,</doc>
-          <type name="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="object" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #ClutterButtonEvent</doc>
-            <type name="Event"/>
-          </parameter>
-        </parameters>
-      </glib:signal>
-      <glib:signal name="button-release-event" version="0.6">
-        <doc xml:whitespace="preserve">The ::button-release-event signal is emitted each time a mouse button
-is released on @actor.
-or %FALSE to continue the emission.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">%TRUE if the event has been handled by the actor,</doc>
-          <type name="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="object" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #ClutterButtonEvent</doc>
-            <type name="Event"/>
-          </parameter>
-        </parameters>
-      </glib:signal>
-      <glib:signal name="captured-event" version="0.6">
-        <doc xml:whitespace="preserve">The ::captured-event signal is emitted when an event is captured
-by Clutter. This signal will be emitted starting from the top-level
-container (the #ClutterStage) to the actor which received the event
-going down the hierarchy. This signal can be used to intercept every
-event before the specialized events (like
-ClutterActor::button-press-event or ::key-released-event) are
-emitted.
-or %FALSE to continue the emission.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">%TRUE if the event has been handled by the actor,</doc>
-          <type name="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="object" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #ClutterEvent</doc>
-            <type name="Event"/>
-          </parameter>
-        </parameters>
-      </glib:signal>
-      <glib:signal name="destroy" version="0.2">
-        <doc xml:whitespace="preserve">The ::destroy signal is emitted when an actor is destroyed,
-either by direct invocation of clutter_actor_destroy() or
-when the #ClutterGroup that contains the actor is destroyed.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none"/>
-        </return-value>
-      </glib:signal>
-      <glib:signal name="enter-event" version="0.6">
-        <doc xml:whitespace="preserve">The ::enter-event signal is emitted when the pointer enters the @actor
-or %FALSE to continue the emission.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">%TRUE if the event has been handled by the actor,</doc>
-          <type name="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="object" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #ClutterCrossingEvent</doc>
-            <type name="Event"/>
-          </parameter>
-        </parameters>
-      </glib:signal>
-      <glib:signal name="event" version="0.6">
-        <doc xml:whitespace="preserve">The ::event signal is emitted each time an event is received
-by the @actor. This signal will be emitted on every actor,
-following the hierarchy chain, until it reaches the top-level
-container (the #ClutterStage).
-or %FALSE to continue the emission.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">%TRUE if the event has been handled by the actor,</doc>
-          <type name="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="object" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #ClutterEvent</doc>
-            <type name="Event"/>
-          </parameter>
-        </parameters>
-      </glib:signal>
-      <glib:signal name="hide" version="0.2">
-        <doc xml:whitespace="preserve">The ::hide signal is emitted when an actor is no longer rendered
-on the stage.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none"/>
-        </return-value>
-      </glib:signal>
-      <glib:signal name="key-focus-in" version="0.6">
-        <doc xml:whitespace="preserve">The ::key-focus-in signal is emitted when @actor receives key focus.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none"/>
-        </return-value>
-      </glib:signal>
-      <glib:signal name="key-focus-out" version="0.6">
-        <doc xml:whitespace="preserve">The ::key-focus-out signal is emitted when @actor loses key focus.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none"/>
-        </return-value>
-      </glib:signal>
-      <glib:signal name="key-press-event" version="0.6">
-        <doc xml:whitespace="preserve">The ::key-press-event signal is emitted each time a keyboard button
-is pressed while @actor has key focus (see clutter_stage_set_key_focus()).
-or %FALSE to continue the emission.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">%TRUE if the event has been handled by the actor,</doc>
-          <type name="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="object" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #ClutterKeyEvent</doc>
-            <type name="Event"/>
-          </parameter>
-        </parameters>
-      </glib:signal>
-      <glib:signal name="key-release-event" version="0.6">
-        <doc xml:whitespace="preserve">The ::key-release-event signal is emitted each time a keyboard button
-is released while @actor has key focus (see
-clutter_stage_set_key_focus()).
-or %FALSE to continue the emission.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">%TRUE if the event has been handled by the actor,</doc>
-          <type name="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="object" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #ClutterKeyEvent</doc>
-            <type name="Event"/>
-          </parameter>
-        </parameters>
-      </glib:signal>
-      <glib:signal name="leave-event" version="0.6">
-        <doc xml:whitespace="preserve">The ::leave-event signal is emitted when the pointer leaves the @actor.
-or %FALSE to continue the emission.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">%TRUE if the event has been handled by the actor,</doc>
-          <type name="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="object" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #ClutterCrossingEvent</doc>
-            <type name="Event"/>
-          </parameter>
-        </parameters>
-      </glib:signal>
-      <glib:signal name="motion-event" version="0.6">
-        <doc xml:whitespace="preserve">The ::motion-event signal is emitted each time the mouse pointer is
-moved over @actor.
-or %FALSE to continue the emission.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">%TRUE if the event has been handled by the actor,</doc>
-          <type name="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="object" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #ClutterMotionEvent</doc>
-            <type name="Event"/>
-          </parameter>
-        </parameters>
-      </glib:signal>
-      <glib:signal name="paint" version="0.8">
-        <doc xml:whitespace="preserve">The ::paint signal is emitted each time an actor is being painted.
-Subclasses of #ClutterActor should override the class signal handler
-and paint themselves in that function.
-It is possible to connect a handler to the ::paint signal in order
-to set up some custom aspect of a paint.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none"/>
-        </return-value>
-      </glib:signal>
-      <glib:signal name="parent-set" version="0.2">
-        <doc xml:whitespace="preserve">This signal is emitted when the parent of the actor changes.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none"/>
-        </return-value>
-        <parameters>
-          <parameter name="object" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the previous parent of the actor, or %NULL</doc>
-            <type name="Actor"/>
-          </parameter>
-        </parameters>
-      </glib:signal>
-      <glib:signal name="pick" version="1.0">
-        <doc xml:whitespace="preserve">The ::pick signal is emitted each time an actor is being painted
-in "pick mode". The pick mode is used to identify the actor during
-the event handling phase, or by clutter_stage_get_actor_at_pos().
-The actor should paint its shape using the passed @pick_color.
-Subclasses of #ClutterActor should override the class signal handler
-and paint themselves in that function.
-It is possible to connect a handler to the ::pick signal in order
-to set up some custom aspect of a paint in pick mode.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none"/>
-        </return-value>
-        <parameters>
-          <parameter name="object" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the #ClutterColor to be used when picking</doc>
-            <type name="Color"/>
-          </parameter>
-        </parameters>
-      </glib:signal>
-      <glib:signal name="queue-redraw" version="1.0">
-        <doc xml:whitespace="preserve">The ::queue_redraw signal is emitted when clutter_actor_queue_redraw()
-is called on @origin.
-The default implementation for #ClutterActor chains up to the
-parent actor and queues a redraw on the parent, thus "bubbling"
-the redraw queue up through the actor graph. The default
-implementation for #ClutterStage queues a clutter_redraw() in a
-main loop idle handler.
-Note that the @origin actor may be the stage, or a container; it
-does not have to be a leaf node in the actor graph.
-Toolkits embedding a #ClutterStage which require a redraw and
-relayout cycle can stop the emission of this signal using the
-GSignal API, redraw the UI and then call clutter_redraw()
-themselves, like:
-|[
-static void
-on_redraw_complete (void)
-{
-/&amp;ast; execute the Clutter drawing pipeline &amp;ast;/
-clutter_redraw ();
-}
-static void
-on_stage_queue_redraw (ClutterStage *stage)
-{
-/&amp;ast; this prevents the default handler to run &amp;ast;/
-g_signal_stop_emission_by_name (stage, "queue-redraw");
-/&amp;ast; queue a redraw with the host toolkit and call
-&amp;ast; a function when the redraw has been completed
-&amp;ast;/
-queue_a_redraw (G_CALLBACK (on_redraw_complete));
-}
-]|
-&lt;note&gt;&lt;para&gt;This signal is emitted before the Clutter paint
-pipeline is executed. If you want to know when the pipeline has
-been completed you should connect to the ::paint signal on the
-Stage with g_signal_connect_after().&lt;/para&gt;&lt;/note&gt;</doc>
-        <return-value transfer-ownership="none">
-          <type name="none"/>
-        </return-value>
-        <parameters>
-          <parameter name="object" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the actor which initiated the redraw request</doc>
-            <type name="Actor"/>
-          </parameter>
-        </parameters>
-      </glib:signal>
-      <glib:signal name="queue-relayout">
-        <return-value transfer-ownership="none">
-          <type name="none"/>
-        </return-value>
-      </glib:signal>
-      <glib:signal name="realize" version="0.8">
-        <doc xml:whitespace="preserve">The ::realize signal is emitted each time an actor is being
-realized.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none"/>
-        </return-value>
-      </glib:signal>
-      <glib:signal name="scroll-event" version="0.6">
-        <doc xml:whitespace="preserve">The ::scroll-event signal is emitted each time the mouse is
-scrolled on @actor
-or %FALSE to continue the emission.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">%TRUE if the event has been handled by the actor,</doc>
-          <type name="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="object" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #ClutterScrollEvent</doc>
-            <type name="Event"/>
-          </parameter>
-        </parameters>
-      </glib:signal>
-      <glib:signal name="show" version="0.2">
-        <doc xml:whitespace="preserve">The ::show signal is emitted when an actor is visible and
-rendered on the stage.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none"/>
-        </return-value>
-      </glib:signal>
-      <glib:signal name="unrealize" version="0.8">
-        <doc xml:whitespace="preserve">The ::unrealize signal is emitted each time an actor is being
-unrealized.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none"/>
-        </return-value>
-      </glib:signal>
-    </class>
-    <record name="ActorBox"
-            c:type="ClutterActorBox"
-            glib:type-name="ClutterActorBox"
-            glib:get-type="clutter_actor_box_get_type"
-            c:symbol-prefix="actor_box">
-      <doc xml:whitespace="preserve">Bounding box of an actor. The coordinates of the top left and right bottom
-corners of an actor. The coordinates of the two points are expressed in
-pixels with sub-pixel precision</doc>
-      <field name="x1" writable="1">
-        <type name="gfloat" c:type="gfloat"/>
-      </field>
-      <field name="y1" writable="1">
-        <type name="gfloat" c:type="gfloat"/>
-      </field>
-      <field name="x2" writable="1">
-        <type name="gfloat" c:type="gfloat"/>
-      </field>
-      <field name="y2" writable="1">
-        <type name="gfloat" c:type="gfloat"/>
-      </field>
-      <constructor name="new"
-                   c:identifier="clutter_actor_box_new"
-                   version="1.0">
-        <doc xml:whitespace="preserve">Allocates a new #ClutterActorBox using the passed coordinates
-for the top left and bottom right points
-clutter_actor_box_free() to free the resources</doc>
-        <return-value transfer-ownership="full">
-          <doc xml:whitespace="preserve">the newly allocated #ClutterActorBox. Use</doc>
-          <type name="ActorBox" c:type="ClutterActorBox*"/>
-        </return-value>
-        <parameters>
-          <parameter name="x_1" transfer-ownership="none">
-            <doc xml:whitespace="preserve">X coordinate of the top left point</doc>
-            <type name="gfloat" c:type="gfloat"/>
-          </parameter>
-          <parameter name="y_1" transfer-ownership="none">
-            <doc xml:whitespace="preserve">Y coordinate of the top left point</doc>
-            <type name="gfloat" c:type="gfloat"/>
-          </parameter>
-          <parameter name="x_2" transfer-ownership="none">
-            <doc xml:whitespace="preserve">X coordinate of the bottom right point</doc>
-            <type name="gfloat" c:type="gfloat"/>
-          </parameter>
-          <parameter name="y_2" transfer-ownership="none">
-            <doc xml:whitespace="preserve">Y coordinate of the bottom right point</doc>
-            <type name="gfloat" c:type="gfloat"/>
-          </parameter>
-        </parameters>
-      </constructor>
-      <method name="clamp_to_pixel"
-              c:identifier="clutter_actor_box_clamp_to_pixel"
-              version="1.2">
-        <doc xml:whitespace="preserve">Clamps the components of @box to the nearest integer</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </method>
-      <method name="contains"
-              c:identifier="clutter_actor_box_contains"
-              version="1.0">
-        <doc xml:whitespace="preserve">Checks whether a point with @x, @y coordinates is contained
-withing @box</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">%TRUE if the point is contained by the #ClutterActorBox</doc>
-          <type name="gboolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="x" transfer-ownership="none">
-            <doc xml:whitespace="preserve">X coordinate of the point</doc>
-            <type name="gfloat" c:type="gfloat"/>
-          </parameter>
-          <parameter name="y" transfer-ownership="none">
-            <doc xml:whitespace="preserve">Y coordinate of the point</doc>
-            <type name="gfloat" c:type="gfloat"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="copy" c:identifier="clutter_actor_box_copy" version="1.0">
-        <doc xml:whitespace="preserve">Copies @box
-clutter_actor_box_free() to free the allocated resources</doc>
-        <return-value transfer-ownership="full">
-          <doc xml:whitespace="preserve">a newly allocated copy of #ClutterActorBox. Use</doc>
-          <type name="ActorBox" c:type="ClutterActorBox*"/>
-        </return-value>
-      </method>
-      <method name="equal"
-              c:identifier="clutter_actor_box_equal"
-              version="1.0">
-        <doc xml:whitespace="preserve">Checks @box_a and @box_b for equality</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">%TRUE if the passed #ClutterActorBox are equal</doc>
-          <type name="gboolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="box_b" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #ClutterActorBox</doc>
-            <type name="ActorBox" c:type="ClutterActorBox*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="free" c:identifier="clutter_actor_box_free" version="1.0">
-        <doc xml:whitespace="preserve">Frees a #ClutterActorBox allocated using clutter_actor_box_new()
-or clutter_actor_box_copy()</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </method>
-      <method name="from_vertices"
-              c:identifier="clutter_actor_box_from_vertices"
-              version="1.0">
-        <doc xml:whitespace="preserve">Calculates the bounding box represented by the four vertices; for details
-of the vertex array see clutter_actor_get_abs_allocation_vertices().</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="verts" transfer-ownership="none">
-            <doc xml:whitespace="preserve">array of four #ClutterVertex</doc>
-            <array c:type="ClutterVertex" fixed-size="4">
-              <type name="Vertex"/>
-            </array>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_area"
-              c:identifier="clutter_actor_box_get_area"
-              version="1.0">
-        <doc xml:whitespace="preserve">Retrieves the area of @box</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the area of a #ClutterActorBox, in pixels</doc>
-          <type name="gfloat" c:type="gfloat"/>
-        </return-value>
-      </method>
-      <method name="get_height"
-              c:identifier="clutter_actor_box_get_height"
-              version="1.0">
-        <doc xml:whitespace="preserve">Retrieves the height of the @box</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the height of the box</doc>
-          <type name="gfloat" c:type="gfloat"/>
-        </return-value>
-      </method>
-      <method name="get_origin"
-              c:identifier="clutter_actor_box_get_origin"
-              version="1.0">
-        <doc xml:whitespace="preserve">Retrieves the origin of @box</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="x"
-                     direction="out"
-                     caller-allocates="0"
-                     transfer-ownership="full"
-                     allow-none="1">
-            <doc xml:whitespace="preserve">return location for the X coordinate, or %NULL</doc>
-            <type name="gfloat" c:type="gfloat*"/>
-          </parameter>
-          <parameter name="y"
-                     direction="out"
-                     caller-allocates="0"
-                     transfer-ownership="full"
-                     allow-none="1">
-            <doc xml:whitespace="preserve">return location for the Y coordinate, or %NULL</doc>
-            <type name="gfloat" c:type="gfloat*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_size"
-              c:identifier="clutter_actor_box_get_size"
-              version="1.0">
-        <doc xml:whitespace="preserve">Retrieves the size of @box</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="width"
-                     direction="out"
-                     caller-allocates="0"
-                     transfer-ownership="full"
-                     allow-none="1">
-            <doc xml:whitespace="preserve">return location for the width, or %NULL</doc>
-            <type name="gfloat" c:type="gfloat*"/>
-          </parameter>
-          <parameter name="height"
-                     direction="out"
-                     caller-allocates="0"
-                     transfer-ownership="full"
-                     allow-none="1">
-            <doc xml:whitespace="preserve">return location for the height, or %NULL</doc>
-            <type name="gfloat" c:type="gfloat*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_width"
-              c:identifier="clutter_actor_box_get_width"
-              version="1.0">
-        <doc xml:whitespace="preserve">Retrieves the width of the @box</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the width of the box</doc>
-          <type name="gfloat" c:type="gfloat"/>
-        </return-value>
-      </method>
-      <method name="get_x"
-              c:identifier="clutter_actor_box_get_x"
-              version="1.0">
-        <doc xml:whitespace="preserve">Retrieves the X coordinate of the origin of @box</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the X coordinate of the origin</doc>
-          <type name="gfloat" c:type="gfloat"/>
-        </return-value>
-      </method>
-      <method name="get_y"
-              c:identifier="clutter_actor_box_get_y"
-              version="1.0">
-        <doc xml:whitespace="preserve">Retrieves the Y coordinate of the origin of @box</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the Y coordinate of the origin</doc>
-          <type name="gfloat" c:type="gfloat"/>
-        </return-value>
-      </method>
-      <method name="interpolate"
-              c:identifier="clutter_actor_box_interpolate"
-              version="1.2">
-        <doc xml:whitespace="preserve">Interpolates between @initial and @final #ClutterActorBox&lt;!-- --&gt;es
-using @progress</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="final" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the final #ClutterActorBox</doc>
-            <type name="ActorBox" c:type="ClutterActorBox*"/>
-          </parameter>
-          <parameter name="progress" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the interpolation progress</doc>
-            <type name="gdouble" c:type="gdouble"/>
-          </parameter>
-          <parameter name="result"
-                     direction="out"
-                     caller-allocates="1"
-                     transfer-ownership="none">
-            <doc xml:whitespace="preserve">return location for the interpolation</doc>
-            <type name="ActorBox" c:type="ClutterActorBox*"/>
-          </parameter>
-        </parameters>
-      </method>
-    </record>
-    <record name="ActorClass"
-            c:type="ClutterActorClass"
-            glib:is-gtype-struct-for="Actor">
-      <doc xml:whitespace="preserve">Base class for actors.</doc>
-      <field name="parent_class">
-        <type name="GObject.InitiallyUnownedClass"
-              c:type="GInitiallyUnownedClass"/>
-      </field>
-      <field name="show">
-        <callback name="show">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="actor" transfer-ownership="none">
-              <type name="Actor" c:type="ClutterActor*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="show_all">
-        <callback name="show_all">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="actor" transfer-ownership="none">
-              <type name="Actor" c:type="ClutterActor*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="hide">
-        <callback name="hide">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="actor" transfer-ownership="none">
-              <type name="Actor" c:type="ClutterActor*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="hide_all">
-        <callback name="hide_all">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="actor" transfer-ownership="none">
-              <type name="Actor" c:type="ClutterActor*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="realize">
-        <callback name="realize">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="actor" transfer-ownership="none">
-              <type name="Actor" c:type="ClutterActor*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="unrealize">
-        <callback name="unrealize">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="actor" transfer-ownership="none">
-              <type name="Actor" c:type="ClutterActor*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="map">
-        <callback name="map">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="actor" transfer-ownership="none">
-              <type name="Actor" c:type="ClutterActor*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="unmap">
-        <callback name="unmap">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="actor" transfer-ownership="none">
-              <type name="Actor" c:type="ClutterActor*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="paint">
-        <callback name="paint">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="actor" transfer-ownership="none">
-              <type name="Actor" c:type="ClutterActor*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="parent_set">
-        <callback name="parent_set">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="actor" transfer-ownership="none">
-              <type name="Actor" c:type="ClutterActor*"/>
-            </parameter>
-            <parameter name="old_parent" transfer-ownership="none">
-              <type name="Actor" c:type="ClutterActor*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="destroy">
-        <callback name="destroy">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="actor" transfer-ownership="none">
-              <type name="Actor" c:type="ClutterActor*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="pick">
-        <callback name="pick">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="actor" transfer-ownership="none">
-              <type name="Actor" c:type="ClutterActor*"/>
-            </parameter>
-            <parameter name="color" transfer-ownership="none">
-              <type name="Color" c:type="ClutterColor*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="queue_redraw">
-        <callback name="queue_redraw">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="actor" transfer-ownership="none">
-              <type name="Actor" c:type="ClutterActor*"/>
-            </parameter>
-            <parameter name="leaf_that_queued" transfer-ownership="none">
-              <type name="Actor" c:type="ClutterActor*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="get_preferred_width">
-        <callback name="get_preferred_width">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="actor" transfer-ownership="none">
-              <type name="Actor" c:type="ClutterActor*"/>
-            </parameter>
-            <parameter name="for_height" transfer-ownership="none">
-              <doc xml:whitespace="preserve">available height when computing the preferred width, or a negative value to indicate that no height is defined</doc>
-              <type name="gfloat" c:type="gfloat"/>
-            </parameter>
-            <parameter name="min_width_p"
-                       direction="out"
-                       caller-allocates="0"
-                       transfer-ownership="full"
-                       allow-none="1">
-              <doc xml:whitespace="preserve">return location for minimum width, or %NULL</doc>
-              <type name="gfloat" c:type="gfloat*"/>
-            </parameter>
-            <parameter name="natural_width_p"
-                       direction="out"
-                       caller-allocates="0"
-                       transfer-ownership="full"
-                       allow-none="1">
-              <doc xml:whitespace="preserve">return location for the natural width, or %NULL</doc>
-              <type name="gfloat" c:type="gfloat*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="get_preferred_height">
-        <callback name="get_preferred_height">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="actor" transfer-ownership="none">
-              <type name="Actor" c:type="ClutterActor*"/>
-            </parameter>
-            <parameter name="for_width" transfer-ownership="none">
-              <doc xml:whitespace="preserve">available width to assume in computing desired height, or a negative value to indicate that no width is defined</doc>
-              <type name="gfloat" c:type="gfloat"/>
-            </parameter>
-            <parameter name="min_height_p"
-                       direction="out"
-                       caller-allocates="0"
-                       transfer-ownership="full"
-                       allow-none="1">
-              <doc xml:whitespace="preserve">return location for minimum height, or %NULL</doc>
-              <type name="gfloat" c:type="gfloat*"/>
-            </parameter>
-            <parameter name="natural_height_p"
-                       direction="out"
-                       caller-allocates="0"
-                       transfer-ownership="full"
-                       allow-none="1">
-              <doc xml:whitespace="preserve">return location for natural height, or %NULL</doc>
-              <type name="gfloat" c:type="gfloat*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="allocate">
-        <callback name="allocate">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="actor" transfer-ownership="none">
-              <type name="Actor" c:type="ClutterActor*"/>
-            </parameter>
-            <parameter name="box" transfer-ownership="none">
-              <doc xml:whitespace="preserve">new allocation of the actor, in parent-relative coordinates</doc>
-              <type name="ActorBox" c:type="ClutterActorBox*"/>
-            </parameter>
-            <parameter name="flags" transfer-ownership="none">
-              <doc xml:whitespace="preserve">flags that control the allocation</doc>
-              <type name="AllocationFlags" c:type="ClutterAllocationFlags"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="apply_transform">
-        <callback name="apply_transform">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="actor" transfer-ownership="none">
-              <type name="Actor" c:type="ClutterActor*"/>
-            </parameter>
-            <parameter name="matrix" transfer-ownership="none">
-              <type name="Cogl.Matrix" c:type="CoglMatrix*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="event">
-        <callback name="event">
-          <return-value transfer-ownership="none">
-            <type name="gboolean" c:type="gboolean"/>
-          </return-value>
-          <parameters>
-            <parameter name="actor" transfer-ownership="none">
-              <type name="Actor" c:type="ClutterActor*"/>
-            </parameter>
-            <parameter name="event" transfer-ownership="none">
-              <type name="Event" c:type="ClutterEvent*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="button_press_event">
-        <callback name="button_press_event">
-          <return-value transfer-ownership="none">
-            <type name="gboolean" c:type="gboolean"/>
-          </return-value>
-          <parameters>
-            <parameter name="actor" transfer-ownership="none">
-              <type name="Actor" c:type="ClutterActor*"/>
-            </parameter>
-            <parameter name="event" transfer-ownership="none">
-              <type name="ButtonEvent" c:type="ClutterButtonEvent*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="button_release_event">
-        <callback name="button_release_event">
-          <return-value transfer-ownership="none">
-            <type name="gboolean" c:type="gboolean"/>
-          </return-value>
-          <parameters>
-            <parameter name="actor" transfer-ownership="none">
-              <type name="Actor" c:type="ClutterActor*"/>
-            </parameter>
-            <parameter name="event" transfer-ownership="none">
-              <type name="ButtonEvent" c:type="ClutterButtonEvent*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="scroll_event">
-        <callback name="scroll_event">
-          <return-value transfer-ownership="none">
-            <type name="gboolean" c:type="gboolean"/>
-          </return-value>
-          <parameters>
-            <parameter name="actor" transfer-ownership="none">
-              <type name="Actor" c:type="ClutterActor*"/>
-            </parameter>
-            <parameter name="event" transfer-ownership="none">
-              <type name="ScrollEvent" c:type="ClutterScrollEvent*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="key_press_event">
-        <callback name="key_press_event">
-          <return-value transfer-ownership="none">
-            <type name="gboolean" c:type="gboolean"/>
-          </return-value>
-          <parameters>
-            <parameter name="actor" transfer-ownership="none">
-              <type name="Actor" c:type="ClutterActor*"/>
-            </parameter>
-            <parameter name="event" transfer-ownership="none">
-              <type name="KeyEvent" c:type="ClutterKeyEvent*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="key_release_event">
-        <callback name="key_release_event">
-          <return-value transfer-ownership="none">
-            <type name="gboolean" c:type="gboolean"/>
-          </return-value>
-          <parameters>
-            <parameter name="actor" transfer-ownership="none">
-              <type name="Actor" c:type="ClutterActor*"/>
-            </parameter>
-            <parameter name="event" transfer-ownership="none">
-              <type name="KeyEvent" c:type="ClutterKeyEvent*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="motion_event">
-        <callback name="motion_event">
-          <return-value transfer-ownership="none">
-            <type name="gboolean" c:type="gboolean"/>
-          </return-value>
-          <parameters>
-            <parameter name="actor" transfer-ownership="none">
-              <type name="Actor" c:type="ClutterActor*"/>
-            </parameter>
-            <parameter name="event" transfer-ownership="none">
-              <type name="MotionEvent" c:type="ClutterMotionEvent*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="enter_event">
-        <callback name="enter_event">
-          <return-value transfer-ownership="none">
-            <type name="gboolean" c:type="gboolean"/>
-          </return-value>
-          <parameters>
-            <parameter name="actor" transfer-ownership="none">
-              <type name="Actor" c:type="ClutterActor*"/>
-            </parameter>
-            <parameter name="event" transfer-ownership="none">
-              <type name="CrossingEvent" c:type="ClutterCrossingEvent*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="leave_event">
-        <callback name="leave_event">
-          <return-value transfer-ownership="none">
-            <type name="gboolean" c:type="gboolean"/>
-          </return-value>
-          <parameters>
-            <parameter name="actor" transfer-ownership="none">
-              <type name="Actor" c:type="ClutterActor*"/>
-            </parameter>
-            <parameter name="event" transfer-ownership="none">
-              <type name="CrossingEvent" c:type="ClutterCrossingEvent*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="captured_event">
-        <callback name="captured_event">
-          <return-value transfer-ownership="none">
-            <type name="gboolean" c:type="gboolean"/>
-          </return-value>
-          <parameters>
-            <parameter name="actor" transfer-ownership="none">
-              <type name="Actor" c:type="ClutterActor*"/>
-            </parameter>
-            <parameter name="event" transfer-ownership="none">
-              <type name="Event" c:type="ClutterEvent*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="key_focus_in">
-        <callback name="key_focus_in">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="actor" transfer-ownership="none">
-              <type name="Actor" c:type="ClutterActor*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="key_focus_out">
-        <callback name="key_focus_out">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="actor" transfer-ownership="none">
-              <type name="Actor" c:type="ClutterActor*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="queue_relayout">
-        <callback name="queue_relayout">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="actor" transfer-ownership="none">
-              <type name="Actor" c:type="ClutterActor*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="get_accessible">
-        <callback name="get_accessible">
-          <return-value transfer-ownership="none">
-            <doc xml:whitespace="preserve">the #AtkObject associated with @actor</doc>
-            <type name="Atk.Object" c:type="AtkObject*"/>
-          </return-value>
-          <parameters>
-            <parameter name="actor" transfer-ownership="none">
-              <type name="Actor" c:type="ClutterActor*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="_padding_dummy">
-        <array zero-terminated="0" c:type="gpointer" fixed-size="30">
-          <type name="gpointer" c:type="gpointer"/>
-        </array>
-      </field>
-    </record>
-    <bitfield name="ActorFlags"
-              glib:type-name="ClutterActorFlags"
-              glib:get-type="clutter_actor_flags_get_type"
-              c:type="ClutterActorFlags">
-      <doc xml:whitespace="preserve">Flags used to signal the state of an actor.</doc>
-      <member name="mapped"
-              value="2"
-              c:identifier="CLUTTER_ACTOR_MAPPED"
-              glib:nick="mapped"/>
-      <member name="realized"
-              value="4"
-              c:identifier="CLUTTER_ACTOR_REALIZED"
-              glib:nick="realized"/>
-      <member name="reactive"
-              value="8"
-              c:identifier="CLUTTER_ACTOR_REACTIVE"
-              glib:nick="reactive"/>
-      <member name="visible"
-              value="16"
-              c:identifier="CLUTTER_ACTOR_VISIBLE"
-              glib:nick="visible"/>
-      <member name="no_layout"
-              value="32"
-              c:identifier="CLUTTER_ACTOR_NO_LAYOUT"
-              glib:nick="no-layout"/>
-    </bitfield>
-    <class name="ActorMeta"
-           c:symbol-prefix="actor_meta"
-           c:type="ClutterActorMeta"
-           version="1.4"
-           parent="GObject.InitiallyUnowned"
-           abstract="1"
-           glib:type-name="ClutterActorMeta"
-           glib:get-type="clutter_actor_meta_get_type"
-           glib:type-struct="ActorMetaClass">
-      <doc xml:whitespace="preserve">The &lt;structname&gt;ClutterActorMeta&lt;/structname&gt; structure contains only
-private data and should be accessed using the provided API</doc>
-      <virtual-method name="set_actor">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="actor" transfer-ownership="none">
-            <type name="Actor" c:type="ClutterActor*"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <method name="get_actor"
-              c:identifier="clutter_actor_meta_get_actor"
-              version="1.4">
-        <doc xml:whitespace="preserve">Retrieves a pointer to the #ClutterActor that owns @meta</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">a pointer to a #ClutterActor or %NULL</doc>
-          <type name="Actor" c:type="ClutterActor*"/>
-        </return-value>
-      </method>
-      <method name="get_enabled"
-              c:identifier="clutter_actor_meta_get_enabled"
-              version="1.4">
-        <doc xml:whitespace="preserve">Retrieves whether @meta is enabled</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">%TRUE if the #ClutterActorMeta instance is enabled</doc>
-          <type name="gboolean" c:type="gboolean"/>
-        </return-value>
-      </method>
-      <method name="get_name"
-              c:identifier="clutter_actor_meta_get_name"
-              version="1.4">
-        <doc xml:whitespace="preserve">Retrieves the name set using clutter_actor_meta_set_name()
-instance, or %NULL if none was set. The returned string is owned
-by the #ClutterActorMeta instance and it should not be modified
-or freed</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the name of the #ClutterActorMeta</doc>
-          <type name="utf8" c:type="gchar*"/>
-        </return-value>
-      </method>
-      <method name="set_enabled"
-              c:identifier="clutter_actor_meta_set_enabled"
-              version="1.4">
-        <doc xml:whitespace="preserve">Sets whether @meta should be enabled or not</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="is_enabled" transfer-ownership="none">
-            <doc xml:whitespace="preserve">whether @meta is enabled</doc>
-            <type name="gboolean" c:type="gboolean"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_name"
-              c:identifier="clutter_actor_meta_set_name"
-              version="1.4">
-        <doc xml:whitespace="preserve">Sets the name of @meta
-The name can be used to identify the #ClutterActorMeta instance</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="name" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the name of @meta</doc>
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <property name="actor" version="1.4" transfer-ownership="none">
-        <doc xml:whitespace="preserve">The #ClutterActor attached to the #ClutterActorMeta instance</doc>
-        <type name="Actor"/>
-      </property>
-      <property name="enabled"
-                version="1.4"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">Whether or not the #ClutterActorMeta is enabled</doc>
-        <type name="gboolean"/>
-      </property>
-      <property name="name"
-                version="1.4"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">The unique name to access the #ClutterActorMeta</doc>
-        <type name="utf8"/>
-      </property>
-      <field name="parent_instance">
-        <type name="GObject.InitiallyUnowned" c:type="GInitiallyUnowned"/>
-      </field>
-      <field name="priv">
-        <type name="ActorMetaPrivate" c:type="ClutterActorMetaPrivate*"/>
-      </field>
-    </class>
-    <record name="ActorMetaClass"
-            c:type="ClutterActorMetaClass"
-            glib:is-gtype-struct-for="ActorMeta"
-            version="1.4">
-      <doc xml:whitespace="preserve">The &lt;structname&gt;ClutterActorMetaClass&lt;/structname&gt; structure contains
-only private data</doc>
-      <field name="parent_class">
-        <type name="GObject.InitiallyUnownedClass"
-              c:type="GInitiallyUnownedClass"/>
-      </field>
-      <field name="set_actor">
-        <callback name="set_actor">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="meta" transfer-ownership="none">
-              <type name="ActorMeta" c:type="ClutterActorMeta*"/>
-            </parameter>
-            <parameter name="actor" transfer-ownership="none">
-              <type name="Actor" c:type="ClutterActor*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="_clutter_meta1" introspectable="0">
-        <callback name="_clutter_meta1">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-      <field name="_clutter_meta2" introspectable="0">
-        <callback name="_clutter_meta2">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-      <field name="_clutter_meta3" introspectable="0">
-        <callback name="_clutter_meta3">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-      <field name="_clutter_meta4" introspectable="0">
-        <callback name="_clutter_meta4">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-      <field name="_clutter_meta5" introspectable="0">
-        <callback name="_clutter_meta5">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-      <field name="_clutter_meta6" introspectable="0">
-        <callback name="_clutter_meta6">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-      <field name="_clutter_meta7" introspectable="0">
-        <callback name="_clutter_meta7">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-    </record>
-    <record name="ActorMetaPrivate"
-            c:type="ClutterActorMetaPrivate"
-            disguised="1">
-    </record>
-    <record name="ActorPrivate" c:type="ClutterActorPrivate" disguised="1">
-    </record>
-    <constant name="AddFavorite" value="269025081">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Adiaeresis" value="196">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Agrave" value="192">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Ahook" value="16785058">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <enumeration name="AlignAxis"
-                 version="1.4"
-                 glib:type-name="ClutterAlignAxis"
-                 glib:get-type="clutter_align_axis_get_type"
-                 c:type="ClutterAlignAxis">
-      <doc xml:whitespace="preserve">Specifies the axis on which #ClutterAlignConstraint should maintain
-the alignment</doc>
-      <member name="x_axis"
-              value="0"
-              c:identifier="CLUTTER_ALIGN_X_AXIS"
-              glib:nick="x-axis"/>
-      <member name="y_axis"
-              value="1"
-              c:identifier="CLUTTER_ALIGN_Y_AXIS"
-              glib:nick="y-axis"/>
-    </enumeration>
-    <class name="AlignConstraint"
-           c:symbol-prefix="align_constraint"
-           c:type="ClutterAlignConstraint"
-           version="1.4"
-           parent="Constraint"
-           glib:type-name="ClutterAlignConstraint"
-           glib:get-type="clutter_align_constraint_get_type">
-      <doc xml:whitespace="preserve">&lt;structname&gt;ClutterAlignConstraint&lt;/structname&gt; is an opaque structure
-whose members cannot be directly accesses</doc>
-      <constructor name="new"
-                   c:identifier="clutter_align_constraint_new"
-                   version="1.4">
-        <doc xml:whitespace="preserve">Creates a new constraint, aligning a #ClutterActor's position with
-regards of the size of the actor to @source, with the given
-alignment @factor</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the newly created #ClutterAlignConstraint</doc>
-          <type name="Constraint" c:type="ClutterConstraint*"/>
-        </return-value>
-        <parameters>
-          <parameter name="source" transfer-ownership="none" allow-none="1">
-            <doc xml:whitespace="preserve">the #ClutterActor to use as the source of the alignment, or %NULL</doc>
-            <type name="Actor" c:type="ClutterActor*"/>
-          </parameter>
-          <parameter name="axis" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the axis to be used to compute the alignment</doc>
-            <type name="AlignAxis" c:type="ClutterAlignAxis"/>
-          </parameter>
-          <parameter name="factor" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the alignment factor, between 0.0 and 1.0</doc>
-            <type name="gfloat" c:type="gfloat"/>
-          </parameter>
-        </parameters>
-      </constructor>
-      <method name="get_align_axis"
-              c:identifier="clutter_align_constraint_get_align_axis"
-              version="1.4">
-        <doc xml:whitespace="preserve">Retrieves the value set using clutter_align_constraint_set_align_axis()</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the alignment axis</doc>
-          <type name="AlignAxis" c:type="ClutterAlignAxis"/>
-        </return-value>
-      </method>
-      <method name="get_factor"
-              c:identifier="clutter_align_constraint_get_factor"
-              version="1.4">
-        <doc xml:whitespace="preserve">Retrieves the factor set using clutter_align_constraint_set_factor()</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the alignment factor</doc>
-          <type name="gfloat" c:type="gfloat"/>
-        </return-value>
-      </method>
-      <method name="get_source"
-              c:identifier="clutter_align_constraint_get_source"
-              version="1.4">
-        <doc xml:whitespace="preserve">Retrieves the source of the alignment
-of the alignment</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the #ClutterActor used as the source</doc>
-          <type name="Actor" c:type="ClutterActor*"/>
-        </return-value>
-      </method>
-      <method name="set_align_axis"
-              c:identifier="clutter_align_constraint_set_align_axis"
-              version="1.4">
-        <doc xml:whitespace="preserve">Sets the axis to which the alignment refers to</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="axis" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the axis to which the alignment refers to</doc>
-            <type name="AlignAxis" c:type="ClutterAlignAxis"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_factor"
-              c:identifier="clutter_align_constraint_set_factor"
-              version="1.4">
-        <doc xml:whitespace="preserve">Sets the alignment factor of the constraint
-The factor depends on the #ClutterAlignConstraint:align-axis property
-and it is a value between 0.0 (meaning left, when
-#ClutterAlignConstraint:align-axis is set to %CLUTTER_ALIGN_X_AXIS; or
-meaning top, when #ClutterAlignConstraint:align-axis is set to
-%CLUTTER_ALIGN_Y_AXIS) and 1.0 (meaning right, when
-#ClutterAlignConstraint:align-axis is set to %CLUTTER_ALIGN_X_AXIS; or
-meaning bottom, when #ClutterAlignConstraint:align-axis is set to
-%CLUTTER_ALIGN_Y_AXIS). A value of 0.5 aligns in the middle in either
-cases</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="factor" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the alignment factor, between 0.0 and 1.0</doc>
-            <type name="gfloat" c:type="gfloat"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_source"
-              c:identifier="clutter_align_constraint_set_source"
-              version="1.4">
-        <doc xml:whitespace="preserve">Sets the source of the alignment constraint</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="source" transfer-ownership="none" allow-none="1">
-            <doc xml:whitespace="preserve">a #ClutterActor, or %NULL to unset the source</doc>
-            <type name="Actor" c:type="ClutterActor*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <property name="align-axis"
-                version="1.4"
-                writable="1"
-                construct="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">The axis to be used to compute the alignment</doc>
-        <type name="AlignAxis"/>
-      </property>
-      <property name="factor"
-                version="1.4"
-                writable="1"
-                construct="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">The alignment factor, as a normalized value between 0.0 and 1.0
-The factor depends on the #ClutterAlignConstraint:align-axis property:
-with an align-axis value of %CLUTTER_ALIGN_X_AXIS, 0.0 means left and
-1.0 means right; with a value of %CLUTTER_ALIGN_Y_AXIS, 0.0 means top
-and 1.0 means bottom.</doc>
-        <type name="gfloat"/>
-      </property>
-      <property name="source"
-                version="1.4"
-                writable="1"
-                construct="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">The #ClutterActor used as the source for the alignment</doc>
-        <type name="Actor"/>
-      </property>
-    </class>
-    <bitfield name="AllocationFlags"
-              version="1.0"
-              glib:type-name="ClutterAllocationFlags"
-              glib:get-type="clutter_allocation_flags_get_type"
-              c:type="ClutterAllocationFlags">
-      <doc xml:whitespace="preserve">Flags passed to the #ClutterActor::allocate() virtual function and
-to the clutter_actor_allocate() function</doc>
-      <member name="allocation_none"
-              value="0"
-              c:identifier="CLUTTER_ALLOCATION_NONE"
-              glib:nick="allocation-none"/>
-      <member name="absolute_origin_changed"
-              value="2"
-              c:identifier="CLUTTER_ABSOLUTE_ORIGIN_CHANGED"
-              glib:nick="absolute-origin-changed"/>
-    </bitfield>
-    <class name="Alpha"
-           c:symbol-prefix="alpha"
-           c:type="ClutterAlpha"
-           version="0.2"
-           parent="GObject.InitiallyUnowned"
-           glib:type-name="ClutterAlpha"
-           glib:get-type="clutter_alpha_get_type"
-           glib:type-struct="AlphaClass">
-      <doc xml:whitespace="preserve">#ClutterAlpha combines a #ClutterTimeline and a function.
-The contents of the #ClutterAlpha structure are private and should
-only be accessed using the provided API.</doc>
-      <implements name="Scriptable"/>
-      <constructor name="new" c:identifier="clutter_alpha_new" version="0.2">
-        <doc xml:whitespace="preserve">Creates a new #ClutterAlpha instance.  You must set a function
-to compute the alpha value using clutter_alpha_set_func() and
-bind a #ClutterTimeline object to the #ClutterAlpha instance
-using clutter_alpha_set_timeline().
-You should use the newly created #ClutterAlpha instance inside
-a #ClutterBehaviour object.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the newly created empty #ClutterAlpha instance.</doc>
-          <type name="Alpha" c:type="ClutterAlpha*"/>
-        </return-value>
-      </constructor>
-      <constructor name="new_full"
-                   c:identifier="clutter_alpha_new_full"
-                   version="1.0">
-        <doc xml:whitespace="preserve">Creates a new #ClutterAlpha instance and sets the timeline
-and animation mode.
-See also clutter_alpha_set_timeline() and clutter_alpha_set_mode().</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the newly created #ClutterAlpha</doc>
-          <type name="Alpha" c:type="ClutterAlpha*"/>
-        </return-value>
-        <parameters>
-          <parameter name="timeline" transfer-ownership="none">
-            <doc xml:whitespace="preserve">#ClutterTimeline timeline</doc>
-            <type name="Timeline" c:type="ClutterTimeline*"/>
-          </parameter>
-          <parameter name="mode" transfer-ownership="none">
-            <doc xml:whitespace="preserve">animation mode</doc>
-            <type name="gulong" c:type="gulong"/>
-          </parameter>
-        </parameters>
-      </constructor>
-      <constructor name="new_with_func"
-                   c:identifier="clutter_alpha_new_with_func"
-                   version="1.0">
-        <doc xml:whitespace="preserve">Creates a new #ClutterAlpha instances and sets the timeline
-and the alpha function.
-This function will not register @func as a global alpha function.
-See also clutter_alpha_set_timeline() and clutter_alpha_set_func().</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the newly created #ClutterAlpha</doc>
-          <type name="Alpha" c:type="ClutterAlpha*"/>
-        </return-value>
-        <parameters>
-          <parameter name="timeline" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #ClutterTimeline</doc>
-            <type name="Timeline" c:type="ClutterTimeline*"/>
-          </parameter>
-          <parameter name="func"
-                     transfer-ownership="none"
-                     scope="notified"
-                     closure="2"
-                     destroy="3">
-            <doc xml:whitespace="preserve">a #ClutterAlphaFunc</doc>
-            <type name="AlphaFunc" c:type="ClutterAlphaFunc"/>
-          </parameter>
-          <parameter name="data" transfer-ownership="none">
-            <doc xml:whitespace="preserve">data to pass to the function, or %NULL</doc>
-            <type name="gpointer" c:type="gpointer"/>
-          </parameter>
-          <parameter name="destroy" transfer-ownership="none" scope="async">
-            <doc xml:whitespace="preserve">function to call when removing the alpha function, or %NULL</doc>
-            <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
-          </parameter>
-        </parameters>
-      </constructor>
-      <function name="register_closure"
-                c:identifier="clutter_alpha_register_closure"
-                shadows="register_func"
-                version="1.0">
-        <doc xml:whitespace="preserve">#GClosure variant of clutter_alpha_register_func().
-Registers a global alpha function and returns its logical id
-to be used by clutter_alpha_set_mode() or by #ClutterAnimation.
-The logical id is always greater than %CLUTTER_ANIMATION_LAST.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the logical id of the alpha function</doc>
-          <type name="gulong" c:type="gulong"/>
-        </return-value>
-        <parameters>
-          <parameter name="closure" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #GClosure</doc>
-            <type name="GObject.Closure" c:type="GClosure*"/>
-          </parameter>
-        </parameters>
-      </function>
-      <function name="register_func"
-                c:identifier="clutter_alpha_register_func"
-                shadowed-by="register_closure"
-                version="1.0"
-                introspectable="0">
-        <doc xml:whitespace="preserve">Registers a global alpha function and returns its logical id
-to be used by clutter_alpha_set_mode() or by #ClutterAnimation.
-The logical id is always greater than %CLUTTER_ANIMATION_LAST.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the logical id of the alpha function</doc>
-          <type name="gulong" c:type="gulong"/>
-        </return-value>
-        <parameters>
-          <parameter name="func" transfer-ownership="none" closure="1">
-            <doc xml:whitespace="preserve">a #ClutterAlphaFunc</doc>
-            <type name="AlphaFunc" c:type="ClutterAlphaFunc"/>
-          </parameter>
-          <parameter name="data" transfer-ownership="none">
-            <doc xml:whitespace="preserve">user data to pass to @func, or %NULL</doc>
-            <type name="gpointer" c:type="gpointer"/>
-          </parameter>
-        </parameters>
-      </function>
-      <method name="get_alpha"
-              c:identifier="clutter_alpha_get_alpha"
-              version="0.2">
-        <doc xml:whitespace="preserve">Query the current alpha value.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">The current alpha value for the alpha</doc>
-          <type name="gdouble" c:type="gdouble"/>
-        </return-value>
-      </method>
-      <method name="get_mode"
-              c:identifier="clutter_alpha_get_mode"
-              version="1.0">
-        <doc xml:whitespace="preserve">Retrieves the #ClutterAnimationMode used by @alpha.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the animation mode</doc>
-          <type name="gulong" c:type="gulong"/>
-        </return-value>
-      </method>
-      <method name="get_timeline"
-              c:identifier="clutter_alpha_get_timeline"
-              version="0.2">
-        <doc xml:whitespace="preserve">Gets the #ClutterTimeline bound to @alpha.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">a #ClutterTimeline instance</doc>
-          <type name="Timeline" c:type="ClutterTimeline*"/>
-        </return-value>
-      </method>
-      <method name="set_closure"
-              c:identifier="clutter_alpha_set_closure"
-              version="0.8">
-        <doc xml:whitespace="preserve">Sets the #GClosure used to compute the alpha value at each
-frame of the #ClutterTimeline bound to @alpha.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="closure" transfer-ownership="none">
-            <doc xml:whitespace="preserve">A #GClosure</doc>
-            <type name="GObject.Closure" c:type="GClosure*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_func"
-              c:identifier="clutter_alpha_set_func"
-              version="0.2">
-        <doc xml:whitespace="preserve">Sets the #ClutterAlphaFunc function used to compute
-the alpha value at each frame of the #ClutterTimeline
-bound to @alpha.
-This function will not register @func as a global alpha function.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="func"
-                     transfer-ownership="none"
-                     scope="notified"
-                     closure="1"
-                     destroy="2">
-            <doc xml:whitespace="preserve">A #ClutterAlphaFunc</doc>
-            <type name="AlphaFunc" c:type="ClutterAlphaFunc"/>
-          </parameter>
-          <parameter name="data" transfer-ownership="none">
-            <doc xml:whitespace="preserve">user data to be passed to the alpha function, or %NULL</doc>
-            <type name="gpointer" c:type="gpointer"/>
-          </parameter>
-          <parameter name="destroy" transfer-ownership="none" scope="async">
-            <doc xml:whitespace="preserve">notify function used when disposing the alpha function</doc>
-            <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_mode"
-              c:identifier="clutter_alpha_set_mode"
-              version="1.0">
-        <doc xml:whitespace="preserve">Sets the progress function of @alpha using the symbolic value
-of @mode, as taken by the #ClutterAnimationMode enumeration or
-using the value returned by clutter_alpha_register_func().</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="mode" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #ClutterAnimationMode</doc>
-            <type name="gulong" c:type="gulong"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_timeline"
-              c:identifier="clutter_alpha_set_timeline"
-              version="0.2">
-        <doc xml:whitespace="preserve">Binds @alpha to @timeline.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="timeline" transfer-ownership="none">
-            <doc xml:whitespace="preserve">A #ClutterTimeline</doc>
-            <type name="Timeline" c:type="ClutterTimeline*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <property name="alpha" version="0.2" transfer-ownership="none">
-        <doc xml:whitespace="preserve">The alpha value as computed by the alpha function. The linear
-interval is 0.0 to 1.0, but the Alpha allows overshooting by
-one unit in each direction, so the valid interval is -1.0 to 2.0.</doc>
-        <type name="gdouble"/>
-      </property>
-      <property name="mode"
-                version="1.0"
-                writable="1"
-                construct="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">The progress function logical id - either a value from the
-#ClutterAnimationMode enumeration or a value returned by
-clutter_alpha_register_func().
-If %CLUTTER_CUSTOM_MODE is used then the function set using
-clutter_alpha_set_closure() or clutter_alpha_set_func()
-will be used.</doc>
-        <type name="gulong"/>
-      </property>
-      <property name="timeline"
-                version="0.2"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">A #ClutterTimeline instance used to drive the alpha function.</doc>
-        <type name="Timeline"/>
-      </property>
-      <field name="parent">
-        <type name="GObject.InitiallyUnowned" c:type="GInitiallyUnowned"/>
-      </field>
-      <field name="priv">
-        <type name="AlphaPrivate" c:type="ClutterAlphaPrivate*"/>
-      </field>
-    </class>
-    <record name="AlphaClass"
-            c:type="ClutterAlphaClass"
-            glib:is-gtype-struct-for="Alpha"
-            version="0.2">
-      <doc xml:whitespace="preserve">Base class for #ClutterAlpha</doc>
-      <field name="parent_class">
-        <type name="GObject.InitiallyUnownedClass"
-              c:type="GInitiallyUnownedClass"/>
-      </field>
-      <field name="_clutter_alpha_1" introspectable="0">
-        <callback name="_clutter_alpha_1">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-      <field name="_clutter_alpha_2" introspectable="0">
-        <callback name="_clutter_alpha_2">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-      <field name="_clutter_alpha_3" introspectable="0">
-        <callback name="_clutter_alpha_3">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-      <field name="_clutter_alpha_4" introspectable="0">
-        <callback name="_clutter_alpha_4">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-      <field name="_clutter_alpha_5" introspectable="0">
-        <callback name="_clutter_alpha_5">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-    </record>
-    <callback name="AlphaFunc" c:type="ClutterAlphaFunc" version="0.2">
-      <doc xml:whitespace="preserve">A function returning a value depending on the position of
-the #ClutterTimeline bound to @alpha.</doc>
-      <return-value transfer-ownership="none">
-        <doc xml:whitespace="preserve">a floating point value</doc>
-        <type name="gdouble" c:type="gdouble"/>
-      </return-value>
-      <parameters>
-        <parameter name="alpha" transfer-ownership="none">
-          <doc xml:whitespace="preserve">a #ClutterAlpha</doc>
-          <type name="Alpha" c:type="ClutterAlpha*"/>
-        </parameter>
-        <parameter name="user_data" transfer-ownership="none" closure="1">
-          <doc xml:whitespace="preserve">user data passed to the function</doc>
-          <type name="gpointer" c:type="gpointer"/>
-        </parameter>
-      </parameters>
-    </callback>
-    <record name="AlphaPrivate" c:type="ClutterAlphaPrivate" disguised="1">
-    </record>
-    <constant name="Alt_L" value="65513">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Alt_R" value="65514">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Amacron" value="960">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <interface name="Animatable"
-               c:symbol-prefix="animatable"
-               c:type="ClutterAnimatable"
-               version="1.0"
-               glib:type-name="ClutterAnimatable"
-               glib:get-type="clutter_animatable_get_type"
-               glib:type-struct="AnimatableIface">
-      <doc xml:whitespace="preserve">#ClutterAnimatable is an opaque structure whose members cannot be directly
-accessed</doc>
-      <virtual-method name="animate_property"
-                      invoker="animate_property"
-                      version="1.0">
-        <doc xml:whitespace="preserve">Calls the animate_property() virtual function for @animatable.
-The @initial_value and @final_value #GValue&lt;!-- --&gt;s must contain
-the same type; @value must have been initialized to the same
-type of @initial_value and @final_value.
-All implementation of the #ClutterAnimatable interface must
-implement this function.
-be applied to the #ClutterAnimatable, and %FALSE otherwise</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">%TRUE if the value has been validated and can</doc>
-          <type name="gboolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="animation" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #ClutterAnimation</doc>
-            <type name="Animation" c:type="ClutterAnimation*"/>
-          </parameter>
-          <parameter name="property_name" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the name of the animated property</doc>
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="initial_value" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the initial value of the animation interval</doc>
-            <type name="GObject.Value" c:type="GValue*"/>
-          </parameter>
-          <parameter name="final_value" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the final value of the animation interval</doc>
-            <type name="GObject.Value" c:type="GValue*"/>
-          </parameter>
-          <parameter name="progress" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the progress factor</doc>
-            <type name="gdouble" c:type="gdouble"/>
-          </parameter>
-          <parameter name="value" transfer-ownership="none">
-            <doc xml:whitespace="preserve">return location for the animation value</doc>
-            <type name="GObject.Value" c:type="GValue*"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <virtual-method name="find_property"
-                      invoker="find_property"
-                      version="1.4">
-        <doc xml:whitespace="preserve">Finds the #GParamSpec for @property_name
-or %NULL</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">The #GParamSpec for the given property</doc>
-          <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
-        </return-value>
-        <parameters>
-          <parameter name="property_name" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the name of the animatable property to find</doc>
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <virtual-method name="get_initial_state"
-                      invoker="get_initial_state"
-                      version="1.4">
-        <doc xml:whitespace="preserve">Retrieves the current state of @property_name and sets @value with it</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="property_name" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the name of the animatable property to retrieve</doc>
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="value" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #GValue initialized to the type of the property to retrieve</doc>
-            <type name="GObject.Value" c:type="GValue*"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <virtual-method name="set_final_state"
-                      invoker="set_final_state"
-                      version="1.4">
-        <doc xml:whitespace="preserve">Sets the current state of @property_name to @value</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="property_name" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the name of the animatable property to set</doc>
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="value" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the value of the animatable property to set</doc>
-            <type name="GObject.Value" c:type="GValue*"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <method name="animate_property"
-              c:identifier="clutter_animatable_animate_property"
-              version="1.0">
-        <doc xml:whitespace="preserve">Calls the animate_property() virtual function for @animatable.
-The @initial_value and @final_value #GValue&lt;!-- --&gt;s must contain
-the same type; @value must have been initialized to the same
-type of @initial_value and @final_value.
-All implementation of the #ClutterAnimatable interface must
-implement this function.
-be applied to the #ClutterAnimatable, and %FALSE otherwise</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">%TRUE if the value has been validated and can</doc>
-          <type name="gboolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="animation" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #ClutterAnimation</doc>
-            <type name="Animation" c:type="ClutterAnimation*"/>
-          </parameter>
-          <parameter name="property_name" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the name of the animated property</doc>
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="initial_value" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the initial value of the animation interval</doc>
-            <type name="GObject.Value" c:type="GValue*"/>
-          </parameter>
-          <parameter name="final_value" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the final value of the animation interval</doc>
-            <type name="GObject.Value" c:type="GValue*"/>
-          </parameter>
-          <parameter name="progress" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the progress factor</doc>
-            <type name="gdouble" c:type="gdouble"/>
-          </parameter>
-          <parameter name="value" transfer-ownership="none">
-            <doc xml:whitespace="preserve">return location for the animation value</doc>
-            <type name="GObject.Value" c:type="GValue*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="find_property"
-              c:identifier="clutter_animatable_find_property"
-              version="1.4">
-        <doc xml:whitespace="preserve">Finds the #GParamSpec for @property_name
-or %NULL</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">The #GParamSpec for the given property</doc>
-          <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
-        </return-value>
-        <parameters>
-          <parameter name="property_name" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the name of the animatable property to find</doc>
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_initial_state"
-              c:identifier="clutter_animatable_get_initial_state"
-              version="1.4">
-        <doc xml:whitespace="preserve">Retrieves the current state of @property_name and sets @value with it</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="property_name" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the name of the animatable property to retrieve</doc>
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="value" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #GValue initialized to the type of the property to retrieve</doc>
-            <type name="GObject.Value" c:type="GValue*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_final_state"
-              c:identifier="clutter_animatable_set_final_state"
-              version="1.4">
-        <doc xml:whitespace="preserve">Sets the current state of @property_name to @value</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="property_name" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the name of the animatable property to set</doc>
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="value" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the value of the animatable property to set</doc>
-            <type name="GObject.Value" c:type="GValue*"/>
-          </parameter>
-        </parameters>
-      </method>
-    </interface>
-    <record name="AnimatableIface"
-            c:type="ClutterAnimatableIface"
-            glib:is-gtype-struct-for="Animatable"
-            version="1.0">
-      <doc xml:whitespace="preserve">Base interface for #GObject&lt;!-- --&gt;s that can be animated by a
-a #ClutterAnimation.</doc>
-      <field name="parent_iface">
-        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
-      </field>
-      <field name="animate_property">
-        <callback name="animate_property">
-          <return-value transfer-ownership="none">
-            <doc xml:whitespace="preserve">%TRUE if the value has been validated and can</doc>
-            <type name="gboolean" c:type="gboolean"/>
-          </return-value>
-          <parameters>
-            <parameter name="animatable" transfer-ownership="none">
-              <type name="Animatable" c:type="ClutterAnimatable*"/>
-            </parameter>
-            <parameter name="animation" transfer-ownership="none">
-              <doc xml:whitespace="preserve">a #ClutterAnimation</doc>
-              <type name="Animation" c:type="ClutterAnimation*"/>
-            </parameter>
-            <parameter name="property_name" transfer-ownership="none">
-              <doc xml:whitespace="preserve">the name of the animated property</doc>
-              <type name="utf8" c:type="gchar*"/>
-            </parameter>
-            <parameter name="initial_value" transfer-ownership="none">
-              <doc xml:whitespace="preserve">the initial value of the animation interval</doc>
-              <type name="GObject.Value" c:type="GValue*"/>
-            </parameter>
-            <parameter name="final_value" transfer-ownership="none">
-              <doc xml:whitespace="preserve">the final value of the animation interval</doc>
-              <type name="GObject.Value" c:type="GValue*"/>
-            </parameter>
-            <parameter name="progress" transfer-ownership="none">
-              <doc xml:whitespace="preserve">the progress factor</doc>
-              <type name="gdouble" c:type="gdouble"/>
-            </parameter>
-            <parameter name="value" transfer-ownership="none">
-              <doc xml:whitespace="preserve">return location for the animation value</doc>
-              <type name="GObject.Value" c:type="GValue*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="find_property">
-        <callback name="find_property">
-          <return-value transfer-ownership="none">
-            <doc xml:whitespace="preserve">The #GParamSpec for the given property</doc>
-            <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
-          </return-value>
-          <parameters>
-            <parameter name="animatable" transfer-ownership="none">
-              <type name="Animatable" c:type="ClutterAnimatable*"/>
-            </parameter>
-            <parameter name="property_name" transfer-ownership="none">
-              <doc xml:whitespace="preserve">the name of the animatable property to find</doc>
-              <type name="utf8" c:type="gchar*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="get_initial_state">
-        <callback name="get_initial_state">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="animatable" transfer-ownership="none">
-              <type name="Animatable" c:type="ClutterAnimatable*"/>
-            </parameter>
-            <parameter name="property_name" transfer-ownership="none">
-              <doc xml:whitespace="preserve">the name of the animatable property to retrieve</doc>
-              <type name="utf8" c:type="gchar*"/>
-            </parameter>
-            <parameter name="value" transfer-ownership="none">
-              <doc xml:whitespace="preserve">a #GValue initialized to the type of the property to retrieve</doc>
-              <type name="GObject.Value" c:type="GValue*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="set_final_state">
-        <callback name="set_final_state">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="animatable" transfer-ownership="none">
-              <type name="Animatable" c:type="ClutterAnimatable*"/>
-            </parameter>
-            <parameter name="property_name" transfer-ownership="none">
-              <doc xml:whitespace="preserve">the name of the animatable property to set</doc>
-              <type name="utf8" c:type="gchar*"/>
-            </parameter>
-            <parameter name="value" transfer-ownership="none">
-              <doc xml:whitespace="preserve">the value of the animatable property to set</doc>
-              <type name="GObject.Value" c:type="GValue*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-    </record>
-    <class name="Animation"
-           c:symbol-prefix="animation"
-           c:type="ClutterAnimation"
-           version="1.0"
-           parent="GObject.Object"
-           glib:type-name="ClutterAnimation"
-           glib:get-type="clutter_animation_get_type"
-           glib:type-struct="AnimationClass">
-      <doc xml:whitespace="preserve">The #ClutterAnimation structure contains only private data and should
-be accessed using the provided functions.</doc>
-      <implements name="Scriptable"/>
-      <constructor name="new"
-                   c:identifier="clutter_animation_new"
-                   version="1.0">
-        <doc xml:whitespace="preserve">Creates a new #ClutterAnimation instance. You should set the
-#GObject to be animated using clutter_animation_set_object(),
-set the duration with clutter_animation_set_duration() and the
-easing mode using clutter_animation_set_mode().
-Use clutter_animation_bind() or clutter_animation_bind_interval()
-to define the properties to be animated. The interval and the
-animated properties can be updated at runtime.
-The clutter_actor_animate() and relative family of functions provide
-an easy way to animate a #ClutterActor and automatically manage the
-lifetime of a #ClutterAnimation instance, so you should consider using
-those functions instead of manually creating an animation.
-to release the associated resources</doc>
-        <return-value transfer-ownership="full">
-          <doc xml:whitespace="preserve">the newly created #ClutterAnimation. Use g_object_unref()</doc>
-          <type name="Animation" c:type="ClutterAnimation*"/>
-        </return-value>
-      </constructor>
-      <method name="bind" c:identifier="clutter_animation_bind" version="1.0">
-        <doc xml:whitespace="preserve">Adds a single property with name @property_name to the
-animation @animation.  For more information about animations,
-see clutter_actor_animate().
-This method returns the animation primarily to make chained
-calls convenient in language bindings.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">The animation itself.</doc>
-          <type name="Animation" c:type="ClutterAnimation*"/>
-        </return-value>
-        <parameters>
-          <parameter name="property_name" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the property to control</doc>
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="final" transfer-ownership="none">
-            <doc xml:whitespace="preserve">The final value of the property</doc>
-            <type name="GObject.Value" c:type="GValue*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="bind_interval"
-              c:identifier="clutter_animation_bind_interval"
-              version="1.0">
-        <doc xml:whitespace="preserve">Binds @interval to the @property_name of the #GObject
-attached to @animation. The #ClutterAnimation will take
-ownership of the passed #ClutterInterval.  For more information
-about animations, see clutter_actor_animate().
-If you need to update the interval instance use
-clutter_animation_update_property() instead.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">The animation itself.</doc>
-          <type name="Animation" c:type="ClutterAnimation*"/>
-        </return-value>
-        <parameters>
-          <parameter name="property_name" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the property to control</doc>
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="interval" transfer-ownership="full">
-            <doc xml:whitespace="preserve">a #ClutterInterval</doc>
-            <type name="Interval" c:type="ClutterInterval*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="completed"
-              c:identifier="clutter_animation_completed"
-              version="1.0">
-        <doc xml:whitespace="preserve">Emits the ::completed signal on @animation
-When using this function with a #ClutterAnimation created
-by the clutter_actor_animate() family of functions, @animation
-will be unreferenced and it will not be valid anymore,
-unless g_object_ref() was called before calling this function
-or unless a reference was taken inside a handler for the
-#ClutterAnimation::completed signal</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </method>
-      <method name="get_alpha"
-              c:identifier="clutter_animation_get_alpha"
-              version="1.0">
-        <doc xml:whitespace="preserve">Retrieves the #ClutterAlpha used by @animation.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the alpha object used by the animation</doc>
-          <type name="Alpha" c:type="ClutterAlpha*"/>
-        </return-value>
-      </method>
-      <method name="get_duration"
-              c:identifier="clutter_animation_get_duration"
-              version="1.0">
-        <doc xml:whitespace="preserve">Retrieves the duration of @animation, in milliseconds.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the duration of the animation</doc>
-          <type name="guint" c:type="guint"/>
-        </return-value>
-      </method>
-      <method name="get_interval"
-              c:identifier="clutter_animation_get_interval"
-              version="1.0">
-        <doc xml:whitespace="preserve">Retrieves the #ClutterInterval associated to @property_name
-inside @animation.
-property with the same name was found. The returned interval is
-owned by the #ClutterAnimation and should not be unreferenced</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">a #ClutterInterval or %NULL if no</doc>
-          <type name="Interval" c:type="ClutterInterval*"/>
-        </return-value>
-        <parameters>
-          <parameter name="property_name" transfer-ownership="none">
-            <doc xml:whitespace="preserve">name of the property</doc>
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_loop"
-              c:identifier="clutter_animation_get_loop"
-              version="1.0">
-        <doc xml:whitespace="preserve">Retrieves whether @animation is looping.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">%TRUE if the animation is looping</doc>
-          <type name="gboolean" c:type="gboolean"/>
-        </return-value>
-      </method>
-      <method name="get_mode"
-              c:identifier="clutter_animation_get_mode"
-              version="1.0">
-        <doc xml:whitespace="preserve">Retrieves the animation mode of @animation, as set by
-clutter_animation_set_mode().</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the mode for the animation</doc>
-          <type name="gulong" c:type="gulong"/>
-        </return-value>
-      </method>
-      <method name="get_object"
-              c:identifier="clutter_animation_get_object"
-              version="1.0">
-        <doc xml:whitespace="preserve">Retrieves the #GObject attached to @animation.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">a #GObject</doc>
-          <type name="GObject.Object" c:type="GObject*"/>
-        </return-value>
-      </method>
-      <method name="get_timeline"
-              c:identifier="clutter_animation_get_timeline"
-              version="1.0">
-        <doc xml:whitespace="preserve">Retrieves the #ClutterTimeline used by @animation</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the timeline used by the animation</doc>
-          <type name="Timeline" c:type="ClutterTimeline*"/>
-        </return-value>
-      </method>
-      <method name="has_property"
-              c:identifier="clutter_animation_has_property"
-              version="1.0">
-        <doc xml:whitespace="preserve">Checks whether @animation is controlling @property_name.
-#ClutterAnimation, %FALSE otherwise</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">%TRUE if the property is animated by the</doc>
-          <type name="gboolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="property_name" transfer-ownership="none">
-            <doc xml:whitespace="preserve">name of the property</doc>
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_alpha"
-              c:identifier="clutter_animation_set_alpha"
-              version="1.0">
-        <doc xml:whitespace="preserve">Sets @alpha as the #ClutterAlpha used by @animation.
-If @alpha is not %NULL, the #ClutterAnimation will take ownership
-of the #ClutterAlpha instance.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="alpha" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #ClutterAlpha, or %NULL to unset the current #ClutterAlpha</doc>
-            <type name="Alpha" c:type="ClutterAlpha*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_duration"
-              c:identifier="clutter_animation_set_duration"
-              version="1.0">
-        <doc xml:whitespace="preserve">Sets the duration of @animation in milliseconds.
-This function will set #ClutterAnimation:alpha and
-#ClutterAnimation:timeline if needed.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="msecs" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the duration in milliseconds</doc>
-            <type name="guint" c:type="guint"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_loop"
-              c:identifier="clutter_animation_set_loop"
-              version="1.0">
-        <doc xml:whitespace="preserve">Sets whether @animation should loop over itself once finished.
-A looping #ClutterAnimation will not emit the #ClutterAnimation::completed
-signal when finished.
-This function will set #ClutterAnimation:alpha and
-#ClutterAnimation:timeline if needed.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="loop" transfer-ownership="none">
-            <doc xml:whitespace="preserve">%TRUE if the animation should loop</doc>
-            <type name="gboolean" c:type="gboolean"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_mode"
-              c:identifier="clutter_animation_set_mode"
-              version="1.0">
-        <doc xml:whitespace="preserve">Sets the animation @mode of @animation. The animation @mode is
-a logical id, either coming from the #ClutterAnimationMode enumeration
-or the return value of clutter_alpha_register_func().
-This function will also set #ClutterAnimation:alpha if needed.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="mode" transfer-ownership="none">
-            <doc xml:whitespace="preserve">an animation mode logical id</doc>
-            <type name="gulong" c:type="gulong"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_object"
-              c:identifier="clutter_animation_set_object"
-              version="1.0">
-        <doc xml:whitespace="preserve">Attaches @animation to @object. The #ClutterAnimation will take a
-reference on @object.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="object" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #GObject</doc>
-            <type name="GObject.Object" c:type="GObject*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_timeline"
-              c:identifier="clutter_animation_set_timeline"
-              version="1.0">
-        <doc xml:whitespace="preserve">Sets the #ClutterTimeline used by @animation.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="timeline" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #ClutterTimeline, or %NULL to unset the current #ClutterTimeline</doc>
-            <type name="Timeline" c:type="ClutterTimeline*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="unbind_property"
-              c:identifier="clutter_animation_unbind_property"
-              version="1.0">
-        <doc xml:whitespace="preserve">Removes @property_name from the list of animated properties.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="property_name" transfer-ownership="none">
-            <doc xml:whitespace="preserve">name of the property</doc>
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="update"
-              c:identifier="clutter_animation_update"
-              version="1.0">
-        <doc xml:whitespace="preserve">Updates the @final value of the interval for @property_name</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">The animation itself.</doc>
-          <type name="Animation" c:type="ClutterAnimation*"/>
-        </return-value>
-        <parameters>
-          <parameter name="property_name" transfer-ownership="none">
-            <doc xml:whitespace="preserve">name of the property</doc>
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="final" transfer-ownership="none">
-            <doc xml:whitespace="preserve">The final value of the property</doc>
-            <type name="GObject.Value" c:type="GValue*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="update_interval"
-              c:identifier="clutter_animation_update_interval"
-              version="1.0">
-        <doc xml:whitespace="preserve">Changes the @interval for @property_name. The #ClutterAnimation
-will take ownership of the passed #ClutterInterval.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="property_name" transfer-ownership="none">
-            <doc xml:whitespace="preserve">name of the property</doc>
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="interval" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #ClutterInterval</doc>
-            <type name="Interval" c:type="ClutterInterval*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <property name="alpha"
-                version="1.0"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">The #ClutterAlpha used by the animation.</doc>
-        <type name="Alpha"/>
-      </property>
-      <property name="duration"
-                version="1.0"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">The duration of the animation, expressed in milliseconds.</doc>
-        <type name="guint"/>
-      </property>
-      <property name="loop"
-                version="1.0"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">Whether the animation should loop.</doc>
-        <type name="gboolean"/>
-      </property>
-      <property name="mode"
-                version="1.0"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">The animation mode, either a value from #ClutterAnimationMode
-or a value returned by clutter_alpha_register_func(). The
-default value is %CLUTTER_LINEAR.</doc>
-        <type name="gulong"/>
-      </property>
-      <property name="object"
-                version="1.0"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">The #GObject to which the animation applies.</doc>
-        <type name="GObject.Object"/>
-      </property>
-      <property name="timeline"
-                version="1.0"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">The #ClutterTimeline used by the animation.</doc>
-        <type name="Timeline"/>
-      </property>
-      <field name="parent_instance">
-        <type name="GObject.Object" c:type="GObject"/>
-      </field>
-      <field name="priv">
-        <type name="AnimationPrivate" c:type="ClutterAnimationPrivate*"/>
-      </field>
-      <glib:signal name="completed" version="1.0">
-        <doc xml:whitespace="preserve">The ::completed signal is emitted once the animation has
-been completed.
-The @animation instance is guaranteed to be valid for the entire
-duration of the signal emission chain.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none"/>
-        </return-value>
-      </glib:signal>
-      <glib:signal name="started" version="1.0">
-        <doc xml:whitespace="preserve">The ::started signal is emitted once the animation has been
-started</doc>
-        <return-value transfer-ownership="none">
-          <type name="none"/>
-        </return-value>
-      </glib:signal>
-    </class>
-    <record name="AnimationClass"
-            c:type="ClutterAnimationClass"
-            glib:is-gtype-struct-for="Animation"
-            version="1.0">
-      <doc xml:whitespace="preserve">The #ClutterAnimationClass structure contains only private data and
-should be accessed using the provided functions.</doc>
-      <field name="parent_class">
-        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
-      </field>
-      <field name="started">
-        <callback name="started">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="animation" transfer-ownership="none">
-              <type name="Animation" c:type="ClutterAnimation*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="completed">
-        <callback name="completed">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="animation" transfer-ownership="none">
-              <type name="Animation" c:type="ClutterAnimation*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="_clutter_reserved1" introspectable="0">
-        <callback name="_clutter_reserved1">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-      <field name="_clutter_reserved2" introspectable="0">
-        <callback name="_clutter_reserved2">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-      <field name="_clutter_reserved3" introspectable="0">
-        <callback name="_clutter_reserved3">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-      <field name="_clutter_reserved4" introspectable="0">
-        <callback name="_clutter_reserved4">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-      <field name="_clutter_reserved5" introspectable="0">
-        <callback name="_clutter_reserved5">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-      <field name="_clutter_reserved6" introspectable="0">
-        <callback name="_clutter_reserved6">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-      <field name="_clutter_reserved7" introspectable="0">
-        <callback name="_clutter_reserved7">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-      <field name="_clutter_reserved8" introspectable="0">
-        <callback name="_clutter_reserved8">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-    </record>
-    <enumeration name="AnimationMode"
-                 version="1.0"
-                 glib:type-name="ClutterAnimationMode"
-                 glib:get-type="clutter_animation_mode_get_type"
-                 c:type="ClutterAnimationMode">
-      <doc xml:whitespace="preserve">The animation modes used by #ClutterAlpha and #ClutterAnimation. This
-enumeration can be expanded in later versions of Clutter. See the
-#ClutterAlpha documentation for a graph of all the animation modes.
-Every global alpha function registered using clutter_alpha_register_func()
-or clutter_alpha_register_closure() will have a logical id greater than
-%CLUTTER_ANIMATION_LAST.</doc>
-      <member name="custom_mode"
-              value="0"
-              c:identifier="CLUTTER_CUSTOM_MODE"
-              glib:nick="custom-mode"/>
-      <member name="linear"
-              value="1"
-              c:identifier="CLUTTER_LINEAR"
-              glib:nick="linear"/>
-      <member name="ease_in_quad"
-              value="2"
-              c:identifier="CLUTTER_EASE_IN_QUAD"
-              glib:nick="ease-in-quad"/>
-      <member name="ease_out_quad"
-              value="3"
-              c:identifier="CLUTTER_EASE_OUT_QUAD"
-              glib:nick="ease-out-quad"/>
-      <member name="ease_in_out_quad"
-              value="4"
-              c:identifier="CLUTTER_EASE_IN_OUT_QUAD"
-              glib:nick="ease-in-out-quad"/>
-      <member name="ease_in_cubic"
-              value="5"
-              c:identifier="CLUTTER_EASE_IN_CUBIC"
-              glib:nick="ease-in-cubic"/>
-      <member name="ease_out_cubic"
-              value="6"
-              c:identifier="CLUTTER_EASE_OUT_CUBIC"
-              glib:nick="ease-out-cubic"/>
-      <member name="ease_in_out_cubic"
-              value="7"
-              c:identifier="CLUTTER_EASE_IN_OUT_CUBIC"
-              glib:nick="ease-in-out-cubic"/>
-      <member name="ease_in_quart"
-              value="8"
-              c:identifier="CLUTTER_EASE_IN_QUART"
-              glib:nick="ease-in-quart"/>
-      <member name="ease_out_quart"
-              value="9"
-              c:identifier="CLUTTER_EASE_OUT_QUART"
-              glib:nick="ease-out-quart"/>
-      <member name="ease_in_out_quart"
-              value="10"
-              c:identifier="CLUTTER_EASE_IN_OUT_QUART"
-              glib:nick="ease-in-out-quart"/>
-      <member name="ease_in_quint"
-              value="11"
-              c:identifier="CLUTTER_EASE_IN_QUINT"
-              glib:nick="ease-in-quint"/>
-      <member name="ease_out_quint"
-              value="12"
-              c:identifier="CLUTTER_EASE_OUT_QUINT"
-              glib:nick="ease-out-quint"/>
-      <member name="ease_in_out_quint"
-              value="13"
-              c:identifier="CLUTTER_EASE_IN_OUT_QUINT"
-              glib:nick="ease-in-out-quint"/>
-      <member name="ease_in_sine"
-              value="14"
-              c:identifier="CLUTTER_EASE_IN_SINE"
-              glib:nick="ease-in-sine"/>
-      <member name="ease_out_sine"
-              value="15"
-              c:identifier="CLUTTER_EASE_OUT_SINE"
-              glib:nick="ease-out-sine"/>
-      <member name="ease_in_out_sine"
-              value="16"
-              c:identifier="CLUTTER_EASE_IN_OUT_SINE"
-              glib:nick="ease-in-out-sine"/>
-      <member name="ease_in_expo"
-              value="17"
-              c:identifier="CLUTTER_EASE_IN_EXPO"
-              glib:nick="ease-in-expo"/>
-      <member name="ease_out_expo"
-              value="18"
-              c:identifier="CLUTTER_EASE_OUT_EXPO"
-              glib:nick="ease-out-expo"/>
-      <member name="ease_in_out_expo"
-              value="19"
-              c:identifier="CLUTTER_EASE_IN_OUT_EXPO"
-              glib:nick="ease-in-out-expo"/>
-      <member name="ease_in_circ"
-              value="20"
-              c:identifier="CLUTTER_EASE_IN_CIRC"
-              glib:nick="ease-in-circ"/>
-      <member name="ease_out_circ"
-              value="21"
-              c:identifier="CLUTTER_EASE_OUT_CIRC"
-              glib:nick="ease-out-circ"/>
-      <member name="ease_in_out_circ"
-              value="22"
-              c:identifier="CLUTTER_EASE_IN_OUT_CIRC"
-              glib:nick="ease-in-out-circ"/>
-      <member name="ease_in_elastic"
-              value="23"
-              c:identifier="CLUTTER_EASE_IN_ELASTIC"
-              glib:nick="ease-in-elastic"/>
-      <member name="ease_out_elastic"
-              value="24"
-              c:identifier="CLUTTER_EASE_OUT_ELASTIC"
-              glib:nick="ease-out-elastic"/>
-      <member name="ease_in_out_elastic"
-              value="25"
-              c:identifier="CLUTTER_EASE_IN_OUT_ELASTIC"
-              glib:nick="ease-in-out-elastic"/>
-      <member name="ease_in_back"
-              value="26"
-              c:identifier="CLUTTER_EASE_IN_BACK"
-              glib:nick="ease-in-back"/>
-      <member name="ease_out_back"
-              value="27"
-              c:identifier="CLUTTER_EASE_OUT_BACK"
-              glib:nick="ease-out-back"/>
-      <member name="ease_in_out_back"
-              value="28"
-              c:identifier="CLUTTER_EASE_IN_OUT_BACK"
-              glib:nick="ease-in-out-back"/>
-      <member name="ease_in_bounce"
-              value="29"
-              c:identifier="CLUTTER_EASE_IN_BOUNCE"
-              glib:nick="ease-in-bounce"/>
-      <member name="ease_out_bounce"
-              value="30"
-              c:identifier="CLUTTER_EASE_OUT_BOUNCE"
-              glib:nick="ease-out-bounce"/>
-      <member name="ease_in_out_bounce"
-              value="31"
-              c:identifier="CLUTTER_EASE_IN_OUT_BOUNCE"
-              glib:nick="ease-in-out-bounce"/>
-      <member name="animation_last"
-              value="32"
-              c:identifier="CLUTTER_ANIMATION_LAST"
-              glib:nick="animation-last"/>
-    </enumeration>
-    <record name="AnimationPrivate"
-            c:type="ClutterAnimationPrivate"
-            disguised="1">
-    </record>
-    <class name="Animator"
-           c:symbol-prefix="animator"
-           c:type="ClutterAnimator"
-           version="1.2"
-           parent="GObject.Object"
-           glib:type-name="ClutterAnimator"
-           glib:get-type="clutter_animator_get_type"
-           glib:type-struct="AnimatorClass">
-      <doc xml:whitespace="preserve">The #ClutterAnimator structure contains only private data and
-should be accessed using the provided API</doc>
-      <implements name="Scriptable"/>
-      <constructor name="new"
-                   c:identifier="clutter_animator_new"
-                   version="1.2">
-        <doc xml:whitespace="preserve">Creates a new #ClutterAnimator instance</doc>
-        <return-value transfer-ownership="full">
-          <doc xml:whitespace="preserve">a new #ClutterAnimator.</doc>
-          <type name="Animator" c:type="ClutterAnimator*"/>
-        </return-value>
-      </constructor>
-      <method name="compute_value"
-              c:identifier="clutter_animator_compute_value"
-              version="1.2">
-        <doc xml:whitespace="preserve">Compute the value for a managed property at a given progress.
-If the property is an ease-in property, the current value of the property
-on the object will be used as the starting point for computation.
-an error occurs or the progress is before any of the keys) %FALSE is
-returned and the #GValue is left untouched</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">%TRUE if the computation yields has a value, otherwise (when</doc>
-          <type name="gboolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="object" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #GObject</doc>
-            <type name="GObject.Object" c:type="GObject*"/>
-          </parameter>
-          <parameter name="property_name" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the name of the property on object to check</doc>
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="progress" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a value between 0.0 and 1.0</doc>
-            <type name="gdouble" c:type="gdouble"/>
-          </parameter>
-          <parameter name="value" transfer-ownership="none">
-            <doc xml:whitespace="preserve">an initialized value to store the computed result</doc>
-            <type name="GObject.Value" c:type="GValue*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_duration"
-              c:identifier="clutter_animator_get_duration"
-              version="1.2">
-        <doc xml:whitespace="preserve">Retrieves the current duration of an animator</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the duration of the animation, in milliseconds</doc>
-          <type name="guint" c:type="guint"/>
-        </return-value>
-      </method>
-      <method name="get_keys"
-              c:identifier="clutter_animator_get_keys"
-              version="1.2">
-        <doc xml:whitespace="preserve">Returns a list of pointers to opaque structures with accessor functions
-that describe the keys added to an animator.
-list of #ClutterAnimatorKey&lt;!-- --&gt;s; the contents of the list are owned
-by the #ClutterAnimator, but you should free the returned list when done,
-using g_list_free()</doc>
-        <return-value transfer-ownership="container">
-          <doc xml:whitespace="preserve">a</doc>
-          <type name="GLib.List" c:type="GList*">
-            <type name="AnimatorKey"/>
-          </type>
-        </return-value>
-        <parameters>
-          <parameter name="object" transfer-ownership="none" allow-none="1">
-            <doc xml:whitespace="preserve">a #GObject to search for, or %NULL for all objects</doc>
-            <type name="GObject.Object" c:type="GObject*"/>
-          </parameter>
-          <parameter name="property_name"
-                     transfer-ownership="none"
-                     allow-none="1">
-            <doc xml:whitespace="preserve">a specific property name to query for, or %NULL for all properties</doc>
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="progress" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a specific progress to search for, or a negative value for all progresses</doc>
-            <type name="gdouble" c:type="gdouble"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_timeline"
-              c:identifier="clutter_animator_get_timeline"
-              version="1.2">
-        <doc xml:whitespace="preserve">Get the timeline hooked up for driving the #ClutterAnimator</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the #ClutterTimeline that drives the animator</doc>
-          <type name="Timeline" c:type="ClutterTimeline*"/>
-        </return-value>
-      </method>
-      <method name="property_get_ease_in"
-              c:identifier="clutter_animator_property_get_ease_in"
-              version="1.2">
-        <doc xml:whitespace="preserve">Checks if a property value is to be eased into the animation.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">%TRUE if the property is eased in</doc>
-          <type name="gboolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="object" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #GObject</doc>
-            <type name="GObject.Object" c:type="GObject*"/>
-          </parameter>
-          <parameter name="property_name" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the name of a property on object</doc>
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="property_get_interpolation"
-              c:identifier="clutter_animator_property_get_interpolation"
-              version="1.2">
-        <doc xml:whitespace="preserve">Get the interpolation used by animator for a property on a particular
-object.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">a ClutterInterpolation value.</doc>
-          <type name="Interpolation" c:type="ClutterInterpolation"/>
-        </return-value>
-        <parameters>
-          <parameter name="object" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #GObject</doc>
-            <type name="GObject.Object" c:type="GObject*"/>
-          </parameter>
-          <parameter name="property_name" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the name of a property on object</doc>
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="property_set_ease_in"
-              c:identifier="clutter_animator_property_set_ease_in"
-              version="1.2">
-        <doc xml:whitespace="preserve">Sets whether a property value is to be eased into the animation.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="object" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #GObject</doc>
-            <type name="GObject.Object" c:type="GObject*"/>
-          </parameter>
-          <parameter name="property_name" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the name of a property on object</doc>
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="ease_in" transfer-ownership="none">
-            <doc xml:whitespace="preserve">we are going to be easing in this property</doc>
-            <type name="gboolean" c:type="gboolean"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="property_set_interpolation"
-              c:identifier="clutter_animator_property_set_interpolation"
-              version="1.2">
-        <doc xml:whitespace="preserve">Set the interpolation method to use, %CLUTTER_INTERPOLATION_LINEAR causes
-the values to linearly change between the values, and
-%CLUTTER_INTERPOLATION_CUBIC causes the values to smoothly change between
-the values.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="object" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #GObject</doc>
-            <type name="GObject.Object" c:type="GObject*"/>
-          </parameter>
-          <parameter name="property_name" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the name of a property on object</doc>
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="interpolation" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the #ClutterInterpolation to use</doc>
-            <type name="Interpolation" c:type="ClutterInterpolation"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="remove_key"
-              c:identifier="clutter_animator_remove_key"
-              version="1.2">
-        <doc xml:whitespace="preserve">Removes all keys matching the conditions specificed in the arguments.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="object" transfer-ownership="none" allow-none="1">
-            <doc xml:whitespace="preserve">a #GObject to search for, or %NULL for all</doc>
-            <type name="GObject.Object" c:type="GObject*"/>
-          </parameter>
-          <parameter name="property_name"
-                     transfer-ownership="none"
-                     allow-none="1">
-            <doc xml:whitespace="preserve">a specific property name to query for, or %NULL for all</doc>
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="progress" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a specific progress to search for or a negative value for all</doc>
-            <type name="gdouble" c:type="gdouble"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set"
-              c:identifier="clutter_animator_set"
-              version="1.2"
-              introspectable="0">
-        <doc xml:whitespace="preserve">Adds multiple keys to a #ClutterAnimator, specifying the value a given
-property should have at a given progress of the animation. The mode
-specified is the mode used when going to this key from the previous key of
-the @property_name
-If a given (object, property, progress) tuple already exist the mode and
-value will be replaced with the new values.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="first_object" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #GObject</doc>
-            <type name="gpointer" c:type="gpointer"/>
-          </parameter>
-          <parameter name="first_property_name" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the property to specify a key for</doc>
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="first_mode" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the id of the alpha function to use</doc>
-            <type name="guint" c:type="guint"/>
-          </parameter>
-          <parameter name="first_progress" transfer-ownership="none">
-            <doc xml:whitespace="preserve">at which stage of the animation this value applies; the range is a normalized floating point value between 0 and 1</doc>
-            <type name="gdouble" c:type="gdouble"/>
-          </parameter>
-          <parameter transfer-ownership="none">
-            <varargs>
-            </varargs>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_duration"
-              c:identifier="clutter_animator_set_duration"
-              version="1.2">
-        <doc xml:whitespace="preserve">Runs the timeline of the #ClutterAnimator with a duration in msecs
-as specified.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="duration" transfer-ownership="none">
-            <doc xml:whitespace="preserve">milliseconds a run of the animator should last.</doc>
-            <type name="guint" c:type="guint"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_key"
-              c:identifier="clutter_animator_set_key"
-              version="1.2">
-        <doc xml:whitespace="preserve">Sets a single key in the #ClutterAnimator for the @property_name of</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">The animator instance</doc>
-          <type name="Animator" c:type="ClutterAnimator*"/>
-        </return-value>
-        <parameters>
-          <parameter name="object" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #GObject</doc>
-            <type name="GObject.Object" c:type="GObject*"/>
-          </parameter>
-          <parameter name="property_name" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the property to specify a key for</doc>
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="mode" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the id of the alpha function to use</doc>
-            <type name="guint" c:type="guint"/>
-          </parameter>
-          <parameter name="progress" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the normalized range at which stage of the animation this value applies</doc>
-            <type name="gdouble" c:type="gdouble"/>
-          </parameter>
-          <parameter name="value" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the value property_name should have at progress.</doc>
-            <type name="GObject.Value" c:type="GValue*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_timeline"
-              c:identifier="clutter_animator_set_timeline"
-              version="1.2">
-        <doc xml:whitespace="preserve">Sets an external timeline that will be used for driving the animation</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="timeline" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #ClutterTimeline</doc>
-            <type name="Timeline" c:type="ClutterTimeline*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="start" c:identifier="clutter_animator_start" version="1.2">
-        <doc xml:whitespace="preserve">Start the ClutterAnimator, this is a thin wrapper that rewinds
-and starts the animators current timeline.
-the animator. The returned timeline is owned by the #ClutterAnimator
-and it should not be unreferenced</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the #ClutterTimeline that drives</doc>
-          <type name="Timeline" c:type="ClutterTimeline*"/>
-        </return-value>
-      </method>
-      <property name="duration"
-                version="1.2"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">The duration of the #ClutterTimeline used by the #ClutterAnimator
-to drive the animation</doc>
-        <type name="guint"/>
-      </property>
-      <property name="timeline"
-                version="1.2"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">The #ClutterTimeline used by the #ClutterAnimator to drive the
-animation</doc>
-        <type name="Timeline"/>
-      </property>
-      <field name="parent_instance">
-        <type name="GObject.Object" c:type="GObject"/>
-      </field>
-      <field name="priv">
-        <type name="AnimatorPrivate" c:type="ClutterAnimatorPrivate*"/>
-      </field>
-    </class>
-    <record name="AnimatorClass"
-            c:type="ClutterAnimatorClass"
-            glib:is-gtype-struct-for="Animator"
-            version="1.2">
-      <doc xml:whitespace="preserve">The #ClutterAnimatorClass structure contains only private data</doc>
-      <field name="parent_class">
-        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
-      </field>
-      <field name="_padding_dummy">
-        <array zero-terminated="0" c:type="gpointer" fixed-size="16">
-          <type name="gpointer" c:type="gpointer"/>
-        </array>
-      </field>
-    </record>
-    <record name="AnimatorKey"
-            c:type="ClutterAnimatorKey"
-            version="1.2"
-            glib:type-name="ClutterAnimatorKey"
-            glib:get-type="clutter_animator_key_get_type"
-            c:symbol-prefix="animator_key">
-      <doc xml:whitespace="preserve">A key frame inside a #ClutterAnimator</doc>
-      <method name="get_mode"
-              c:identifier="clutter_animator_key_get_mode"
-              version="1.2">
-        <doc xml:whitespace="preserve">Retrieves the mode of a #ClutterAnimator key, for the first key of a
-property for an object this represents the whether the animation is
-open ended and or curved for the remainding keys for the property it
-represents the easing mode.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the mode of a #ClutterAnimatorKey</doc>
-          <type name="gulong" c:type="gulong"/>
-        </return-value>
-      </method>
-      <method name="get_object"
-              c:identifier="clutter_animator_key_get_object"
-              version="1.2">
-        <doc xml:whitespace="preserve">Retrieves the object a key applies to.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the object an animator_key exist for.</doc>
-          <type name="GObject.Object" c:type="GObject*"/>
-        </return-value>
-      </method>
-      <method name="get_progress"
-              c:identifier="clutter_animator_key_get_progress"
-              version="1.2">
-        <doc xml:whitespace="preserve">Retrieves the progress of an clutter_animator_key</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the progress defined for a #ClutterAnimator key.</doc>
-          <type name="gdouble" c:type="gdouble"/>
-        </return-value>
-      </method>
-      <method name="get_property_name"
-              c:identifier="clutter_animator_key_get_property_name"
-              version="1.2">
-        <doc xml:whitespace="preserve">Retrieves the name of the property a key applies to.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the name of the property an animator_key exist for.</doc>
-          <type name="utf8" c:type="gchar*"/>
-        </return-value>
-      </method>
-      <method name="get_property_type"
-              c:identifier="clutter_animator_key_get_property_type"
-              version="1.2">
-        <doc xml:whitespace="preserve">Retrieves the #GType of the property a key applies to
-You can use this type to initialize the #GValue to pass to
-clutter_animator_key_get_value()</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the #GType of the property</doc>
-          <type name="GType" c:type="GType"/>
-        </return-value>
-      </method>
-      <method name="get_value"
-              c:identifier="clutter_animator_key_get_value"
-              version="1.2">
-        <doc xml:whitespace="preserve">Retrieves a copy of the value for a #ClutterAnimatorKey.
-The passed in #GValue needs to be already initialized for the value
-type of the key or to a type that allow transformation from the value
-type of the key.
-Use g_value_unset() when done.
-%FALSE otherwise</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">%TRUE if the passed #GValue was successfully set, and</doc>
-          <type name="gboolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="value" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #GValue initialized with the correct type for the animator key</doc>
-            <type name="GObject.Value" c:type="GValue*"/>
-          </parameter>
-        </parameters>
-      </method>
-    </record>
-    <record name="AnimatorPrivate"
-            c:type="ClutterAnimatorPrivate"
-            disguised="1">
-    </record>
-    <record name="AnyEvent" c:type="ClutterAnyEvent" version="0.2">
-      <doc xml:whitespace="preserve">Common members for a #ClutterEvent</doc>
-      <field name="type" writable="1">
-        <type name="EventType" c:type="ClutterEventType"/>
-      </field>
-      <field name="time" writable="1">
-        <type name="guint32" c:type="guint32"/>
-      </field>
-      <field name="flags" writable="1">
-        <type name="EventFlags" c:type="ClutterEventFlags"/>
-      </field>
-      <field name="stage" writable="1">
-        <type name="Stage" c:type="ClutterStage*"/>
-      </field>
-      <field name="source" writable="1">
-        <type name="Actor" c:type="ClutterActor*"/>
-      </field>
-    </record>
-    <constant name="Aogonek" value="417">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="ApplicationLeft" value="269025104">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="ApplicationRight" value="269025105">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Arabic_0" value="16778848">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Arabic_1" value="16778849">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Arabic_2" value="16778850">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Arabic_3" value="16778851">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Arabic_4" value="16778852">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Arabic_5" value="16778853">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Arabic_6" value="16778854">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Arabic_7" value="16778855">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Arabic_8" value="16778856">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Arabic_9" value="16778857">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Arabic_ain" value="1497">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Arabic_alef" value="1479">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Arabic_alefmaksura" value="1513">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Arabic_beh" value="1480">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Arabic_comma" value="1452">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Arabic_dad" value="1494">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Arabic_dal" value="1487">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Arabic_damma" value="1519">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Arabic_dammatan" value="1516">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Arabic_ddal" value="16778888">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Arabic_farsi_yeh" value="16778956">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Arabic_fatha" value="1518">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Arabic_fathatan" value="1515">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Arabic_feh" value="1505">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Arabic_fullstop" value="16778964">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Arabic_gaf" value="16778927">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Arabic_ghain" value="1498">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Arabic_ha" value="1511">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Arabic_hah" value="1485">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Arabic_hamza" value="1473">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Arabic_hamza_above" value="16778836">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Arabic_hamza_below" value="16778837">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Arabic_hamzaonalef" value="1475">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Arabic_hamzaonwaw" value="1476">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Arabic_hamzaonyeh" value="1478">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Arabic_hamzaunderalef" value="1477">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Arabic_heh" value="1511">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Arabic_heh_doachashmee" value="16778942">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Arabic_heh_goal" value="16778945">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Arabic_jeem" value="1484">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Arabic_jeh" value="16778904">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Arabic_kaf" value="1507">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Arabic_kasra" value="1520">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Arabic_kasratan" value="1517">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Arabic_keheh" value="16778921">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Arabic_khah" value="1486">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Arabic_lam" value="1508">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Arabic_madda_above" value="16778835">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Arabic_maddaonalef" value="1474">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Arabic_meem" value="1509">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Arabic_noon" value="1510">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Arabic_noon_ghunna" value="16778938">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Arabic_peh" value="16778878">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Arabic_percent" value="16778858">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Arabic_qaf" value="1506">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Arabic_question_mark" value="1471">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Arabic_ra" value="1489">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Arabic_rreh" value="16778897">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Arabic_sad" value="1493">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Arabic_seen" value="1491">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Arabic_semicolon" value="1467">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Arabic_shadda" value="1521">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Arabic_sheen" value="1492">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Arabic_sukun" value="1522">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Arabic_superscript_alef" value="16778864">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Arabic_switch" value="65406">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Arabic_tah" value="1495">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Arabic_tatweel" value="1504">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Arabic_tcheh" value="16778886">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Arabic_teh" value="1482">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Arabic_tehmarbuta" value="1481">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Arabic_thal" value="1488">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Arabic_theh" value="1483">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Arabic_tteh" value="16778873">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Arabic_veh" value="16778916">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Arabic_waw" value="1512">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Arabic_yeh" value="1514">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Arabic_yeh_baree" value="16778962">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Arabic_zah" value="1496">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Arabic_zain" value="1490">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Aring" value="197">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Armenian_AT" value="16778552">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Armenian_AYB" value="16778545">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Armenian_BEN" value="16778546">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Armenian_CHA" value="16778569">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Armenian_DA" value="16778548">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Armenian_DZA" value="16778561">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Armenian_E" value="16778551">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Armenian_FE" value="16778582">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Armenian_GHAT" value="16778562">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Armenian_GIM" value="16778547">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Armenian_HI" value="16778565">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Armenian_HO" value="16778560">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Armenian_INI" value="16778555">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Armenian_JE" value="16778571">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Armenian_KE" value="16778580">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Armenian_KEN" value="16778559">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Armenian_KHE" value="16778557">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Armenian_LYUN" value="16778556">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Armenian_MEN" value="16778564">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Armenian_NU" value="16778566">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Armenian_O" value="16778581">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Armenian_PE" value="16778570">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Armenian_PYUR" value="16778579">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Armenian_RA" value="16778572">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Armenian_RE" value="16778576">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Armenian_SE" value="16778573">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Armenian_SHA" value="16778567">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Armenian_TCHE" value="16778563">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Armenian_TO" value="16778553">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Armenian_TSA" value="16778558">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Armenian_TSO" value="16778577">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Armenian_TYUN" value="16778575">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Armenian_VEV" value="16778574">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Armenian_VO" value="16778568">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Armenian_VYUN" value="16778578">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Armenian_YECH" value="16778549">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Armenian_ZA" value="16778550">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Armenian_ZHE" value="16778554">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Armenian_accent" value="16778587">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Armenian_amanak" value="16778588">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Armenian_apostrophe" value="16778586">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Armenian_at" value="16778600">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Armenian_ayb" value="16778593">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Armenian_ben" value="16778594">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Armenian_but" value="16778589">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Armenian_cha" value="16778617">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Armenian_da" value="16778596">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Armenian_dza" value="16778609">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Armenian_e" value="16778599">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Armenian_exclam" value="16778588">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Armenian_fe" value="16778630">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Armenian_full_stop" value="16778633">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Armenian_ghat" value="16778610">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Armenian_gim" value="16778595">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Armenian_hi" value="16778613">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Armenian_ho" value="16778608">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Armenian_hyphen" value="16778634">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Armenian_ini" value="16778603">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Armenian_je" value="16778619">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Armenian_ke" value="16778628">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Armenian_ken" value="16778607">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Armenian_khe" value="16778605">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Armenian_ligature_ew" value="16778631">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Armenian_lyun" value="16778604">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Armenian_men" value="16778612">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Armenian_nu" value="16778614">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Armenian_o" value="16778629">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Armenian_paruyk" value="16778590">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Armenian_pe" value="16778618">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Armenian_pyur" value="16778627">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Armenian_question" value="16778590">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Armenian_ra" value="16778620">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Armenian_re" value="16778624">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Armenian_se" value="16778621">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Armenian_separation_mark" value="16778589">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Armenian_sha" value="16778615">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Armenian_shesht" value="16778587">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Armenian_tche" value="16778611">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Armenian_to" value="16778601">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Armenian_tsa" value="16778606">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Armenian_tso" value="16778625">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Armenian_tyun" value="16778623">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Armenian_verjaket" value="16778633">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Armenian_vev" value="16778622">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Armenian_vo" value="16778616">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Armenian_vyun" value="16778626">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Armenian_yech" value="16778597">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Armenian_yentamna" value="16778634">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Armenian_za" value="16778598">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Armenian_zhe" value="16778602">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Atilde" value="195">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="AudibleBell_Enable" value="65146">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="AudioCycleTrack" value="269025179">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="AudioForward" value="269025175">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="AudioLowerVolume" value="269025041">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="AudioMedia" value="269025074">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="AudioMute" value="269025042">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="AudioNext" value="269025047">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="AudioPause" value="269025073">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="AudioPlay" value="269025044">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="AudioPrev" value="269025046">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="AudioRaiseVolume" value="269025043">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="AudioRandomPlay" value="269025177">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="AudioRecord" value="269025052">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="AudioRepeat" value="269025176">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="AudioRewind" value="269025086">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="AudioStop" value="269025045">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Away" value="269025165">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="B" value="66">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Babovedot" value="16784898">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Back" value="269025062">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="BackForward" value="269025087">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="BackSpace" value="65288">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <class name="Backend"
-           c:symbol-prefix="backend"
-           c:type="ClutterBackend"
-           parent="GObject.Object"
-           abstract="1"
-           glib:type-name="ClutterBackend"
-           glib:get-type="clutter_backend_get_type"
-           glib:type-struct="BackendClass">
-      <virtual-method name="add_options">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="group" transfer-ownership="none">
-            <type name="GLib.OptionGroup" c:type="GOptionGroup*"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <virtual-method name="copy_event_data">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="src" transfer-ownership="none">
-            <type name="Event" c:type="ClutterEvent*"/>
-          </parameter>
-          <parameter name="dest" transfer-ownership="none">
-            <type name="Event" c:type="ClutterEvent*"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <virtual-method name="create_context" throws="1">
-        <return-value transfer-ownership="none">
-          <type name="gboolean" c:type="gboolean"/>
-        </return-value>
-      </virtual-method>
-      <virtual-method name="create_stage" introspectable="0" throws="1">
-        <return-value>
-          <type name="StageWindow" c:type="ClutterStageWindow*"/>
-        </return-value>
-        <parameters>
-          <parameter name="wrapper" transfer-ownership="none">
-            <type name="Stage" c:type="ClutterStage*"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <virtual-method name="ensure_context">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="stage" transfer-ownership="none">
-            <type name="Stage" c:type="ClutterStage*"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <virtual-method name="free_event_data">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="event" transfer-ownership="none">
-            <type name="Event" c:type="ClutterEvent*"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <virtual-method name="get_device_manager" introspectable="0">
-        <return-value>
-          <type name="DeviceManager" c:type="ClutterDeviceManager*"/>
-        </return-value>
-      </virtual-method>
-      <virtual-method name="get_features">
-        <return-value transfer-ownership="none">
-          <type name="FeatureFlags" c:type="ClutterFeatureFlags"/>
-        </return-value>
-      </virtual-method>
-      <virtual-method name="init_events">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </virtual-method>
-      <virtual-method name="init_features">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </virtual-method>
-      <virtual-method name="post_parse" throws="1">
-        <return-value transfer-ownership="none">
-          <type name="gboolean" c:type="gboolean"/>
-        </return-value>
-      </virtual-method>
-      <virtual-method name="pre_parse" throws="1">
-        <return-value transfer-ownership="none">
-          <type name="gboolean" c:type="gboolean"/>
-        </return-value>
-      </virtual-method>
-      <virtual-method name="redraw">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="stage" transfer-ownership="none">
-            <type name="Stage" c:type="ClutterStage*"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <method name="get_double_click_distance"
-              c:identifier="clutter_backend_get_double_click_distance"
-              version="0.4"
-              deprecated="Use #ClutterSettings:double-click-distance instead"
-              deprecated-version="1.4">
-        <doc xml:whitespace="preserve">Retrieves the distance used to verify a double click event</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">a distance, in pixels.</doc>
-          <type name="guint" c:type="guint"/>
-        </return-value>
-      </method>
-      <method name="get_double_click_time"
-              c:identifier="clutter_backend_get_double_click_time"
-              version="0.4"
-              deprecated="Use #ClutterSettings:double-click-time instead"
-              deprecated-version="1.4">
-        <doc xml:whitespace="preserve">Gets the maximum time between two button press events, as set
-by clutter_backend_set_double_click_time().</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">a time in milliseconds</doc>
-          <type name="guint" c:type="guint"/>
-        </return-value>
-      </method>
-      <method name="get_font_name"
-              c:identifier="clutter_backend_get_font_name"
-              version="1.0"
-              deprecated="Use #ClutterSettings:font-name instead"
-              deprecated-version="1.4">
-        <doc xml:whitespace="preserve">Retrieves the default font name as set by
-clutter_backend_set_font_name().
-owned by the #ClutterBackend and should never be modified or freed</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the font name for the backend. The returned string is</doc>
-          <type name="utf8" c:type="gchar*"/>
-        </return-value>
-      </method>
-      <method name="get_font_options"
-              c:identifier="clutter_backend_get_font_options"
-              version="0.8">
-        <doc xml:whitespace="preserve">Retrieves the font options for @backend.
-The returned #cairo_font_options_t is owned by the backend and should
-not be modified or freed</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the font options of the #ClutterBackend.</doc>
-          <type name="cairo.FontOptions" c:type="cairo_font_options_t*"/>
-        </return-value>
-      </method>
-      <method name="get_resolution"
-              c:identifier="clutter_backend_get_resolution"
-              version="0.4">
-        <doc xml:whitespace="preserve">Gets the resolution for font handling on the screen.
-The resolution is a scale factor between points specified in a
-#PangoFontDescription and cairo units. The default value is 96.0,
-meaning that a 10 point font will be 13 units
-high (10 * 96. / 72. = 13.3).
-Clutter will set the resolution using the current backend when
-initializing; the resolution is also stored in the
-#ClutterSettings:font-dpi property.
-has been set.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the current resolution, or -1 if no resolution</doc>
-          <type name="gdouble" c:type="gdouble"/>
-        </return-value>
-      </method>
-      <method name="set_double_click_distance"
-              c:identifier="clutter_backend_set_double_click_distance"
-              version="0.4"
-              deprecated="Use #ClutterSettings:double-click-distance instead"
-              deprecated-version="1.4">
-        <doc xml:whitespace="preserve">Sets the maximum distance used to verify a double click event.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="distance" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a distance, in pixels</doc>
-            <type name="guint" c:type="guint"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_double_click_time"
-              c:identifier="clutter_backend_set_double_click_time"
-              version="0.4"
-              deprecated="Use #ClutterSettings:double-click-time instead"
-              deprecated-version="1.4">
-        <doc xml:whitespace="preserve">Sets the maximum time between two button press events, used to
-verify whether it's a double click event or not.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="msec" transfer-ownership="none">
-            <doc xml:whitespace="preserve">milliseconds between two button press events</doc>
-            <type name="guint" c:type="guint"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_font_name"
-              c:identifier="clutter_backend_set_font_name"
-              version="1.0"
-              deprecated="Use #ClutterSettings:font-name instead"
-              deprecated-version="1.4">
-        <doc xml:whitespace="preserve">Sets the default font to be used by Clutter. The @font_name string
-must either be %NULL, which means that the font name from the
-default #ClutterBackend will be used; or be something that can
-be parsed by the pango_font_description_from_string() function.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="font_name" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the name of the font</doc>
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_font_options"
-              c:identifier="clutter_backend_set_font_options"
-              version="0.8">
-        <doc xml:whitespace="preserve">Sets the new font options for @backend. The #ClutterBackend will
-copy the #cairo_font_options_t.
-If @options is %NULL, the first following call to
-clutter_backend_get_font_options() will return the default font
-options for @backend.
-This function is intended for actors creating a Pango layout
-using the PangoCairo API.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="options" transfer-ownership="none">
-            <doc xml:whitespace="preserve">Cairo font options for the backend, or %NULL</doc>
-            <type name="cairo.FontOptions" c:type="cairo_font_options_t*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_resolution"
-              c:identifier="clutter_backend_set_resolution"
-              version="0.4"
-              deprecated="Use #ClutterSettings:font-dpi instead">
-        <doc xml:whitespace="preserve">Sets the resolution for font handling on the screen. This is a
-scale factor between points specified in a #PangoFontDescription
-and cairo units. The default value is 96, meaning that a 10 point
-font will be 13 units high. (10 * 96. / 72. = 13.3).
-Applications should never need to call this function.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="dpi" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the resolution in "dots per inch" (Physical inches aren't actually involved; the terminology is conventional).</doc>
-            <type name="gdouble" c:type="gdouble"/>
-          </parameter>
-        </parameters>
-      </method>
-      <field name="parent_instance">
-        <type name="GObject.Object" c:type="GObject"/>
-      </field>
-      <field name="priv">
-        <type name="BackendPrivate" c:type="ClutterBackendPrivate*"/>
-      </field>
-      <glib:signal name="font-changed">
-        <return-value transfer-ownership="none">
-          <type name="none"/>
-        </return-value>
-      </glib:signal>
-      <glib:signal name="resolution-changed">
-        <return-value transfer-ownership="none">
-          <type name="none"/>
-        </return-value>
-      </glib:signal>
-      <glib:signal name="settings-changed">
-        <return-value transfer-ownership="none">
-          <type name="none"/>
-        </return-value>
-      </glib:signal>
-    </class>
-    <record name="BackendClass"
-            c:type="ClutterBackendClass"
-            glib:is-gtype-struct-for="Backend">
-      <field name="parent_class">
-        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
-      </field>
-      <field name="pre_parse">
-        <callback name="pre_parse" throws="1">
-          <return-value transfer-ownership="none">
-            <type name="gboolean" c:type="gboolean"/>
-          </return-value>
-          <parameters>
-            <parameter name="backend" transfer-ownership="none">
-              <type name="Backend" c:type="ClutterBackend*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="post_parse">
-        <callback name="post_parse" throws="1">
-          <return-value transfer-ownership="none">
-            <type name="gboolean" c:type="gboolean"/>
-          </return-value>
-          <parameters>
-            <parameter name="backend" transfer-ownership="none">
-              <type name="Backend" c:type="ClutterBackend*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="create_stage" introspectable="0">
-        <callback name="create_stage" introspectable="0" throws="1">
-          <return-value>
-            <type name="StageWindow" c:type="ClutterStageWindow*"/>
-          </return-value>
-          <parameters>
-            <parameter name="backend" transfer-ownership="none">
-              <type name="Backend" c:type="ClutterBackend*"/>
-            </parameter>
-            <parameter name="wrapper" transfer-ownership="none">
-              <type name="Stage" c:type="ClutterStage*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="init_events">
-        <callback name="init_events">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="backend" transfer-ownership="none">
-              <type name="Backend" c:type="ClutterBackend*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="init_features">
-        <callback name="init_features">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="backend" transfer-ownership="none">
-              <type name="Backend" c:type="ClutterBackend*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="add_options">
-        <callback name="add_options">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="backend" transfer-ownership="none">
-              <type name="Backend" c:type="ClutterBackend*"/>
-            </parameter>
-            <parameter name="group" transfer-ownership="none">
-              <type name="GLib.OptionGroup" c:type="GOptionGroup*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="get_features">
-        <callback name="get_features">
-          <return-value transfer-ownership="none">
-            <type name="FeatureFlags" c:type="ClutterFeatureFlags"/>
-          </return-value>
-          <parameters>
-            <parameter name="backend" transfer-ownership="none">
-              <type name="Backend" c:type="ClutterBackend*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="redraw">
-        <callback name="redraw">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="backend" transfer-ownership="none">
-              <type name="Backend" c:type="ClutterBackend*"/>
-            </parameter>
-            <parameter name="stage" transfer-ownership="none">
-              <type name="Stage" c:type="ClutterStage*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="create_context">
-        <callback name="create_context" throws="1">
-          <return-value transfer-ownership="none">
-            <type name="gboolean" c:type="gboolean"/>
-          </return-value>
-          <parameters>
-            <parameter name="backend" transfer-ownership="none">
-              <type name="Backend" c:type="ClutterBackend*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="ensure_context">
-        <callback name="ensure_context">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="backend" transfer-ownership="none">
-              <type name="Backend" c:type="ClutterBackend*"/>
-            </parameter>
-            <parameter name="stage" transfer-ownership="none">
-              <type name="Stage" c:type="ClutterStage*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="get_device_manager" introspectable="0">
-        <callback name="get_device_manager" introspectable="0">
-          <return-value>
-            <type name="DeviceManager" c:type="ClutterDeviceManager*"/>
-          </return-value>
-          <parameters>
-            <parameter name="backend" transfer-ownership="none">
-              <type name="Backend" c:type="ClutterBackend*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="copy_event_data">
-        <callback name="copy_event_data">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="backend" transfer-ownership="none">
-              <type name="Backend" c:type="ClutterBackend*"/>
-            </parameter>
-            <parameter name="src" transfer-ownership="none">
-              <type name="Event" c:type="ClutterEvent*"/>
-            </parameter>
-            <parameter name="dest" transfer-ownership="none">
-              <type name="Event" c:type="ClutterEvent*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="free_event_data">
-        <callback name="free_event_data">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="backend" transfer-ownership="none">
-              <type name="Backend" c:type="ClutterBackend*"/>
-            </parameter>
-            <parameter name="event" transfer-ownership="none">
-              <type name="Event" c:type="ClutterEvent*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="resolution_changed">
-        <callback name="resolution_changed">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="backend" transfer-ownership="none">
-              <type name="Backend" c:type="ClutterBackend*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="font_changed">
-        <callback name="font_changed">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="backend" transfer-ownership="none">
-              <type name="Backend" c:type="ClutterBackend*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="settings_changed">
-        <callback name="settings_changed">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="backend" transfer-ownership="none">
-              <type name="Backend" c:type="ClutterBackend*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-    </record>
-    <record name="BackendPrivate" c:type="ClutterBackendPrivate" disguised="1">
-    </record>
-    <constant name="Battery" value="269025171">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Begin" value="65368">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <class name="Behaviour"
-           c:symbol-prefix="behaviour"
-           c:type="ClutterBehaviour"
-           version="0.2"
-           parent="GObject.Object"
-           abstract="1"
-           glib:type-name="ClutterBehaviour"
-           glib:get-type="clutter_behaviour_get_type"
-           glib:type-struct="BehaviourClass">
-      <doc xml:whitespace="preserve">#ClutterBehaviour-struct contains only private data and should
-be accessed with the functions below.</doc>
-      <implements name="Scriptable"/>
-      <virtual-method name="alpha_notify">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="alpha_value" transfer-ownership="none">
-            <type name="gdouble" c:type="gdouble"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <method name="actors_foreach"
-              c:identifier="clutter_behaviour_actors_foreach"
-              version="0.2">
-        <doc xml:whitespace="preserve">Calls @func for every actor driven by @behave.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="func"
-                     transfer-ownership="none"
-                     scope="call"
-                     closure="1">
-            <doc xml:whitespace="preserve">a function called for each actor</doc>
-            <type name="BehaviourForeachFunc"
-                  c:type="ClutterBehaviourForeachFunc"/>
-          </parameter>
-          <parameter name="data" transfer-ownership="none">
-            <doc xml:whitespace="preserve">optional data to be passed to the function, or %NULL</doc>
-            <type name="gpointer" c:type="gpointer"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="apply"
-              c:identifier="clutter_behaviour_apply"
-              version="0.2">
-        <doc xml:whitespace="preserve">Applies @behave to @actor.  This function adds a reference on
-the actor.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="actor" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #ClutterActor</doc>
-            <type name="Actor" c:type="ClutterActor*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_actors"
-              c:identifier="clutter_behaviour_get_actors"
-              version="0.2">
-        <doc xml:whitespace="preserve">Retrieves all the actors to which @behave applies. It is not recommended
-for derived classes to use this in there alpha notify method but use 
-#clutter_behaviour_actors_foreach as it avoids alot of needless allocations.
-actors. You should free the returned list with g_slist_free() when
-finished using it.</doc>
-        <return-value transfer-ownership="container">
-          <doc xml:whitespace="preserve">a list of</doc>
-          <type name="GLib.SList" c:type="GSList*">
-            <type name="Actor"/>
-          </type>
-        </return-value>
-      </method>
-      <method name="get_alpha"
-              c:identifier="clutter_behaviour_get_alpha"
-              version="0.2">
-        <doc xml:whitespace="preserve">Retrieves the #ClutterAlpha object bound to @behave.
-object has been bound to this behaviour.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">a #ClutterAlpha object, or %NULL if no alpha</doc>
-          <type name="Alpha" c:type="ClutterAlpha*"/>
-        </return-value>
-      </method>
-      <method name="get_n_actors"
-              c:identifier="clutter_behaviour_get_n_actors"
-              version="0.2">
-        <doc xml:whitespace="preserve">Gets the number of actors this behaviour is applied too.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">The number of applied actors</doc>
-          <type name="gint" c:type="gint"/>
-        </return-value>
-      </method>
-      <method name="get_nth_actor"
-              c:identifier="clutter_behaviour_get_nth_actor"
-              version="0.2">
-        <doc xml:whitespace="preserve">Gets an actor the behaviour was applied to referenced by index num.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">A Clutter actor or NULL if @index_ is invalid.</doc>
-          <type name="Actor" c:type="ClutterActor*"/>
-        </return-value>
-        <parameters>
-          <parameter name="index_" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the index of an actor this behaviour is applied too.</doc>
-            <type name="gint" c:type="gint"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="is_applied"
-              c:identifier="clutter_behaviour_is_applied"
-              version="0.4">
-        <doc xml:whitespace="preserve">Check if @behave applied to  @actor.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">TRUE if actor has behaviour. FALSE otherwise.</doc>
-          <type name="gboolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="actor" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #ClutterActor</doc>
-            <type name="Actor" c:type="ClutterActor*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="remove"
-              c:identifier="clutter_behaviour_remove"
-              version="0.2">
-        <doc xml:whitespace="preserve">Removes @actor from the list of #ClutterActor&lt;!-- --&gt;s to which</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="actor" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #ClutterActor</doc>
-            <type name="Actor" c:type="ClutterActor*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="remove_all"
-              c:identifier="clutter_behaviour_remove_all"
-              version="0.4">
-        <doc xml:whitespace="preserve">Removes every actor from the list that @behave holds.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </method>
-      <method name="set_alpha"
-              c:identifier="clutter_behaviour_set_alpha"
-              version="0.2">
-        <doc xml:whitespace="preserve">Binds @alpha to a #ClutterBehaviour. The #ClutterAlpha object
-used by #ClutterAlpha a new value of the alpha parameter is
-computed by the alpha function; the value should be used by
-the #ClutterBehaviour to update one or more properties of the
-actors to which the behaviour applies.
-If @alpha is not %NULL, the #ClutterBehaviour will take ownership
-of the #ClutterAlpha instance.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="alpha" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #ClutterAlpha or %NULL to unset a previously set alpha</doc>
-            <type name="Alpha" c:type="ClutterAlpha*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <property name="alpha"
-                version="0.2"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">The #ClutterAlpha object used to drive this behaviour. A #ClutterAlpha
-object binds a #ClutterTimeline and a function which computes a value
-(the "alpha") depending on the time. Each time the alpha value changes
-the alpha-notify virtual function is called.</doc>
-        <type name="Alpha"/>
-      </property>
-      <field name="parent">
-        <type name="GObject.Object" c:type="GObject"/>
-      </field>
-      <field name="priv">
-        <type name="BehaviourPrivate" c:type="ClutterBehaviourPrivate*"/>
-      </field>
-      <glib:signal name="applied" version="0.4">
-        <doc xml:whitespace="preserve">The ::apply signal is emitted each time the behaviour is applied
-to an actor.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none"/>
-        </return-value>
-        <parameters>
-          <parameter name="object" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the actor the behaviour was applied to.</doc>
-            <type name="Actor"/>
-          </parameter>
-        </parameters>
-      </glib:signal>
-      <glib:signal name="removed" version="0.4">
-        <doc xml:whitespace="preserve">The ::removed signal is emitted each time a behaviour is not applied
-to an actor anymore.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none"/>
-        </return-value>
-        <parameters>
-          <parameter name="object" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the removed actor</doc>
-            <type name="Actor"/>
-          </parameter>
-        </parameters>
-      </glib:signal>
-    </class>
-    <record name="BehaviourClass"
-            c:type="ClutterBehaviourClass"
-            glib:is-gtype-struct-for="Behaviour">
-      <field name="parent_class">
-        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
-      </field>
-      <field name="alpha_notify">
-        <callback name="alpha_notify">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="behave" transfer-ownership="none">
-              <type name="Behaviour" c:type="ClutterBehaviour*"/>
-            </parameter>
-            <parameter name="alpha_value" transfer-ownership="none">
-              <type name="gdouble" c:type="gdouble"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="applied">
-        <callback name="applied">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="behave" transfer-ownership="none">
-              <type name="Behaviour" c:type="ClutterBehaviour*"/>
-            </parameter>
-            <parameter name="actor" transfer-ownership="none">
-              <type name="Actor" c:type="ClutterActor*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="removed">
-        <callback name="removed">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="behave" transfer-ownership="none">
-              <type name="Behaviour" c:type="ClutterBehaviour*"/>
-            </parameter>
-            <parameter name="actor" transfer-ownership="none">
-              <type name="Actor" c:type="ClutterActor*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="_clutter_behaviour1" introspectable="0">
-        <callback name="_clutter_behaviour1">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-      <field name="_clutter_behaviour2" introspectable="0">
-        <callback name="_clutter_behaviour2">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-      <field name="_clutter_behaviour3" introspectable="0">
-        <callback name="_clutter_behaviour3">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-      <field name="_clutter_behaviour4" introspectable="0">
-        <callback name="_clutter_behaviour4">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-      <field name="_clutter_behaviour5" introspectable="0">
-        <callback name="_clutter_behaviour5">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-      <field name="_clutter_behaviour6" introspectable="0">
-        <callback name="_clutter_behaviour6">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-    </record>
-    <class name="BehaviourDepth"
-           c:symbol-prefix="behaviour_depth"
-           c:type="ClutterBehaviourDepth"
-           version="0.2"
-           parent="Behaviour"
-           glib:type-name="ClutterBehaviourDepth"
-           glib:get-type="clutter_behaviour_depth_get_type"
-           glib:type-struct="BehaviourDepthClass">
-      <doc xml:whitespace="preserve">The #ClutterBehaviourDepth structure contains only private data
-and should be accessed using the provided API</doc>
-      <implements name="Scriptable"/>
-      <constructor name="new"
-                   c:identifier="clutter_behaviour_depth_new"
-                   version="0.4">
-        <doc xml:whitespace="preserve">Creates a new #ClutterBehaviourDepth which can be used to control
-the ClutterActor:depth property of a set of #ClutterActor&lt;!-- --&gt;s.
-If @alpha is not %NULL, the #ClutterBehaviour will take ownership
-of the #ClutterAlpha instance. In the case when @alpha is %NULL,
-it can be set later with clutter_behaviour_set_alpha().</doc>
-        <return-value transfer-ownership="full">
-          <doc xml:whitespace="preserve">the newly created behaviour</doc>
-          <type name="Behaviour" c:type="ClutterBehaviour*"/>
-        </return-value>
-        <parameters>
-          <parameter name="alpha" transfer-ownership="none" allow-none="1">
-            <doc xml:whitespace="preserve">a #ClutterAlpha instance, or %NULL</doc>
-            <type name="Alpha" c:type="ClutterAlpha*"/>
-          </parameter>
-          <parameter name="depth_start" transfer-ownership="none">
-            <doc xml:whitespace="preserve">initial value of the depth</doc>
-            <type name="gint" c:type="gint"/>
-          </parameter>
-          <parameter name="depth_end" transfer-ownership="none">
-            <doc xml:whitespace="preserve">final value of the depth</doc>
-            <type name="gint" c:type="gint"/>
-          </parameter>
-        </parameters>
-      </constructor>
-      <method name="get_bounds"
-              c:identifier="clutter_behaviour_depth_get_bounds"
-              version="0.6">
-        <doc xml:whitespace="preserve">Gets the boundaries of the @behaviour</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="depth_start"
-                     direction="out"
-                     caller-allocates="0"
-                     transfer-ownership="full">
-            <doc xml:whitespace="preserve">return location for the initial depth value, or %NULL</doc>
-            <type name="gint" c:type="gint*"/>
-          </parameter>
-          <parameter name="depth_end"
-                     direction="out"
-                     caller-allocates="0"
-                     transfer-ownership="full">
-            <doc xml:whitespace="preserve">return location for the final depth value, or %NULL</doc>
-            <type name="gint" c:type="gint*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_bounds"
-              c:identifier="clutter_behaviour_depth_set_bounds"
-              version="0.6">
-        <doc xml:whitespace="preserve">Sets the boundaries of the @behaviour.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="depth_start" transfer-ownership="none">
-            <doc xml:whitespace="preserve">initial value of the depth</doc>
-            <type name="gint" c:type="gint"/>
-          </parameter>
-          <parameter name="depth_end" transfer-ownership="none">
-            <doc xml:whitespace="preserve">final value of the depth</doc>
-            <type name="gint" c:type="gint"/>
-          </parameter>
-        </parameters>
-      </method>
-      <property name="depth-end"
-                version="0.4"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">End depth level to apply to the actors.</doc>
-        <type name="gint"/>
-      </property>
-      <property name="depth-start"
-                version="0.4"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">Start depth level to apply to the actors.</doc>
-        <type name="gint"/>
-      </property>
-      <field name="parent_instance">
-        <type name="Behaviour" c:type="ClutterBehaviour"/>
-      </field>
-      <field name="priv">
-        <type name="BehaviourDepthPrivate"
-              c:type="ClutterBehaviourDepthPrivate*"/>
-      </field>
-    </class>
-    <record name="BehaviourDepthClass"
-            c:type="ClutterBehaviourDepthClass"
-            glib:is-gtype-struct-for="BehaviourDepth"
-            version="0.2">
-      <doc xml:whitespace="preserve">The #ClutterBehaviourDepthClass structure contains only private data</doc>
-      <field name="parent_class">
-        <type name="BehaviourClass" c:type="ClutterBehaviourClass"/>
-      </field>
-    </record>
-    <record name="BehaviourDepthPrivate"
-            c:type="ClutterBehaviourDepthPrivate"
-            disguised="1">
-    </record>
-    <class name="BehaviourEllipse"
-           c:symbol-prefix="behaviour_ellipse"
-           c:type="ClutterBehaviourEllipse"
-           version="0.4"
-           parent="Behaviour"
-           glib:type-name="ClutterBehaviourEllipse"
-           glib:get-type="clutter_behaviour_ellipse_get_type"
-           glib:type-struct="BehaviourEllipseClass">
-      <doc xml:whitespace="preserve">The #ClutterBehaviourEllipse struct contains only private data
-and should be accessed using the provided API</doc>
-      <implements name="Scriptable"/>
-      <constructor name="new"
-                   c:identifier="clutter_behaviour_ellipse_new"
-                   version="0.4">
-        <doc xml:whitespace="preserve">Creates a behaviour that drives actors along an elliptical path with
-given center, width and height; the movement starts at @start
-degrees (with 0 corresponding to 12 o'clock) and ends at @end
-degrees. Angles greated than 360 degrees get clamped to the canonical
-interval &lt;0, 360); if @start is equal to @end, the behaviour will
-rotate by exacly 360 degrees.
-If @alpha is not %NULL, the #ClutterBehaviour will take ownership
-of the #ClutterAlpha instance. In the case when @alpha is %NULL,
-it can be set later with clutter_behaviour_set_alpha().</doc>
-        <return-value transfer-ownership="full">
-          <doc xml:whitespace="preserve">the newly created #ClutterBehaviourEllipse</doc>
-          <type name="Behaviour" c:type="ClutterBehaviour*"/>
-        </return-value>
-        <parameters>
-          <parameter name="alpha" transfer-ownership="none" allow-none="1">
-            <doc xml:whitespace="preserve">a #ClutterAlpha instance, or %NULL</doc>
-            <type name="Alpha" c:type="ClutterAlpha*"/>
-          </parameter>
-          <parameter name="x" transfer-ownership="none">
-            <doc xml:whitespace="preserve">x coordinace of the center</doc>
-            <type name="gint" c:type="gint"/>
-          </parameter>
-          <parameter name="y" transfer-ownership="none">
-            <doc xml:whitespace="preserve">y coordiance of the center</doc>
-            <type name="gint" c:type="gint"/>
-          </parameter>
-          <parameter name="width" transfer-ownership="none">
-            <doc xml:whitespace="preserve">width of the ellipse</doc>
-            <type name="gint" c:type="gint"/>
-          </parameter>
-          <parameter name="height" transfer-ownership="none">
-            <doc xml:whitespace="preserve">height of the ellipse</doc>
-            <type name="gint" c:type="gint"/>
-          </parameter>
-          <parameter name="direction" transfer-ownership="none">
-            <doc xml:whitespace="preserve">#ClutterRotateDirection of rotation</doc>
-            <type name="RotateDirection" c:type="ClutterRotateDirection"/>
-          </parameter>
-          <parameter name="start" transfer-ownership="none">
-            <doc xml:whitespace="preserve">angle in degrees at which movement starts, between 0 and 360</doc>
-            <type name="gdouble" c:type="gdouble"/>
-          </parameter>
-          <parameter name="end" transfer-ownership="none">
-            <doc xml:whitespace="preserve">angle in degrees at which movement ends, between 0 and 360</doc>
-            <type name="gdouble" c:type="gdouble"/>
-          </parameter>
-        </parameters>
-      </constructor>
-      <method name="get_angle_end"
-              c:identifier="clutter_behaviour_ellipse_get_angle_end"
-              version="0.4">
-        <doc xml:whitespace="preserve">Gets the at which movements ends.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">angle in degrees</doc>
-          <type name="gdouble" c:type="gdouble"/>
-        </return-value>
-      </method>
-      <method name="get_angle_start"
-              c:identifier="clutter_behaviour_ellipse_get_angle_start"
-              version="0.6">
-        <doc xml:whitespace="preserve">Gets the angle at which movements starts.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">angle in degrees</doc>
-          <type name="gdouble" c:type="gdouble"/>
-        </return-value>
-      </method>
-      <method name="get_angle_tilt"
-              c:identifier="clutter_behaviour_ellipse_get_angle_tilt"
-              version="0.4">
-        <doc xml:whitespace="preserve">Gets the tilt of the ellipse around the center in the given axis.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">angle in degrees.</doc>
-          <type name="gdouble" c:type="gdouble"/>
-        </return-value>
-        <parameters>
-          <parameter name="axis" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #ClutterRotateAxis</doc>
-            <type name="RotateAxis" c:type="ClutterRotateAxis"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_center"
-              c:identifier="clutter_behaviour_ellipse_get_center"
-              version="0.4">
-        <doc xml:whitespace="preserve">Gets the center of the elliptical path path.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="x"
-                     direction="out"
-                     caller-allocates="0"
-                     transfer-ownership="full">
-            <doc xml:whitespace="preserve">return location for the X coordinate of the center, or %NULL</doc>
-            <type name="gint" c:type="gint*"/>
-          </parameter>
-          <parameter name="y"
-                     direction="out"
-                     caller-allocates="0"
-                     transfer-ownership="full">
-            <doc xml:whitespace="preserve">return location for the Y coordinate of the center, or %NULL</doc>
-            <type name="gint" c:type="gint*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_direction"
-              c:identifier="clutter_behaviour_ellipse_get_direction"
-              version="0.4">
-        <doc xml:whitespace="preserve">Retrieves the #ClutterRotateDirection used by the ellipse behaviour.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the rotation direction</doc>
-          <type name="RotateDirection" c:type="ClutterRotateDirection"/>
-        </return-value>
-      </method>
-      <method name="get_height"
-              c:identifier="clutter_behaviour_ellipse_get_height"
-              version="0.4">
-        <doc xml:whitespace="preserve">Gets the height of the elliptical path.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the height of the path</doc>
-          <type name="gint" c:type="gint"/>
-        </return-value>
-      </method>
-      <method name="get_tilt"
-              c:identifier="clutter_behaviour_ellipse_get_tilt"
-              version="0.4">
-        <doc xml:whitespace="preserve">Gets the tilt of the ellipse around the center in Y axis.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="angle_tilt_x"
-                     direction="out"
-                     caller-allocates="0"
-                     transfer-ownership="full">
-            <doc xml:whitespace="preserve">return location for tilt angle on the X axis, or %NULL.</doc>
-            <type name="gdouble" c:type="gdouble*"/>
-          </parameter>
-          <parameter name="angle_tilt_y"
-                     direction="out"
-                     caller-allocates="0"
-                     transfer-ownership="full">
-            <doc xml:whitespace="preserve">return location for tilt angle on the Y axis, or %NULL.</doc>
-            <type name="gdouble" c:type="gdouble*"/>
-          </parameter>
-          <parameter name="angle_tilt_z"
-                     direction="out"
-                     caller-allocates="0"
-                     transfer-ownership="full">
-            <doc xml:whitespace="preserve">return location for tilt angle on the Z axis, or %NULL.</doc>
-            <type name="gdouble" c:type="gdouble*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_width"
-              c:identifier="clutter_behaviour_ellipse_get_width"
-              version="0.4">
-        <doc xml:whitespace="preserve">Gets the width of the elliptical path.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the width of the path</doc>
-          <type name="gint" c:type="gint"/>
-        </return-value>
-      </method>
-      <method name="set_angle_end"
-              c:identifier="clutter_behaviour_ellipse_set_angle_end"
-              version="0.4">
-        <doc xml:whitespace="preserve">Sets the angle at which movement ends; angles &gt;= 360 degress get clamped
-to the canonical interval &lt;0, 360).</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="angle_end" transfer-ownership="none">
-            <doc xml:whitespace="preserve">angle at which movement ends in degrees, between 0 and 360.</doc>
-            <type name="gdouble" c:type="gdouble"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_angle_start"
-              c:identifier="clutter_behaviour_ellipse_set_angle_start"
-              version="0.6">
-        <doc xml:whitespace="preserve">Sets the angle at which movement starts; angles &gt;= 360 degress get clamped
-to the canonical interval &lt;0, 360).</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="angle_start" transfer-ownership="none">
-            <doc xml:whitespace="preserve">angle at which movement starts in degrees, between 0 and 360.</doc>
-            <type name="gdouble" c:type="gdouble"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_angle_tilt"
-              c:identifier="clutter_behaviour_ellipse_set_angle_tilt"
-              version="0.4">
-        <doc xml:whitespace="preserve">Sets the angle at which the ellipse should be tilted around it's center.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="axis" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #ClutterRotateAxis</doc>
-            <type name="RotateAxis" c:type="ClutterRotateAxis"/>
-          </parameter>
-          <parameter name="angle_tilt" transfer-ownership="none">
-            <doc xml:whitespace="preserve">tilt of the elipse around the center in the given axis in degrees.</doc>
-            <type name="gdouble" c:type="gdouble"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_center"
-              c:identifier="clutter_behaviour_ellipse_set_center"
-              version="0.4">
-        <doc xml:whitespace="preserve">Sets the center of the elliptical path to the point represented by knot.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="x" transfer-ownership="none">
-            <doc xml:whitespace="preserve">x coordinace of centre</doc>
-            <type name="gint" c:type="gint"/>
-          </parameter>
-          <parameter name="y" transfer-ownership="none">
-            <doc xml:whitespace="preserve">y coordinace of centre</doc>
-            <type name="gint" c:type="gint"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_direction"
-              c:identifier="clutter_behaviour_ellipse_set_direction"
-              version="0.4">
-        <doc xml:whitespace="preserve">Sets the rotation direction used by the ellipse behaviour.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="direction" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the rotation direction</doc>
-            <type name="RotateDirection" c:type="ClutterRotateDirection"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_height"
-              c:identifier="clutter_behaviour_ellipse_set_height"
-              version="0.4">
-        <doc xml:whitespace="preserve">Sets the height of the elliptical path.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="height" transfer-ownership="none">
-            <doc xml:whitespace="preserve">height of the ellipse</doc>
-            <type name="gint" c:type="gint"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_tilt"
-              c:identifier="clutter_behaviour_ellipse_set_tilt"
-              version="0.4">
-        <doc xml:whitespace="preserve">Sets the angles at which the ellipse should be tilted around it's center.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="angle_tilt_x" transfer-ownership="none">
-            <doc xml:whitespace="preserve">tilt of the elipse around the center in X axis in degrees.</doc>
-            <type name="gdouble" c:type="gdouble"/>
-          </parameter>
-          <parameter name="angle_tilt_y" transfer-ownership="none">
-            <doc xml:whitespace="preserve">tilt of the elipse around the center in Y axis in degrees.</doc>
-            <type name="gdouble" c:type="gdouble"/>
-          </parameter>
-          <parameter name="angle_tilt_z" transfer-ownership="none">
-            <doc xml:whitespace="preserve">tilt of the elipse around the center in Z axis in degrees.</doc>
-            <type name="gdouble" c:type="gdouble"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_width"
-              c:identifier="clutter_behaviour_ellipse_set_width"
-              version="0.4">
-        <doc xml:whitespace="preserve">Sets the width of the elliptical path.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="width" transfer-ownership="none">
-            <doc xml:whitespace="preserve">width of the ellipse</doc>
-            <type name="gint" c:type="gint"/>
-          </parameter>
-        </parameters>
-      </method>
-      <property name="angle-end"
-                version="0.4"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">The final angle to where the rotation should end.</doc>
-        <type name="gdouble"/>
-      </property>
-      <property name="angle-start"
-                version="0.4"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">The initial angle from where the rotation should start.</doc>
-        <type name="gdouble"/>
-      </property>
-      <property name="angle-tilt-x"
-                version="0.4"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">The tilt angle for the rotation around center in X axis</doc>
-        <type name="gdouble"/>
-      </property>
-      <property name="angle-tilt-y"
-                version="0.4"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">The tilt angle for the rotation around center in Y axis</doc>
-        <type name="gdouble"/>
-      </property>
-      <property name="angle-tilt-z"
-                version="0.4"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">The tilt angle for the rotation on the Z axis</doc>
-        <type name="gdouble"/>
-      </property>
-      <property name="center"
-                version="0.4"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">The center of the ellipse.</doc>
-        <type name="Knot"/>
-      </property>
-      <property name="direction"
-                version="0.4"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">The direction of the rotation.</doc>
-        <type name="RotateDirection"/>
-      </property>
-      <property name="height"
-                version="0.4"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">Height of the ellipse, in pixels</doc>
-        <type name="gint"/>
-      </property>
-      <property name="width"
-                version="0.4"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">Width of the ellipse, in pixels</doc>
-        <type name="gint"/>
-      </property>
-      <field name="parent_instance">
-        <type name="Behaviour" c:type="ClutterBehaviour"/>
-      </field>
-      <field name="priv">
-        <type name="BehaviourEllipsePrivate"
-              c:type="ClutterBehaviourEllipsePrivate*"/>
-      </field>
-    </class>
-    <record name="BehaviourEllipseClass"
-            c:type="ClutterBehaviourEllipseClass"
-            glib:is-gtype-struct-for="BehaviourEllipse"
-            version="0.4">
-      <doc xml:whitespace="preserve">The #ClutterBehaviourEllipseClass struct contains only private data</doc>
-      <field name="parent_class">
-        <type name="BehaviourClass" c:type="ClutterBehaviourClass"/>
-      </field>
-    </record>
-    <record name="BehaviourEllipsePrivate"
-            c:type="ClutterBehaviourEllipsePrivate"
-            disguised="1">
-    </record>
-    <callback name="BehaviourForeachFunc"
-              c:type="ClutterBehaviourForeachFunc"
-              version="0.2">
-      <doc xml:whitespace="preserve">This function is passed to clutter_behaviour_foreach_actor() and
-will be called for each actor driven by @behaviour.</doc>
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="behaviour" transfer-ownership="none">
-          <doc xml:whitespace="preserve">the #ClutterBehaviour</doc>
-          <type name="Behaviour" c:type="ClutterBehaviour*"/>
-        </parameter>
-        <parameter name="actor" transfer-ownership="none">
-          <doc xml:whitespace="preserve">an actor driven by @behaviour</doc>
-          <type name="Actor" c:type="ClutterActor*"/>
-        </parameter>
-        <parameter name="data" transfer-ownership="none">
-          <doc xml:whitespace="preserve">optional data passed to the function</doc>
-          <type name="gpointer" c:type="gpointer"/>
-        </parameter>
-      </parameters>
-    </callback>
-    <class name="BehaviourOpacity"
-           c:symbol-prefix="behaviour_opacity"
-           c:type="ClutterBehaviourOpacity"
-           version="0.2"
-           parent="Behaviour"
-           glib:type-name="ClutterBehaviourOpacity"
-           glib:get-type="clutter_behaviour_opacity_get_type"
-           glib:type-struct="BehaviourOpacityClass">
-      <doc xml:whitespace="preserve">The #ClutterBehaviourOpacity structure contains only private data and
-should be accessed using the provided API</doc>
-      <implements name="Scriptable"/>
-      <constructor name="new"
-                   c:identifier="clutter_behaviour_opacity_new"
-                   version="0.2">
-        <doc xml:whitespace="preserve">Creates a new #ClutterBehaviourOpacity object, driven by @alpha
-which controls the opacity property of every actor, making it
-change in the interval between @opacity_start and @opacity_end.
-If @alpha is not %NULL, the #ClutterBehaviour will take ownership
-of the #ClutterAlpha instance. In the case when @alpha is %NULL,
-it can be set later with clutter_behaviour_set_alpha().</doc>
-        <return-value transfer-ownership="full">
-          <doc xml:whitespace="preserve">the newly created #ClutterBehaviourOpacity</doc>
-          <type name="Behaviour" c:type="ClutterBehaviour*"/>
-        </return-value>
-        <parameters>
-          <parameter name="alpha" transfer-ownership="none" allow-none="1">
-            <doc xml:whitespace="preserve">a #ClutterAlpha instance, or %NULL</doc>
-            <type name="Alpha" c:type="ClutterAlpha*"/>
-          </parameter>
-          <parameter name="opacity_start" transfer-ownership="none">
-            <doc xml:whitespace="preserve">minimum level of opacity</doc>
-            <type name="guint8" c:type="guint8"/>
-          </parameter>
-          <parameter name="opacity_end" transfer-ownership="none">
-            <doc xml:whitespace="preserve">maximum level of opacity</doc>
-            <type name="guint8" c:type="guint8"/>
-          </parameter>
-        </parameters>
-      </constructor>
-      <method name="get_bounds"
-              c:identifier="clutter_behaviour_opacity_get_bounds"
-              version="0.6">
-        <doc xml:whitespace="preserve">Gets the initial and final levels of the opacity applied by @behaviour
-on each actor it controls.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="opacity_start"
-                     direction="out"
-                     caller-allocates="0"
-                     transfer-ownership="full">
-            <doc xml:whitespace="preserve">return location for the minimum level of opacity, or %NULL</doc>
-            <type name="guint8" c:type="guint8*"/>
-          </parameter>
-          <parameter name="opacity_end"
-                     direction="out"
-                     caller-allocates="0"
-                     transfer-ownership="full">
-            <doc xml:whitespace="preserve">return location for the maximum level of opacity, or %NULL</doc>
-            <type name="guint8" c:type="guint8*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_bounds"
-              c:identifier="clutter_behaviour_opacity_set_bounds"
-              version="0.6">
-        <doc xml:whitespace="preserve">Sets the initial and final levels of the opacity applied by @behaviour
-on each actor it controls.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="opacity_start" transfer-ownership="none">
-            <doc xml:whitespace="preserve">minimum level of opacity</doc>
-            <type name="guint8" c:type="guint8"/>
-          </parameter>
-          <parameter name="opacity_end" transfer-ownership="none">
-            <doc xml:whitespace="preserve">maximum level of opacity</doc>
-            <type name="guint8" c:type="guint8"/>
-          </parameter>
-        </parameters>
-      </method>
-      <property name="opacity-end"
-                version="0.2"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">Final opacity level of the behaviour.</doc>
-        <type name="guint"/>
-      </property>
-      <property name="opacity-start"
-                version="0.2"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">Initial opacity level of the behaviour.</doc>
-        <type name="guint"/>
-      </property>
-      <field name="parent">
-        <type name="Behaviour" c:type="ClutterBehaviour"/>
-      </field>
-      <field name="priv">
-        <type name="BehaviourOpacityPrivate"
-              c:type="ClutterBehaviourOpacityPrivate*"/>
-      </field>
-    </class>
-    <record name="BehaviourOpacityClass"
-            c:type="ClutterBehaviourOpacityClass"
-            glib:is-gtype-struct-for="BehaviourOpacity"
-            version="0.2">
-      <doc xml:whitespace="preserve">The #ClutterBehaviourOpacityClass structure contains only private data</doc>
-      <field name="parent_class">
-        <type name="BehaviourClass" c:type="ClutterBehaviourClass"/>
-      </field>
-    </record>
-    <record name="BehaviourOpacityPrivate"
-            c:type="ClutterBehaviourOpacityPrivate"
-            disguised="1">
-    </record>
-    <class name="BehaviourPath"
-           c:symbol-prefix="behaviour_path"
-           c:type="ClutterBehaviourPath"
-           version="0.2"
-           parent="Behaviour"
-           glib:type-name="ClutterBehaviourPath"
-           glib:get-type="clutter_behaviour_path_get_type"
-           glib:type-struct="BehaviourPathClass">
-      <doc xml:whitespace="preserve">The #ClutterBehaviourPath structure contains only private data
-and should be accessed using the provided API</doc>
-      <implements name="Scriptable"/>
-      <constructor name="new"
-                   c:identifier="clutter_behaviour_path_new"
-                   version="0.2">
-        <doc xml:whitespace="preserve">Creates a new path behaviour. You can use this behaviour to drive
-actors along the nodes of a path, described by @path.
-This will claim the floating reference on the #ClutterPath so you
-do not need to unref if it.
-If @alpha is not %NULL, the #ClutterBehaviour will take ownership
-of the #ClutterAlpha instance. In the case when @alpha is %NULL,
-it can be set later with clutter_behaviour_set_alpha().</doc>
-        <return-value transfer-ownership="full">
-          <doc xml:whitespace="preserve">a #ClutterBehaviour</doc>
-          <type name="Behaviour" c:type="ClutterBehaviour*"/>
-        </return-value>
-        <parameters>
-          <parameter name="alpha" transfer-ownership="none" allow-none="1">
-            <doc xml:whitespace="preserve">a #ClutterAlpha instance, or %NULL</doc>
-            <type name="Alpha" c:type="ClutterAlpha*"/>
-          </parameter>
-          <parameter name="path" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #ClutterPath or %NULL for an empty path</doc>
-            <type name="Path" c:type="ClutterPath*"/>
-          </parameter>
-        </parameters>
-      </constructor>
-      <constructor name="new_with_description"
-                   c:identifier="clutter_behaviour_path_new_with_description"
-                   version="1.0">
-        <doc xml:whitespace="preserve">Creates a new path behaviour using the path described by @desc. See
-clutter_path_add_string() for a description of the format.
-If @alpha is not %NULL, the #ClutterBehaviour will take ownership
-of the #ClutterAlpha instance. In the case when @alpha is %NULL,
-it can be set later with clutter_behaviour_set_alpha().</doc>
-        <return-value transfer-ownership="full">
-          <doc xml:whitespace="preserve">a #ClutterBehaviour</doc>
-          <type name="Behaviour" c:type="ClutterBehaviour*"/>
-        </return-value>
-        <parameters>
-          <parameter name="alpha" transfer-ownership="none" allow-none="1">
-            <doc xml:whitespace="preserve">a #ClutterAlpha instance, or %NULL</doc>
-            <type name="Alpha" c:type="ClutterAlpha*"/>
-          </parameter>
-          <parameter name="desc" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a string description of the path</doc>
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </constructor>
-      <constructor name="new_with_knots"
-                   c:identifier="clutter_behaviour_path_new_with_knots"
-                   version="1.0">
-        <doc xml:whitespace="preserve">Creates a new path behaviour that will make the actors visit all of
-the given knots in order with straight lines in between.
-A path will be created where the first knot is used in a
-%CLUTTER_PATH_MOVE_TO and the subsequent knots are used in
-%CLUTTER_PATH_LINE_TO&lt;!-- --&gt;s.
-If @alpha is not %NULL, the #ClutterBehaviour will take ownership
-of the #ClutterAlpha instance. In the case when @alpha is %NULL,
-it can be set later with clutter_behaviour_set_alpha().</doc>
-        <return-value transfer-ownership="full">
-          <doc xml:whitespace="preserve">a #ClutterBehaviour</doc>
-          <type name="Behaviour" c:type="ClutterBehaviour*"/>
-        </return-value>
-        <parameters>
-          <parameter name="alpha" transfer-ownership="none" allow-none="1">
-            <doc xml:whitespace="preserve">a #ClutterAlpha instance, or %NULL</doc>
-            <type name="Alpha" c:type="ClutterAlpha*"/>
-          </parameter>
-          <parameter name="knots" transfer-ownership="none">
-            <doc xml:whitespace="preserve">an array of #ClutterKnot&lt;!-- --&gt;s</doc>
-            <type name="Knot" c:type="ClutterKnot*"/>
-          </parameter>
-          <parameter name="n_knots" transfer-ownership="none">
-            <doc xml:whitespace="preserve">number of entries in @knots</doc>
-            <type name="guint" c:type="guint"/>
-          </parameter>
-        </parameters>
-      </constructor>
-      <method name="get_path"
-              c:identifier="clutter_behaviour_path_get_path"
-              version="1.0">
-        <doc xml:whitespace="preserve">Get the current path of the behaviour</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the path</doc>
-          <type name="Path" c:type="ClutterPath*"/>
-        </return-value>
-      </method>
-      <method name="set_path"
-              c:identifier="clutter_behaviour_path_set_path"
-              version="1.0">
-        <doc xml:whitespace="preserve">Change the path that the actors will follow. This will take the
-floating reference on the #ClutterPath so you do not need to unref
-it.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="path" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the new path to follow</doc>
-            <type name="Path" c:type="ClutterPath*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <property name="path" writable="1" transfer-ownership="none">
-        <type name="Path"/>
-      </property>
-      <field name="parent">
-        <type name="Behaviour" c:type="ClutterBehaviour"/>
-      </field>
-      <field name="priv">
-        <type name="BehaviourPathPrivate"
-              c:type="ClutterBehaviourPathPrivate*"/>
-      </field>
-      <glib:signal name="knot-reached" version="0.2">
-        <doc xml:whitespace="preserve">This signal is emitted each time a node defined inside the path
-is reached.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none"/>
-        </return-value>
-        <parameters>
-          <parameter name="object" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the index of the #ClutterKnot reached</doc>
-            <type name="guint"/>
-          </parameter>
-        </parameters>
-      </glib:signal>
-    </class>
-    <record name="BehaviourPathClass"
-            c:type="ClutterBehaviourPathClass"
-            glib:is-gtype-struct-for="BehaviourPath">
-      <field name="parent_class">
-        <type name="BehaviourClass" c:type="ClutterBehaviourClass"/>
-      </field>
-      <field name="knot_reached">
-        <callback name="knot_reached">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="pathb" transfer-ownership="none">
-              <type name="BehaviourPath" c:type="ClutterBehaviourPath*"/>
-            </parameter>
-            <parameter name="knot_num" transfer-ownership="none">
-              <type name="guint" c:type="guint"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="_clutter_path_1" introspectable="0">
-        <callback name="_clutter_path_1">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-      <field name="_clutter_path_2" introspectable="0">
-        <callback name="_clutter_path_2">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-      <field name="_clutter_path_3" introspectable="0">
-        <callback name="_clutter_path_3">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-      <field name="_clutter_path_4" introspectable="0">
-        <callback name="_clutter_path_4">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-    </record>
-    <record name="BehaviourPathPrivate"
-            c:type="ClutterBehaviourPathPrivate"
-            disguised="1">
-    </record>
-    <record name="BehaviourPrivate"
-            c:type="ClutterBehaviourPrivate"
-            disguised="1">
-    </record>
-    <class name="BehaviourRotate"
-           c:symbol-prefix="behaviour_rotate"
-           c:type="ClutterBehaviourRotate"
-           version="0.4"
-           parent="Behaviour"
-           glib:type-name="ClutterBehaviourRotate"
-           glib:get-type="clutter_behaviour_rotate_get_type"
-           glib:type-struct="BehaviourRotateClass">
-      <doc xml:whitespace="preserve">The #ClutterBehaviourRotate struct contains only private data and
-should be accessed using the provided API</doc>
-      <implements name="Scriptable"/>
-      <constructor name="new"
-                   c:identifier="clutter_behaviour_rotate_new"
-                   version="0.4">
-        <doc xml:whitespace="preserve">Creates a new #ClutterBehaviourRotate. This behaviour will rotate actors
-bound to it on @axis, following @direction, between @angle_start and
-&lt;0, 360), if angle_start == angle_end, the behaviour will carry out a
-single rotation of 360 degrees.
-If @alpha is not %NULL, the #ClutterBehaviour will take ownership
-of the #ClutterAlpha instance. In the case when @alpha is %NULL,
-it can be set later with clutter_behaviour_set_alpha().</doc>
-        <return-value transfer-ownership="full">
-          <doc xml:whitespace="preserve">the newly created #ClutterBehaviourRotate.</doc>
-          <type name="Behaviour" c:type="ClutterBehaviour*"/>
-        </return-value>
-        <parameters>
-          <parameter name="alpha" transfer-ownership="none" allow-none="1">
-            <doc xml:whitespace="preserve">a #ClutterAlpha instance, or %NULL</doc>
-            <type name="Alpha" c:type="ClutterAlpha*"/>
-          </parameter>
-          <parameter name="axis" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the rotation axis</doc>
-            <type name="RotateAxis" c:type="ClutterRotateAxis"/>
-          </parameter>
-          <parameter name="direction" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the rotation direction</doc>
-            <type name="RotateDirection" c:type="ClutterRotateDirection"/>
-          </parameter>
-          <parameter name="angle_start" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the starting angle in degrees, between 0 and 360.</doc>
-            <type name="gdouble" c:type="gdouble"/>
-          </parameter>
-          <parameter name="angle_end" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the final angle in degrees, between 0 and 360.</doc>
-            <type name="gdouble" c:type="gdouble"/>
-          </parameter>
-        </parameters>
-      </constructor>
-      <method name="get_axis"
-              c:identifier="clutter_behaviour_rotate_get_axis"
-              version="0.4">
-        <doc xml:whitespace="preserve">Retrieves the #ClutterRotateAxis used by the rotate behaviour.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the rotation axis</doc>
-          <type name="RotateAxis" c:type="ClutterRotateAxis"/>
-        </return-value>
-      </method>
-      <method name="get_bounds"
-              c:identifier="clutter_behaviour_rotate_get_bounds"
-              version="0.4">
-        <doc xml:whitespace="preserve">Retrieves the rotation boundaries of the rotate behaviour.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="angle_start" transfer-ownership="none">
-            <doc xml:whitespace="preserve">return value for the initial angle</doc>
-            <type name="gdouble" c:type="gdouble*"/>
-          </parameter>
-          <parameter name="angle_end" transfer-ownership="none">
-            <doc xml:whitespace="preserve">return value for the final angle</doc>
-            <type name="gdouble" c:type="gdouble*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_center"
-              c:identifier="clutter_behaviour_rotate_get_center"
-              version="0.4">
-        <doc xml:whitespace="preserve">Retrieves the center of rotation set using
-clutter_behaviour_rotate_set_center().</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="x"
-                     direction="out"
-                     caller-allocates="0"
-                     transfer-ownership="full">
-            <doc xml:whitespace="preserve">return location for the X center of rotation</doc>
-            <type name="gint" c:type="gint*"/>
-          </parameter>
-          <parameter name="y"
-                     direction="out"
-                     caller-allocates="0"
-                     transfer-ownership="full">
-            <doc xml:whitespace="preserve">return location for the Y center of rotation</doc>
-            <type name="gint" c:type="gint*"/>
-          </parameter>
-          <parameter name="z"
-                     direction="out"
-                     caller-allocates="0"
-                     transfer-ownership="full">
-            <doc xml:whitespace="preserve">return location for the Z center of rotation</doc>
-            <type name="gint" c:type="gint*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_direction"
-              c:identifier="clutter_behaviour_rotate_get_direction"
-              version="0.4">
-        <doc xml:whitespace="preserve">Retrieves the #ClutterRotateDirection used by the rotate behaviour.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the rotation direction</doc>
-          <type name="RotateDirection" c:type="ClutterRotateDirection"/>
-        </return-value>
-      </method>
-      <method name="set_axis"
-              c:identifier="clutter_behaviour_rotate_set_axis"
-              version="0.4">
-        <doc xml:whitespace="preserve">Sets the axis used by the rotate behaviour.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="axis" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #ClutterRotateAxis</doc>
-            <type name="RotateAxis" c:type="ClutterRotateAxis"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_bounds"
-              c:identifier="clutter_behaviour_rotate_set_bounds"
-              version="0.4">
-        <doc xml:whitespace="preserve">Sets the initial and final angles of a rotation behaviour; angles &gt;= 360
-degrees get clamped to the canonical interval &lt;0, 360).</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="angle_start" transfer-ownership="none">
-            <doc xml:whitespace="preserve">initial angle in degrees, between 0 and 360.</doc>
-            <type name="gdouble" c:type="gdouble"/>
-          </parameter>
-          <parameter name="angle_end" transfer-ownership="none">
-            <doc xml:whitespace="preserve">final angle in degrees, between 0 and 360.</doc>
-            <type name="gdouble" c:type="gdouble"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_center"
-              c:identifier="clutter_behaviour_rotate_set_center"
-              version="0.4">
-        <doc xml:whitespace="preserve">Sets the center of rotation. The coordinates are relative to the plane
-normal to the rotation axis set with clutter_behaviour_rotate_set_axis().</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="x" transfer-ownership="none">
-            <doc xml:whitespace="preserve">X axis center of rotation</doc>
-            <type name="gint" c:type="gint"/>
-          </parameter>
-          <parameter name="y" transfer-ownership="none">
-            <doc xml:whitespace="preserve">Y axis center of rotation</doc>
-            <type name="gint" c:type="gint"/>
-          </parameter>
-          <parameter name="z" transfer-ownership="none">
-            <doc xml:whitespace="preserve">Z axis center of rotation</doc>
-            <type name="gint" c:type="gint"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_direction"
-              c:identifier="clutter_behaviour_rotate_set_direction"
-              version="0.4">
-        <doc xml:whitespace="preserve">Sets the rotation direction used by the rotate behaviour.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="direction" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the rotation direction</doc>
-            <type name="RotateDirection" c:type="ClutterRotateDirection"/>
-          </parameter>
-        </parameters>
-      </method>
-      <property name="angle-end"
-                version="0.4"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">The final angle to where the rotation should end.</doc>
-        <type name="gdouble"/>
-      </property>
-      <property name="angle-start"
-                version="0.4"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">The initial angle from whence the rotation should start.</doc>
-        <type name="gdouble"/>
-      </property>
-      <property name="axis"
-                version="0.4"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">The axis of rotation.</doc>
-        <type name="RotateAxis"/>
-      </property>
-      <property name="center-x"
-                version="0.4"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">The x center of rotation.</doc>
-        <type name="gint"/>
-      </property>
-      <property name="center-y"
-                version="0.4"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">The y center of rotation.</doc>
-        <type name="gint"/>
-      </property>
-      <property name="center-z"
-                version="0.4"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">The z center of rotation.</doc>
-        <type name="gint"/>
-      </property>
-      <property name="direction"
-                version="0.4"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">The direction of the rotation.</doc>
-        <type name="RotateDirection"/>
-      </property>
-      <field name="parent_instance">
-        <type name="Behaviour" c:type="ClutterBehaviour"/>
-      </field>
-      <field name="priv">
-        <type name="BehaviourRotatePrivate"
-              c:type="ClutterBehaviourRotatePrivate*"/>
-      </field>
-    </class>
-    <record name="BehaviourRotateClass"
-            c:type="ClutterBehaviourRotateClass"
-            glib:is-gtype-struct-for="BehaviourRotate"
-            version="0.4">
-      <doc xml:whitespace="preserve">The #ClutterBehaviourRotateClass struct contains only private data</doc>
-      <field name="parent_class">
-        <type name="BehaviourClass" c:type="ClutterBehaviourClass"/>
-      </field>
-    </record>
-    <record name="BehaviourRotatePrivate"
-            c:type="ClutterBehaviourRotatePrivate"
-            disguised="1">
-    </record>
-    <class name="BehaviourScale"
-           c:symbol-prefix="behaviour_scale"
-           c:type="ClutterBehaviourScale"
-           version="0.2"
-           parent="Behaviour"
-           glib:type-name="ClutterBehaviourScale"
-           glib:get-type="clutter_behaviour_scale_get_type"
-           glib:type-struct="BehaviourScaleClass">
-      <doc xml:whitespace="preserve">The #ClutterBehaviourScale struct contains only private data and
-should be accessed using the provided API</doc>
-      <implements name="Scriptable"/>
-      <constructor name="new"
-                   c:identifier="clutter_behaviour_scale_new"
-                   version="0.2">
-        <doc xml:whitespace="preserve">Creates a new  #ClutterBehaviourScale instance.
-If @alpha is not %NULL, the #ClutterBehaviour will take ownership
-of the #ClutterAlpha instance. In the case when @alpha is %NULL,
-it can be set later with clutter_behaviour_set_alpha().</doc>
-        <return-value transfer-ownership="full">
-          <doc xml:whitespace="preserve">the newly created #ClutterBehaviourScale</doc>
-          <type name="Behaviour" c:type="ClutterBehaviour*"/>
-        </return-value>
-        <parameters>
-          <parameter name="alpha" transfer-ownership="none" allow-none="1">
-            <doc xml:whitespace="preserve">a #ClutterAlpha instance, or %NULL</doc>
-            <type name="Alpha" c:type="ClutterAlpha*"/>
-          </parameter>
-          <parameter name="x_scale_start" transfer-ownership="none">
-            <doc xml:whitespace="preserve">initial scale factor on the X axis</doc>
-            <type name="gdouble" c:type="gdouble"/>
-          </parameter>
-          <parameter name="y_scale_start" transfer-ownership="none">
-            <doc xml:whitespace="preserve">initial scale factor on the Y axis</doc>
-            <type name="gdouble" c:type="gdouble"/>
-          </parameter>
-          <parameter name="x_scale_end" transfer-ownership="none">
-            <doc xml:whitespace="preserve">final scale factor on the X axis</doc>
-            <type name="gdouble" c:type="gdouble"/>
-          </parameter>
-          <parameter name="y_scale_end" transfer-ownership="none">
-            <doc xml:whitespace="preserve">final scale factor on the Y axis</doc>
-            <type name="gdouble" c:type="gdouble"/>
-          </parameter>
-        </parameters>
-      </constructor>
-      <method name="get_bounds"
-              c:identifier="clutter_behaviour_scale_get_bounds"
-              version="0.4">
-        <doc xml:whitespace="preserve">Retrieves the bounds used by scale behaviour.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="x_scale_start"
-                     direction="out"
-                     caller-allocates="0"
-                     transfer-ownership="full">
-            <doc xml:whitespace="preserve">return location for the initial scale factor on the X axis, or %NULL</doc>
-            <type name="gdouble" c:type="gdouble*"/>
-          </parameter>
-          <parameter name="y_scale_start"
-                     direction="out"
-                     caller-allocates="0"
-                     transfer-ownership="full">
-            <doc xml:whitespace="preserve">return location for the initial scale factor on the Y axis, or %NULL</doc>
-            <type name="gdouble" c:type="gdouble*"/>
-          </parameter>
-          <parameter name="x_scale_end"
-                     direction="out"
-                     caller-allocates="0"
-                     transfer-ownership="full">
-            <doc xml:whitespace="preserve">return location for the final scale factor on the X axis, or %NULL</doc>
-            <type name="gdouble" c:type="gdouble*"/>
-          </parameter>
-          <parameter name="y_scale_end"
-                     direction="out"
-                     caller-allocates="0"
-                     transfer-ownership="full">
-            <doc xml:whitespace="preserve">return location for the final scale factor on the Y axis, or %NULL</doc>
-            <type name="gdouble" c:type="gdouble*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_bounds"
-              c:identifier="clutter_behaviour_scale_set_bounds"
-              version="0.6">
-        <doc xml:whitespace="preserve">Sets the bounds used by scale behaviour.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="x_scale_start" transfer-ownership="none">
-            <doc xml:whitespace="preserve">initial scale factor on the X axis</doc>
-            <type name="gdouble" c:type="gdouble"/>
-          </parameter>
-          <parameter name="y_scale_start" transfer-ownership="none">
-            <doc xml:whitespace="preserve">initial scale factor on the Y axis</doc>
-            <type name="gdouble" c:type="gdouble"/>
-          </parameter>
-          <parameter name="x_scale_end" transfer-ownership="none">
-            <doc xml:whitespace="preserve">final scale factor on the X axis</doc>
-            <type name="gdouble" c:type="gdouble"/>
-          </parameter>
-          <parameter name="y_scale_end" transfer-ownership="none">
-            <doc xml:whitespace="preserve">final scale factor on the Y axis</doc>
-            <type name="gdouble" c:type="gdouble"/>
-          </parameter>
-        </parameters>
-      </method>
-      <property name="x-scale-end"
-                version="0.6"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">The final scaling factor on the X axis for the actors.</doc>
-        <type name="gdouble"/>
-      </property>
-      <property name="x-scale-start"
-                version="0.6"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">The initial scaling factor on the X axis for the actors.</doc>
-        <type name="gdouble"/>
-      </property>
-      <property name="y-scale-end"
-                version="0.6"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">The final scaling factor on the Y axis for the actors.</doc>
-        <type name="gdouble"/>
-      </property>
-      <property name="y-scale-start"
-                version="0.6"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">The initial scaling factor on the Y axis for the actors.</doc>
-        <type name="gdouble"/>
-      </property>
-      <field name="parent_instance">
-        <type name="Behaviour" c:type="ClutterBehaviour"/>
-      </field>
-      <field name="priv">
-        <type name="BehaviourScalePrivate"
-              c:type="ClutterBehaviourScalePrivate*"/>
-      </field>
-    </class>
-    <record name="BehaviourScaleClass"
-            c:type="ClutterBehaviourScaleClass"
-            glib:is-gtype-struct-for="BehaviourScale"
-            version="0.2">
-      <doc xml:whitespace="preserve">The #ClutterBehaviourScaleClass struct contains only private data</doc>
-      <field name="parent_class">
-        <type name="BehaviourClass" c:type="ClutterBehaviourClass"/>
-      </field>
-    </record>
-    <record name="BehaviourScalePrivate"
-            c:type="ClutterBehaviourScalePrivate"
-            disguised="1">
-    </record>
-    <enumeration name="BinAlignment"
-                 version="1.2"
-                 glib:type-name="ClutterBinAlignment"
-                 glib:get-type="clutter_bin_alignment_get_type"
-                 c:type="ClutterBinAlignment">
-      <doc xml:whitespace="preserve">The alignment policies available on each axis for #ClutterBinLayout</doc>
-      <member name="fixed"
-              value="0"
-              c:identifier="CLUTTER_BIN_ALIGNMENT_FIXED"
-              glib:nick="fixed"/>
-      <member name="fill"
-              value="1"
-              c:identifier="CLUTTER_BIN_ALIGNMENT_FILL"
-              glib:nick="fill"/>
-      <member name="start"
-              value="2"
-              c:identifier="CLUTTER_BIN_ALIGNMENT_START"
-              glib:nick="start"/>
-      <member name="end"
-              value="3"
-              c:identifier="CLUTTER_BIN_ALIGNMENT_END"
-              glib:nick="end"/>
-      <member name="center"
-              value="4"
-              c:identifier="CLUTTER_BIN_ALIGNMENT_CENTER"
-              glib:nick="center"/>
-    </enumeration>
-    <class name="BinLayout"
-           c:symbol-prefix="bin_layout"
-           c:type="ClutterBinLayout"
-           version="1.2"
-           parent="LayoutManager"
-           glib:type-name="ClutterBinLayout"
-           glib:get-type="clutter_bin_layout_get_type"
-           glib:type-struct="BinLayoutClass">
-      <doc xml:whitespace="preserve">The #ClutterBinLayout structure contains only private data
-and should be accessed using the provided API</doc>
-      <constructor name="new"
-                   c:identifier="clutter_bin_layout_new"
-                   version="1.2">
-        <doc xml:whitespace="preserve">Creates a new #ClutterBinLayout layout manager</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the newly created layout manager</doc>
-          <type name="LayoutManager" c:type="ClutterLayoutManager*"/>
-        </return-value>
-        <parameters>
-          <parameter name="x_align" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the default alignment policy to be used on the horizontal axis</doc>
-            <type name="BinAlignment" c:type="ClutterBinAlignment"/>
-          </parameter>
-          <parameter name="y_align" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the default alignment policy to be used on the vertical axis</doc>
-            <type name="BinAlignment" c:type="ClutterBinAlignment"/>
-          </parameter>
-        </parameters>
-      </constructor>
-      <method name="add" c:identifier="clutter_bin_layout_add" version="1.2">
-        <doc xml:whitespace="preserve">Adds a #ClutterActor to the container using @self and
-sets the alignment policies for it
-This function is equivalent to clutter_container_add_actor()
-and clutter_layout_manager_child_set_property() but it does not
-require a pointer to the #ClutterContainer associated to the
-#ClutterBinLayout</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="child" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #ClutterActor</doc>
-            <type name="Actor" c:type="ClutterActor*"/>
-          </parameter>
-          <parameter name="x_align" transfer-ownership="none">
-            <doc xml:whitespace="preserve">horizontal alignment policy for @child</doc>
-            <type name="BinAlignment" c:type="ClutterBinAlignment"/>
-          </parameter>
-          <parameter name="y_align" transfer-ownership="none">
-            <doc xml:whitespace="preserve">vertical alignment policy for @child</doc>
-            <type name="BinAlignment" c:type="ClutterBinAlignment"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_alignment"
-              c:identifier="clutter_bin_layout_get_alignment"
-              version="1.2">
-        <doc xml:whitespace="preserve">Retrieves the horizontal and vertical alignment policies for
-a child of @self
-If @child is %NULL the default alignment policies will be returned
-instead</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="child" transfer-ownership="none" allow-none="1">
-            <doc xml:whitespace="preserve">a child of @container</doc>
-            <type name="Actor" c:type="ClutterActor*"/>
-          </parameter>
-          <parameter name="x_align"
-                     direction="out"
-                     caller-allocates="1"
-                     transfer-ownership="none"
-                     allow-none="1">
-            <doc xml:whitespace="preserve">return location for the horizontal alignment policy</doc>
-            <type name="BinAlignment" c:type="ClutterBinAlignment*"/>
-          </parameter>
-          <parameter name="y_align"
-                     direction="out"
-                     caller-allocates="1"
-                     transfer-ownership="none"
-                     allow-none="1">
-            <doc xml:whitespace="preserve">return location for the vertical alignment policy</doc>
-            <type name="BinAlignment" c:type="ClutterBinAlignment*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_alignment"
-              c:identifier="clutter_bin_layout_set_alignment"
-              version="1.2">
-        <doc xml:whitespace="preserve">Sets the horizontal and vertical alignment policies to be applied
-to a @child of @self
-If @child is %NULL then the @x_align and @y_align values will
-be set as the default alignment policies</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="child" transfer-ownership="none" allow-none="1">
-            <doc xml:whitespace="preserve">a child of @container</doc>
-            <type name="Actor" c:type="ClutterActor*"/>
-          </parameter>
-          <parameter name="x_align" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the horizontal alignment policy to be used for the @child inside @container</doc>
-            <type name="BinAlignment" c:type="ClutterBinAlignment"/>
-          </parameter>
-          <parameter name="y_align" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the vertical aligment policy to be used on the @child inside @container</doc>
-            <type name="BinAlignment" c:type="ClutterBinAlignment"/>
-          </parameter>
-        </parameters>
-      </method>
-      <property name="x-align"
-                version="1.2"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">The default horizontal alignment policy for actors managed
-by the #ClutterBinLayout</doc>
-        <type name="BinAlignment"/>
-      </property>
-      <property name="y-align"
-                version="1.2"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">The default vertical alignment policy for actors managed
-by the #ClutterBinLayout</doc>
-        <type name="BinAlignment"/>
-      </property>
-      <field name="parent_instance">
-        <type name="LayoutManager" c:type="ClutterLayoutManager"/>
-      </field>
-      <field name="priv">
-        <type name="BinLayoutPrivate" c:type="ClutterBinLayoutPrivate*"/>
-      </field>
-    </class>
-    <record name="BinLayoutClass"
-            c:type="ClutterBinLayoutClass"
-            glib:is-gtype-struct-for="BinLayout"
-            version="1.2">
-      <doc xml:whitespace="preserve">The #ClutterBinLayoutClass structure contains only private
-data and should be accessed using the provided API</doc>
-      <field name="parent_class">
-        <type name="LayoutManagerClass" c:type="ClutterLayoutManagerClass"/>
-      </field>
-    </record>
-    <record name="BinLayoutPrivate"
-            c:type="ClutterBinLayoutPrivate"
-            disguised="1">
-    </record>
-    <class name="BindConstraint"
-           c:symbol-prefix="bind_constraint"
-           c:type="ClutterBindConstraint"
-           version="1.4"
-           parent="Constraint"
-           glib:type-name="ClutterBindConstraint"
-           glib:get-type="clutter_bind_constraint_get_type">
-      <doc xml:whitespace="preserve">&lt;structname&gt;ClutterBindConstraint&lt;/structname&gt; is an opaque structure
-whose members cannot be directly accessed</doc>
-      <constructor name="new"
-                   c:identifier="clutter_bind_constraint_new"
-                   version="1.4">
-        <doc xml:whitespace="preserve">Creates a new constraint, binding a #ClutterActor's position to
-the given @coordinate of the position of @source</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the newly created #ClutterBindConstraint</doc>
-          <type name="Constraint" c:type="ClutterConstraint*"/>
-        </return-value>
-        <parameters>
-          <parameter name="source" transfer-ownership="none" allow-none="1">
-            <doc xml:whitespace="preserve">the #ClutterActor to use as the source of the binding, or %NULL</doc>
-            <type name="Actor" c:type="ClutterActor*"/>
-          </parameter>
-          <parameter name="coordinate" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the coordinate to bind</doc>
-            <type name="BindCoordinate" c:type="ClutterBindCoordinate"/>
-          </parameter>
-          <parameter name="offset" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the offset to apply to the binding, in pixels</doc>
-            <type name="gfloat" c:type="gfloat"/>
-          </parameter>
-        </parameters>
-      </constructor>
-      <method name="get_coordinate"
-              c:identifier="clutter_bind_constraint_get_coordinate"
-              version="1.4">
-        <doc xml:whitespace="preserve">Retrieves the bound coordinate of the constraint</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the bound coordinate</doc>
-          <type name="BindCoordinate" c:type="ClutterBindCoordinate"/>
-        </return-value>
-      </method>
-      <method name="get_offset"
-              c:identifier="clutter_bind_constraint_get_offset"
-              version="1.4">
-        <doc xml:whitespace="preserve">Retrieves the offset set using clutter_bind_constraint_set_offset()</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the offset, in pixels</doc>
-          <type name="gfloat" c:type="gfloat"/>
-        </return-value>
-      </method>
-      <method name="get_source"
-              c:identifier="clutter_bind_constraint_get_source"
-              version="1.4">
-        <doc xml:whitespace="preserve">Retrieves the #ClutterActor set using clutter_bind_constraint_set_source()</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">a pointer to the source actor</doc>
-          <type name="Actor" c:type="ClutterActor*"/>
-        </return-value>
-      </method>
-      <method name="set_coordinate"
-              c:identifier="clutter_bind_constraint_set_coordinate"
-              version="1.4">
-        <doc xml:whitespace="preserve">Sets the coordinate to bind in the constraint</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="coordinate" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the coordinate to bind</doc>
-            <type name="BindCoordinate" c:type="ClutterBindCoordinate"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_offset"
-              c:identifier="clutter_bind_constraint_set_offset"
-              version="1.4">
-        <doc xml:whitespace="preserve">Sets the offset to be applied to the constraint</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="offset" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the offset to apply, in pixels</doc>
-            <type name="gfloat" c:type="gfloat"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_source"
-              c:identifier="clutter_bind_constraint_set_source"
-              version="1.4">
-        <doc xml:whitespace="preserve">Sets the source #ClutterActor for the constraint</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="source" transfer-ownership="none" allow-none="1">
-            <doc xml:whitespace="preserve">a #ClutterActor, or %NULL to unset the source</doc>
-            <type name="Actor" c:type="ClutterActor*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <property name="coordinate"
-                version="1.4"
-                writable="1"
-                construct="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">The coordinate to be bound</doc>
-        <type name="BindCoordinate"/>
-      </property>
-      <property name="offset"
-                version="1.4"
-                writable="1"
-                construct="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">The offset, in pixels, to be applied to the binding</doc>
-        <type name="gfloat"/>
-      </property>
-      <property name="source"
-                version="1.4"
-                writable="1"
-                construct="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">The #ClutterActor used as the source for the binding</doc>
-        <type name="Actor"/>
-      </property>
-    </class>
-    <enumeration name="BindCoordinate"
-                 version="1.4"
-                 glib:type-name="ClutterBindCoordinate"
-                 glib:get-type="clutter_bind_coordinate_get_type"
-                 c:type="ClutterBindCoordinate">
-      <doc xml:whitespace="preserve">Specifies which property should be used in a binding</doc>
-      <member name="x" value="0" c:identifier="CLUTTER_BIND_X" glib:nick="x"/>
-      <member name="y" value="1" c:identifier="CLUTTER_BIND_Y" glib:nick="y"/>
-      <member name="width"
-              value="2"
-              c:identifier="CLUTTER_BIND_WIDTH"
-              glib:nick="width"/>
-      <member name="height"
-              value="3"
-              c:identifier="CLUTTER_BIND_HEIGHT"
-              glib:nick="height"/>
-    </enumeration>
-    <callback name="BindingActionFunc"
-              c:type="ClutterBindingActionFunc"
-              version="1.0">
-      <doc xml:whitespace="preserve">The prototype for the callback function registered with
-clutter_binding_pool_install_action() and invoked by
-clutter_binding_pool_activate().
-binding has been handled, and return %FALSE otherwise</doc>
-      <return-value transfer-ownership="none">
-        <doc xml:whitespace="preserve">the function should return %TRUE if the key</doc>
-        <type name="gboolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="gobject" transfer-ownership="none">
-          <doc xml:whitespace="preserve">a #GObject</doc>
-          <type name="GObject.Object" c:type="GObject*"/>
-        </parameter>
-        <parameter name="action_name" transfer-ownership="none">
-          <doc xml:whitespace="preserve">the name of the action</doc>
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-        <parameter name="key_val" transfer-ownership="none">
-          <doc xml:whitespace="preserve">the key symbol</doc>
-          <type name="guint" c:type="guint"/>
-        </parameter>
-        <parameter name="modifiers" transfer-ownership="none">
-          <doc xml:whitespace="preserve">bitmask of the modifier flags</doc>
-          <type name="ModifierType" c:type="ClutterModifierType"/>
-        </parameter>
-      </parameters>
-    </callback>
-    <class name="BindingPool"
-           c:symbol-prefix="binding_pool"
-           c:type="ClutterBindingPool"
-           version="1.0"
-           parent="GObject.Object"
-           glib:type-name="ClutterBindingPool"
-           glib:get-type="clutter_binding_pool_get_type">
-      <doc xml:whitespace="preserve">Container of key bindings. The #ClutterBindingPool struct is
-private.</doc>
-      <constructor name="new"
-                   c:identifier="clutter_binding_pool_new"
-                   version="1.0">
-        <doc xml:whitespace="preserve">Creates a new #ClutterBindingPool that can be used to store
-key bindings for an actor. The @name must be a unique identifier
-for the binding pool, so that clutter_binding_pool_find() will
-be able to return the correct binding pool.
-name. Use g_object_unref() when done.</doc>
-        <return-value transfer-ownership="full">
-          <doc xml:whitespace="preserve">the newly created binding pool with the given</doc>
-          <type name="BindingPool" c:type="ClutterBindingPool*"/>
-        </return-value>
-        <parameters>
-          <parameter name="name" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the name of the binding pool</doc>
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </constructor>
-      <function name="find"
-                c:identifier="clutter_binding_pool_find"
-                version="1.0">
-        <doc xml:whitespace="preserve">Finds the #ClutterBindingPool with @name.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">a pointer to the #ClutterBindingPool, or %NULL</doc>
-          <type name="BindingPool" c:type="ClutterBindingPool*"/>
-        </return-value>
-        <parameters>
-          <parameter name="name" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the name of the binding pool to find</doc>
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </function>
-      <function name="get_for_class"
-                c:identifier="clutter_binding_pool_get_for_class"
-                version="1.0">
-        <doc xml:whitespace="preserve">Retrieves the #ClutterBindingPool for the given #GObject class
-and, eventually, creates it. This function is a wrapper around
-clutter_binding_pool_new() and uses the class type name as the
-unique name for the binding pool.
-Calling this function multiple times will return the same
-#ClutterBindingPool.
-A binding pool for a class can also be retrieved using
-clutter_binding_pool_find() with the class type name:
-|[
-pool = clutter_binding_pool_find (G_OBJECT_TYPE_NAME (instance));
-]|
-The returned #ClutterBindingPool is owned by Clutter and should not
-be freed directly</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the binding pool for the given class.</doc>
-          <type name="BindingPool" c:type="ClutterBindingPool*"/>
-        </return-value>
-        <parameters>
-          <parameter name="klass" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #GObjectClass pointer</doc>
-            <type name="gpointer" c:type="gpointer"/>
-          </parameter>
-        </parameters>
-      </function>
-      <method name="activate"
-              c:identifier="clutter_binding_pool_activate"
-              version="1.0">
-        <doc xml:whitespace="preserve">Activates the callback associated to the action that is
-bound to the @key_val and @modifiers pair.
-The callback has the following signature:
-|[
-void (* callback) (GObject             *gobject,
-const gchar         *action_name,
-guint                key_val,
-ClutterModifierType  modifiers,
-gpointer             user_data);
-]|
-Where the #GObject instance is @gobject and the user data
-is the one passed when installing the action with
-clutter_binding_pool_install_action().
-If the action bound to the @key_val, @modifiers pair has been
-blocked using clutter_binding_pool_block_action(), the callback
-will not be invoked, and this function will return %FALSE.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">%TRUE if an action was found and was activated</doc>
-          <type name="gboolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="key_val" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the key symbol</doc>
-            <type name="guint" c:type="guint"/>
-          </parameter>
-          <parameter name="modifiers" transfer-ownership="none">
-            <doc xml:whitespace="preserve">bitmask for the modifiers</doc>
-            <type name="ModifierType" c:type="ClutterModifierType"/>
-          </parameter>
-          <parameter name="gobject" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #GObject</doc>
-            <type name="GObject.Object" c:type="GObject*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="block_action"
-              c:identifier="clutter_binding_pool_block_action"
-              version="1.0">
-        <doc xml:whitespace="preserve">Blocks all the actions with name @action_name inside @pool.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="action_name" transfer-ownership="none">
-            <doc xml:whitespace="preserve">an action name</doc>
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="find_action"
-              c:identifier="clutter_binding_pool_find_action"
-              version="1.0">
-        <doc xml:whitespace="preserve">Retrieves the name of the action matching the given key symbol
-and modifiers bitmask.
-returned string is owned by the binding pool and should never
-be modified or freed</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the name of the action, if found, or %NULL. The</doc>
-          <type name="utf8" c:type="gchar*"/>
-        </return-value>
-        <parameters>
-          <parameter name="key_val" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a key symbol</doc>
-            <type name="guint" c:type="guint"/>
-          </parameter>
-          <parameter name="modifiers" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a bitmask for the modifiers</doc>
-            <type name="ModifierType" c:type="ClutterModifierType"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="install_action"
-              c:identifier="clutter_binding_pool_install_action"
-              version="1.0">
-        <doc xml:whitespace="preserve">Installs a new action inside a #ClutterBindingPool. The action
-is bound to @key_val and @modifiers.
-The same action name can be used for multiple @key_val, @modifiers
-pairs.
-When an action has been activated using clutter_binding_pool_activate()
-the passed @callback will be invoked (with @data).
-Actions can be blocked with clutter_binding_pool_block_action()
-and then unblocked using clutter_binding_pool_unblock_action().</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="action_name" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the name of the action</doc>
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="key_val" transfer-ownership="none">
-            <doc xml:whitespace="preserve">key symbol</doc>
-            <type name="guint" c:type="guint"/>
-          </parameter>
-          <parameter name="modifiers" transfer-ownership="none">
-            <doc xml:whitespace="preserve">bitmask of modifiers</doc>
-            <type name="ModifierType" c:type="ClutterModifierType"/>
-          </parameter>
-          <parameter name="callback"
-                     transfer-ownership="none"
-                     scope="notified"
-                     closure="4"
-                     destroy="5">
-            <doc xml:whitespace="preserve">function to be called when the action is activated</doc>
-            <type name="GObject.Callback" c:type="GCallback"/>
-          </parameter>
-          <parameter name="data" transfer-ownership="none">
-            <doc xml:whitespace="preserve">data to be passed to @callback</doc>
-            <type name="gpointer" c:type="gpointer"/>
-          </parameter>
-          <parameter name="notify" transfer-ownership="none" scope="async">
-            <doc xml:whitespace="preserve">function to be called when the action is removed from the pool</doc>
-            <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="install_closure"
-              c:identifier="clutter_binding_pool_install_closure"
-              version="1.0">
-        <doc xml:whitespace="preserve">A #GClosure variant of clutter_binding_pool_install_action().
-Installs a new action inside a #ClutterBindingPool. The action
-is bound to @key_val and @modifiers.
-The same action name can be used for multiple @key_val, @modifiers
-pairs.
-When an action has been activated using clutter_binding_pool_activate()
-the passed @closure will be invoked.
-Actions can be blocked with clutter_binding_pool_block_action()
-and then unblocked using clutter_binding_pool_unblock_action().</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="action_name" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the name of the action</doc>
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="key_val" transfer-ownership="none">
-            <doc xml:whitespace="preserve">key symbol</doc>
-            <type name="guint" c:type="guint"/>
-          </parameter>
-          <parameter name="modifiers" transfer-ownership="none">
-            <doc xml:whitespace="preserve">bitmask of modifiers</doc>
-            <type name="ModifierType" c:type="ClutterModifierType"/>
-          </parameter>
-          <parameter name="closure" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #GClosure</doc>
-            <type name="GObject.Closure" c:type="GClosure*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="override_action"
-              c:identifier="clutter_binding_pool_override_action"
-              version="1.0">
-        <doc xml:whitespace="preserve">Allows overriding the action for @key_val and @modifiers inside a
-#ClutterBindingPool. See clutter_binding_pool_install_action().
-When an action has been activated using clutter_binding_pool_activate()
-the passed @callback will be invoked (with @data).
-Actions can be blocked with clutter_binding_pool_block_action()
-and then unblocked using clutter_binding_pool_unblock_action().</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="key_val" transfer-ownership="none">
-            <doc xml:whitespace="preserve">key symbol</doc>
-            <type name="guint" c:type="guint"/>
-          </parameter>
-          <parameter name="modifiers" transfer-ownership="none">
-            <doc xml:whitespace="preserve">bitmask of modifiers</doc>
-            <type name="ModifierType" c:type="ClutterModifierType"/>
-          </parameter>
-          <parameter name="callback"
-                     transfer-ownership="none"
-                     scope="notified"
-                     closure="3"
-                     destroy="4">
-            <doc xml:whitespace="preserve">function to be called when the action is activated</doc>
-            <type name="GObject.Callback" c:type="GCallback"/>
-          </parameter>
-          <parameter name="data" transfer-ownership="none">
-            <doc xml:whitespace="preserve">data to be passed to @callback</doc>
-            <type name="gpointer" c:type="gpointer"/>
-          </parameter>
-          <parameter name="notify" transfer-ownership="none" scope="async">
-            <doc xml:whitespace="preserve">function to be called when the action is removed from the pool</doc>
-            <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="override_closure"
-              c:identifier="clutter_binding_pool_override_closure"
-              version="1.0">
-        <doc xml:whitespace="preserve">A #GClosure variant of clutter_binding_pool_override_action().
-Allows overriding the action for @key_val and @modifiers inside a
-#ClutterBindingPool. See clutter_binding_pool_install_closure().
-When an action has been activated using clutter_binding_pool_activate()
-the passed @callback will be invoked (with @data).
-Actions can be blocked with clutter_binding_pool_block_action()
-and then unblocked using clutter_binding_pool_unblock_action().</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="key_val" transfer-ownership="none">
-            <doc xml:whitespace="preserve">key symbol</doc>
-            <type name="guint" c:type="guint"/>
-          </parameter>
-          <parameter name="modifiers" transfer-ownership="none">
-            <doc xml:whitespace="preserve">bitmask of modifiers</doc>
-            <type name="ModifierType" c:type="ClutterModifierType"/>
-          </parameter>
-          <parameter name="closure" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #GClosure</doc>
-            <type name="GObject.Closure" c:type="GClosure*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="remove_action"
-              c:identifier="clutter_binding_pool_remove_action"
-              version="1.0">
-        <doc xml:whitespace="preserve">Removes the action matching the given @key_val, @modifiers pair,
-if any exists.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="key_val" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a key symbol</doc>
-            <type name="guint" c:type="guint"/>
-          </parameter>
-          <parameter name="modifiers" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a bitmask for the modifiers</doc>
-            <type name="ModifierType" c:type="ClutterModifierType"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="unblock_action"
-              c:identifier="clutter_binding_pool_unblock_action"
-              version="1.0">
-        <doc xml:whitespace="preserve">Unblockes all the actions with name @action_name inside @pool.
-Unblocking an action does not cause the callback bound to it to
-be invoked in case clutter_binding_pool_activate() was called on
-an action previously blocked with clutter_binding_pool_block_action().</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="action_name" transfer-ownership="none">
-            <doc xml:whitespace="preserve">an action name</doc>
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <property name="name"
-                version="1.0"
-                writable="1"
-                construct-only="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">The unique name of the #ClutterBindingPool.</doc>
-        <type name="utf8"/>
-      </property>
-    </class>
-    <constant name="Blue" value="269025190">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Bluetooth" value="269025172">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <class name="BlurEffect"
-           c:symbol-prefix="blur_effect"
-           c:type="ClutterBlurEffect"
-           version="1.4"
-           parent="OffscreenEffect"
-           glib:type-name="ClutterBlurEffect"
-           glib:get-type="clutter_blur_effect_get_type">
-      <doc xml:whitespace="preserve">&lt;structname&gt;ClutterBlurEffect&lt;/structname&gt; is an opaque structure
-whose members cannot be accessed directly</doc>
-      <constructor name="new"
-                   c:identifier="clutter_blur_effect_new"
-                   version="1.4">
-        <doc xml:whitespace="preserve">Creates a new #ClutterBlurEffect to be used with
-clutter_actor_add_effect()</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the newly created #ClutterBlurEffect or %NULL</doc>
-          <type name="Effect" c:type="ClutterEffect*"/>
-        </return-value>
-      </constructor>
-    </class>
-    <constant name="Book" value="269025106">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="BounceKeys_Enable" value="65140">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <class name="Box"
-           c:symbol-prefix="box"
-           c:type="ClutterBox"
-           version="1.2"
-           parent="Actor"
-           glib:type-name="ClutterBox"
-           glib:get-type="clutter_box_get_type"
-           glib:type-struct="BoxClass">
-      <doc xml:whitespace="preserve">The #ClutterBox structure contains only private data and should
-be accessed using the provided API</doc>
-      <implements name="Atk.ImplementorIface"/>
-      <implements name="Animatable"/>
-      <implements name="Container"/>
-      <implements name="Scriptable"/>
-      <constructor name="new" c:identifier="clutter_box_new" version="1.0">
-        <doc xml:whitespace="preserve">Creates a new #ClutterBox. The children of the box will be layed
-out by the passed @manager</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the newly created #ClutterBox actor</doc>
-          <type name="Actor" c:type="ClutterActor*"/>
-        </return-value>
-        <parameters>
-          <parameter name="manager" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #ClutterLayoutManager</doc>
-            <type name="LayoutManager" c:type="ClutterLayoutManager*"/>
-          </parameter>
-        </parameters>
-      </constructor>
-      <method name="get_color"
-              c:identifier="clutter_box_get_color"
-              version="1.2">
-        <doc xml:whitespace="preserve">Retrieves the background color of @box
-If the #ClutterBox:color-set property is set to %FALSE the
-returned #ClutterColor is undefined</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="color"
-                     direction="out"
-                     caller-allocates="1"
-                     transfer-ownership="none">
-            <doc xml:whitespace="preserve">return location for a #ClutterColor</doc>
-            <type name="Color" c:type="ClutterColor*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_layout_manager"
-              c:identifier="clutter_box_get_layout_manager"
-              version="1.2">
-        <doc xml:whitespace="preserve">Retrieves the #ClutterLayoutManager instance used by @box
-#ClutterLayoutManager is owned by the #ClutterBox and it should not
-be unreferenced</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">a #ClutterLayoutManager. The returned</doc>
-          <type name="LayoutManager" c:type="ClutterLayoutManager*"/>
-        </return-value>
-      </method>
-      <method name="pack"
-              c:identifier="clutter_box_pack"
-              version="1.2"
-              introspectable="0">
-        <doc xml:whitespace="preserve">Adds @actor to @box and sets layout properties at the same time,
-if the #ClutterLayoutManager used by @box has them
-This function is a wrapper around clutter_container_add_actor()
-and clutter_layout_manager_child_set()
-Language bindings should use the vector-based clutter_box_addv()
-variant instead</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="actor" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #ClutterActor</doc>
-            <type name="Actor" c:type="ClutterActor*"/>
-          </parameter>
-          <parameter name="first_property" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the name of the first property to set, or %NULL</doc>
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter transfer-ownership="none">
-            <varargs>
-            </varargs>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="pack_after"
-              c:identifier="clutter_box_pack_after"
-              version="1.2"
-              introspectable="0">
-        <doc xml:whitespace="preserve">Adds @actor to @box, placing it after @sibling, and sets layout
-properties at the same time, if the #ClutterLayoutManager used by
-If @sibling is %NULL then @actor is placed at the end of the
-list of children, to be allocated and painted after every other child
-This function is a wrapper around clutter_container_add_actor(),
-clutter_container_raise_child() and clutter_layout_manager_child_set()</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="actor" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #ClutterActor</doc>
-            <type name="Actor" c:type="ClutterActor*"/>
-          </parameter>
-          <parameter name="sibling" transfer-ownership="none" allow-none="1">
-            <doc xml:whitespace="preserve">a #ClutterActor or %NULL</doc>
-            <type name="Actor" c:type="ClutterActor*"/>
-          </parameter>
-          <parameter name="first_property" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the name of the first property to set, or %NULL</doc>
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter transfer-ownership="none">
-            <varargs>
-            </varargs>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="pack_at"
-              c:identifier="clutter_box_pack_at"
-              version="1.2"
-              introspectable="0">
-        <doc xml:whitespace="preserve">Adds @actor to @box, placing it at @position, and sets layout
-properties at the same time, if the #ClutterLayoutManager used by
-If @position is a negative number, or is larger than the number of
-children of @box, the new child is added at the end of the list of
-children</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="actor" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #ClutterActor</doc>
-            <type name="Actor" c:type="ClutterActor*"/>
-          </parameter>
-          <parameter name="position" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the position to insert the @actor at</doc>
-            <type name="gint" c:type="gint"/>
-          </parameter>
-          <parameter name="first_property" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the name of the first property to set, or %NULL</doc>
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter transfer-ownership="none">
-            <varargs>
-            </varargs>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="pack_before"
-              c:identifier="clutter_box_pack_before"
-              version="1.2"
-              introspectable="0">
-        <doc xml:whitespace="preserve">Adds @actor to @box, placing it before @sibling, and sets layout
-properties at the same time, if the #ClutterLayoutManager used by
-If @sibling is %NULL then @actor is placed at the beginning of the
-list of children, to be allocated and painted below every other child
-This function is a wrapper around clutter_container_add_actor(),
-clutter_container_lower_child() and clutter_layout_manager_child_set()</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="actor" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #ClutterActor</doc>
-            <type name="Actor" c:type="ClutterActor*"/>
-          </parameter>
-          <parameter name="sibling" transfer-ownership="none" allow-none="1">
-            <doc xml:whitespace="preserve">a #ClutterActor or %NULL</doc>
-            <type name="Actor" c:type="ClutterActor*"/>
-          </parameter>
-          <parameter name="first_property" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the name of the first property to set, or %NULL</doc>
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter transfer-ownership="none">
-            <varargs>
-            </varargs>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="packv" c:identifier="clutter_box_packv" version="1.2">
-        <doc xml:whitespace="preserve">Vector-based variant of clutter_box_pack(), intended for language
-bindings to use</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="actor" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #ClutterActor</doc>
-            <type name="Actor" c:type="ClutterActor*"/>
-          </parameter>
-          <parameter name="n_properties" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the number of properties to set</doc>
-            <type name="guint" c:type="guint"/>
-          </parameter>
-          <parameter name="properties" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a vector containing the property names to set</doc>
-            <array length="1" c:type="gchar*">
-              <type name="utf8"/>
-            </array>
-          </parameter>
-          <parameter name="values" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a vector containing the property values to set</doc>
-            <array length="1" c:type="GValue*">
-              <type name="GObject.Value"/>
-            </array>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_color"
-              c:identifier="clutter_box_set_color"
-              version="1.2">
-        <doc xml:whitespace="preserve">Sets (or unsets) the background color for @box</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="color" transfer-ownership="none" allow-none="1">
-            <doc xml:whitespace="preserve">the background color, or %NULL to unset</doc>
-            <type name="Color" c:type="ClutterColor*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_layout_manager"
-              c:identifier="clutter_box_set_layout_manager"
-              version="1.2">
-        <doc xml:whitespace="preserve">Sets the #ClutterLayoutManager for @box
-A #ClutterLayoutManager is a delegate object that controls the
-layout of the children of @box</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="manager" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #ClutterLayoutManager</doc>
-            <type name="LayoutManager" c:type="ClutterLayoutManager*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <property name="color"
-                version="1.2"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">The color to be used to paint the background of the
-#ClutterBox. Setting this property will set the
-#ClutterBox:color-set property as a side effect</doc>
-        <type name="Color"/>
-      </property>
-      <property name="color-set"
-                version="1.2"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">Whether the #ClutterBox:color property has been set</doc>
-        <type name="gboolean"/>
-      </property>
-      <property name="layout-manager"
-                version="1.2"
-                writable="1"
-                construct="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">The #ClutterLayoutManager used by the #ClutterBox</doc>
-        <type name="LayoutManager"/>
-      </property>
-      <field name="parent_instance">
-        <type name="Actor" c:type="ClutterActor"/>
-      </field>
-      <field name="priv">
-        <type name="BoxPrivate" c:type="ClutterBoxPrivate*"/>
-      </field>
-    </class>
-    <enumeration name="BoxAlignment"
-                 version="1.2"
-                 glib:type-name="ClutterBoxAlignment"
-                 glib:get-type="clutter_box_alignment_get_type"
-                 c:type="ClutterBoxAlignment">
-      <doc xml:whitespace="preserve">The alignment policies available on each axis of the #ClutterBoxLayout</doc>
-      <member name="start"
-              value="0"
-              c:identifier="CLUTTER_BOX_ALIGNMENT_START"
-              glib:nick="start"/>
-      <member name="end"
-              value="1"
-              c:identifier="CLUTTER_BOX_ALIGNMENT_END"
-              glib:nick="end"/>
-      <member name="center"
-              value="2"
-              c:identifier="CLUTTER_BOX_ALIGNMENT_CENTER"
-              glib:nick="center"/>
-    </enumeration>
-    <record name="BoxClass"
-            c:type="ClutterBoxClass"
-            glib:is-gtype-struct-for="Box"
-            version="1.2">
-      <doc xml:whitespace="preserve">The #ClutterBoxClass structure contains only private data</doc>
-      <field name="parent_class">
-        <type name="ActorClass" c:type="ClutterActorClass"/>
-      </field>
-      <field name="clutter_padding_1">
-        <callback name="clutter_padding_1">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-      <field name="clutter_padding_2">
-        <callback name="clutter_padding_2">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-      <field name="clutter_padding_3">
-        <callback name="clutter_padding_3">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-      <field name="clutter_padding_4">
-        <callback name="clutter_padding_4">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-      <field name="clutter_padding_5">
-        <callback name="clutter_padding_5">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-      <field name="clutter_padding_6">
-        <callback name="clutter_padding_6">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-    </record>
-    <class name="BoxLayout"
-           c:symbol-prefix="box_layout"
-           c:type="ClutterBoxLayout"
-           version="1.2"
-           parent="LayoutManager"
-           glib:type-name="ClutterBoxLayout"
-           glib:get-type="clutter_box_layout_get_type"
-           glib:type-struct="BoxLayoutClass">
-      <doc xml:whitespace="preserve">The #ClutterBoxLayout structure contains only private data
-and should be accessed using the provided API</doc>
-      <constructor name="new"
-                   c:identifier="clutter_box_layout_new"
-                   version="1.2">
-        <doc xml:whitespace="preserve">Creates a new #ClutterBoxLayout layout manager</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the newly created #ClutterBoxLayout</doc>
-          <type name="LayoutManager" c:type="ClutterLayoutManager*"/>
-        </return-value>
-      </constructor>
-      <method name="get_alignment"
-              c:identifier="clutter_box_layout_get_alignment"
-              version="1.2">
-        <doc xml:whitespace="preserve">Retrieves the horizontal and vertical alignment policies for @actor
-as set using clutter_box_layout_pack() or clutter_box_layout_set_alignment()</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="actor" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #ClutterActor child of @layout</doc>
-            <type name="Actor" c:type="ClutterActor*"/>
-          </parameter>
-          <parameter name="x_align"
-                     direction="out"
-                     caller-allocates="1"
-                     transfer-ownership="none">
-            <doc xml:whitespace="preserve">return location for the horizontal alignment policy</doc>
-            <type name="BoxAlignment" c:type="ClutterBoxAlignment*"/>
-          </parameter>
-          <parameter name="y_align"
-                     direction="out"
-                     caller-allocates="1"
-                     transfer-ownership="none">
-            <doc xml:whitespace="preserve">return location for the vertical alignment policy</doc>
-            <type name="BoxAlignment" c:type="ClutterBoxAlignment*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_easing_duration"
-              c:identifier="clutter_box_layout_get_easing_duration"
-              version="1.2">
-        <doc xml:whitespace="preserve">Retrieves the duration set using clutter_box_layout_set_easing_duration()</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the duration of the animations, in milliseconds</doc>
-          <type name="guint" c:type="guint"/>
-        </return-value>
-      </method>
-      <method name="get_easing_mode"
-              c:identifier="clutter_box_layout_get_easing_mode"
-              version="1.2">
-        <doc xml:whitespace="preserve">Retrieves the easing mode set using clutter_box_layout_set_easing_mode()</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">an easing mode</doc>
-          <type name="gulong" c:type="gulong"/>
-        </return-value>
-      </method>
-      <method name="get_expand"
-              c:identifier="clutter_box_layout_get_expand"
-              version="1.2">
-        <doc xml:whitespace="preserve">Retrieves whether @actor should expand inside @layout</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">%TRUE if the #ClutterActor should expand, %FALSE otherwise</doc>
-          <type name="gboolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="actor" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #ClutterActor child of @layout</doc>
-            <type name="Actor" c:type="ClutterActor*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_fill"
-              c:identifier="clutter_box_layout_get_fill"
-              version="1.2">
-        <doc xml:whitespace="preserve">Retrieves the horizontal and vertical fill policies for @actor
-as set using clutter_box_layout_pack() or clutter_box_layout_set_fill()</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="actor" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #ClutterActor child of @layout</doc>
-            <type name="Actor" c:type="ClutterActor*"/>
-          </parameter>
-          <parameter name="x_fill"
-                     direction="out"
-                     caller-allocates="0"
-                     transfer-ownership="full">
-            <doc xml:whitespace="preserve">return location for the horizontal fill policy</doc>
-            <type name="gboolean" c:type="gboolean*"/>
-          </parameter>
-          <parameter name="y_fill"
-                     direction="out"
-                     caller-allocates="0"
-                     transfer-ownership="full">
-            <doc xml:whitespace="preserve">return location for the vertical fill policy</doc>
-            <type name="gboolean" c:type="gboolean*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_homogeneous"
-              c:identifier="clutter_box_layout_get_homogeneous"
-              version="1.4">
-        <doc xml:whitespace="preserve">Retrieves if the children sizes are allocated homogeneously.
-homogeneously, and %FALSE otherwise</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">%TRUE if the #ClutterBoxLayout is arranging its children</doc>
-          <type name="gboolean" c:type="gboolean"/>
-        </return-value>
-      </method>
-      <method name="get_pack_start"
-              c:identifier="clutter_box_layout_get_pack_start"
-              version="1.2">
-        <doc xml:whitespace="preserve">Retrieves the value set using clutter_box_layout_set_pack_start()
-at the beginning of the layout, and %FALSE otherwise</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">%TRUE if the #ClutterBoxLayout should pack children</doc>
-          <type name="gboolean" c:type="gboolean"/>
-        </return-value>
-      </method>
-      <method name="get_spacing"
-              c:identifier="clutter_box_layout_get_spacing"
-              version="1.2">
-        <doc xml:whitespace="preserve">Retrieves the spacing set using clutter_box_layout_set_spacing()</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the spacing between children of the #ClutterBoxLayout</doc>
-          <type name="guint" c:type="guint"/>
-        </return-value>
-      </method>
-      <method name="get_use_animations"
-              c:identifier="clutter_box_layout_get_use_animations"
-              version="1.2">
-        <doc xml:whitespace="preserve">Retrieves whether @layout should animate changes in the layout properties
-Since clutter_box_layout_set_use_animations()</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">%TRUE if the animations should be used, %FALSE otherwise</doc>
-          <type name="gboolean" c:type="gboolean"/>
-        </return-value>
-      </method>
-      <method name="get_vertical"
-              c:identifier="clutter_box_layout_get_vertical"
-              version="1.2">
-        <doc xml:whitespace="preserve">Retrieves the orientation of the @layout as set using the
-clutter_box_layout_set_vertical() function
-vertically, and %FALSE otherwise</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">%TRUE if the #ClutterBoxLayout is arranging its children</doc>
-          <type name="gboolean" c:type="gboolean"/>
-        </return-value>
-      </method>
-      <method name="pack" c:identifier="clutter_box_layout_pack" version="1.2">
-        <doc xml:whitespace="preserve">Packs @actor inside the #ClutterContainer associated to @layout
-and sets the layout properties</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="actor" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #ClutterActor</doc>
-            <type name="Actor" c:type="ClutterActor*"/>
-          </parameter>
-          <parameter name="expand" transfer-ownership="none">
-            <doc xml:whitespace="preserve">whether the @actor should expand</doc>
-            <type name="gboolean" c:type="gboolean"/>
-          </parameter>
-          <parameter name="x_fill" transfer-ownership="none">
-            <doc xml:whitespace="preserve">whether the @actor should fill horizontally</doc>
-            <type name="gboolean" c:type="gboolean"/>
-          </parameter>
-          <parameter name="y_fill" transfer-ownership="none">
-            <doc xml:whitespace="preserve">whether the @actor should fill vertically</doc>
-            <type name="gboolean" c:type="gboolean"/>
-          </parameter>
-          <parameter name="x_align" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the horizontal alignment policy for @actor</doc>
-            <type name="BoxAlignment" c:type="ClutterBoxAlignment"/>
-          </parameter>
-          <parameter name="y_align" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the vertical alignment policy for @actor</doc>
-            <type name="BoxAlignment" c:type="ClutterBoxAlignment"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_alignment"
-              c:identifier="clutter_box_layout_set_alignment"
-              version="1.2">
-        <doc xml:whitespace="preserve">Sets the horizontal and vertical alignment policies for @actor
-inside @layout</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="actor" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #ClutterActor child of @layout</doc>
-            <type name="Actor" c:type="ClutterActor*"/>
-          </parameter>
-          <parameter name="x_align" transfer-ownership="none">
-            <doc xml:whitespace="preserve">Horizontal alignment policy for @actor</doc>
-            <type name="BoxAlignment" c:type="ClutterBoxAlignment"/>
-          </parameter>
-          <parameter name="y_align" transfer-ownership="none">
-            <doc xml:whitespace="preserve">Vertical alignment policy for @actor</doc>
-            <type name="BoxAlignment" c:type="ClutterBoxAlignment"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_easing_duration"
-              c:identifier="clutter_box_layout_set_easing_duration"
-              version="1.2">
-        <doc xml:whitespace="preserve">Sets the duration of the animations used by @layout when animating changes
-in the layout properties
-Use clutter_box_layout_set_use_animations() to enable and disable the
-animations</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="msecs" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the duration of the animations, in milliseconds</doc>
-            <type name="guint" c:type="guint"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_easing_mode"
-              c:identifier="clutter_box_layout_set_easing_mode"
-              version="1.2">
-        <doc xml:whitespace="preserve">Sets the easing mode to be used by @layout when animating changes in layout
-properties
-Use clutter_box_layout_set_use_animations() to enable and disable the
-animations</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="mode" transfer-ownership="none">
-            <doc xml:whitespace="preserve">an easing mode, either from #ClutterAnimationMode or a logical id from clutter_alpha_register_func()</doc>
-            <type name="gulong" c:type="gulong"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_expand"
-              c:identifier="clutter_box_layout_set_expand"
-              version="1.2">
-        <doc xml:whitespace="preserve">Sets whether @actor should expand inside @layout</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="actor" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #ClutterActor child of @layout</doc>
-            <type name="Actor" c:type="ClutterActor*"/>
-          </parameter>
-          <parameter name="expand" transfer-ownership="none">
-            <doc xml:whitespace="preserve">whether @actor should expand</doc>
-            <type name="gboolean" c:type="gboolean"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_fill"
-              c:identifier="clutter_box_layout_set_fill"
-              version="1.2">
-        <doc xml:whitespace="preserve">Sets the horizontal and vertical fill policies for @actor
-inside @layout</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="actor" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #ClutterActor child of @layout</doc>
-            <type name="Actor" c:type="ClutterActor*"/>
-          </parameter>
-          <parameter name="x_fill" transfer-ownership="none">
-            <doc xml:whitespace="preserve">whether @actor should fill horizontally the allocated space</doc>
-            <type name="gboolean" c:type="gboolean"/>
-          </parameter>
-          <parameter name="y_fill" transfer-ownership="none">
-            <doc xml:whitespace="preserve">whether @actor should fill vertically the allocated space</doc>
-            <type name="gboolean" c:type="gboolean"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_homogeneous"
-              c:identifier="clutter_box_layout_set_homogeneous"
-              version="1.4">
-        <doc xml:whitespace="preserve">Sets whether the size of @layout children should be
-homogeneous</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="homogeneous" transfer-ownership="none">
-            <doc xml:whitespace="preserve">%TRUE if the layout should be homogeneous</doc>
-            <type name="gboolean" c:type="gboolean"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_pack_start"
-              c:identifier="clutter_box_layout_set_pack_start"
-              version="1.2">
-        <doc xml:whitespace="preserve">Sets whether children of @layout should be layed out by appending
-them or by prepending them</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="pack_start" transfer-ownership="none">
-            <doc xml:whitespace="preserve">%TRUE if the @layout should pack children at the beginning of the layout</doc>
-            <type name="gboolean" c:type="gboolean"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_spacing"
-              c:identifier="clutter_box_layout_set_spacing"
-              version="1.2">
-        <doc xml:whitespace="preserve">Sets the spacing between children of @layout</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="spacing" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the spacing between children of the layout, in pixels</doc>
-            <type name="guint" c:type="guint"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_use_animations"
-              c:identifier="clutter_box_layout_set_use_animations"
-              version="1.2">
-        <doc xml:whitespace="preserve">Sets whether @layout should animate changes in the layout properties
-The duration of the animations is controlled by
-clutter_box_layout_set_easing_duration(); the easing mode to be used
-by the animations is controlled by clutter_box_layout_set_easing_mode()</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="animate" transfer-ownership="none">
-            <doc xml:whitespace="preserve">%TRUE if the @layout should use animations</doc>
-            <type name="gboolean" c:type="gboolean"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_vertical"
-              c:identifier="clutter_box_layout_set_vertical"
-              version="1.2">
-        <doc xml:whitespace="preserve">Sets whether @layout should arrange its children vertically alongside
-the Y axis, instead of horizontally alongside the X axis</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="vertical" transfer-ownership="none">
-            <doc xml:whitespace="preserve">%TRUE if the layout should be vertical</doc>
-            <type name="gboolean" c:type="gboolean"/>
-          </parameter>
-        </parameters>
-      </method>
-      <property name="easing-duration"
-                version="1.2"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">The duration of the animations, in case #ClutterBoxLayout:use-animations
-is set to %TRUE
-The duration is expressed in milliseconds</doc>
-        <type name="guint"/>
-      </property>
-      <property name="easing-mode"
-                version="1.2"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">The easing mode for the animations, in case
-#ClutterBoxLayout:use-animations is set to %TRUE
-either be a value from the #ClutterAnimationMode enumeration, like
-%CLUTTER_EASE_OUT_CUBIC, or a logical id as returned by
-clutter_alpha_register_func()
-The default value is %CLUTTER_EASE_OUT_CUBIC</doc>
-        <type name="gulong"/>
-      </property>
-      <property name="homogeneous"
-                version="1.4"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">Whether the #ClutterBoxLayout should arrange its children
-homogeneously, i.e. all childs get the same size</doc>
-        <type name="gboolean"/>
-      </property>
-      <property name="pack-start"
-                version="1.2"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">Whether the #ClutterBoxLayout should pack items at the start
-or append them at the end</doc>
-        <type name="gboolean"/>
-      </property>
-      <property name="spacing"
-                version="1.2"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">The spacing between children of the #ClutterBoxLayout, in pixels</doc>
-        <type name="guint"/>
-      </property>
-      <property name="use-animations"
-                version="1.2"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">Whether the #ClutterBoxLayout should animate changes in the
-layout properties</doc>
-        <type name="gboolean"/>
-      </property>
-      <property name="vertical"
-                version="1.2"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">Whether the #ClutterBoxLayout should arrange its children
-alongside the Y axis, instead of alongside the X axis</doc>
-        <type name="gboolean"/>
-      </property>
-      <field name="parent_instance">
-        <type name="LayoutManager" c:type="ClutterLayoutManager"/>
-      </field>
-      <field name="priv">
-        <type name="BoxLayoutPrivate" c:type="ClutterBoxLayoutPrivate*"/>
-      </field>
-    </class>
-    <record name="BoxLayoutClass"
-            c:type="ClutterBoxLayoutClass"
-            glib:is-gtype-struct-for="BoxLayout"
-            version="1.2">
-      <doc xml:whitespace="preserve">The #ClutterBoxLayoutClass structure contains only private
-data and should be accessed using the provided API</doc>
-      <field name="parent_class">
-        <type name="LayoutManagerClass" c:type="ClutterLayoutManagerClass"/>
-      </field>
-    </record>
-    <record name="BoxLayoutPrivate"
-            c:type="ClutterBoxLayoutPrivate"
-            disguised="1">
-    </record>
-    <record name="BoxPrivate" c:type="ClutterBoxPrivate" disguised="1">
-    </record>
-    <constant name="Break" value="65387">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="BrightnessAdjust" value="269025083">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <record name="ButtonEvent" c:type="ClutterButtonEvent" version="0.2">
-      <doc xml:whitespace="preserve">Button event.
-The event coordinates are relative to the stage that received the
-event, and can be transformed into actor-relative coordinates by
-using clutter_actor_transform_stage_point().</doc>
-      <field name="type" writable="1">
-        <type name="EventType" c:type="ClutterEventType"/>
-      </field>
-      <field name="time" writable="1">
-        <type name="guint32" c:type="guint32"/>
-      </field>
-      <field name="flags" writable="1">
-        <type name="EventFlags" c:type="ClutterEventFlags"/>
-      </field>
-      <field name="stage" writable="1">
-        <type name="Stage" c:type="ClutterStage*"/>
-      </field>
-      <field name="source" writable="1">
-        <type name="Actor" c:type="ClutterActor*"/>
-      </field>
-      <field name="x" writable="1">
-        <type name="gfloat" c:type="gfloat"/>
-      </field>
-      <field name="y" writable="1">
-        <type name="gfloat" c:type="gfloat"/>
-      </field>
-      <field name="modifier_state" writable="1">
-        <type name="ModifierType" c:type="ClutterModifierType"/>
-      </field>
-      <field name="button" writable="1">
-        <type name="guint32" c:type="guint32"/>
-      </field>
-      <field name="click_count" writable="1">
-        <type name="guint" c:type="guint"/>
-      </field>
-      <field name="axes" writable="1">
-        <type name="gdouble" c:type="gdouble*"/>
-      </field>
-      <field name="device" writable="1">
-        <type name="InputDevice" c:type="ClutterInputDevice*"/>
-      </field>
-    </record>
-    <constant name="Byelorussian_SHORTU" value="1726">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Byelorussian_shortu" value="1710">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="C" value="67">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="CD" value="269025107">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="COGL" value="gl">
-      <type name="utf8" c:type="gchar*"/>
-    </constant>
-    <constant name="CURRENT_TIME" value="0">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Cabovedot" value="709">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Cacute" value="454">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <class name="CairoTexture"
-           c:symbol-prefix="cairo_texture"
-           c:type="ClutterCairoTexture"
-           version="1.0"
-           parent="Texture"
-           glib:type-name="ClutterCairoTexture"
-           glib:get-type="clutter_cairo_texture_get_type"
-           glib:type-struct="CairoTextureClass">
-      <doc xml:whitespace="preserve">The #ClutterCairoTexture struct contains only private data.</doc>
-      <implements name="Atk.ImplementorIface"/>
-      <implements name="Animatable"/>
-      <implements name="Scriptable"/>
-      <constructor name="new"
-                   c:identifier="clutter_cairo_texture_new"
-                   version="1.0">
-        <doc xml:whitespace="preserve">Creates a new #ClutterCairoTexture actor, with a surface of @width by</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the newly created #ClutterCairoTexture actor</doc>
-          <type name="Actor" c:type="ClutterActor*"/>
-        </return-value>
-        <parameters>
-          <parameter name="width" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the width of the surface</doc>
-            <type name="guint" c:type="guint"/>
-          </parameter>
-          <parameter name="height" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the height of the surface</doc>
-            <type name="guint" c:type="guint"/>
-          </parameter>
-        </parameters>
-      </constructor>
-      <method name="clear"
-              c:identifier="clutter_cairo_texture_clear"
-              version="1.0">
-        <doc xml:whitespace="preserve">Clears @self's internal drawing surface, so that the next upload
-will replace the previous contents of the #ClutterCairoTexture
-rather than adding to it.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </method>
-      <method name="create"
-              c:identifier="clutter_cairo_texture_create"
-              version="1.0"
-              introspectable="0">
-        <doc xml:whitespace="preserve">Creates a new Cairo context for the @cairo texture. It is
-similar to using clutter_cairo_texture_create_region() with @x_offset
-and @y_offset of 0, @width equal to the @cairo texture surface width
-and @height equal to the @cairo texture surface height.
-&lt;warning&gt;&lt;para&gt;Do not call this function within the paint virtual
-function or from a callback to the #ClutterActor::paint
-signal.&lt;/para&gt;&lt;/warning&gt;
-to upload the contents of the context when done drawing</doc>
-        <return-value>
-          <doc xml:whitespace="preserve">a newly created Cairo context. Use cairo_destroy()</doc>
-          <type name="cairo.Context" c:type="cairo_t*"/>
-        </return-value>
-      </method>
-      <method name="create_region"
-              c:identifier="clutter_cairo_texture_create_region"
-              version="1.0"
-              introspectable="0">
-        <doc xml:whitespace="preserve">Creates a new Cairo context that will updat the region defined
-by @x_offset, @y_offset, @width and @height.
-&lt;warning&gt;&lt;para&gt;Do not call this function within the paint virtual
-function or from a callback to the #ClutterActor::paint
-signal.&lt;/para&gt;&lt;/warning&gt;
-to upload the contents of the context when done drawing</doc>
-        <return-value>
-          <doc xml:whitespace="preserve">a newly created Cairo context. Use cairo_destroy()</doc>
-          <type name="cairo.Context" c:type="cairo_t*"/>
-        </return-value>
-        <parameters>
-          <parameter name="x_offset" transfer-ownership="none">
-            <doc xml:whitespace="preserve">offset of the region on the X axis</doc>
-            <type name="gint" c:type="gint"/>
-          </parameter>
-          <parameter name="y_offset" transfer-ownership="none">
-            <doc xml:whitespace="preserve">offset of the region on the Y axis</doc>
-            <type name="gint" c:type="gint"/>
-          </parameter>
-          <parameter name="width" transfer-ownership="none">
-            <doc xml:whitespace="preserve">width of the region, or -1 for the full surface width</doc>
-            <type name="gint" c:type="gint"/>
-          </parameter>
-          <parameter name="height" transfer-ownership="none">
-            <doc xml:whitespace="preserve">height of the region, or -1 for the full surface height</doc>
-            <type name="gint" c:type="gint"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_surface_size"
-              c:identifier="clutter_cairo_texture_get_surface_size"
-              version="1.0">
-        <doc xml:whitespace="preserve">Retrieves the surface width and height for @self.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="width"
-                     direction="out"
-                     caller-allocates="0"
-                     transfer-ownership="full">
-            <doc xml:whitespace="preserve">return location for the surface width, or %NULL</doc>
-            <type name="guint" c:type="guint*"/>
-          </parameter>
-          <parameter name="height"
-                     direction="out"
-                     caller-allocates="0"
-                     transfer-ownership="full">
-            <doc xml:whitespace="preserve">return location for the surface height, or %NULL</doc>
-            <type name="guint" c:type="guint*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_surface_size"
-              c:identifier="clutter_cairo_texture_set_surface_size"
-              version="1.0">
-        <doc xml:whitespace="preserve">Resizes the Cairo surface used by @self to @width and @height.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="width" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the new width of the surface</doc>
-            <type name="guint" c:type="guint"/>
-          </parameter>
-          <parameter name="height" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the new height of the surface</doc>
-            <type name="guint" c:type="guint"/>
-          </parameter>
-        </parameters>
-      </method>
-      <property name="surface-height"
-                version="1.0"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">The height of the Cairo surface used by the #ClutterCairoTexture
-actor, in pixels.</doc>
-        <type name="guint"/>
-      </property>
-      <property name="surface-width"
-                version="1.0"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">The width of the Cairo surface used by the #ClutterCairoTexture
-actor, in pixels.</doc>
-        <type name="guint"/>
-      </property>
-      <field name="parent_instance">
-        <type name="Texture" c:type="ClutterTexture"/>
-      </field>
-      <field name="priv">
-        <type name="CairoTexturePrivate" c:type="ClutterCairoTexturePrivate*"/>
-      </field>
-    </class>
-    <record name="CairoTextureClass"
-            c:type="ClutterCairoTextureClass"
-            glib:is-gtype-struct-for="CairoTexture"
-            version="1.0">
-      <doc xml:whitespace="preserve">The #ClutterCairoTextureClass struct contains only private data.</doc>
-      <field name="parent_class">
-        <type name="TextureClass" c:type="ClutterTextureClass"/>
-      </field>
-      <field name="_clutter_cairo_1" introspectable="0">
-        <callback name="_clutter_cairo_1">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-      <field name="_clutter_cairo_2" introspectable="0">
-        <callback name="_clutter_cairo_2">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-      <field name="_clutter_cairo_3" introspectable="0">
-        <callback name="_clutter_cairo_3">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-      <field name="_clutter_cairo_4" introspectable="0">
-        <callback name="_clutter_cairo_4">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-    </record>
-    <record name="CairoTexturePrivate"
-            c:type="ClutterCairoTexturePrivate"
-            disguised="1">
-    </record>
-    <constant name="Calculator" value="269025053">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Calendar" value="269025056">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <callback name="Callback" c:type="ClutterCallback">
-      <doc xml:whitespace="preserve">Generic callback</doc>
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="actor" transfer-ownership="none">
-          <doc xml:whitespace="preserve">a #ClutterActor</doc>
-          <type name="Actor" c:type="ClutterActor*"/>
-        </parameter>
-        <parameter name="data" transfer-ownership="none">
-          <doc xml:whitespace="preserve">user data</doc>
-          <type name="gpointer" c:type="gpointer"/>
-        </parameter>
-      </parameters>
-    </callback>
-    <constant name="Cancel" value="65385">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Caps_Lock" value="65509">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Ccaron" value="456">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Ccedilla" value="199">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Ccircumflex" value="710">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <class name="ChildMeta"
-           c:symbol-prefix="child_meta"
-           c:type="ClutterChildMeta"
-           version="0.8"
-           parent="GObject.Object"
-           abstract="1"
-           glib:type-name="ClutterChildMeta"
-           glib:get-type="clutter_child_meta_get_type"
-           glib:type-struct="ChildMetaClass">
-      <doc xml:whitespace="preserve">Base interface for container specific state for child actors. A child
-data is meant to be used when you need to keep track of information
-about each individual child added to a container.
-In order to use it you should create your own subclass of
-#ClutterChildMeta and set the #ClutterContainerIface::child_meta_type
-interface member to your subclass type, like:
-|[
-static void
-my_container_iface_init (ClutterContainerIface *iface)
-{
-/&amp;ast; set the rest of the #ClutterContainer vtable &amp;ast;/
-container_iface-&gt;child_meta_type  = MY_TYPE_CHILD_META;
-}
-]|
-This will automatically create a #ClutterChildMeta of type
-MY_TYPE_CHILD_META for every actor that is added to the container.
-The child data for an actor can be retrieved using the
-clutter_container_get_child_meta() function.
-The properties of the data and your subclass can be manipulated with
-clutter_container_child_set() and clutter_container_child_get() which
-act like g_object_set() and g_object_get().
-You can provide hooks for your own storage as well as control the
-instantiation by overriding #ClutterContainerIface::create_child_meta,
-#ClutterContainerIface::destroy_child_meta and
-#ClutterContainerIface::get_child_meta.</doc>
-      <method name="get_actor"
-              c:identifier="clutter_child_meta_get_actor"
-              version="0.8">
-        <doc xml:whitespace="preserve">Retrieves the actor wrapped by @data</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">a #ClutterActor</doc>
-          <type name="Actor" c:type="ClutterActor*"/>
-        </return-value>
-      </method>
-      <method name="get_container"
-              c:identifier="clutter_child_meta_get_container"
-              version="0.8">
-        <doc xml:whitespace="preserve">Retrieves the container using @data</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">a #ClutterContainer</doc>
-          <type name="Container" c:type="ClutterContainer*"/>
-        </return-value>
-      </method>
-      <property name="actor"
-                version="0.8"
-                writable="1"
-                construct-only="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">The #ClutterActor being wrapped by this #ClutterChildMeta</doc>
-        <type name="Actor"/>
-      </property>
-      <property name="container"
-                version="0.8"
-                writable="1"
-                construct-only="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">The #ClutterContainer that created this #ClutterChildMeta.</doc>
-        <type name="Container"/>
-      </property>
-      <field name="parent_instance">
-        <type name="GObject.Object" c:type="GObject"/>
-      </field>
-      <field name="container">
-        <type name="Container" c:type="ClutterContainer*"/>
-      </field>
-      <field name="actor">
-        <type name="Actor" c:type="ClutterActor*"/>
-      </field>
-    </class>
-    <record name="ChildMetaClass"
-            c:type="ClutterChildMetaClass"
-            glib:is-gtype-struct-for="ChildMeta"
-            version="0.8">
-      <doc xml:whitespace="preserve">The #ClutterChildMetaClass contains only private data</doc>
-      <field name="parent_class">
-        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
-      </field>
-    </record>
-    <constant name="Clear" value="65291">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="ClearGrab" value="269024801">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <class name="ClickAction"
-           c:symbol-prefix="click_action"
-           c:type="ClutterClickAction"
-           version="1.4"
-           parent="Action"
-           glib:type-name="ClutterClickAction"
-           glib:get-type="clutter_click_action_get_type"
-           glib:type-struct="ClickActionClass">
-      <doc xml:whitespace="preserve">The &lt;structname&gt;ClutterClickAction&lt;/structname&gt; structure contains
-only private data and should be accessed using the provided API</doc>
-      <constructor name="new"
-                   c:identifier="clutter_click_action_new"
-                   version="1.4">
-        <doc xml:whitespace="preserve">Creates a new #ClutterClickAction instance</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the newly created #ClutterClickAction</doc>
-          <type name="Action" c:type="ClutterAction*"/>
-        </return-value>
-      </constructor>
-      <method name="get_button"
-              c:identifier="clutter_click_action_get_button"
-              version="1.4">
-        <doc xml:whitespace="preserve">Retrieves the button that was pressed.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the button value</doc>
-          <type name="guint" c:type="guint"/>
-        </return-value>
-      </method>
-      <method name="release"
-              c:identifier="clutter_click_action_release"
-              version="1.4">
-        <doc xml:whitespace="preserve">Emulates a release of the pointer button, which ungrabs the pointer
-and unsets the #ClutterClickAction:pressed state.
-This function is useful to break a grab, for instance after a certain
-amount of time has passed.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </method>
-      <property name="held" version="1.4" transfer-ownership="none">
-        <doc xml:whitespace="preserve">Whether the clickable actor has the pointer grabbed</doc>
-        <type name="gboolean"/>
-      </property>
-      <property name="pressed" version="1.4" transfer-ownership="none">
-        <doc xml:whitespace="preserve">Whether the clickable actor should be in "pressed" state</doc>
-        <type name="gboolean"/>
-      </property>
-      <field name="parent_instance">
-        <type name="Action" c:type="ClutterAction"/>
-      </field>
-      <field name="priv">
-        <type name="ClickActionPrivate" c:type="ClutterClickActionPrivate*"/>
-      </field>
-      <glib:signal name="clicked" version="1.4">
-        <doc xml:whitespace="preserve">The ::clicked signal is emitted when the #ClutterActor to which
-a #ClutterClickAction has been applied should respond to a
-pointer button press and release events</doc>
-        <return-value transfer-ownership="none">
-          <type name="none"/>
-        </return-value>
-        <parameters>
-          <parameter name="object" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the #ClutterActor attached to the @action</doc>
-            <type name="Actor"/>
-          </parameter>
-        </parameters>
-      </glib:signal>
-    </class>
-    <record name="ClickActionClass"
-            c:type="ClutterClickActionClass"
-            glib:is-gtype-struct-for="ClickAction"
-            version="1.4">
-      <doc xml:whitespace="preserve">The &lt;structname&gt;ClutterClickActionClass&lt;/structname&gt; structure
-contains only private data</doc>
-      <field name="parent_class">
-        <type name="ActionClass" c:type="ClutterActionClass"/>
-      </field>
-      <field name="clicked">
-        <callback name="clicked">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="action" transfer-ownership="none">
-              <type name="ClickAction" c:type="ClutterClickAction*"/>
-            </parameter>
-            <parameter name="actor" transfer-ownership="none">
-              <type name="Actor" c:type="ClutterActor*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="_clutter_click_action1" introspectable="0">
-        <callback name="_clutter_click_action1">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-      <field name="_clutter_click_action2" introspectable="0">
-        <callback name="_clutter_click_action2">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-      <field name="_clutter_click_action3" introspectable="0">
-        <callback name="_clutter_click_action3">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-      <field name="_clutter_click_action4" introspectable="0">
-        <callback name="_clutter_click_action4">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-      <field name="_clutter_click_action5" introspectable="0">
-        <callback name="_clutter_click_action5">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-      <field name="_clutter_click_action6" introspectable="0">
-        <callback name="_clutter_click_action6">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-      <field name="_clutter_click_action7" introspectable="0">
-        <callback name="_clutter_click_action7">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-    </record>
-    <record name="ClickActionPrivate"
-            c:type="ClutterClickActionPrivate"
-            disguised="1">
-    </record>
-    <class name="Clone"
-           c:symbol-prefix="clone"
-           c:type="ClutterClone"
-           version="1.0"
-           parent="Actor"
-           glib:type-name="ClutterClone"
-           glib:get-type="clutter_clone_get_type"
-           glib:type-struct="CloneClass">
-      <doc xml:whitespace="preserve">The #ClutterClone structure contains only private data
-and should be accessed using the provided API</doc>
-      <implements name="Atk.ImplementorIface"/>
-      <implements name="Animatable"/>
-      <implements name="Scriptable"/>
-      <constructor name="new" c:identifier="clutter_clone_new" version="1.0">
-        <doc xml:whitespace="preserve">Creates a new #ClutterActor which clones @source/</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the newly created #ClutterClone</doc>
-          <type name="Actor" c:type="ClutterActor*"/>
-        </return-value>
-        <parameters>
-          <parameter name="source" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #ClutterActor, or %NULL</doc>
-            <type name="Actor" c:type="ClutterActor*"/>
-          </parameter>
-        </parameters>
-      </constructor>
-      <method name="get_source"
-              c:identifier="clutter_clone_get_source"
-              version="1.0">
-        <doc xml:whitespace="preserve">Retrieves the source #ClutterActor being cloned by @clone</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the actor source for the clone</doc>
-          <type name="Actor" c:type="ClutterActor*"/>
-        </return-value>
-      </method>
-      <method name="set_source"
-              c:identifier="clutter_clone_set_source"
-              version="1.0">
-        <doc xml:whitespace="preserve">Sets @source as the source actor to be cloned by @clone.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="source" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #ClutterActor, or %NULL</doc>
-            <type name="Actor" c:type="ClutterActor*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <property name="source"
-                version="1.0"
-                writable="1"
-                construct="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">This property specifies the source actor being cloned.</doc>
-        <type name="Actor"/>
-      </property>
-      <field name="parent_instance">
-        <type name="Actor" c:type="ClutterActor"/>
-      </field>
-      <field name="priv">
-        <type name="ClonePrivate" c:type="ClutterClonePrivate*"/>
-      </field>
-    </class>
-    <record name="CloneClass"
-            c:type="ClutterCloneClass"
-            glib:is-gtype-struct-for="Clone"
-            version="1.0">
-      <doc xml:whitespace="preserve">The #ClutterCloneClass structure contains only private data</doc>
-      <field name="parent_class">
-        <type name="ActorClass" c:type="ClutterActorClass"/>
-      </field>
-      <field name="_clutter_actor_clone1" introspectable="0">
-        <callback name="_clutter_actor_clone1">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-      <field name="_clutter_actor_clone2" introspectable="0">
-        <callback name="_clutter_actor_clone2">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-      <field name="_clutter_actor_clone3" introspectable="0">
-        <callback name="_clutter_actor_clone3">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-      <field name="_clutter_actor_clone4" introspectable="0">
-        <callback name="_clutter_actor_clone4">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-    </record>
-    <record name="ClonePrivate" c:type="ClutterClonePrivate" disguised="1">
-    </record>
-    <constant name="Close" value="269025110">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Codeinput" value="65335">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="ColonSign" value="16785569">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <record name="Color"
-            c:type="ClutterColor"
-            glib:type-name="ClutterColor"
-            glib:get-type="clutter_color_get_type"
-            c:symbol-prefix="color">
-      <doc xml:whitespace="preserve">Color representation.</doc>
-      <field name="red" writable="1">
-        <type name="guint8" c:type="guint8"/>
-      </field>
-      <field name="green" writable="1">
-        <type name="guint8" c:type="guint8"/>
-      </field>
-      <field name="blue" writable="1">
-        <type name="guint8" c:type="guint8"/>
-      </field>
-      <field name="alpha" writable="1">
-        <type name="guint8" c:type="guint8"/>
-      </field>
-      <constructor name="new" c:identifier="clutter_color_new" version="0.8.4">
-        <doc xml:whitespace="preserve">Creates a new #ClutterColor with the given values.
-Use clutter_color_free() when done</doc>
-        <return-value transfer-ownership="full">
-          <doc xml:whitespace="preserve">the newly allocated color.</doc>
-          <type name="Color" c:type="ClutterColor*"/>
-        </return-value>
-        <parameters>
-          <parameter name="red" transfer-ownership="none">
-            <doc xml:whitespace="preserve">red component of the color, between 0 and 255</doc>
-            <type name="guint8" c:type="guint8"/>
-          </parameter>
-          <parameter name="green" transfer-ownership="none">
-            <doc xml:whitespace="preserve">green component of the color, between 0 and 255</doc>
-            <type name="guint8" c:type="guint8"/>
-          </parameter>
-          <parameter name="blue" transfer-ownership="none">
-            <doc xml:whitespace="preserve">blue component of the color, between 0 and 255</doc>
-            <type name="guint8" c:type="guint8"/>
-          </parameter>
-          <parameter name="alpha" transfer-ownership="none">
-            <doc xml:whitespace="preserve">alpha component of the color, between 0 and 255</doc>
-            <type name="guint8" c:type="guint8"/>
-          </parameter>
-        </parameters>
-      </constructor>
-      <method name="add" c:identifier="clutter_color_add">
-        <doc xml:whitespace="preserve">Adds @a to @b and saves the resulting color inside @result.
-The alpha channel of @result is set as as the maximum value
-between the alpha channels of @a and @b.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="b" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #ClutterColor</doc>
-            <type name="Color" c:type="ClutterColor*"/>
-          </parameter>
-          <parameter name="result"
-                     direction="out"
-                     caller-allocates="1"
-                     transfer-ownership="none">
-            <doc xml:whitespace="preserve">return location for the result</doc>
-            <type name="Color" c:type="ClutterColor*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="copy" c:identifier="clutter_color_copy" version="0.2">
-        <doc xml:whitespace="preserve">Makes a copy of the color structure.  The result must be
-freed using clutter_color_free().</doc>
-        <return-value transfer-ownership="full">
-          <doc xml:whitespace="preserve">an allocated copy of @color.</doc>
-          <type name="Color" c:type="ClutterColor*"/>
-        </return-value>
-      </method>
-      <method name="darken" c:identifier="clutter_color_darken">
-        <doc xml:whitespace="preserve">Darkens @color by a fixed amount, and saves the changed color
-in @result.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="result"
-                     direction="out"
-                     caller-allocates="1"
-                     transfer-ownership="none">
-            <doc xml:whitespace="preserve">return location for the darker color</doc>
-            <type name="Color" c:type="ClutterColor*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="free" c:identifier="clutter_color_free" version="0.2">
-        <doc xml:whitespace="preserve">Frees a color structure created with clutter_color_copy().</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </method>
-      <method name="from_hls" c:identifier="clutter_color_from_hls">
-        <doc xml:whitespace="preserve">Converts a color expressed in HLS (hue, luminance and saturation)
-values into a #ClutterColor.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="hue" transfer-ownership="none">
-            <doc xml:whitespace="preserve">hue value, in the 0 .. 360 range</doc>
-            <type name="gfloat" c:type="gfloat"/>
-          </parameter>
-          <parameter name="luminance" transfer-ownership="none">
-            <doc xml:whitespace="preserve">luminance value, in the 0 .. 1 range</doc>
-            <type name="gfloat" c:type="gfloat"/>
-          </parameter>
-          <parameter name="saturation" transfer-ownership="none">
-            <doc xml:whitespace="preserve">saturation value, in the 0 .. 1 range</doc>
-            <type name="gfloat" c:type="gfloat"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="from_pixel" c:identifier="clutter_color_from_pixel">
-        <doc xml:whitespace="preserve">Converts @pixel from the packed representation of a four 8 bit channel
-color to a #ClutterColor.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="pixel" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a 32 bit packed integer containing a color</doc>
-            <type name="guint32" c:type="guint32"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="from_string"
-              c:identifier="clutter_color_from_string"
-              version="1.0">
-        <doc xml:whitespace="preserve">Parses a string definition of a color, filling the
-&lt;structfield&gt;red&lt;/structfield&gt;, &lt;structfield&gt;green&lt;/structfield&gt;, 
-&lt;structfield&gt;blue&lt;/structfield&gt; and &lt;structfield&gt;alpha&lt;/structfield&gt; 
-channels of @color. If alpha is not specified it will be set full opaque.
-The @color is not allocated.
-The color may be defined by any of the formats understood by
-pango_color_from_string(); these include literal color names, like
-&lt;literal&gt;Red&lt;/literal&gt; or &lt;literal&gt;DarkSlateGray&lt;/literal&gt;, or
-hexadecimal specifications like &lt;literal&gt;&amp;num;3050b2&lt;/literal&gt; or
-&lt;literal&gt;&amp;num;333&lt;/literal&gt;.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">%TRUE if parsing succeeded.</doc>
-          <type name="gboolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="str" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a string specifiying a color (named color or #RRGGBBAA)</doc>
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="lighten" c:identifier="clutter_color_lighten">
-        <doc xml:whitespace="preserve">Lightens @color by a fixed amount, and saves the changed color
-in @result.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="result"
-                     direction="out"
-                     caller-allocates="1"
-                     transfer-ownership="none">
-            <doc xml:whitespace="preserve">return location for the lighter color</doc>
-            <type name="Color" c:type="ClutterColor*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="shade" c:identifier="clutter_color_shade">
-        <doc xml:whitespace="preserve">Shades @color by @factor and saves the modified color into @result.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="factor" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the shade factor to apply</doc>
-            <type name="gdouble" c:type="gdouble"/>
-          </parameter>
-          <parameter name="result"
-                     direction="out"
-                     caller-allocates="1"
-                     transfer-ownership="none">
-            <doc xml:whitespace="preserve">return location for the shaded color</doc>
-            <type name="Color" c:type="ClutterColor*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="subtract" c:identifier="clutter_color_subtract">
-        <doc xml:whitespace="preserve">Subtracts @b from @a and saves the resulting color inside @result.
-This function assumes that the components of @a are greater than the
-components of @b; the result is, otherwise, undefined.
-The alpha channel of @result is set as the minimum value
-between the alpha channels of @a and @b.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="b" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #ClutterColor</doc>
-            <type name="Color" c:type="ClutterColor*"/>
-          </parameter>
-          <parameter name="result"
-                     direction="out"
-                     caller-allocates="1"
-                     transfer-ownership="none">
-            <doc xml:whitespace="preserve">return location for the result</doc>
-            <type name="Color" c:type="ClutterColor*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="to_hls" c:identifier="clutter_color_to_hls">
-        <doc xml:whitespace="preserve">Converts @color to the HLS format.
-The @hue value is in the 0 .. 360 range. The @luminance and</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="hue"
-                     direction="out"
-                     caller-allocates="0"
-                     transfer-ownership="full">
-            <doc xml:whitespace="preserve">return location for the hue value or %NULL</doc>
-            <type name="gfloat" c:type="gfloat*"/>
-          </parameter>
-          <parameter name="luminance"
-                     direction="out"
-                     caller-allocates="0"
-                     transfer-ownership="full">
-            <doc xml:whitespace="preserve">return location for the luminance value or %NULL</doc>
-            <type name="gfloat" c:type="gfloat*"/>
-          </parameter>
-          <parameter name="saturation"
-                     direction="out"
-                     caller-allocates="0"
-                     transfer-ownership="full">
-            <doc xml:whitespace="preserve">return location for the saturation value or %NULL</doc>
-            <type name="gfloat" c:type="gfloat*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="to_pixel" c:identifier="clutter_color_to_pixel">
-        <doc xml:whitespace="preserve">Converts @color into a packed 32 bit integer, containing
-all the four 8 bit channels used by #ClutterColor.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">a packed color</doc>
-          <type name="guint32" c:type="guint32"/>
-        </return-value>
-      </method>
-      <method name="to_string"
-              c:identifier="clutter_color_to_string"
-              version="0.2">
-        <doc xml:whitespace="preserve">Returns a textual specification of @color in the hexadecimal form
-&lt;literal&gt;&amp;num;rrggbbaa&lt;/literal&gt;, where &lt;literal&gt;r&lt;/literal&gt;,
-&lt;literal&gt;g&lt;/literal&gt;, &lt;literal&gt;b&lt;/literal&gt; and &lt;literal&gt;a&lt;/literal&gt; are
-hex digits representing the red, green, blue and alpha components
-respectively.</doc>
-        <return-value transfer-ownership="full">
-          <doc xml:whitespace="preserve">a newly-allocated text string</doc>
-          <type name="utf8" c:type="gchar*"/>
-        </return-value>
-      </method>
-    </record>
-    <class name="ColorizeEffect"
-           c:symbol-prefix="colorize_effect"
-           c:type="ClutterColorizeEffect"
-           parent="OffscreenEffect"
-           glib:type-name="ClutterColorizeEffect"
-           glib:get-type="clutter_colorize_effect_get_type">
-      <doc xml:whitespace="preserve">&lt;structname&gt;ClutterColorizeEffect&lt;/structname&gt; is an opaque structure
-whose members cannot be directly accessed
-SinceL 1.4</doc>
-      <constructor name="new"
-                   c:identifier="clutter_colorize_effect_new"
-                   version="1.4">
-        <doc xml:whitespace="preserve">Creates a new #ClutterColorizeEffect to be used with
-clutter_actor_add_effect()</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the newly created #ClutterColorizeEffect or %NULL</doc>
-          <type name="Effect" c:type="ClutterEffect*"/>
-        </return-value>
-        <parameters>
-          <parameter name="tint" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the color to be used</doc>
-            <type name="Color" c:type="ClutterColor*"/>
-          </parameter>
-        </parameters>
-      </constructor>
-      <method name="get_tint"
-              c:identifier="clutter_colorize_effect_get_tint"
-              version="1.4">
-        <doc xml:whitespace="preserve">Retrieves the tint used by @effect</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="tint"
-                     direction="out"
-                     caller-allocates="1"
-                     transfer-ownership="none">
-            <doc xml:whitespace="preserve">return location for the color used</doc>
-            <type name="Color" c:type="ClutterColor*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_tint"
-              c:identifier="clutter_colorize_effect_set_tint"
-              version="1.4">
-        <doc xml:whitespace="preserve">Sets the tint to be used when colorizing</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="tint" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the color to be used</doc>
-            <type name="Color" c:type="ClutterColor*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <property name="tint"
-                version="1.4"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">The tint to apply to the actor</doc>
-        <type name="Color"/>
-      </property>
-    </class>
-    <constant name="Community" value="269025085">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <class name="Constraint"
-           c:symbol-prefix="constraint"
-           c:type="ClutterConstraint"
-           version="1.4"
-           parent="ActorMeta"
-           abstract="1"
-           glib:type-name="ClutterConstraint"
-           glib:get-type="clutter_constraint_get_type"
-           glib:type-struct="ConstraintClass">
-      <doc xml:whitespace="preserve">The &lt;structname&gt;ClutterConstraint&lt;/structname&gt; structure contains only
-private data and should be accessed using the provided API</doc>
-      <virtual-method name="update_allocation">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="actor" transfer-ownership="none">
-            <type name="Actor" c:type="ClutterActor*"/>
-          </parameter>
-          <parameter name="allocation" transfer-ownership="none">
-            <type name="ActorBox" c:type="ClutterActorBox*"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <field name="parent_instance">
-        <type name="ActorMeta" c:type="ClutterActorMeta"/>
-      </field>
-    </class>
-    <record name="ConstraintClass"
-            c:type="ClutterConstraintClass"
-            glib:is-gtype-struct-for="Constraint"
-            version="1.4">
-      <doc xml:whitespace="preserve">The &lt;structname&gt;ClutterConstraintClass&lt;/structname&gt; structure contains
-only private data</doc>
-      <field name="parent_class">
-        <type name="ActorMetaClass" c:type="ClutterActorMetaClass"/>
-      </field>
-      <field name="update_allocation">
-        <callback name="update_allocation">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="constraint" transfer-ownership="none">
-              <type name="Constraint" c:type="ClutterConstraint*"/>
-            </parameter>
-            <parameter name="actor" transfer-ownership="none">
-              <type name="Actor" c:type="ClutterActor*"/>
-            </parameter>
-            <parameter name="allocation" transfer-ownership="none">
-              <type name="ActorBox" c:type="ClutterActorBox*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="_clutter_constraint1" introspectable="0">
-        <callback name="_clutter_constraint1">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-      <field name="_clutter_constraint2" introspectable="0">
-        <callback name="_clutter_constraint2">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-      <field name="_clutter_constraint3" introspectable="0">
-        <callback name="_clutter_constraint3">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-      <field name="_clutter_constraint4" introspectable="0">
-        <callback name="_clutter_constraint4">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-      <field name="_clutter_constraint5" introspectable="0">
-        <callback name="_clutter_constraint5">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-      <field name="_clutter_constraint6" introspectable="0">
-        <callback name="_clutter_constraint6">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-      <field name="_clutter_constraint7" introspectable="0">
-        <callback name="_clutter_constraint7">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-      <field name="_clutter_constraint8" introspectable="0">
-        <callback name="_clutter_constraint8">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-    </record>
-    <interface name="Container"
-               c:symbol-prefix="container"
-               c:type="ClutterContainer"
-               version="0.4"
-               glib:type-name="ClutterContainer"
-               glib:get-type="clutter_container_get_type"
-               glib:type-struct="ContainerIface">
-      <doc xml:whitespace="preserve">#ClutterContainer is an opaque structure whose members cannot be directly
-accessed</doc>
-      <virtual-method name="add">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="actor" transfer-ownership="none">
-            <type name="Actor" c:type="ClutterActor*"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <virtual-method name="create_child_meta"
-                      invoker="create_child_meta"
-                      version="1.2">
-        <doc xml:whitespace="preserve">Creates the #ClutterChildMeta wrapping @actor inside the
-class member is not set to %G_TYPE_INVALID.
-This function is only useful when adding a #ClutterActor to
-a #ClutterContainer implementation outside of the
-#ClutterContainer::add() virtual function implementation.
-Applications should not call this function.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="actor" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #ClutterActor</doc>
-            <type name="Actor" c:type="ClutterActor*"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <virtual-method name="destroy_child_meta"
-                      invoker="destroy_child_meta"
-                      version="1.2">
-        <doc xml:whitespace="preserve">Destroys the #ClutterChildMeta wrapping @actor inside the
-This function is only useful when removing a #ClutterActor to
-a #ClutterContainer implementation outside of the
-#ClutterContainer::add() virtual function implementation.
-Applications should not call this function.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="actor" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #ClutterActor</doc>
-            <type name="Actor" c:type="ClutterActor*"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <virtual-method name="foreach" invoker="foreach" version="0.4">
-        <doc xml:whitespace="preserve">Calls @callback for each child of @container that was added
-by the application (with clutter_container_add_actor()). Does
-not iterate over "internal" children that are part of the
-container's own implementation, if any.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="callback"
-                     transfer-ownership="none"
-                     scope="call"
-                     closure="1">
-            <doc xml:whitespace="preserve">a function to be called for each child</doc>
-            <type name="Callback" c:type="ClutterCallback"/>
-          </parameter>
-          <parameter name="user_data" transfer-ownership="none" closure="1">
-            <doc xml:whitespace="preserve">data to be passed to the function, or %NULL</doc>
-            <type name="gpointer" c:type="gpointer"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <virtual-method name="foreach_with_internals"
-                      invoker="foreach_with_internals"
-                      version="1.0">
-        <doc xml:whitespace="preserve">Calls @callback for each child of @container, including "internal"
-children built in to the container itself that were never added
-by the application.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="callback"
-                     transfer-ownership="none"
-                     scope="call"
-                     closure="1">
-            <doc xml:whitespace="preserve">a function to be called for each child</doc>
-            <type name="Callback" c:type="ClutterCallback"/>
-          </parameter>
-          <parameter name="user_data" transfer-ownership="none" closure="1">
-            <doc xml:whitespace="preserve">data to be passed to the function, or %NULL</doc>
-            <type name="gpointer" c:type="gpointer"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <virtual-method name="get_child_meta"
-                      invoker="get_child_meta"
-                      version="0.8">
-        <doc xml:whitespace="preserve">Retrieves the #ClutterChildMeta which contains the data about the
-of @container or %NULL if the specifiec actor does not exist or the
-container is not configured to provide #ClutterChildMeta&lt;!-- --&gt;s</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the #ClutterChildMeta for the @actor child</doc>
-          <type name="ChildMeta" c:type="ClutterChildMeta*"/>
-        </return-value>
-        <parameters>
-          <parameter name="actor" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #ClutterActor that is a child of @container.</doc>
-            <type name="Actor" c:type="ClutterActor*"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <virtual-method name="lower">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="actor" transfer-ownership="none">
-            <type name="Actor" c:type="ClutterActor*"/>
-          </parameter>
-          <parameter name="sibling" transfer-ownership="none">
-            <type name="Actor" c:type="ClutterActor*"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <virtual-method name="raise">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="actor" transfer-ownership="none">
-            <type name="Actor" c:type="ClutterActor*"/>
-          </parameter>
-          <parameter name="sibling" transfer-ownership="none">
-            <type name="Actor" c:type="ClutterActor*"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <virtual-method name="remove">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="actor" transfer-ownership="none">
-            <type name="Actor" c:type="ClutterActor*"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <virtual-method name="sort_depth_order"
-                      invoker="sort_depth_order"
-                      version="0.6">
-        <doc xml:whitespace="preserve">Sorts a container's children using their depth. This function should not
-be normally used by applications.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </virtual-method>
-      <method name="add"
-              c:identifier="clutter_container_add"
-              version="0.4"
-              introspectable="0">
-        <doc xml:whitespace="preserve">Adds a list of #ClutterActor&lt;!-- --&gt;s to @container. Each time and
-actor is added, the "actor-added" signal is emitted. Each actor should
-be parented to @container, which takes a reference on the actor. You
-cannot add a #ClutterActor to more than one #ClutterContainer.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="first_actor" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the first #ClutterActor to add</doc>
-            <type name="Actor" c:type="ClutterActor*"/>
-          </parameter>
-          <parameter transfer-ownership="none">
-            <varargs>
-            </varargs>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="add_actor"
-              c:identifier="clutter_container_add_actor"
-              version="0.4">
-        <doc xml:whitespace="preserve">Adds a #ClutterActor to @container. This function will emit the
-"actor-added" signal. The actor should be parented to
-#ClutterContainer.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="actor" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the first #ClutterActor to add</doc>
-            <type name="Actor" c:type="ClutterActor*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="add_valist"
-              c:identifier="clutter_container_add_valist"
-              version="0.4"
-              introspectable="0">
-        <doc xml:whitespace="preserve">Alternative va_list version of clutter_container_add().</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="first_actor" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the first #ClutterActor to add</doc>
-            <type name="Actor" c:type="ClutterActor*"/>
-          </parameter>
-          <parameter name="var_args" transfer-ownership="none">
-            <doc xml:whitespace="preserve">list of actors to add, followed by %NULL</doc>
-            <type name="va_list" c:type="va_list"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="child_get"
-              c:identifier="clutter_container_child_get"
-              version="0.8"
-              introspectable="0">
-        <doc xml:whitespace="preserve">Gets @container specific properties of an actor.
-In general, a copy is made of the property contents and the caller is
-responsible for freeing the memory in the appropriate manner for the type, for
-instance by calling g_free() or g_object_unref().</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="actor" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #ClutterActor that is a child of @container.</doc>
-            <type name="Actor" c:type="ClutterActor*"/>
-          </parameter>
-          <parameter name="first_prop" transfer-ownership="none">
-            <doc xml:whitespace="preserve">name of the first property to be set.</doc>
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter transfer-ownership="none">
-            <varargs>
-            </varargs>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="child_get_property"
-              c:identifier="clutter_container_child_get_property"
-              version="0.8">
-        <doc xml:whitespace="preserve">Gets a container specific property of a child of @container, In general,
-a copy is made of the property contents and the caller is responsible for
-freeing the memory by calling g_value_unset().
-Note that clutter_container_child_set_property() is really intended for
-language bindings, clutter_container_child_set() is much more convenient
-for C programming.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="child" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #ClutterActor that is a child of @container.</doc>
-            <type name="Actor" c:type="ClutterActor*"/>
-          </parameter>
-          <parameter name="property" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the name of the property to set.</doc>
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="value" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the value.</doc>
-            <type name="GObject.Value" c:type="GValue*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="child_set"
-              c:identifier="clutter_container_child_set"
-              version="0.8"
-              introspectable="0">
-        <doc xml:whitespace="preserve">Sets container specific properties on the child of a container.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="actor" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #ClutterActor that is a child of @container.</doc>
-            <type name="Actor" c:type="ClutterActor*"/>
-          </parameter>
-          <parameter name="first_prop" transfer-ownership="none">
-            <doc xml:whitespace="preserve">name of the first property to be set.</doc>
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter transfer-ownership="none">
-            <varargs>
-            </varargs>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="child_set_property"
-              c:identifier="clutter_container_child_set_property"
-              version="0.8">
-        <doc xml:whitespace="preserve">Sets a container-specific property on a child of @container.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="child" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #ClutterActor that is a child of @container.</doc>
-            <type name="Actor" c:type="ClutterActor*"/>
-          </parameter>
-          <parameter name="property" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the name of the property to set.</doc>
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="value" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the value.</doc>
-            <type name="GObject.Value" c:type="GValue*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="create_child_meta"
-              c:identifier="clutter_container_create_child_meta"
-              version="1.2">
-        <doc xml:whitespace="preserve">Creates the #ClutterChildMeta wrapping @actor inside the
-class member is not set to %G_TYPE_INVALID.
-This function is only useful when adding a #ClutterActor to
-a #ClutterContainer implementation outside of the
-#ClutterContainer::add() virtual function implementation.
-Applications should not call this function.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="actor" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #ClutterActor</doc>
-            <type name="Actor" c:type="ClutterActor*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="destroy_child_meta"
-              c:identifier="clutter_container_destroy_child_meta"
-              version="1.2">
-        <doc xml:whitespace="preserve">Destroys the #ClutterChildMeta wrapping @actor inside the
-This function is only useful when removing a #ClutterActor to
-a #ClutterContainer implementation outside of the
-#ClutterContainer::add() virtual function implementation.
-Applications should not call this function.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="actor" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #ClutterActor</doc>
-            <type name="Actor" c:type="ClutterActor*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="find_child_by_name"
-              c:identifier="clutter_container_find_child_by_name"
-              version="0.6">
-        <doc xml:whitespace="preserve">Finds a child actor of a container by its name. Search recurses
-into any child container.
-or %NULL if no actor with that name was found.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">The child actor with the requested name,</doc>
-          <type name="Actor" c:type="ClutterActor*"/>
-        </return-value>
-        <parameters>
-          <parameter name="child_name" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the name of the requested child.</doc>
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="foreach"
-              c:identifier="clutter_container_foreach"
-              version="0.4">
-        <doc xml:whitespace="preserve">Calls @callback for each child of @container that was added
-by the application (with clutter_container_add_actor()). Does
-not iterate over "internal" children that are part of the
-container's own implementation, if any.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="callback"
-                     transfer-ownership="none"
-                     scope="call"
-                     closure="1">
-            <doc xml:whitespace="preserve">a function to be called for each child</doc>
-            <type name="Callback" c:type="ClutterCallback"/>
-          </parameter>
-          <parameter name="user_data" transfer-ownership="none">
-            <doc xml:whitespace="preserve">data to be passed to the function, or %NULL</doc>
-            <type name="gpointer" c:type="gpointer"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="foreach_with_internals"
-              c:identifier="clutter_container_foreach_with_internals"
-              version="1.0">
-        <doc xml:whitespace="preserve">Calls @callback for each child of @container, including "internal"
-children built in to the container itself that were never added
-by the application.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="callback"
-                     transfer-ownership="none"
-                     scope="call"
-                     closure="1">
-            <doc xml:whitespace="preserve">a function to be called for each child</doc>
-            <type name="Callback" c:type="ClutterCallback"/>
-          </parameter>
-          <parameter name="user_data" transfer-ownership="none">
-            <doc xml:whitespace="preserve">data to be passed to the function, or %NULL</doc>
-            <type name="gpointer" c:type="gpointer"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_child_meta"
-              c:identifier="clutter_container_get_child_meta"
-              version="0.8">
-        <doc xml:whitespace="preserve">Retrieves the #ClutterChildMeta which contains the data about the
-of @container or %NULL if the specifiec actor does not exist or the
-container is not configured to provide #ClutterChildMeta&lt;!-- --&gt;s</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the #ClutterChildMeta for the @actor child</doc>
-          <type name="ChildMeta" c:type="ClutterChildMeta*"/>
-        </return-value>
-        <parameters>
-          <parameter name="actor" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #ClutterActor that is a child of @container.</doc>
-            <type name="Actor" c:type="ClutterActor*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_children"
-              c:identifier="clutter_container_get_children"
-              version="0.4">
-        <doc xml:whitespace="preserve">Retrieves all the children of @container.
-of #ClutterActor&lt;!-- --&gt;s. Use g_list_free() on the returned
-list when done.</doc>
-        <return-value transfer-ownership="container">
-          <doc xml:whitespace="preserve">a list</doc>
-          <type name="GLib.List" c:type="GList*">
-            <type name="Actor"/>
-          </type>
-        </return-value>
-      </method>
-      <method name="lower_child"
-              c:identifier="clutter_container_lower_child"
-              version="0.6">
-        <doc xml:whitespace="preserve">Lowers @actor to @sibling level, in the depth ordering.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="actor" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the actor to raise</doc>
-            <type name="Actor" c:type="ClutterActor*"/>
-          </parameter>
-          <parameter name="sibling" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the sibling to lower to, or %NULL to lower to the bottom</doc>
-            <type name="Actor" c:type="ClutterActor*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="raise_child"
-              c:identifier="clutter_container_raise_child"
-              version="0.6">
-        <doc xml:whitespace="preserve">Raises @actor to @sibling level, in the depth ordering.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="actor" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the actor to raise</doc>
-            <type name="Actor" c:type="ClutterActor*"/>
-          </parameter>
-          <parameter name="sibling" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the sibling to raise to, or %NULL to raise to the top</doc>
-            <type name="Actor" c:type="ClutterActor*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="remove"
-              c:identifier="clutter_container_remove"
-              version="0.4"
-              introspectable="0">
-        <doc xml:whitespace="preserve">Removes a %NULL terminated list of #ClutterActor&lt;!-- --&gt;s from
-around you must hold a reference to it yourself, using g_object_ref().
-Each time an actor is removed, the "actor-removed" signal is
-emitted by @container.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="first_actor" transfer-ownership="none">
-            <doc xml:whitespace="preserve">first #ClutterActor to remove</doc>
-            <type name="Actor" c:type="ClutterActor*"/>
-          </parameter>
-          <parameter transfer-ownership="none">
-            <varargs>
-            </varargs>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="remove_actor"
-              c:identifier="clutter_container_remove_actor"
-              version="0.4">
-        <doc xml:whitespace="preserve">Removes @actor from @container. The actor should be unparented, so
-if you want to keep it around you must hold a reference to it
-yourself, using g_object_ref(). When the actor has been removed,
-the "actor-removed" signal is emitted by @container.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="actor" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #ClutterActor</doc>
-            <type name="Actor" c:type="ClutterActor*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="remove_valist"
-              c:identifier="clutter_container_remove_valist"
-              version="0.4"
-              introspectable="0">
-        <doc xml:whitespace="preserve">Alternative va_list version of clutter_container_remove().</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="first_actor" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the first #ClutterActor to add</doc>
-            <type name="Actor" c:type="ClutterActor*"/>
-          </parameter>
-          <parameter name="var_args" transfer-ownership="none">
-            <doc xml:whitespace="preserve">list of actors to remove, followed by %NULL</doc>
-            <type name="va_list" c:type="va_list"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="sort_depth_order"
-              c:identifier="clutter_container_sort_depth_order"
-              version="0.6">
-        <doc xml:whitespace="preserve">Sorts a container's children using their depth. This function should not
-be normally used by applications.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </method>
-      <glib:signal name="actor-added" version="0.4">
-        <doc xml:whitespace="preserve">The ::actor-added signal is emitted each time an actor
-has been added to @container.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none"/>
-        </return-value>
-        <parameters>
-          <parameter name="object" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the new child that has been added to @container</doc>
-            <type name="Actor"/>
-          </parameter>
-        </parameters>
-      </glib:signal>
-      <glib:signal name="actor-removed" version="0.4">
-        <doc xml:whitespace="preserve">The ::actor-removed signal is emitted each time an actor
-is removed from @container.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none"/>
-        </return-value>
-        <parameters>
-          <parameter name="object" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the child that has been removed from @container</doc>
-            <type name="Actor"/>
-          </parameter>
-        </parameters>
-      </glib:signal>
-      <glib:signal name="child-notify" version="0.8" introspectable="0">
-        <doc xml:whitespace="preserve">The ::child-notify signal is emitted each time a property is
-being set through the clutter_container_child_set() and
-clutter_container_child_set_property() calls.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none"/>
-        </return-value>
-        <parameters>
-          <parameter name="object" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the child that has had a property set.</doc>
-            <type name="Actor"/>
-          </parameter>
-          <parameter name="p0" transfer-ownership="none">
-            <type/>
-          </parameter>
-        </parameters>
-      </glib:signal>
-    </interface>
-    <record name="ContainerIface"
-            c:type="ClutterContainerIface"
-            glib:is-gtype-struct-for="Container"
-            version="0.4">
-      <doc xml:whitespace="preserve">Base interface for container actors. The @add, @remove and @foreach
-virtual functions must be provided by any implementation; the other
-virtual functions are optional.</doc>
-      <field name="g_iface">
-        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
-      </field>
-      <field name="add">
-        <callback name="add">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="container" transfer-ownership="none">
-              <type name="Container" c:type="ClutterContainer*"/>
-            </parameter>
-            <parameter name="actor" transfer-ownership="none">
-              <type name="Actor" c:type="ClutterActor*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="remove">
-        <callback name="remove">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="container" transfer-ownership="none">
-              <type name="Container" c:type="ClutterContainer*"/>
-            </parameter>
-            <parameter name="actor" transfer-ownership="none">
-              <type name="Actor" c:type="ClutterActor*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="foreach">
-        <callback name="foreach">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="container" transfer-ownership="none">
-              <type name="Container" c:type="ClutterContainer*"/>
-            </parameter>
-            <parameter name="callback"
-                       transfer-ownership="none"
-                       scope="call"
-                       closure="2">
-              <doc xml:whitespace="preserve">a function to be called for each child</doc>
-              <type name="Callback" c:type="ClutterCallback"/>
-            </parameter>
-            <parameter name="user_data" transfer-ownership="none" closure="2">
-              <doc xml:whitespace="preserve">data to be passed to the function, or %NULL</doc>
-              <type name="gpointer" c:type="gpointer"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="foreach_with_internals">
-        <callback name="foreach_with_internals">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="container" transfer-ownership="none">
-              <type name="Container" c:type="ClutterContainer*"/>
-            </parameter>
-            <parameter name="callback"
-                       transfer-ownership="none"
-                       scope="call"
-                       closure="2">
-              <doc xml:whitespace="preserve">a function to be called for each child</doc>
-              <type name="Callback" c:type="ClutterCallback"/>
-            </parameter>
-            <parameter name="user_data" transfer-ownership="none" closure="2">
-              <doc xml:whitespace="preserve">data to be passed to the function, or %NULL</doc>
-              <type name="gpointer" c:type="gpointer"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="raise">
-        <callback name="raise">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="container" transfer-ownership="none">
-              <type name="Container" c:type="ClutterContainer*"/>
-            </parameter>
-            <parameter name="actor" transfer-ownership="none">
-              <type name="Actor" c:type="ClutterActor*"/>
-            </parameter>
-            <parameter name="sibling" transfer-ownership="none">
-              <type name="Actor" c:type="ClutterActor*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="lower">
-        <callback name="lower">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="container" transfer-ownership="none">
-              <type name="Container" c:type="ClutterContainer*"/>
-            </parameter>
-            <parameter name="actor" transfer-ownership="none">
-              <type name="Actor" c:type="ClutterActor*"/>
-            </parameter>
-            <parameter name="sibling" transfer-ownership="none">
-              <type name="Actor" c:type="ClutterActor*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="sort_depth_order">
-        <callback name="sort_depth_order">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="container" transfer-ownership="none">
-              <type name="Container" c:type="ClutterContainer*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="child_meta_type">
-        <type name="GType" c:type="GType"/>
-      </field>
-      <field name="create_child_meta">
-        <callback name="create_child_meta">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="container" transfer-ownership="none">
-              <type name="Container" c:type="ClutterContainer*"/>
-            </parameter>
-            <parameter name="actor" transfer-ownership="none">
-              <doc xml:whitespace="preserve">a #ClutterActor</doc>
-              <type name="Actor" c:type="ClutterActor*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="destroy_child_meta">
-        <callback name="destroy_child_meta">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="container" transfer-ownership="none">
-              <type name="Container" c:type="ClutterContainer*"/>
-            </parameter>
-            <parameter name="actor" transfer-ownership="none">
-              <doc xml:whitespace="preserve">a #ClutterActor</doc>
-              <type name="Actor" c:type="ClutterActor*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="get_child_meta">
-        <callback name="get_child_meta">
-          <return-value transfer-ownership="none">
-            <doc xml:whitespace="preserve">the #ClutterChildMeta for the @actor child</doc>
-            <type name="ChildMeta" c:type="ClutterChildMeta*"/>
-          </return-value>
-          <parameters>
-            <parameter name="container" transfer-ownership="none">
-              <type name="Container" c:type="ClutterContainer*"/>
-            </parameter>
-            <parameter name="actor" transfer-ownership="none">
-              <doc xml:whitespace="preserve">a #ClutterActor that is a child of @container.</doc>
-              <type name="Actor" c:type="ClutterActor*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="actor_added">
-        <callback name="actor_added">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="container" transfer-ownership="none">
-              <type name="Container" c:type="ClutterContainer*"/>
-            </parameter>
-            <parameter name="actor" transfer-ownership="none">
-              <type name="Actor" c:type="ClutterActor*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="actor_removed">
-        <callback name="actor_removed">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="container" transfer-ownership="none">
-              <type name="Container" c:type="ClutterContainer*"/>
-            </parameter>
-            <parameter name="actor" transfer-ownership="none">
-              <type name="Actor" c:type="ClutterActor*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="child_notify">
-        <callback name="child_notify">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="container" transfer-ownership="none">
-              <type name="Container" c:type="ClutterContainer*"/>
-            </parameter>
-            <parameter name="actor" transfer-ownership="none">
-              <type name="Actor" c:type="ClutterActor*"/>
-            </parameter>
-            <parameter name="pspec" transfer-ownership="none">
-              <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-    </record>
-    <constant name="ContrastAdjust" value="269025058">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Control_L" value="65507">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Control_R" value="65508">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Copy" value="269025111">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <record name="CrossingEvent" c:type="ClutterCrossingEvent" version="0.2">
-      <doc xml:whitespace="preserve">Event for the movement of the pointer across different actors</doc>
-      <field name="type" writable="1">
-        <type name="EventType" c:type="ClutterEventType"/>
-      </field>
-      <field name="time" writable="1">
-        <type name="guint32" c:type="guint32"/>
-      </field>
-      <field name="flags" writable="1">
-        <type name="EventFlags" c:type="ClutterEventFlags"/>
-      </field>
-      <field name="stage" writable="1">
-        <type name="Stage" c:type="ClutterStage*"/>
-      </field>
-      <field name="source" writable="1">
-        <type name="Actor" c:type="ClutterActor*"/>
-      </field>
-      <field name="x" writable="1">
-        <type name="gfloat" c:type="gfloat"/>
-      </field>
-      <field name="y" writable="1">
-        <type name="gfloat" c:type="gfloat"/>
-      </field>
-      <field name="device" writable="1">
-        <type name="InputDevice" c:type="ClutterInputDevice*"/>
-      </field>
-      <field name="related" writable="1">
-        <type name="Actor" c:type="ClutterActor*"/>
-      </field>
-    </record>
-    <constant name="CruzeiroSign" value="16785570">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Cut" value="269025112">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="CycleAngle" value="269025180">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Cyrillic_A" value="1761">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Cyrillic_BE" value="1762">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Cyrillic_CHE" value="1790">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Cyrillic_CHE_descender" value="16778422">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Cyrillic_CHE_vertstroke" value="16778424">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Cyrillic_DE" value="1764">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Cyrillic_DZHE" value="1727">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Cyrillic_E" value="1788">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Cyrillic_EF" value="1766">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Cyrillic_EL" value="1772">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Cyrillic_EM" value="1773">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Cyrillic_EN" value="1774">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Cyrillic_EN_descender" value="16778402">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Cyrillic_ER" value="1778">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Cyrillic_ES" value="1779">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Cyrillic_GHE" value="1767">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Cyrillic_GHE_bar" value="16778386">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Cyrillic_HA" value="1768">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Cyrillic_HARDSIGN" value="1791">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Cyrillic_HA_descender" value="16778418">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Cyrillic_I" value="1769">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Cyrillic_IE" value="1765">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Cyrillic_IO" value="1715">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Cyrillic_I_macron" value="16778466">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Cyrillic_JE" value="1720">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Cyrillic_KA" value="1771">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Cyrillic_KA_descender" value="16778394">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Cyrillic_KA_vertstroke" value="16778396">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Cyrillic_LJE" value="1721">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Cyrillic_NJE" value="1722">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Cyrillic_O" value="1775">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Cyrillic_O_bar" value="16778472">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Cyrillic_PE" value="1776">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Cyrillic_SCHWA" value="16778456">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Cyrillic_SHA" value="1787">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Cyrillic_SHCHA" value="1789">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Cyrillic_SHHA" value="16778426">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Cyrillic_SHORTI" value="1770">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Cyrillic_SOFTSIGN" value="1784">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Cyrillic_TE" value="1780">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Cyrillic_TSE" value="1763">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Cyrillic_U" value="1781">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Cyrillic_U_macron" value="16778478">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Cyrillic_U_straight" value="16778414">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Cyrillic_U_straight_bar" value="16778416">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Cyrillic_VE" value="1783">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Cyrillic_YA" value="1777">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Cyrillic_YERU" value="1785">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Cyrillic_YU" value="1760">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Cyrillic_ZE" value="1786">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Cyrillic_ZHE" value="1782">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Cyrillic_ZHE_descender" value="16778390">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Cyrillic_a" value="1729">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Cyrillic_be" value="1730">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Cyrillic_che" value="1758">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Cyrillic_che_descender" value="16778423">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Cyrillic_che_vertstroke" value="16778425">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Cyrillic_de" value="1732">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Cyrillic_dzhe" value="1711">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Cyrillic_e" value="1756">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Cyrillic_ef" value="1734">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Cyrillic_el" value="1740">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Cyrillic_em" value="1741">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Cyrillic_en" value="1742">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Cyrillic_en_descender" value="16778403">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Cyrillic_er" value="1746">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Cyrillic_es" value="1747">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Cyrillic_ghe" value="1735">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Cyrillic_ghe_bar" value="16778387">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Cyrillic_ha" value="1736">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Cyrillic_ha_descender" value="16778419">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Cyrillic_hardsign" value="1759">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Cyrillic_i" value="1737">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Cyrillic_i_macron" value="16778467">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Cyrillic_ie" value="1733">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Cyrillic_io" value="1699">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Cyrillic_je" value="1704">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Cyrillic_ka" value="1739">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Cyrillic_ka_descender" value="16778395">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Cyrillic_ka_vertstroke" value="16778397">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Cyrillic_lje" value="1705">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Cyrillic_nje" value="1706">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Cyrillic_o" value="1743">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Cyrillic_o_bar" value="16778473">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Cyrillic_pe" value="1744">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Cyrillic_schwa" value="16778457">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Cyrillic_sha" value="1755">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Cyrillic_shcha" value="1757">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Cyrillic_shha" value="16778427">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Cyrillic_shorti" value="1738">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Cyrillic_softsign" value="1752">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Cyrillic_te" value="1748">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Cyrillic_tse" value="1731">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Cyrillic_u" value="1749">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Cyrillic_u_macron" value="16778479">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Cyrillic_u_straight" value="16778415">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Cyrillic_u_straight_bar" value="16778417">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Cyrillic_ve" value="1751">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Cyrillic_ya" value="1745">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Cyrillic_yeru" value="1753">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Cyrillic_yu" value="1728">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Cyrillic_ze" value="1754">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Cyrillic_zhe" value="1750">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Cyrillic_zhe_descender" value="16778391">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="D" value="68">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="DOS" value="269025114">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Dabovedot" value="16784906">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Dcaron" value="463">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <class name="DeformEffect"
-           c:symbol-prefix="deform_effect"
-           c:type="ClutterDeformEffect"
-           version="1.4"
-           parent="OffscreenEffect"
-           abstract="1"
-           glib:type-name="ClutterDeformEffect"
-           glib:get-type="clutter_deform_effect_get_type"
-           glib:type-struct="DeformEffectClass">
-      <doc xml:whitespace="preserve">The &lt;structname&gt;ClutterDeformEffect&lt;/structname&gt; structure contains
-only private data and should be accessed using the provided API</doc>
-      <virtual-method name="deform_vertex">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="width" transfer-ownership="none">
-            <type name="gfloat" c:type="gfloat"/>
-          </parameter>
-          <parameter name="height" transfer-ownership="none">
-            <type name="gfloat" c:type="gfloat"/>
-          </parameter>
-          <parameter name="vertex" transfer-ownership="none">
-            <type name="Cogl.TextureVertex" c:type="CoglTextureVertex*"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <method name="get_back_material"
-              c:identifier="clutter_deform_effect_get_back_material"
-              version="1.4">
-        <doc xml:whitespace="preserve">Retrieves the handle to the back face material used by @effect
-The returned material is owned by the #ClutterDeformEffect and it
-should not be freed directly</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">a handle for the material, or %NULL.</doc>
-          <type name="Cogl.Handle" c:type="CoglHandle"/>
-        </return-value>
-      </method>
-      <method name="get_n_tiles"
-              c:identifier="clutter_deform_effect_get_n_tiles"
-              version="1.4">
-        <doc xml:whitespace="preserve">Retrieves the number of horizontal and vertical tiles used to sub-divide
-the actor's geometry during the effect</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="x_tiles"
-                     direction="out"
-                     caller-allocates="0"
-                     transfer-ownership="full">
-            <doc xml:whitespace="preserve">return location for the number of horizontal tiles, or %NULL</doc>
-            <type name="guint" c:type="guint*"/>
-          </parameter>
-          <parameter name="y_tiles"
-                     direction="out"
-                     caller-allocates="0"
-                     transfer-ownership="full">
-            <doc xml:whitespace="preserve">return location for the number of vertical tiles, or %NULL</doc>
-            <type name="guint" c:type="guint*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="invalidate"
-              c:identifier="clutter_deform_effect_invalidate"
-              version="1.4">
-        <doc xml:whitespace="preserve">Invalidates the @effect&lt;!-- --&gt;'s vertices and, if it is associated
-to an actor, it will queue a redraw</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </method>
-      <method name="set_back_material"
-              c:identifier="clutter_deform_effect_set_back_material"
-              version="1.4">
-        <doc xml:whitespace="preserve">Sets the material that should be used when drawing the back face
-of the actor during a deformation
-The #ClutterDeformEffect will take a reference on the material's
-handle</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="material" transfer-ownership="none" allow-none="1">
-            <doc xml:whitespace="preserve">a handle to a Cogl material</doc>
-            <type name="Cogl.Handle" c:type="CoglHandle"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_n_tiles"
-              c:identifier="clutter_deform_effect_set_n_tiles"
-              version="1.4">
-        <doc xml:whitespace="preserve">Sets the number of horizontal and vertical tiles to be used
-when applying the effect
-More tiles allow a finer grained deformation at the expenses
-of computation</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="x_tiles" transfer-ownership="none">
-            <doc xml:whitespace="preserve">number of horizontal tiles</doc>
-            <type name="guint" c:type="guint"/>
-          </parameter>
-          <parameter name="y_tiles" transfer-ownership="none">
-            <doc xml:whitespace="preserve">number of vertical tiles</doc>
-            <type name="guint" c:type="guint"/>
-          </parameter>
-        </parameters>
-      </method>
-      <property name="back-material"
-                version="1.4"
-                introspectable="0"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">A material to be used when painting the back of the actor
-to which this effect has been applied
-By default, no material will be used</doc>
-        <type/>
-      </property>
-      <property name="x-tiles"
-                version="1.4"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">The number of horizontal tiles. The bigger the number, the
-smaller the tiles</doc>
-        <type name="guint"/>
-      </property>
-      <property name="y-tiles"
-                version="1.4"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">The number of vertical tiles. The bigger the number, the
-smaller the tiles</doc>
-        <type name="guint"/>
-      </property>
-      <field name="parent_instance">
-        <type name="OffscreenEffect" c:type="ClutterOffscreenEffect"/>
-      </field>
-      <field name="priv">
-        <type name="DeformEffectPrivate" c:type="ClutterDeformEffectPrivate*"/>
-      </field>
-    </class>
-    <record name="DeformEffectClass"
-            c:type="ClutterDeformEffectClass"
-            glib:is-gtype-struct-for="DeformEffect"
-            version="1.4">
-      <doc xml:whitespace="preserve">The &lt;structname&gt;ClutterDeformEffectClass&lt;/structname&gt; structure contains
-only private data</doc>
-      <field name="parent_class">
-        <type name="OffscreenEffectClass"
-              c:type="ClutterOffscreenEffectClass"/>
-      </field>
-      <field name="deform_vertex">
-        <callback name="deform_vertex">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="effect" transfer-ownership="none">
-              <type name="DeformEffect" c:type="ClutterDeformEffect*"/>
-            </parameter>
-            <parameter name="width" transfer-ownership="none">
-              <type name="gfloat" c:type="gfloat"/>
-            </parameter>
-            <parameter name="height" transfer-ownership="none">
-              <type name="gfloat" c:type="gfloat"/>
-            </parameter>
-            <parameter name="vertex" transfer-ownership="none">
-              <type name="Cogl.TextureVertex" c:type="CoglTextureVertex*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="_clutter_deform1" introspectable="0">
-        <callback name="_clutter_deform1">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-      <field name="_clutter_deform2" introspectable="0">
-        <callback name="_clutter_deform2">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-      <field name="_clutter_deform3" introspectable="0">
-        <callback name="_clutter_deform3">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-      <field name="_clutter_deform4" introspectable="0">
-        <callback name="_clutter_deform4">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-      <field name="_clutter_deform5" introspectable="0">
-        <callback name="_clutter_deform5">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-      <field name="_clutter_deform6" introspectable="0">
-        <callback name="_clutter_deform6">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-      <field name="_clutter_deform7" introspectable="0">
-        <callback name="_clutter_deform7">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-    </record>
-    <record name="DeformEffectPrivate"
-            c:type="ClutterDeformEffectPrivate"
-            disguised="1">
-    </record>
-    <constant name="Delete" value="65535">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <class name="DesaturateEffect"
-           c:symbol-prefix="desaturate_effect"
-           c:type="ClutterDesaturateEffect"
-           version="1.4"
-           parent="OffscreenEffect"
-           glib:type-name="ClutterDesaturateEffect"
-           glib:get-type="clutter_desaturate_effect_get_type">
-      <doc xml:whitespace="preserve">&lt;structname&gt;ClutterDesaturateEffect&lt;/structname&gt; is an opaque structure
-whose members cannot be directly accessed</doc>
-      <constructor name="new"
-                   c:identifier="clutter_desaturate_effect_new"
-                   version="1.4">
-        <doc xml:whitespace="preserve">Creates a new #ClutterDesaturateEffect to be used with
-clutter_actor_add_effect()</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the newly created #ClutterDesaturateEffect or %NULL</doc>
-          <type name="Effect" c:type="ClutterEffect*"/>
-        </return-value>
-        <parameters>
-          <parameter name="factor" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the desaturation factor, between 0.0 and 1.0</doc>
-            <type name="gdouble" c:type="gdouble"/>
-          </parameter>
-        </parameters>
-      </constructor>
-      <method name="get_factor"
-              c:identifier="clutter_desaturate_effect_get_factor"
-              version="1.4">
-        <doc xml:whitespace="preserve">Retrieves the desaturation factor of @effect</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the desaturation factor</doc>
-          <type name="gdouble" c:type="gdouble"/>
-        </return-value>
-      </method>
-      <method name="set_factor"
-              c:identifier="clutter_desaturate_effect_set_factor"
-              version="1.4">
-        <doc xml:whitespace="preserve">Sets the desaturation factor for @effect, with 0.0 being "do not desaturate"
-and 1.0 being "fully desaturate"</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="factor" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the desaturation factor, between 0.0 and 1.0</doc>
-            <type name="gdouble" c:type="gdouble"/>
-          </parameter>
-        </parameters>
-      </method>
-      <property name="factor"
-                version="1.4"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">The desaturation factor, between 0.0 (no desaturation) and 1.0 (full
-desaturation).</doc>
-        <type name="gdouble"/>
-      </property>
-    </class>
-    <class name="DeviceManager"
-           c:symbol-prefix="device_manager"
-           c:type="ClutterDeviceManager"
-           version="1.2"
-           parent="GObject.Object"
-           abstract="1"
-           glib:type-name="ClutterDeviceManager"
-           glib:get-type="clutter_device_manager_get_type"
-           glib:type-struct="DeviceManagerClass">
-      <doc xml:whitespace="preserve">The #ClutterDeviceManager structure contains only private data</doc>
-      <function name="get_default"
-                c:identifier="clutter_device_manager_get_default"
-                version="1.2">
-        <doc xml:whitespace="preserve">Retrieves the device manager singleton
-The returned instance is owned by Clutter and it should not be
-modified or freed</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the #ClutterDeviceManager singleton.</doc>
-          <type name="DeviceManager" c:type="ClutterDeviceManager*"/>
-        </return-value>
-      </function>
-      <virtual-method name="add_device">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="device" transfer-ownership="none">
-            <type name="InputDevice" c:type="ClutterInputDevice*"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <virtual-method name="get_core_device"
-                      invoker="get_core_device"
-                      version="1.2">
-        <doc xml:whitespace="preserve">Retrieves the core #ClutterInputDevice of type @device_type
-Core devices are devices created automatically by the default
-Clutter backend
-returned device is owned by the #ClutterDeviceManager and should
-not be modified or freed</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">a #ClutterInputDevice or %NULL. The</doc>
-          <type name="InputDevice" c:type="ClutterInputDevice*"/>
-        </return-value>
-        <parameters>
-          <parameter name="type" transfer-ownership="none">
-            <type name="InputDeviceType" c:type="ClutterInputDeviceType"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <virtual-method name="get_device" invoker="get_device" version="1.2">
-        <doc xml:whitespace="preserve">Retrieves the #ClutterInputDevice with the given @device_id
-returned device is owned by the #ClutterDeviceManager and should
-never be modified or freed</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">a #ClutterInputDevice or %NULL. The</doc>
-          <type name="InputDevice" c:type="ClutterInputDevice*"/>
-        </return-value>
-        <parameters>
-          <parameter name="id" transfer-ownership="none">
-            <type name="gint" c:type="gint"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <virtual-method name="get_devices">
-        <return-value transfer-ownership="none">
-          <type name="GLib.SList" c:type="GSList*">
-            <type name="gpointer" c:type="gpointer"/>
-          </type>
-        </return-value>
-      </virtual-method>
-      <virtual-method name="remove_device">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="device" transfer-ownership="none">
-            <type name="InputDevice" c:type="ClutterInputDevice*"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <method name="get_core_device"
-              c:identifier="clutter_device_manager_get_core_device"
-              version="1.2">
-        <doc xml:whitespace="preserve">Retrieves the core #ClutterInputDevice of type @device_type
-Core devices are devices created automatically by the default
-Clutter backend
-returned device is owned by the #ClutterDeviceManager and should
-not be modified or freed</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">a #ClutterInputDevice or %NULL. The</doc>
-          <type name="InputDevice" c:type="ClutterInputDevice*"/>
-        </return-value>
-        <parameters>
-          <parameter name="device_type" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the type of the core device</doc>
-            <type name="InputDeviceType" c:type="ClutterInputDeviceType"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_device"
-              c:identifier="clutter_device_manager_get_device"
-              version="1.2">
-        <doc xml:whitespace="preserve">Retrieves the #ClutterInputDevice with the given @device_id
-returned device is owned by the #ClutterDeviceManager and should
-never be modified or freed</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">a #ClutterInputDevice or %NULL. The</doc>
-          <type name="InputDevice" c:type="ClutterInputDevice*"/>
-        </return-value>
-        <parameters>
-          <parameter name="device_id" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the integer id of a device</doc>
-            <type name="gint" c:type="gint"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="list_devices"
-              c:identifier="clutter_device_manager_list_devices"
-              version="1.2">
-        <doc xml:whitespace="preserve">Lists all currently registered input devices
-a newly allocated list of #ClutterInputDevice objects. Use
-g_slist_free() to deallocate it when done</doc>
-        <return-value transfer-ownership="container">
-          <type name="GLib.SList" c:type="GSList*">
-            <type name="InputDevice"/>
-          </type>
-        </return-value>
-      </method>
-      <method name="peek_devices"
-              c:identifier="clutter_device_manager_peek_devices"
-              version="1.2">
-        <doc xml:whitespace="preserve">Lists all currently registered input devices
-a pointer to the internal list of #ClutterInputDevice objects. The
-returned list is owned by the #ClutterDeviceManager and should never
-be modified or freed</doc>
-        <return-value transfer-ownership="none">
-          <type name="GLib.SList" c:type="GSList*">
-            <type name="InputDevice"/>
-          </type>
-        </return-value>
-      </method>
-      <property name="backend"
-                writable="1"
-                construct-only="1"
-                transfer-ownership="none">
-        <type name="Backend"/>
-      </property>
-      <field name="parent_instance">
-        <type name="GObject.Object" c:type="GObject"/>
-      </field>
-      <field name="priv">
-        <type name="DeviceManagerPrivate"
-              c:type="ClutterDeviceManagerPrivate*"/>
-      </field>
-      <glib:signal name="device-added" version="1.2">
-        <doc xml:whitespace="preserve">The ::device-added signal is emitted each time a device has been
-added to the #ClutterDeviceManager</doc>
-        <return-value transfer-ownership="none">
-          <type name="none"/>
-        </return-value>
-        <parameters>
-          <parameter name="object" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the newly added #ClutterInputDevice</doc>
-            <type name="InputDevice"/>
-          </parameter>
-        </parameters>
-      </glib:signal>
-      <glib:signal name="device-removed" version="1.2">
-        <doc xml:whitespace="preserve">The ::device-removed signal is emitted each time a device has been
-removed from the #ClutterDeviceManager</doc>
-        <return-value transfer-ownership="none">
-          <type name="none"/>
-        </return-value>
-        <parameters>
-          <parameter name="object" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the removed #ClutterInputDevice</doc>
-            <type name="InputDevice"/>
-          </parameter>
-        </parameters>
-      </glib:signal>
-    </class>
-    <record name="DeviceManagerClass"
-            c:type="ClutterDeviceManagerClass"
-            glib:is-gtype-struct-for="DeviceManager"
-            version="1.2">
-      <doc xml:whitespace="preserve">The #ClutterDeviceManagerClass structure contains only private data</doc>
-      <field name="parent_class">
-        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
-      </field>
-      <field name="get_devices">
-        <callback name="get_devices">
-          <return-value transfer-ownership="none">
-            <type name="GLib.SList" c:type="GSList*">
-              <type name="gpointer" c:type="gpointer"/>
-            </type>
-          </return-value>
-          <parameters>
-            <parameter name="manager" transfer-ownership="none">
-              <type name="DeviceManager" c:type="ClutterDeviceManager*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="get_core_device">
-        <callback name="get_core_device">
-          <return-value transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #ClutterInputDevice or %NULL. The</doc>
-            <type name="InputDevice" c:type="ClutterInputDevice*"/>
-          </return-value>
-          <parameters>
-            <parameter name="manager" transfer-ownership="none">
-              <type name="DeviceManager" c:type="ClutterDeviceManager*"/>
-            </parameter>
-            <parameter name="type" transfer-ownership="none">
-              <type name="InputDeviceType" c:type="ClutterInputDeviceType"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="get_device">
-        <callback name="get_device">
-          <return-value transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #ClutterInputDevice or %NULL. The</doc>
-            <type name="InputDevice" c:type="ClutterInputDevice*"/>
-          </return-value>
-          <parameters>
-            <parameter name="manager" transfer-ownership="none">
-              <type name="DeviceManager" c:type="ClutterDeviceManager*"/>
-            </parameter>
-            <parameter name="id" transfer-ownership="none">
-              <type name="gint" c:type="gint"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="add_device">
-        <callback name="add_device">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="manager" transfer-ownership="none">
-              <type name="DeviceManager" c:type="ClutterDeviceManager*"/>
-            </parameter>
-            <parameter name="device" transfer-ownership="none">
-              <type name="InputDevice" c:type="ClutterInputDevice*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="remove_device">
-        <callback name="remove_device">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="manager" transfer-ownership="none">
-              <type name="DeviceManager" c:type="ClutterDeviceManager*"/>
-            </parameter>
-            <parameter name="device" transfer-ownership="none">
-              <type name="InputDevice" c:type="ClutterInputDevice*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="_padding">
-        <array zero-terminated="0" c:type="gpointer" fixed-size="8">
-          <type name="gpointer" c:type="gpointer"/>
-        </array>
-      </field>
-    </record>
-    <record name="DeviceManagerPrivate"
-            c:type="ClutterDeviceManagerPrivate"
-            disguised="1">
-    </record>
-    <constant name="Display" value="269025113">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Documents" value="269025115">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="DongSign" value="16785579">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Down" value="65364">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <class name="DragAction"
-           c:symbol-prefix="drag_action"
-           c:type="ClutterDragAction"
-           version="1.4"
-           parent="Action"
-           glib:type-name="ClutterDragAction"
-           glib:get-type="clutter_drag_action_get_type"
-           glib:type-struct="DragActionClass">
-      <doc xml:whitespace="preserve">The &lt;structname&gt;ClutterDragAction&lt;/structname&gt; structure contains only
-private data and should be accessed using the provided API</doc>
-      <constructor name="new"
-                   c:identifier="clutter_drag_action_new"
-                   version="1.4">
-        <doc xml:whitespace="preserve">Creates a new #ClutterDragAction instance</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the newly created #ClutterDragAction</doc>
-          <type name="Action" c:type="ClutterAction*"/>
-        </return-value>
-      </constructor>
-      <method name="get_drag_axis"
-              c:identifier="clutter_drag_action_get_drag_axis"
-              version="1.4">
-        <doc xml:whitespace="preserve">Retrieves the axis constraint set by clutter_drag_action_set_drag_axis()</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the axis constraint</doc>
-          <type name="DragAxis" c:type="ClutterDragAxis"/>
-        </return-value>
-      </method>
-      <method name="get_drag_handle"
-              c:identifier="clutter_drag_action_get_drag_handle"
-              version="1.4">
-        <doc xml:whitespace="preserve">Retrieves the drag handle set by clutter_drag_action_set_drag_handle()
-handle, or %NULL if none was set</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">a #ClutterActor, used as the drag</doc>
-          <type name="Actor" c:type="ClutterActor*"/>
-        </return-value>
-      </method>
-      <method name="get_drag_threshold"
-              c:identifier="clutter_drag_action_get_drag_threshold"
-              version="1.4">
-        <doc xml:whitespace="preserve">Retrieves the values set by clutter_drag_action_set_drag_threshold()</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="x_threshold"
-                     direction="out"
-                     caller-allocates="0"
-                     transfer-ownership="full">
-            <doc xml:whitespace="preserve">return location for the horizontal drag threshold value, in pixels</doc>
-            <type name="guint" c:type="guint*"/>
-          </parameter>
-          <parameter name="y_threshold"
-                     direction="out"
-                     caller-allocates="0"
-                     transfer-ownership="full">
-            <doc xml:whitespace="preserve">return location for the vertical drag threshold value, in pixels</doc>
-            <type name="guint" c:type="guint*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_motion_coords"
-              c:identifier="clutter_drag_action_get_motion_coords"
-              version="1.4">
-        <doc xml:whitespace="preserve">Retrieves the coordinates, in stage space, of the latest motion
-event during the dragging</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="motion_x"
-                     direction="out"
-                     caller-allocates="0"
-                     transfer-ownership="full">
-            <doc xml:whitespace="preserve">return location for the latest motion event's X coordinate</doc>
-            <type name="gfloat" c:type="gfloat*"/>
-          </parameter>
-          <parameter name="motion_y"
-                     direction="out"
-                     caller-allocates="0"
-                     transfer-ownership="full">
-            <doc xml:whitespace="preserve">return location for the latest motion event's Y coordinate</doc>
-            <type name="gfloat" c:type="gfloat*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_press_coords"
-              c:identifier="clutter_drag_action_get_press_coords"
-              version="1.4">
-        <doc xml:whitespace="preserve">Retrieves the coordinates, in stage space, of the press event
-that started the dragging</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="press_x"
-                     direction="out"
-                     caller-allocates="0"
-                     transfer-ownership="full">
-            <doc xml:whitespace="preserve">return location for the press event's X coordinate</doc>
-            <type name="gfloat" c:type="gfloat*"/>
-          </parameter>
-          <parameter name="press_y"
-                     direction="out"
-                     caller-allocates="0"
-                     transfer-ownership="full">
-            <doc xml:whitespace="preserve">return location for the press event's Y coordinate</doc>
-            <type name="gfloat" c:type="gfloat*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_drag_axis"
-              c:identifier="clutter_drag_action_set_drag_axis"
-              version="1.4">
-        <doc xml:whitespace="preserve">Restricts the dragging action to a specific axis</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="axis" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the axis to constraint the dragging to</doc>
-            <type name="DragAxis" c:type="ClutterDragAxis"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_drag_handle"
-              c:identifier="clutter_drag_action_set_drag_handle"
-              version="1.4">
-        <doc xml:whitespace="preserve">Sets the actor to be used as the drag handle</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="handle" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #ClutterActor</doc>
-            <type name="Actor" c:type="ClutterActor*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_drag_threshold"
-              c:identifier="clutter_drag_action_set_drag_threshold"
-              version="1.4">
-        <doc xml:whitespace="preserve">Sets the horizontal and vertical drag thresholds that must be
-cleared by the pointer before @action can begin the dragging</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="x_threshold" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a distance on the horizontal axis, in pixels</doc>
-            <type name="guint" c:type="guint"/>
-          </parameter>
-          <parameter name="y_threshold" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a distance on the vertical axis, in pixels</doc>
-            <type name="guint" c:type="guint"/>
-          </parameter>
-        </parameters>
-      </method>
-      <property name="drag-axis"
-                version="1.4"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">Constraints the dragging action to the specified axis</doc>
-        <type name="DragAxis"/>
-      </property>
-      <property name="drag-handle"
-                version="1.4"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">The #ClutterActor that is effectively being dragged
-A #ClutterDragAction will, be default, use the #ClutterActor that
-has been attached to the action; it is possible to create a
-separate #ClutterActor and use it instead.
-Setting this property has no effect on the #ClutterActor argument
-passed to the #ClutterDragAction signals</doc>
-        <type name="Actor"/>
-      </property>
-      <property name="x-drag-threshold"
-                version="1.4"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">The horizontal threshold, in pixels, that begins a drag action
-When set to a non-zero value, #ClutterDragAction will only emit
-#ClutterDragAction::drag-begin if the pointer has moved
-horizontally at least of the given amount of pixels since
-the button press event</doc>
-        <type name="guint"/>
-      </property>
-      <property name="y-drag-threshold"
-                version="1.4"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">The vertical threshold, in pixels, that begins a drag action
-When set to a non-zero value, #ClutterDragAction will only emit
-#ClutterDragAction::drag-begin if the pointer has moved
-vertically at least of the given amount of pixels since
-the button press event</doc>
-        <type name="guint"/>
-      </property>
-      <field name="parent_instance">
-        <type name="Action" c:type="ClutterAction"/>
-      </field>
-      <field name="priv">
-        <type name="DragActionPrivate" c:type="ClutterDragActionPrivate*"/>
-      </field>
-      <glib:signal name="drag-begin" version="1.4">
-        <doc xml:whitespace="preserve">The ::drag-begin signal is emitted when the #ClutterDragAction
-starts the dragging
-The emission of this signal can be delayed by using the
-#ClutterDragAction:x-drag-threshold and
-#ClutterDragAction:y-drag-threshold properties</doc>
-        <return-value transfer-ownership="none">
-          <type name="none"/>
-        </return-value>
-        <parameters>
-          <parameter name="object" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the #ClutterActor attached to the action</doc>
-            <type name="Actor"/>
-          </parameter>
-          <parameter name="p0" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the X coordinate (in stage space) of the press event</doc>
-            <type name="gfloat"/>
-          </parameter>
-          <parameter name="p1" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the Y coordinate (in stage space) of the press event</doc>
-            <type name="gfloat"/>
-          </parameter>
-          <parameter name="p2" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the modifiers of the press event</doc>
-            <type name="ModifierType"/>
-          </parameter>
-        </parameters>
-      </glib:signal>
-      <glib:signal name="drag-end" version="1.4">
-        <doc xml:whitespace="preserve">The ::drag-end signal is emitted at the end of the dragging,
-when the pointer button's is released
-This signal is emitted if and only if the #ClutterDragAction::drag-begin
-signal has been emitted first</doc>
-        <return-value transfer-ownership="none">
-          <type name="none"/>
-        </return-value>
-        <parameters>
-          <parameter name="object" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the #ClutterActor attached to the action</doc>
-            <type name="Actor"/>
-          </parameter>
-          <parameter name="p0" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the X coordinate (in stage space) of the release event</doc>
-            <type name="gfloat"/>
-          </parameter>
-          <parameter name="p1" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the Y coordinate (in stage space) of the release event</doc>
-            <type name="gfloat"/>
-          </parameter>
-          <parameter name="p2" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the modifiers of the release event</doc>
-            <type name="ModifierType"/>
-          </parameter>
-        </parameters>
-      </glib:signal>
-      <glib:signal name="drag-motion">
-        <return-value transfer-ownership="none">
-          <type name="none"/>
-        </return-value>
-        <parameters>
-          <parameter name="object" transfer-ownership="none">
-            <type name="Actor"/>
-          </parameter>
-          <parameter name="p0" transfer-ownership="none">
-            <type name="gfloat"/>
-          </parameter>
-          <parameter name="p1" transfer-ownership="none">
-            <type name="gfloat"/>
-          </parameter>
-        </parameters>
-      </glib:signal>
-    </class>
-    <record name="DragActionClass"
-            c:type="ClutterDragActionClass"
-            glib:is-gtype-struct-for="DragAction"
-            version="1.4">
-      <doc xml:whitespace="preserve">The &lt;structname&gt;ClutterDragActionClass&lt;/structname&gt; structure contains
-only private data</doc>
-      <field name="parent_class">
-        <type name="ActionClass" c:type="ClutterActionClass"/>
-      </field>
-      <field name="drag_begin">
-        <callback name="drag_begin">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="action" transfer-ownership="none">
-              <type name="DragAction" c:type="ClutterDragAction*"/>
-            </parameter>
-            <parameter name="actor" transfer-ownership="none">
-              <type name="Actor" c:type="ClutterActor*"/>
-            </parameter>
-            <parameter name="event_x" transfer-ownership="none">
-              <type name="gfloat" c:type="gfloat"/>
-            </parameter>
-            <parameter name="event_y" transfer-ownership="none">
-              <type name="gfloat" c:type="gfloat"/>
-            </parameter>
-            <parameter name="modifiers" transfer-ownership="none">
-              <type name="ModifierType" c:type="ClutterModifierType"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="drag_motion">
-        <callback name="drag_motion">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="action" transfer-ownership="none">
-              <type name="DragAction" c:type="ClutterDragAction*"/>
-            </parameter>
-            <parameter name="actor" transfer-ownership="none">
-              <type name="Actor" c:type="ClutterActor*"/>
-            </parameter>
-            <parameter name="delta_x" transfer-ownership="none">
-              <type name="gfloat" c:type="gfloat"/>
-            </parameter>
-            <parameter name="delta_y" transfer-ownership="none">
-              <type name="gfloat" c:type="gfloat"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="drag_end">
-        <callback name="drag_end">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="action" transfer-ownership="none">
-              <type name="DragAction" c:type="ClutterDragAction*"/>
-            </parameter>
-            <parameter name="actor" transfer-ownership="none">
-              <type name="Actor" c:type="ClutterActor*"/>
-            </parameter>
-            <parameter name="event_x" transfer-ownership="none">
-              <type name="gfloat" c:type="gfloat"/>
-            </parameter>
-            <parameter name="event_y" transfer-ownership="none">
-              <type name="gfloat" c:type="gfloat"/>
-            </parameter>
-            <parameter name="modifiers" transfer-ownership="none">
-              <type name="ModifierType" c:type="ClutterModifierType"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="_clutter_drag_action1" introspectable="0">
-        <callback name="_clutter_drag_action1">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-      <field name="_clutter_drag_action2" introspectable="0">
-        <callback name="_clutter_drag_action2">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-      <field name="_clutter_drag_action3" introspectable="0">
-        <callback name="_clutter_drag_action3">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-      <field name="_clutter_drag_action4" introspectable="0">
-        <callback name="_clutter_drag_action4">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-      <field name="_clutter_drag_action5" introspectable="0">
-        <callback name="_clutter_drag_action5">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-    </record>
-    <record name="DragActionPrivate"
-            c:type="ClutterDragActionPrivate"
-            disguised="1">
-    </record>
-    <enumeration name="DragAxis"
-                 version="1.4"
-                 glib:type-name="ClutterDragAxis"
-                 glib:get-type="clutter_drag_axis_get_type"
-                 c:type="ClutterDragAxis">
-      <doc xml:whitespace="preserve">The axis of the constraint that should be applied on the
-dragging action</doc>
-      <member name="axis_none"
-              value="0"
-              c:identifier="CLUTTER_DRAG_AXIS_NONE"
-              glib:nick="axis-none"/>
-      <member name="x_axis"
-              value="1"
-              c:identifier="CLUTTER_DRAG_X_AXIS"
-              glib:nick="x-axis"/>
-      <member name="y_axis"
-              value="2"
-              c:identifier="CLUTTER_DRAG_Y_AXIS"
-              glib:nick="y-axis"/>
-    </enumeration>
-    <constant name="Dstroke" value="464">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="E" value="69">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="ENG" value="957">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="ETH" value="208">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Eabovedot" value="972">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Eacute" value="201">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Ebelowdot" value="16785080">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Ecaron" value="460">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Ecircumflex" value="202">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Ecircumflexacute" value="16785086">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Ecircumflexbelowdot" value="16785094">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Ecircumflexgrave" value="16785088">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Ecircumflexhook" value="16785090">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Ecircumflextilde" value="16785092">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="EcuSign" value="16785568">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Ediaeresis" value="203">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <class name="Effect"
-           c:symbol-prefix="effect"
-           c:type="ClutterEffect"
-           version="1.4"
-           parent="ActorMeta"
-           abstract="1"
-           glib:type-name="ClutterEffect"
-           glib:get-type="clutter_effect_get_type"
-           glib:type-struct="EffectClass">
-      <doc xml:whitespace="preserve">The #ClutterEffect structure contains only private data and should
-be accessed using the provided API</doc>
-      <virtual-method name="post_paint">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </virtual-method>
-      <virtual-method name="pre_paint">
-        <return-value transfer-ownership="none">
-          <type name="gboolean" c:type="gboolean"/>
-        </return-value>
-      </virtual-method>
-      <field name="parent_instance">
-        <type name="ActorMeta" c:type="ClutterActorMeta"/>
-      </field>
-    </class>
-    <record name="EffectClass"
-            c:type="ClutterEffectClass"
-            glib:is-gtype-struct-for="Effect"
-            version="1.4">
-      <doc xml:whitespace="preserve">The #ClutterEffectClass structure contains only private data</doc>
-      <field name="parent_class">
-        <type name="ActorMetaClass" c:type="ClutterActorMetaClass"/>
-      </field>
-      <field name="pre_paint">
-        <callback name="pre_paint">
-          <return-value transfer-ownership="none">
-            <type name="gboolean" c:type="gboolean"/>
-          </return-value>
-          <parameters>
-            <parameter name="effect" transfer-ownership="none">
-              <type name="Effect" c:type="ClutterEffect*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="post_paint">
-        <callback name="post_paint">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="effect" transfer-ownership="none">
-              <type name="Effect" c:type="ClutterEffect*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="_clutter_effect1" introspectable="0">
-        <callback name="_clutter_effect1">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-      <field name="_clutter_effect2" introspectable="0">
-        <callback name="_clutter_effect2">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-      <field name="_clutter_effect3" introspectable="0">
-        <callback name="_clutter_effect3">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-      <field name="_clutter_effect4" introspectable="0">
-        <callback name="_clutter_effect4">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-      <field name="_clutter_effect5" introspectable="0">
-        <callback name="_clutter_effect5">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-      <field name="_clutter_effect6" introspectable="0">
-        <callback name="_clutter_effect6">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-    </record>
-    <constant name="Egrave" value="200">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Ehook" value="16785082">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Eisu_Shift" value="65327">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Eisu_toggle" value="65328">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Eject" value="269025068">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Emacron" value="938">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="End" value="65367">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Eogonek" value="458">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Escape" value="65307">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Eth" value="208">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Etilde" value="16785084">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="EuroSign" value="8364">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <union name="Event"
-           c:type="ClutterEvent"
-           version="0.2"
-           glib:type-name="ClutterEvent"
-           glib:get-type="clutter_event_get_type"
-           c:symbol-prefix="event">
-      <doc xml:whitespace="preserve">Generic event wrapper.</doc>
-      <field name="type" writable="1">
-        <type name="EventType" c:type="ClutterEventType"/>
-      </field>
-      <field name="any" writable="1">
-        <type name="AnyEvent" c:type="ClutterAnyEvent"/>
-      </field>
-      <field name="button" writable="1">
-        <type name="ButtonEvent" c:type="ClutterButtonEvent"/>
-      </field>
-      <field name="key" writable="1">
-        <type name="KeyEvent" c:type="ClutterKeyEvent"/>
-      </field>
-      <field name="motion" writable="1">
-        <type name="MotionEvent" c:type="ClutterMotionEvent"/>
-      </field>
-      <field name="scroll" writable="1">
-        <type name="ScrollEvent" c:type="ClutterScrollEvent"/>
-      </field>
-      <field name="stage_state" writable="1">
-        <type name="StageStateEvent" c:type="ClutterStageStateEvent"/>
-      </field>
-      <field name="crossing" writable="1">
-        <type name="CrossingEvent" c:type="ClutterCrossingEvent"/>
-      </field>
-      <constructor name="new" c:identifier="clutter_event_new">
-        <doc xml:whitespace="preserve">Creates a new #ClutterEvent of the specified type.</doc>
-        <return-value transfer-ownership="full">
-          <doc xml:whitespace="preserve">A newly allocated #ClutterEvent.</doc>
-          <type name="Event" c:type="ClutterEvent*"/>
-        </return-value>
-        <parameters>
-          <parameter name="type" transfer-ownership="none">
-            <doc xml:whitespace="preserve">The type of event.</doc>
-            <type name="EventType" c:type="ClutterEventType"/>
-          </parameter>
-        </parameters>
-      </constructor>
-      <method name="copy" c:identifier="clutter_event_copy">
-        <doc xml:whitespace="preserve">Copies @event.</doc>
-        <return-value transfer-ownership="full">
-          <doc xml:whitespace="preserve">A newly allocated #ClutterEvent</doc>
-          <type name="Event" c:type="ClutterEvent*"/>
-        </return-value>
-      </method>
-      <method name="free" c:identifier="clutter_event_free">
-        <doc xml:whitespace="preserve">Frees all resources used by @event.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </method>
-      <method name="get_button"
-              c:identifier="clutter_event_get_button"
-              version="1.0">
-        <doc xml:whitespace="preserve">Retrieves the button number of @event</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the button number</doc>
-          <type name="guint32" c:type="guint32"/>
-        </return-value>
-      </method>
-      <method name="get_click_count"
-              c:identifier="clutter_event_get_click_count"
-              version="1.0">
-        <doc xml:whitespace="preserve">Retrieves the number of clicks of @event</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the click count</doc>
-          <type name="guint" c:type="guint"/>
-        </return-value>
-      </method>
-      <method name="get_coords"
-              c:identifier="clutter_event_get_coords"
-              version="0.4">
-        <doc xml:whitespace="preserve">Retrieves the coordinates of @event and puts them into @x and @y.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="x"
-                     direction="out"
-                     caller-allocates="0"
-                     transfer-ownership="full">
-            <doc xml:whitespace="preserve">return location for the X coordinate, or %NULL</doc>
-            <type name="gfloat" c:type="gfloat*"/>
-          </parameter>
-          <parameter name="y"
-                     direction="out"
-                     caller-allocates="0"
-                     transfer-ownership="full">
-            <doc xml:whitespace="preserve">return location for the Y coordinate, or %NULL</doc>
-            <type name="gfloat" c:type="gfloat*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_device"
-              c:identifier="clutter_event_get_device"
-              version="1.0">
-        <doc xml:whitespace="preserve">Retrieves the #ClutterInputDevice for the event.
-The #ClutterInputDevice structure is completely opaque and should
-be cast to the platform-specific implementation.
-returned device is owned by the #ClutterEvent and it should not
-be unreferenced</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the #ClutterInputDevice or %NULL. The</doc>
-          <type name="InputDevice" c:type="ClutterInputDevice*"/>
-        </return-value>
-      </method>
-      <method name="get_device_id" c:identifier="clutter_event_get_device_id">
-        <doc xml:whitespace="preserve">Retrieves the events device id if set.
-no specific device set.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">A unique identifier for the device or -1 if the event has</doc>
-          <type name="gint" c:type="gint"/>
-        </return-value>
-      </method>
-      <method name="get_device_type"
-              c:identifier="clutter_event_get_device_type"
-              version="1.0">
-        <doc xml:whitespace="preserve">Retrieves the type of the device for @event
-any is set</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the #ClutterInputDeviceType for the device, if</doc>
-          <type name="InputDeviceType" c:type="ClutterInputDeviceType"/>
-        </return-value>
-      </method>
-      <method name="get_flags"
-              c:identifier="clutter_event_get_flags"
-              version="1.0">
-        <doc xml:whitespace="preserve">Retrieves the #ClutterEventFlags of @event</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the event flags</doc>
-          <type name="EventFlags" c:type="ClutterEventFlags"/>
-        </return-value>
-      </method>
-      <method name="get_key_code"
-              c:identifier="clutter_event_get_key_code"
-              version="1.0">
-        <doc xml:whitespace="preserve">Retrieves the keycode of the key that caused @event</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">The keycode representing the key</doc>
-          <type name="guint16" c:type="guint16"/>
-        </return-value>
-      </method>
-      <method name="get_key_symbol"
-              c:identifier="clutter_event_get_key_symbol"
-              version="1.0">
-        <doc xml:whitespace="preserve">Retrieves the key symbol of @event</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the key symbol representing the key</doc>
-          <type name="guint" c:type="guint"/>
-        </return-value>
-      </method>
-      <method name="get_key_unicode"
-              c:identifier="clutter_event_get_key_unicode">
-        <doc xml:whitespace="preserve">Retrieves the unicode value for the key that caused @keyev.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">The unicode value representing the key</doc>
-          <type name="guint32" c:type="guint32"/>
-        </return-value>
-      </method>
-      <method name="get_related"
-              c:identifier="clutter_event_get_related"
-              version="1.0">
-        <doc xml:whitespace="preserve">Retrieves the related actor of a crossing event.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the related #ClutterActor, or %NULL</doc>
-          <type name="Actor" c:type="ClutterActor*"/>
-        </return-value>
-      </method>
-      <method name="get_scroll_direction"
-              c:identifier="clutter_event_get_scroll_direction"
-              version="1.0">
-        <doc xml:whitespace="preserve">Retrieves the direction of the scrolling of @event</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the scrolling direction</doc>
-          <type name="ScrollDirection" c:type="ClutterScrollDirection"/>
-        </return-value>
-      </method>
-      <method name="get_source"
-              c:identifier="clutter_event_get_source"
-              version="0.6">
-        <doc xml:whitespace="preserve">Retrieves the source #ClutterActor the event originated from, or
-NULL if the event has no source.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">a #ClutterActor</doc>
-          <type name="Actor" c:type="ClutterActor*"/>
-        </return-value>
-      </method>
-      <method name="get_stage"
-              c:identifier="clutter_event_get_stage"
-              version="0.8">
-        <doc xml:whitespace="preserve">Retrieves the source #ClutterStage the event originated for, or
-%NULL if the event has no stage.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">a #ClutterStage</doc>
-          <type name="Stage" c:type="ClutterStage*"/>
-        </return-value>
-      </method>
-      <method name="get_state"
-              c:identifier="clutter_event_get_state"
-              version="0.4">
-        <doc xml:whitespace="preserve">Retrieves the modifier state of the event.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the modifier state parameter, or 0</doc>
-          <type name="ModifierType" c:type="ClutterModifierType"/>
-        </return-value>
-      </method>
-      <method name="get_time"
-              c:identifier="clutter_event_get_time"
-              version="0.4">
-        <doc xml:whitespace="preserve">Retrieves the time of the event.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the time of the event, or %CLUTTER_CURRENT_TIME</doc>
-          <type name="guint32" c:type="guint32"/>
-        </return-value>
-      </method>
-      <method name="put" c:identifier="clutter_event_put" version="0.6">
-        <doc xml:whitespace="preserve">Puts a copy of the event on the back of the event queue. The event will
-have the %CLUTTER_EVENT_FLAG_SYNTHETIC flag set. If the source is set
-event signals will be emitted for this source and capture/bubbling for
-its ancestors. If the source is not set it will be generated by picking
-or use the actor that currently has keyboard focus</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </method>
-      <method name="type" c:identifier="clutter_event_type">
-        <doc xml:whitespace="preserve">Retrieves the type of the event.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">a #ClutterEventType</doc>
-          <type name="EventType" c:type="ClutterEventType"/>
-        </return-value>
-      </method>
-    </union>
-    <bitfield name="EventFlags"
-              version="0.6"
-              glib:type-name="ClutterEventFlags"
-              glib:get-type="clutter_event_flags_get_type"
-              c:type="ClutterEventFlags">
-      <doc xml:whitespace="preserve">Flags for the #ClutterEvent</doc>
-      <member name="none"
-              value="0"
-              c:identifier="CLUTTER_EVENT_NONE"
-              glib:nick="none"/>
-      <member name="flag_synthetic"
-              value="1"
-              c:identifier="CLUTTER_EVENT_FLAG_SYNTHETIC"
-              glib:nick="flag-synthetic"/>
-    </bitfield>
-    <enumeration name="EventType"
-                 version="0.4"
-                 glib:type-name="ClutterEventType"
-                 glib:get-type="clutter_event_type_get_type"
-                 c:type="ClutterEventType">
-      <doc xml:whitespace="preserve">Types of events.</doc>
-      <member name="nothing"
-              value="0"
-              c:identifier="CLUTTER_NOTHING"
-              glib:nick="nothing"/>
-      <member name="key_press"
-              value="1"
-              c:identifier="CLUTTER_KEY_PRESS"
-              glib:nick="key-press"/>
-      <member name="key_release"
-              value="2"
-              c:identifier="CLUTTER_KEY_RELEASE"
-              glib:nick="key-release"/>
-      <member name="motion"
-              value="3"
-              c:identifier="CLUTTER_MOTION"
-              glib:nick="motion"/>
-      <member name="enter"
-              value="4"
-              c:identifier="CLUTTER_ENTER"
-              glib:nick="enter"/>
-      <member name="leave"
-              value="5"
-              c:identifier="CLUTTER_LEAVE"
-              glib:nick="leave"/>
-      <member name="button_press"
-              value="6"
-              c:identifier="CLUTTER_BUTTON_PRESS"
-              glib:nick="button-press"/>
-      <member name="button_release"
-              value="7"
-              c:identifier="CLUTTER_BUTTON_RELEASE"
-              glib:nick="button-release"/>
-      <member name="scroll"
-              value="8"
-              c:identifier="CLUTTER_SCROLL"
-              glib:nick="scroll"/>
-      <member name="stage_state"
-              value="9"
-              c:identifier="CLUTTER_STAGE_STATE"
-              glib:nick="stage-state"/>
-      <member name="destroy_notify"
-              value="10"
-              c:identifier="CLUTTER_DESTROY_NOTIFY"
-              glib:nick="destroy-notify"/>
-      <member name="client_message"
-              value="11"
-              c:identifier="CLUTTER_CLIENT_MESSAGE"
-              glib:nick="client-message"/>
-      <member name="delete"
-              value="12"
-              c:identifier="CLUTTER_DELETE"
-              glib:nick="delete"/>
-    </enumeration>
-    <constant name="Excel" value="269025116">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Execute" value="65378">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Explorer" value="269025117">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="F" value="70">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="F1" value="65470">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="F10" value="65479">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="F11" value="65480">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="F12" value="65481">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="F13" value="65482">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="F14" value="65483">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="F15" value="65484">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="F16" value="65485">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="F17" value="65486">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="F18" value="65487">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="F19" value="65488">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="F2" value="65471">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="F20" value="65489">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="F21" value="65490">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="F22" value="65491">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="F23" value="65492">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="F24" value="65493">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="F25" value="65494">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="F26" value="65495">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="F27" value="65496">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="F28" value="65497">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="F29" value="65498">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="F3" value="65472">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="F30" value="65499">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="F31" value="65500">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="F32" value="65501">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="F33" value="65502">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="F34" value="65503">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="F35" value="65504">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="F4" value="65473">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="F5" value="65474">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="F6" value="65475">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="F7" value="65476">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="F8" value="65477">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="F9" value="65478">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="FFrancSign" value="16785571">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="FLAVOUR" value="glx">
-      <type name="utf8" c:type="gchar*"/>
-    </constant>
-    <constant name="Fabovedot" value="16784926">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Farsi_0" value="16778992">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Farsi_1" value="16778993">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Farsi_2" value="16778994">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Farsi_3" value="16778995">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Farsi_4" value="16778996">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Farsi_5" value="16778997">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Farsi_6" value="16778998">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Farsi_7" value="16778999">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Farsi_8" value="16779000">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Farsi_9" value="16779001">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Farsi_yeh" value="16778956">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Favorites" value="269025072">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <bitfield name="FeatureFlags"
-              version="0.4"
-              glib:type-name="ClutterFeatureFlags"
-              glib:get-type="clutter_feature_flags_get_type"
-              c:type="ClutterFeatureFlags">
-      <doc xml:whitespace="preserve">Runtime flags indicating specific features available via Clutter window
-sysytem and graphics backend.</doc>
-      <member name="texture_npot"
-              value="4"
-              c:identifier="CLUTTER_FEATURE_TEXTURE_NPOT"
-              glib:nick="texture-npot"/>
-      <member name="sync_to_vblank"
-              value="8"
-              c:identifier="CLUTTER_FEATURE_SYNC_TO_VBLANK"
-              glib:nick="sync-to-vblank"/>
-      <member name="texture_yuv"
-              value="16"
-              c:identifier="CLUTTER_FEATURE_TEXTURE_YUV"
-              glib:nick="texture-yuv"/>
-      <member name="texture_read_pixels"
-              value="32"
-              c:identifier="CLUTTER_FEATURE_TEXTURE_READ_PIXELS"
-              glib:nick="texture-read-pixels"/>
-      <member name="stage_static"
-              value="64"
-              c:identifier="CLUTTER_FEATURE_STAGE_STATIC"
-              glib:nick="stage-static"/>
-      <member name="stage_user_resize"
-              value="128"
-              c:identifier="CLUTTER_FEATURE_STAGE_USER_RESIZE"
-              glib:nick="stage-user-resize"/>
-      <member name="stage_cursor"
-              value="256"
-              c:identifier="CLUTTER_FEATURE_STAGE_CURSOR"
-              glib:nick="stage-cursor"/>
-      <member name="shaders_glsl"
-              value="512"
-              c:identifier="CLUTTER_FEATURE_SHADERS_GLSL"
-              glib:nick="shaders-glsl"/>
-      <member name="offscreen"
-              value="1024"
-              c:identifier="CLUTTER_FEATURE_OFFSCREEN"
-              glib:nick="offscreen"/>
-      <member name="stage_multiple"
-              value="2048"
-              c:identifier="CLUTTER_FEATURE_STAGE_MULTIPLE"
-              glib:nick="stage-multiple"/>
-      <member name="swap_events"
-              value="4096"
-              c:identifier="CLUTTER_FEATURE_SWAP_EVENTS"
-              glib:nick="swap-events"/>
-    </bitfield>
-    <constant name="Finance" value="269025084">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Find" value="65384">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="First_Virtual_Screen" value="65232">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <class name="FixedLayout"
-           c:symbol-prefix="fixed_layout"
-           c:type="ClutterFixedLayout"
-           version="1.2"
-           parent="LayoutManager"
-           glib:type-name="ClutterFixedLayout"
-           glib:get-type="clutter_fixed_layout_get_type"
-           glib:type-struct="FixedLayoutClass">
-      <doc xml:whitespace="preserve">The #ClutterFixedLayout structure contains only private data and
-it should be accessed using the provided API</doc>
-      <constructor name="new"
-                   c:identifier="clutter_fixed_layout_new"
-                   version="1.2">
-        <doc xml:whitespace="preserve">Creates a new #ClutterFixedLayout</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the newly created #ClutterFixedLayout</doc>
-          <type name="LayoutManager" c:type="ClutterLayoutManager*"/>
-        </return-value>
-      </constructor>
-      <field name="parent_instance">
-        <type name="LayoutManager" c:type="ClutterLayoutManager"/>
-      </field>
-    </class>
-    <record name="FixedLayoutClass"
-            c:type="ClutterFixedLayoutClass"
-            glib:is-gtype-struct-for="FixedLayout"
-            version="1.2">
-      <doc xml:whitespace="preserve">The #ClutterFixedLayoutClass structure contains only private data
-and it should be accessed using the provided API</doc>
-      <field name="parent_class">
-        <type name="LayoutManagerClass" c:type="ClutterLayoutManagerClass"/>
-      </field>
-    </record>
-    <class name="FlowLayout"
-           c:symbol-prefix="flow_layout"
-           c:type="ClutterFlowLayout"
-           version="1.2"
-           parent="LayoutManager"
-           glib:type-name="ClutterFlowLayout"
-           glib:get-type="clutter_flow_layout_get_type"
-           glib:type-struct="FlowLayoutClass">
-      <doc xml:whitespace="preserve">The #ClutterFlowLayout structure contains only private data
-and should be accessed using the provided API</doc>
-      <constructor name="new"
-                   c:identifier="clutter_flow_layout_new"
-                   version="1.2">
-        <doc xml:whitespace="preserve">Creates a new #ClutterFlowLayout with the given @orientation</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the newly created #ClutterFlowLayout</doc>
-          <type name="LayoutManager" c:type="ClutterLayoutManager*"/>
-        </return-value>
-        <parameters>
-          <parameter name="orientation" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the orientation of the flow layout</doc>
-            <type name="FlowOrientation" c:type="ClutterFlowOrientation"/>
-          </parameter>
-        </parameters>
-      </constructor>
-      <method name="get_column_spacing"
-              c:identifier="clutter_flow_layout_get_column_spacing"
-              version="1.2">
-        <doc xml:whitespace="preserve">Retrieves the spacing between columns
-in pixels</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the spacing between columns of the #ClutterFlowLayout,</doc>
-          <type name="gfloat" c:type="gfloat"/>
-        </return-value>
-      </method>
-      <method name="get_column_width"
-              c:identifier="clutter_flow_layout_get_column_width"
-              version="1.2">
-        <doc xml:whitespace="preserve">Retrieves the minimum and maximum column widths</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="min_width"
-                     direction="out"
-                     caller-allocates="0"
-                     transfer-ownership="full">
-            <doc xml:whitespace="preserve">return location for the minimum column width, or %NULL</doc>
-            <type name="gfloat" c:type="gfloat*"/>
-          </parameter>
-          <parameter name="max_width"
-                     direction="out"
-                     caller-allocates="0"
-                     transfer-ownership="full">
-            <doc xml:whitespace="preserve">return location for the maximum column width, or %NULL</doc>
-            <type name="gfloat" c:type="gfloat*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_homogeneous"
-              c:identifier="clutter_flow_layout_get_homogeneous"
-              version="1.2">
-        <doc xml:whitespace="preserve">Retrieves whether the @layout is homogeneous</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">%TRUE if the #ClutterFlowLayout is homogeneous</doc>
-          <type name="gboolean" c:type="gboolean"/>
-        </return-value>
-      </method>
-      <method name="get_orientation"
-              c:identifier="clutter_flow_layout_get_orientation"
-              version="1.2">
-        <doc xml:whitespace="preserve">Retrieves the orientation of the @layout</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the orientation of the #ClutterFlowLayout</doc>
-          <type name="FlowOrientation" c:type="ClutterFlowOrientation"/>
-        </return-value>
-      </method>
-      <method name="get_row_height"
-              c:identifier="clutter_flow_layout_get_row_height"
-              version="1.2">
-        <doc xml:whitespace="preserve">Retrieves the minimum and maximum row heights</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="min_height"
-                     direction="out"
-                     caller-allocates="0"
-                     transfer-ownership="full">
-            <doc xml:whitespace="preserve">return location for the minimum row height, or %NULL</doc>
-            <type name="gfloat" c:type="gfloat*"/>
-          </parameter>
-          <parameter name="max_height"
-                     direction="out"
-                     caller-allocates="0"
-                     transfer-ownership="full">
-            <doc xml:whitespace="preserve">return location for the maximum row height, or %NULL</doc>
-            <type name="gfloat" c:type="gfloat*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_row_spacing"
-              c:identifier="clutter_flow_layout_get_row_spacing"
-              version="1.2">
-        <doc xml:whitespace="preserve">Retrieves the spacing between rows
-in pixels</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the spacing between rows of the #ClutterFlowLayout,</doc>
-          <type name="gfloat" c:type="gfloat"/>
-        </return-value>
-      </method>
-      <method name="set_column_spacing"
-              c:identifier="clutter_flow_layout_set_column_spacing"
-              version="1.2">
-        <doc xml:whitespace="preserve">Sets the space between columns, in pixels</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="spacing" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the space between columns</doc>
-            <type name="gfloat" c:type="gfloat"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_column_width"
-              c:identifier="clutter_flow_layout_set_column_width"
-              version="1.2">
-        <doc xml:whitespace="preserve">Sets the minimum and maximum widths that a column can have</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="min_width" transfer-ownership="none">
-            <doc xml:whitespace="preserve">minimum width of a column</doc>
-            <type name="gfloat" c:type="gfloat"/>
-          </parameter>
-          <parameter name="max_width" transfer-ownership="none">
-            <doc xml:whitespace="preserve">maximum width of a column</doc>
-            <type name="gfloat" c:type="gfloat"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_homogeneous"
-              c:identifier="clutter_flow_layout_set_homogeneous"
-              version="1.2">
-        <doc xml:whitespace="preserve">Sets whether the @layout should allocate the same space for
-each child</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="homogeneous" transfer-ownership="none">
-            <doc xml:whitespace="preserve">whether the layout should be homogeneous or not</doc>
-            <type name="gboolean" c:type="gboolean"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_orientation"
-              c:identifier="clutter_flow_layout_set_orientation"
-              version="1.2">
-        <doc xml:whitespace="preserve">Sets the orientation of the flow layout
-The orientation controls the direction used to allocate
-orientation also controls the direction of the overflowing</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="orientation" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the orientation of the layout</doc>
-            <type name="FlowOrientation" c:type="ClutterFlowOrientation"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_row_height"
-              c:identifier="clutter_flow_layout_set_row_height"
-              version="1.2">
-        <doc xml:whitespace="preserve">Sets the minimum and maximum heights that a row can have</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="min_height" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the minimum height of a row</doc>
-            <type name="gfloat" c:type="gfloat"/>
-          </parameter>
-          <parameter name="max_height" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the maximum height of a row</doc>
-            <type name="gfloat" c:type="gfloat"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_row_spacing"
-              c:identifier="clutter_flow_layout_set_row_spacing"
-              version="1.2">
-        <doc xml:whitespace="preserve">Sets the spacing between rows, in pixels</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="spacing" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the space between rows</doc>
-            <type name="gfloat" c:type="gfloat"/>
-          </parameter>
-        </parameters>
-      </method>
-      <property name="column-spacing"
-                version="1.2"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">The spacing between columns, in pixels; the value of this
-property is honoured by horizontal non-overflowing layouts
-and by vertical overflowing layouts</doc>
-        <type name="gfloat"/>
-      </property>
-      <property name="homogeneous"
-                version="1.2"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">Whether each child inside the #ClutterFlowLayout should receive
-the same allocation</doc>
-        <type name="gboolean"/>
-      </property>
-      <property name="max-column-width"
-                version="1.2"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">Maximum width for each column in the layout, in pixels. If
-set to -1 the width will be the maximum child width</doc>
-        <type name="gfloat"/>
-      </property>
-      <property name="max-row-height"
-                version="1.2"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">Maximum height for each row in the layout, in pixels. If
-set to -1 the width will be the maximum child height</doc>
-        <type name="gfloat"/>
-      </property>
-      <property name="min-column-width"
-                version="1.2"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">Minimum width for each column in the layout, in pixels</doc>
-        <type name="gfloat"/>
-      </property>
-      <property name="min-row-height"
-                version="1.2"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">Minimum height for each row in the layout, in pixels</doc>
-        <type name="gfloat"/>
-      </property>
-      <property name="orientation"
-                version="1.2"
-                writable="1"
-                construct="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">The orientation of the #ClutterFlowLayout. The children
-of the layout will be layed out following the orientation.
-This property also controls the overflowing directions</doc>
-        <type name="FlowOrientation"/>
-      </property>
-      <property name="row-spacing"
-                version="1.2"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">The spacing between rows, in pixels; the value of this
-property is honoured by vertical non-overflowing layouts and
-by horizontal overflowing layouts</doc>
-        <type name="gfloat"/>
-      </property>
-      <field name="parent_instance">
-        <type name="LayoutManager" c:type="ClutterLayoutManager"/>
-      </field>
-      <field name="priv">
-        <type name="FlowLayoutPrivate" c:type="ClutterFlowLayoutPrivate*"/>
-      </field>
-    </class>
-    <record name="FlowLayoutClass"
-            c:type="ClutterFlowLayoutClass"
-            glib:is-gtype-struct-for="FlowLayout"
-            version="1.2">
-      <doc xml:whitespace="preserve">The #ClutterFlowLayoutClass structure contains only private data
-and should be accessed using the provided API</doc>
-      <field name="parent_class">
-        <type name="LayoutManagerClass" c:type="ClutterLayoutManagerClass"/>
-      </field>
-    </record>
-    <record name="FlowLayoutPrivate"
-            c:type="ClutterFlowLayoutPrivate"
-            disguised="1">
-    </record>
-    <enumeration name="FlowOrientation"
-                 version="1.2"
-                 glib:type-name="ClutterFlowOrientation"
-                 glib:get-type="clutter_flow_orientation_get_type"
-                 c:type="ClutterFlowOrientation">
-      <doc xml:whitespace="preserve">The direction of the arrangement of the children inside
-a #ClutterFlowLayout</doc>
-      <member name="horizontal"
-              value="0"
-              c:identifier="CLUTTER_FLOW_HORIZONTAL"
-              glib:nick="horizontal"/>
-      <member name="vertical"
-              value="1"
-              c:identifier="CLUTTER_FLOW_VERTICAL"
-              glib:nick="vertical"/>
-    </enumeration>
-    <record name="Fog"
-            c:type="ClutterFog"
-            version="0.6"
-            glib:type-name="ClutterFog"
-            glib:get-type="clutter_fog_get_type"
-            c:symbol-prefix="fog">
-      <doc xml:whitespace="preserve">Fog settings used to create the depth cueing effect.</doc>
-      <field name="z_near" writable="1">
-        <type name="gfloat" c:type="gfloat"/>
-      </field>
-      <field name="z_far" writable="1">
-        <type name="gfloat" c:type="gfloat"/>
-      </field>
-    </record>
-    <bitfield name="FontFlags"
-              version="1.0"
-              glib:type-name="ClutterFontFlags"
-              glib:get-type="clutter_font_flags_get_type"
-              c:type="ClutterFontFlags">
-      <doc xml:whitespace="preserve">Runtime flags to change the font quality. To be used with
-clutter_set_font_flags().</doc>
-      <member name="mipmapping"
-              value="1"
-              c:identifier="CLUTTER_FONT_MIPMAPPING"
-              glib:nick="mipmapping"/>
-      <member name="hinting"
-              value="2"
-              c:identifier="CLUTTER_FONT_HINTING"
-              glib:nick="hinting"/>
-    </bitfield>
-    <constant name="Forward" value="269025063">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="FrameBack" value="269025181">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="FrameForward" value="269025182">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="G" value="71">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Gabovedot" value="725">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Game" value="269025118">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Gbreve" value="683">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Gcaron" value="16777702">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Gcedilla" value="939">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Gcircumflex" value="728">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <record name="Geometry"
-            c:type="ClutterGeometry"
-            glib:type-name="ClutterGeometry"
-            glib:get-type="clutter_geometry_get_type"
-            c:symbol-prefix="geometry">
-      <doc xml:whitespace="preserve">The rectangle containing an actor's bounding box, measured in pixels.</doc>
-      <field name="x" writable="1">
-        <type name="gint" c:type="gint"/>
-      </field>
-      <field name="y" writable="1">
-        <type name="gint" c:type="gint"/>
-      </field>
-      <field name="width" writable="1">
-        <type name="guint" c:type="guint"/>
-      </field>
-      <field name="height" writable="1">
-        <type name="guint" c:type="guint"/>
-      </field>
-      <method name="intersects"
-              c:identifier="clutter_geometry_intersects"
-              version="1.4">
-        <doc xml:whitespace="preserve">Determines if @geometry0 and geometry1 intersect returning %TRUE if
-they do else %FALSE.
-%FALSE.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">%TRUE of @geometry0 and geometry1 intersect else</doc>
-          <type name="gboolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="geometry1" transfer-ownership="none">
-            <doc xml:whitespace="preserve">The second geometry to test</doc>
-            <type name="Geometry" c:type="ClutterGeometry*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="union" c:identifier="clutter_geometry_union" version="1.4">
-        <doc xml:whitespace="preserve">Find the union of two rectangles represented as #ClutterGeometry.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="geometry_b" transfer-ownership="none">
-            <doc xml:whitespace="preserve">another #ClutterGeometry</doc>
-            <type name="Geometry" c:type="ClutterGeometry*"/>
-          </parameter>
-          <parameter name="result"
-                     direction="out"
-                     caller-allocates="1"
-                     transfer-ownership="none">
-            <doc xml:whitespace="preserve">location to store the result</doc>
-            <type name="Geometry" c:type="ClutterGeometry*"/>
-          </parameter>
-        </parameters>
-      </method>
-    </record>
-    <constant name="Georgian_an" value="16781520">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Georgian_ban" value="16781521">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Georgian_can" value="16781546">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Georgian_char" value="16781549">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Georgian_chin" value="16781545">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Georgian_cil" value="16781548">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Georgian_don" value="16781523">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Georgian_en" value="16781524">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Georgian_fi" value="16781558">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Georgian_gan" value="16781522">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Georgian_ghan" value="16781542">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Georgian_hae" value="16781552">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Georgian_har" value="16781556">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Georgian_he" value="16781553">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Georgian_hie" value="16781554">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Georgian_hoe" value="16781557">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Georgian_in" value="16781528">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Georgian_jhan" value="16781551">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Georgian_jil" value="16781547">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Georgian_kan" value="16781529">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Georgian_khar" value="16781541">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Georgian_las" value="16781530">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Georgian_man" value="16781531">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Georgian_nar" value="16781532">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Georgian_on" value="16781533">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Georgian_par" value="16781534">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Georgian_phar" value="16781540">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Georgian_qar" value="16781543">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Georgian_rae" value="16781536">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Georgian_san" value="16781537">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Georgian_shin" value="16781544">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Georgian_tan" value="16781527">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Georgian_tar" value="16781538">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Georgian_un" value="16781539">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Georgian_vin" value="16781525">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Georgian_we" value="16781555">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Georgian_xan" value="16781550">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Georgian_zen" value="16781526">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Georgian_zhar" value="16781535">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Go" value="269025119">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <enumeration name="Gravity"
-                 version="0.2"
-                 glib:type-name="ClutterGravity"
-                 glib:get-type="clutter_gravity_get_type"
-                 c:type="ClutterGravity">
-      <doc xml:whitespace="preserve">Gravity of the scaling operations. When a gravity different than
-%CLUTTER_GRAVITY_NONE is used, an actor is scaled keeping the position
-of the specified portion at the same coordinates.</doc>
-      <member name="none"
-              value="0"
-              c:identifier="CLUTTER_GRAVITY_NONE"
-              glib:nick="none"/>
-      <member name="north"
-              value="1"
-              c:identifier="CLUTTER_GRAVITY_NORTH"
-              glib:nick="north"/>
-      <member name="north_east"
-              value="2"
-              c:identifier="CLUTTER_GRAVITY_NORTH_EAST"
-              glib:nick="north-east"/>
-      <member name="east"
-              value="3"
-              c:identifier="CLUTTER_GRAVITY_EAST"
-              glib:nick="east"/>
-      <member name="south_east"
-              value="4"
-              c:identifier="CLUTTER_GRAVITY_SOUTH_EAST"
-              glib:nick="south-east"/>
-      <member name="south"
-              value="5"
-              c:identifier="CLUTTER_GRAVITY_SOUTH"
-              glib:nick="south"/>
-      <member name="south_west"
-              value="6"
-              c:identifier="CLUTTER_GRAVITY_SOUTH_WEST"
-              glib:nick="south-west"/>
-      <member name="west"
-              value="7"
-              c:identifier="CLUTTER_GRAVITY_WEST"
-              glib:nick="west"/>
-      <member name="north_west"
-              value="8"
-              c:identifier="CLUTTER_GRAVITY_NORTH_WEST"
-              glib:nick="north-west"/>
-      <member name="center"
-              value="9"
-              c:identifier="CLUTTER_GRAVITY_CENTER"
-              glib:nick="center"/>
-    </enumeration>
-    <constant name="Greek_ALPHA" value="1985">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Greek_ALPHAaccent" value="1953">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Greek_BETA" value="1986">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Greek_CHI" value="2007">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Greek_DELTA" value="1988">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Greek_EPSILON" value="1989">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Greek_EPSILONaccent" value="1954">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Greek_ETA" value="1991">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Greek_ETAaccent" value="1955">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Greek_GAMMA" value="1987">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Greek_IOTA" value="1993">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Greek_IOTAaccent" value="1956">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Greek_IOTAdiaeresis" value="1957">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Greek_IOTAdieresis" value="1957">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Greek_KAPPA" value="1994">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Greek_LAMBDA" value="1995">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Greek_LAMDA" value="1995">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Greek_MU" value="1996">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Greek_NU" value="1997">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Greek_OMEGA" value="2009">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Greek_OMEGAaccent" value="1963">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Greek_OMICRON" value="1999">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Greek_OMICRONaccent" value="1959">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Greek_PHI" value="2006">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Greek_PI" value="2000">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Greek_PSI" value="2008">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Greek_RHO" value="2001">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Greek_SIGMA" value="2002">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Greek_TAU" value="2004">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Greek_THETA" value="1992">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Greek_UPSILON" value="2005">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Greek_UPSILONaccent" value="1960">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Greek_UPSILONdieresis" value="1961">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Greek_XI" value="1998">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Greek_ZETA" value="1990">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Greek_accentdieresis" value="1966">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Greek_alpha" value="2017">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Greek_alphaaccent" value="1969">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Greek_beta" value="2018">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Greek_chi" value="2039">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Greek_delta" value="2020">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Greek_epsilon" value="2021">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Greek_epsilonaccent" value="1970">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Greek_eta" value="2023">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Greek_etaaccent" value="1971">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Greek_finalsmallsigma" value="2035">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Greek_gamma" value="2019">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Greek_horizbar" value="1967">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Greek_iota" value="2025">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Greek_iotaaccent" value="1972">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Greek_iotaaccentdieresis" value="1974">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Greek_iotadieresis" value="1973">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Greek_kappa" value="2026">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Greek_lambda" value="2027">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Greek_lamda" value="2027">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Greek_mu" value="2028">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Greek_nu" value="2029">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Greek_omega" value="2041">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Greek_omegaaccent" value="1979">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Greek_omicron" value="2031">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Greek_omicronaccent" value="1975">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Greek_phi" value="2038">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Greek_pi" value="2032">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Greek_psi" value="2040">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Greek_rho" value="2033">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Greek_sigma" value="2034">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Greek_switch" value="65406">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Greek_tau" value="2036">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Greek_theta" value="2024">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Greek_upsilon" value="2037">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Greek_upsilonaccent" value="1976">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Greek_upsilonaccentdieresis" value="1978">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Greek_upsilondieresis" value="1977">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Greek_xi" value="2030">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Greek_zeta" value="2022">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Green" value="269025188">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <class name="Group"
-           c:symbol-prefix="group"
-           c:type="ClutterGroup"
-           version="0.1"
-           parent="Actor"
-           glib:type-name="ClutterGroup"
-           glib:get-type="clutter_group_get_type"
-           glib:type-struct="GroupClass">
-      <doc xml:whitespace="preserve">The #ClutterGroup structure contains only private data
-and should be accessed using the provided API</doc>
-      <implements name="Atk.ImplementorIface"/>
-      <implements name="Animatable"/>
-      <implements name="Container"/>
-      <implements name="Scriptable"/>
-      <constructor name="new" c:identifier="clutter_group_new">
-        <doc xml:whitespace="preserve">Create a new  #ClutterGroup.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the newly created #ClutterGroup actor</doc>
-          <type name="Actor" c:type="ClutterActor*"/>
-        </return-value>
-      </constructor>
-      <method name="get_n_children"
-              c:identifier="clutter_group_get_n_children"
-              version="0.2">
-        <doc xml:whitespace="preserve">Gets the number of actors held in the group.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">The number of child actors held in the group.</doc>
-          <type name="gint" c:type="gint"/>
-        </return-value>
-      </method>
-      <method name="get_nth_child"
-              c:identifier="clutter_group_get_nth_child"
-              version="0.2">
-        <doc xml:whitespace="preserve">Gets a groups child held at @index_ in stack.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">A Clutter actor, or %NULL if</doc>
-          <type name="Actor" c:type="ClutterActor*"/>
-        </return-value>
-        <parameters>
-          <parameter name="index_" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the position of the requested actor.</doc>
-            <type name="gint" c:type="gint"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="remove_all" c:identifier="clutter_group_remove_all">
-        <doc xml:whitespace="preserve">Removes all children actors from the #ClutterGroup.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </method>
-      <field name="parent_instance">
-        <type name="Actor" c:type="ClutterActor"/>
-      </field>
-      <field name="priv">
-        <type name="GroupPrivate" c:type="ClutterGroupPrivate*"/>
-      </field>
-    </class>
-    <record name="GroupClass"
-            c:type="ClutterGroupClass"
-            glib:is-gtype-struct-for="Group"
-            version="0.1">
-      <doc xml:whitespace="preserve">The #ClutterGroupClass structure contains only private data</doc>
-      <field name="parent_class">
-        <type name="ActorClass" c:type="ClutterActorClass"/>
-      </field>
-      <field name="_clutter_reserved1" introspectable="0">
-        <callback name="_clutter_reserved1">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-      <field name="_clutter_reserved2" introspectable="0">
-        <callback name="_clutter_reserved2">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-      <field name="_clutter_reserved3" introspectable="0">
-        <callback name="_clutter_reserved3">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-      <field name="_clutter_reserved4" introspectable="0">
-        <callback name="_clutter_reserved4">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-      <field name="_clutter_reserved5" introspectable="0">
-        <callback name="_clutter_reserved5">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-      <field name="_clutter_reserved6" introspectable="0">
-        <callback name="_clutter_reserved6">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-    </record>
-    <record name="GroupPrivate" c:type="ClutterGroupPrivate" disguised="1">
-    </record>
-    <constant name="H" value="72">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Hangul" value="65329">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Hangul_A" value="3775">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Hangul_AE" value="3776">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Hangul_AraeA" value="3830">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Hangul_AraeAE" value="3831">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Hangul_Banja" value="65337">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Hangul_Cieuc" value="3770">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Hangul_Codeinput" value="65335">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Hangul_Dikeud" value="3751">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Hangul_E" value="3780">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Hangul_EO" value="3779">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Hangul_EU" value="3793">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Hangul_End" value="65331">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Hangul_Hanja" value="65332">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Hangul_Hieuh" value="3774">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Hangul_I" value="3795">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Hangul_Ieung" value="3767">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Hangul_J_Cieuc" value="3818">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Hangul_J_Dikeud" value="3802">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Hangul_J_Hieuh" value="3822">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Hangul_J_Ieung" value="3816">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Hangul_J_Jieuj" value="3817">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Hangul_J_Khieuq" value="3819">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Hangul_J_Kiyeog" value="3796">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Hangul_J_KiyeogSios" value="3798">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Hangul_J_KkogjiDalrinIeung" value="3833">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Hangul_J_Mieum" value="3811">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Hangul_J_Nieun" value="3799">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Hangul_J_NieunHieuh" value="3801">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Hangul_J_NieunJieuj" value="3800">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Hangul_J_PanSios" value="3832">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Hangul_J_Phieuf" value="3821">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Hangul_J_Pieub" value="3812">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Hangul_J_PieubSios" value="3813">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Hangul_J_Rieul" value="3803">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Hangul_J_RieulHieuh" value="3810">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Hangul_J_RieulKiyeog" value="3804">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Hangul_J_RieulMieum" value="3805">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Hangul_J_RieulPhieuf" value="3809">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Hangul_J_RieulPieub" value="3806">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Hangul_J_RieulSios" value="3807">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Hangul_J_RieulTieut" value="3808">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Hangul_J_Sios" value="3814">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Hangul_J_SsangKiyeog" value="3797">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Hangul_J_SsangSios" value="3815">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Hangul_J_Tieut" value="3820">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Hangul_J_YeorinHieuh" value="3834">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Hangul_Jamo" value="65333">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Hangul_Jeonja" value="65336">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Hangul_Jieuj" value="3768">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Hangul_Khieuq" value="3771">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Hangul_Kiyeog" value="3745">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Hangul_KiyeogSios" value="3747">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Hangul_KkogjiDalrinIeung" value="3827">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Hangul_Mieum" value="3761">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Hangul_MultipleCandidate" value="65341">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Hangul_Nieun" value="3748">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Hangul_NieunHieuh" value="3750">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Hangul_NieunJieuj" value="3749">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Hangul_O" value="3783">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Hangul_OE" value="3786">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Hangul_PanSios" value="3826">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Hangul_Phieuf" value="3773">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Hangul_Pieub" value="3762">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Hangul_PieubSios" value="3764">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Hangul_PostHanja" value="65339">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Hangul_PreHanja" value="65338">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Hangul_PreviousCandidate" value="65342">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Hangul_Rieul" value="3753">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Hangul_RieulHieuh" value="3760">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Hangul_RieulKiyeog" value="3754">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Hangul_RieulMieum" value="3755">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Hangul_RieulPhieuf" value="3759">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Hangul_RieulPieub" value="3756">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Hangul_RieulSios" value="3757">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Hangul_RieulTieut" value="3758">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Hangul_RieulYeorinHieuh" value="3823">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Hangul_Romaja" value="65334">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Hangul_SingleCandidate" value="65340">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Hangul_Sios" value="3765">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Hangul_Special" value="65343">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Hangul_SsangDikeud" value="3752">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Hangul_SsangJieuj" value="3769">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Hangul_SsangKiyeog" value="3746">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Hangul_SsangPieub" value="3763">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Hangul_SsangSios" value="3766">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Hangul_Start" value="65330">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Hangul_SunkyeongeumMieum" value="3824">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Hangul_SunkyeongeumPhieuf" value="3828">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Hangul_SunkyeongeumPieub" value="3825">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Hangul_Tieut" value="3772">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Hangul_U" value="3788">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Hangul_WA" value="3784">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Hangul_WAE" value="3785">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Hangul_WE" value="3790">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Hangul_WEO" value="3789">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Hangul_WI" value="3791">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Hangul_YA" value="3777">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Hangul_YAE" value="3778">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Hangul_YE" value="3782">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Hangul_YEO" value="3781">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Hangul_YI" value="3794">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Hangul_YO" value="3787">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Hangul_YU" value="3792">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Hangul_YeorinHieuh" value="3829">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Hangul_switch" value="65406">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Hankaku" value="65321">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Hcircumflex" value="678">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Hebrew_switch" value="65406">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Help" value="65386">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Henkan" value="65315">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Henkan_Mode" value="65315">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Hibernate" value="269025192">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Hiragana" value="65317">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Hiragana_Katakana" value="65319">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="History" value="269025079">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Home" value="65360">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="HomePage" value="269025048">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="HotLinks" value="269025082">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Hstroke" value="673">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Hyper_L" value="65517">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Hyper_R" value="65518">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="I" value="73">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="ISO_Center_Object" value="65075">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="ISO_Continuous_Underline" value="65072">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="ISO_Discontinuous_Underline" value="65073">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="ISO_Emphasize" value="65074">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="ISO_Enter" value="65076">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="ISO_Fast_Cursor_Down" value="65071">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="ISO_Fast_Cursor_Left" value="65068">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="ISO_Fast_Cursor_Right" value="65069">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="ISO_Fast_Cursor_Up" value="65070">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="ISO_First_Group" value="65036">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="ISO_First_Group_Lock" value="65037">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="ISO_Group_Latch" value="65030">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="ISO_Group_Lock" value="65031">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="ISO_Group_Shift" value="65406">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="ISO_Last_Group" value="65038">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="ISO_Last_Group_Lock" value="65039">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="ISO_Left_Tab" value="65056">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="ISO_Level2_Latch" value="65026">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="ISO_Level3_Latch" value="65028">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="ISO_Level3_Lock" value="65029">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="ISO_Level3_Shift" value="65027">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="ISO_Level5_Latch" value="65042">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="ISO_Level5_Lock" value="65043">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="ISO_Level5_Shift" value="65041">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="ISO_Lock" value="65025">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="ISO_Move_Line_Down" value="65058">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="ISO_Move_Line_Up" value="65057">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="ISO_Next_Group" value="65032">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="ISO_Next_Group_Lock" value="65033">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="ISO_Partial_Line_Down" value="65060">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="ISO_Partial_Line_Up" value="65059">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="ISO_Partial_Space_Left" value="65061">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="ISO_Partial_Space_Right" value="65062">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="ISO_Prev_Group" value="65034">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="ISO_Prev_Group_Lock" value="65035">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="ISO_Release_Both_Margins" value="65067">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="ISO_Release_Margin_Left" value="65065">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="ISO_Release_Margin_Right" value="65066">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="ISO_Set_Margin_Left" value="65063">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="ISO_Set_Margin_Right" value="65064">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Iabovedot" value="681">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Iacute" value="205">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Ibelowdot" value="16785098">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Ibreve" value="16777516">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Icircumflex" value="206">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Idiaeresis" value="207">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Igrave" value="204">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Ihook" value="16785096">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Imacron" value="975">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <enumeration name="InitError"
-                 version="0.2"
-                 glib:type-name="ClutterInitError"
-                 glib:get-type="clutter_init_error_get_type"
-                 c:type="ClutterInitError"
-                 glib:error-quark="clutter_init_error_quark">
-      <doc xml:whitespace="preserve">Error conditions returned by clutter_init() and clutter_init_with_args().</doc>
-      <member name="success"
-              value="1"
-              c:identifier="CLUTTER_INIT_SUCCESS"
-              glib:nick="success"/>
-      <member name="error_unknown"
-              value="0"
-              c:identifier="CLUTTER_INIT_ERROR_UNKNOWN"
-              glib:nick="error-unknown"/>
-      <member name="error_threads"
-              value="-1"
-              c:identifier="CLUTTER_INIT_ERROR_THREADS"
-              glib:nick="error-threads"/>
-      <member name="error_backend"
-              value="-2"
-              c:identifier="CLUTTER_INIT_ERROR_BACKEND"
-              glib:nick="error-backend"/>
-      <member name="error_internal"
-              value="-3"
-              c:identifier="CLUTTER_INIT_ERROR_INTERNAL"
-              glib:nick="error-internal"/>
-    </enumeration>
-    <class name="InputDevice"
-           c:symbol-prefix="input_device"
-           c:type="ClutterInputDevice"
-           parent="GObject.Object"
-           glib:type-name="ClutterInputDevice"
-           glib:get-type="clutter_input_device_get_type"
-           glib:type-struct="InputDeviceClass">
-      <doc xml:whitespace="preserve">Generic representation of an input device. The actual contents of this
-structure depend on the backend used.</doc>
-      <method name="get_device_coords"
-              c:identifier="clutter_input_device_get_device_coords"
-              version="1.2">
-        <doc xml:whitespace="preserve">Retrieves the latest coordinates of the pointer of @device</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="x"
-                     direction="out"
-                     caller-allocates="0"
-                     transfer-ownership="full">
-            <doc xml:whitespace="preserve">return location for the X coordinate</doc>
-            <type name="gint" c:type="gint*"/>
-          </parameter>
-          <parameter name="y"
-                     direction="out"
-                     caller-allocates="0"
-                     transfer-ownership="full">
-            <doc xml:whitespace="preserve">return location for the Y coordinate</doc>
-            <type name="gint" c:type="gint*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_device_id"
-              c:identifier="clutter_input_device_get_device_id"
-              version="1.0">
-        <doc xml:whitespace="preserve">Retrieves the unique identifier of @device</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the identifier of the device</doc>
-          <type name="gint" c:type="gint"/>
-        </return-value>
-      </method>
-      <method name="get_device_name"
-              c:identifier="clutter_input_device_get_device_name"
-              version="1.2">
-        <doc xml:whitespace="preserve">Retrieves the name of the @device
-is owned by the #ClutterInputDevice and should never be modified
-or freed</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the name of the device, or %NULL. The returned string</doc>
-          <type name="utf8" c:type="gchar*"/>
-        </return-value>
-      </method>
-      <method name="get_device_type"
-              c:identifier="clutter_input_device_get_device_type"
-              version="1.0">
-        <doc xml:whitespace="preserve">Retrieves the type of @device</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the type of the device</doc>
-          <type name="InputDeviceType" c:type="ClutterInputDeviceType"/>
-        </return-value>
-      </method>
-      <method name="get_pointer_actor"
-              c:identifier="clutter_input_device_get_pointer_actor"
-              version="1.2">
-        <doc xml:whitespace="preserve">Retrieves the #ClutterActor underneath the pointer of @device</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">a pointer to the #ClutterActor or %NULL</doc>
-          <type name="Actor" c:type="ClutterActor*"/>
-        </return-value>
-      </method>
-      <method name="get_pointer_stage"
-              c:identifier="clutter_input_device_get_pointer_stage"
-              version="1.2">
-        <doc xml:whitespace="preserve">Retrieves the #ClutterStage underneath the pointer of @device</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">a pointer to the #ClutterStage or %NULL</doc>
-          <type name="Stage" c:type="ClutterStage*"/>
-        </return-value>
-      </method>
-      <method name="update_from_event"
-              c:identifier="clutter_input_device_update_from_event"
-              version="1.2">
-        <doc xml:whitespace="preserve">Forcibly updates the state of the @device using a #ClutterEvent
-for integration with embedding toolkits, like clutter-gtk
-Embedding toolkits that disable the event collection inside Clutter
-need to use this function to update the state of input devices depending
-on a #ClutterEvent that they are going to submit to the event handling code
-in Clutter though clutter_do_event(). Since the input devices hold the state
-that is going to be used to fill in fields like the #ClutterButtonEvent
-click count, or to emit synthesized events like %CLUTTER_ENTER and
-%CLUTTER_LEAVE, it is necessary for embedding toolkits to also be
-responsible of updating the input device state.
-For instance, this might be the code to translate an embedding toolkit
-native motion notification into a Clutter #ClutterMotionEvent and ask
-Clutter to process it:
-|[
-ClutterEvent c_event;
-translate_native_event_to_clutter (native_event, &amp;amp;c_event);
-clutter_do_event (&amp;amp;c_event);
-]|
-Before letting clutter_do_event() process the event, it is necessary to call
-clutter_input_device_update_from_event():
-|[
-ClutterEvent c_event;
-ClutterDeviceManager *manager;
-ClutterInputDevice *device;
-translate_native_event_to_clutter (native_event, &amp;amp;c_event);
-/&amp;ast; get the device manager &amp;ast;/
-manager = clutter_device_manager_get_default ();
-/&amp;ast; use the default Core Pointer that Clutter
-&amp;ast; backends register by default
-&amp;ast;/
-device = clutter_device_manager_get_core_device (manager, %CLUTTER_POINTER_DEVICE);
-/&amp;ast; update the state of the input device &amp;ast;/
-clutter_input_device_update_from_event (device, &amp;amp;c_event, FALSE);
-clutter_do_event (&amp;amp;c_event);
-]|
-The @update_stage boolean argument should be used when the input device
-enters and leaves a #ClutterStage; it will use the #ClutterStage field
-of the passed @event to update the stage associated to the input device.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="event" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #ClutterEvent</doc>
-            <type name="Event" c:type="ClutterEvent*"/>
-          </parameter>
-          <parameter name="update_stage" transfer-ownership="none">
-            <doc xml:whitespace="preserve">whether to update the #ClutterStage of the @device using the stage of the event</doc>
-            <type name="gboolean" c:type="gboolean"/>
-          </parameter>
-        </parameters>
-      </method>
-      <property name="device-type"
-                version="1.2"
-                writable="1"
-                construct-only="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">The type of the device</doc>
-        <type name="InputDeviceType"/>
-      </property>
-      <property name="id"
-                version="1.2"
-                writable="1"
-                construct-only="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">The unique identifier of the device</doc>
-        <type name="gint"/>
-      </property>
-      <property name="name"
-                version="1.2"
-                writable="1"
-                construct-only="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">The name of the device</doc>
-        <type name="utf8"/>
-      </property>
-    </class>
-    <record name="InputDeviceClass"
-            c:type="ClutterInputDeviceClass"
-            glib:is-gtype-struct-for="InputDevice"
-            version="1.2">
-      <doc xml:whitespace="preserve">The #ClutterInputDeviceClass structure contains only private
-data and should not be accessed directly</doc>
-      <field name="parent_class">
-        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
-      </field>
-    </record>
-    <enumeration name="InputDeviceType"
-                 version="1.0"
-                 glib:type-name="ClutterInputDeviceType"
-                 glib:get-type="clutter_input_device_type_get_type"
-                 c:type="ClutterInputDeviceType">
-      <doc xml:whitespace="preserve">The types of input devices available.
-The #ClutterInputDeviceType enumeration can be extended at later
-date; not every platform supports every input device type.</doc>
-      <member name="pointer_device"
-              value="0"
-              c:identifier="CLUTTER_POINTER_DEVICE"
-              glib:nick="pointer-device"/>
-      <member name="keyboard_device"
-              value="1"
-              c:identifier="CLUTTER_KEYBOARD_DEVICE"
-              glib:nick="keyboard-device"/>
-      <member name="extension_device"
-              value="2"
-              c:identifier="CLUTTER_EXTENSION_DEVICE"
-              glib:nick="extension-device"/>
-      <member name="n_device_types"
-              value="3"
-              c:identifier="CLUTTER_N_DEVICE_TYPES"
-              glib:nick="n-device-types"/>
-    </enumeration>
-    <constant name="Insert" value="65379">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <enumeration name="Interpolation"
-                 version="1.2"
-                 glib:type-name="ClutterInterpolation"
-                 glib:get-type="clutter_interpolation_get_type"
-                 c:type="ClutterInterpolation">
-      <doc xml:whitespace="preserve">The mode of interpolation between key frames</doc>
-      <member name="linear"
-              value="0"
-              c:identifier="CLUTTER_INTERPOLATION_LINEAR"
-              glib:nick="linear"/>
-      <member name="cubic"
-              value="1"
-              c:identifier="CLUTTER_INTERPOLATION_CUBIC"
-              glib:nick="cubic"/>
-    </enumeration>
-    <class name="Interval"
-           c:symbol-prefix="interval"
-           c:type="ClutterInterval"
-           version="1.0"
-           parent="GObject.InitiallyUnowned"
-           glib:type-name="ClutterInterval"
-           glib:get-type="clutter_interval_get_type"
-           glib:type-struct="IntervalClass">
-      <doc xml:whitespace="preserve">The #ClutterInterval structure contains only private data and should
-be accessed using the provided functions.</doc>
-      <constructor name="new"
-                   c:identifier="clutter_interval_new"
-                   version="1.0"
-                   introspectable="0">
-        <doc xml:whitespace="preserve">Creates a new #ClutterInterval holding values of type @gtype.
-This function avoids using a #GValue for the initial and final values
-of the interval:
-|[
-interval = clutter_interval_new (G_TYPE_FLOAT, 0.0, 1.0);
-interval = clutter_interval_new (G_TYPE_BOOLEAN, FALSE, TRUE);
-interval = clutter_interval_new (G_TYPE_INT, 0, 360);
-]|</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the newly created #ClutterInterval</doc>
-          <type name="Interval" c:type="ClutterInterval*"/>
-        </return-value>
-        <parameters>
-          <parameter name="gtype" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the type of the values in the interval</doc>
-            <type name="GType" c:type="GType"/>
-          </parameter>
-          <parameter transfer-ownership="none">
-            <varargs>
-            </varargs>
-          </parameter>
-        </parameters>
-      </constructor>
-      <constructor name="new_with_values"
-                   c:identifier="clutter_interval_new_with_values"
-                   version="1.0">
-        <doc xml:whitespace="preserve">Creates a new #ClutterInterval of type @gtype, between @initial
-and @final.
-This function is useful for language bindings.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the newly created #ClutterInterval</doc>
-          <type name="Interval" c:type="ClutterInterval*"/>
-        </return-value>
-        <parameters>
-          <parameter name="gtype" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the type of the values in the interval</doc>
-            <type name="GType" c:type="GType"/>
-          </parameter>
-          <parameter name="initial" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #GValue holding the initial value of the interval</doc>
-            <type name="GObject.Value" c:type="GValue*"/>
-          </parameter>
-          <parameter name="final" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #GValue holding the final value of the interval</doc>
-            <type name="GObject.Value" c:type="GValue*"/>
-          </parameter>
-        </parameters>
-      </constructor>
-      <function name="register_progress_func"
-                c:identifier="clutter_interval_register_progress_func"
-                version="1.0"
-                introspectable="0">
-        <doc xml:whitespace="preserve">Sets the progress function for a given @value_type, like:
-|[
-clutter_interval_register_progress_func (MY_TYPE_FOO,
-my_foo_progress);
-]|
-Whenever a #ClutterInterval instance using the default
-#ClutterInterval::compute_value implementation is set as an
-interval between two #GValue of type @value_type, it will call
-for instance:
-|[
-static gboolean
-my_int_progress (const GValue *a,
-const GValue *b,
-gdouble       progress,
-GValue       *retval)
-{
-gint ia = g_value_get_int (a);
-gint ib = g_value_get_int (b);
-gint res = factor * (ib - ia) + ia;
-g_value_set_int (retval, res);
-return TRUE;
-}
-clutter_interval_register_progress_func (G_TYPE_INT, my_int_progress);
-]|
-To unset a previously set progress function of a #GType, pass %NULL
-for @func.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="value_type" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #GType</doc>
-            <type name="GType" c:type="GType"/>
-          </parameter>
-          <parameter name="func" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #ClutterProgressFunc, or %NULL to unset a previously set progress function</doc>
-            <type name="ProgressFunc" c:type="ClutterProgressFunc"/>
-          </parameter>
-        </parameters>
-      </function>
-      <virtual-method name="compute_value"
-                      invoker="compute_value"
-                      version="1.0">
-        <doc xml:whitespace="preserve">Computes the value between the @interval boundaries given the
-progress @factor and copies it into @value.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">%TRUE if the operation was successful</doc>
-          <type name="gboolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="factor" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the progress factor, between 0 and 1</doc>
-            <type name="gdouble" c:type="gdouble"/>
-          </parameter>
-          <parameter name="value"
-                     direction="out"
-                     caller-allocates="1"
-                     transfer-ownership="none">
-            <doc xml:whitespace="preserve">return location for an initialized #GValue</doc>
-            <type name="GObject.Value" c:type="GValue*"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <virtual-method name="validate" invoker="validate" version="1.0">
-        <doc xml:whitespace="preserve">Validates the initial and final values of @interval against
-a #GParamSpec.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">%TRUE if the #ClutterInterval is valid, %FALSE otherwise</doc>
-          <type name="gboolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="pspec" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #GParamSpec</doc>
-            <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <method name="clone" c:identifier="clutter_interval_clone" version="1.0">
-        <doc xml:whitespace="preserve">Creates a copy of @interval.</doc>
-        <return-value transfer-ownership="full">
-          <doc xml:whitespace="preserve">the newly created #ClutterInterval</doc>
-          <type name="Interval" c:type="ClutterInterval*"/>
-        </return-value>
-      </method>
-      <method name="compute"
-              c:identifier="clutter_interval_compute"
-              version="1.4">
-        <doc xml:whitespace="preserve">Computes the value between the @interval boundaries given the
-progress @factor
-Unlike clutter_interval_compute_value(), this function will
-return a const pointer to the computed value
-You should use this function if you immediately pass the computed
-value to another function that makes a copy of it, like
-g_object_set_property()
-or %NULL if the computation was not successfull</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">a pointer to the computed value,</doc>
-          <type name="GObject.Value" c:type="GValue*"/>
-        </return-value>
-        <parameters>
-          <parameter name="factor" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the progress factor, between 0 and 1</doc>
-            <type name="gdouble" c:type="gdouble"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="compute_value"
-              c:identifier="clutter_interval_compute_value"
-              version="1.0">
-        <doc xml:whitespace="preserve">Computes the value between the @interval boundaries given the
-progress @factor and copies it into @value.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">%TRUE if the operation was successful</doc>
-          <type name="gboolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="factor" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the progress factor, between 0 and 1</doc>
-            <type name="gdouble" c:type="gdouble"/>
-          </parameter>
-          <parameter name="value"
-                     direction="out"
-                     caller-allocates="1"
-                     transfer-ownership="none">
-            <doc xml:whitespace="preserve">return location for an initialized #GValue</doc>
-            <type name="GObject.Value" c:type="GValue*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_final_value"
-              c:identifier="clutter_interval_get_final_value"
-              version="1.0">
-        <doc xml:whitespace="preserve">Retrieves the final value of @interval and copies
-it into @value.
-The passed #GValue must be initialized to the value held by
-the #ClutterInterval.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="value"
-                     direction="out"
-                     caller-allocates="1"
-                     transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #GValue</doc>
-            <type name="GObject.Value" c:type="GValue*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_initial_value"
-              c:identifier="clutter_interval_get_initial_value"
-              version="1.0">
-        <doc xml:whitespace="preserve">Retrieves the initial value of @interval and copies
-it into @value.
-The passed #GValue must be initialized to the value held by
-the #ClutterInterval.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="value"
-                     direction="out"
-                     caller-allocates="1"
-                     transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #GValue</doc>
-            <type name="GObject.Value" c:type="GValue*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_interval"
-              c:identifier="clutter_interval_get_interval"
-              version="1.0"
-              introspectable="0">
-        <doc xml:whitespace="preserve">Variable arguments wrapper for clutter_interval_get_initial_value()
-and clutter_interval_get_final_value() that avoids using the
-#GValue arguments:
-|[
-gint a = 0, b = 0;
-clutter_interval_get_interval (interval, &amp;a, &amp;b);
-]|
-This function is meant for the convenience of the C API; bindings
-should reimplement this function using the #GValue-based API.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter transfer-ownership="none">
-            <varargs>
-            </varargs>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_value_type"
-              c:identifier="clutter_interval_get_value_type"
-              version="1.0">
-        <doc xml:whitespace="preserve">Retrieves the #GType of the values inside @interval.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the type of the value, or G_TYPE_INVALID</doc>
-          <type name="GType" c:type="GType"/>
-        </return-value>
-      </method>
-      <method name="peek_final_value"
-              c:identifier="clutter_interval_peek_final_value"
-              version="1.0">
-        <doc xml:whitespace="preserve">Gets the pointer to the final value of @interval
-The value is owned by the #ClutterInterval and it should not be
-modified or freed</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the final value of the interval.</doc>
-          <type name="GObject.Value" c:type="GValue*"/>
-        </return-value>
-      </method>
-      <method name="peek_initial_value"
-              c:identifier="clutter_interval_peek_initial_value"
-              version="1.0">
-        <doc xml:whitespace="preserve">Gets the pointer to the initial value of @interval
-The value is owned by the #ClutterInterval and it should not be
-modified or freed</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the initial value of the interval.</doc>
-          <type name="GObject.Value" c:type="GValue*"/>
-        </return-value>
-      </method>
-      <method name="set_final_value"
-              c:identifier="clutter_interval_set_final_value"
-              version="1.0">
-        <doc xml:whitespace="preserve">Sets the final value of @interval to @value. The value is
-copied inside the #ClutterInterval.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="value" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #GValue</doc>
-            <type name="GObject.Value" c:type="GValue*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_initial_value"
-              c:identifier="clutter_interval_set_initial_value"
-              version="1.0">
-        <doc xml:whitespace="preserve">Sets the initial value of @interval to @value. The value is copied
-inside the #ClutterInterval.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="value" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #GValue</doc>
-            <type name="GObject.Value" c:type="GValue*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_interval"
-              c:identifier="clutter_interval_set_interval"
-              version="1.0"
-              introspectable="0">
-        <doc xml:whitespace="preserve">Variable arguments wrapper for clutter_interval_set_initial_value()
-and clutter_interval_set_final_value() that avoids using the
-#GValue arguments:
-|[
-clutter_interval_set_interval (interval, 0, 50);
-clutter_interval_set_interval (interval, 1.0, 0.0);
-clutter_interval_set_interval (interval, FALSE, TRUE);
-]|
-This function is meant for the convenience of the C API; bindings
-should reimplement this function using the #GValue-based API.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter transfer-ownership="none">
-            <varargs>
-            </varargs>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="validate"
-              c:identifier="clutter_interval_validate"
-              version="1.0">
-        <doc xml:whitespace="preserve">Validates the initial and final values of @interval against
-a #GParamSpec.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">%TRUE if the #ClutterInterval is valid, %FALSE otherwise</doc>
-          <type name="gboolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="pspec" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #GParamSpec</doc>
-            <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <property name="value-type"
-                version="1.0"
-                writable="1"
-                construct-only="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">The type of the values in the interval.</doc>
-        <type name="GType"/>
-      </property>
-      <field name="parent_instance">
-        <type name="GObject.InitiallyUnowned" c:type="GInitiallyUnowned"/>
-      </field>
-      <field name="priv">
-        <type name="IntervalPrivate" c:type="ClutterIntervalPrivate*"/>
-      </field>
-    </class>
-    <record name="IntervalClass"
-            c:type="ClutterIntervalClass"
-            glib:is-gtype-struct-for="Interval"
-            version="1.0">
-      <doc xml:whitespace="preserve">The #ClutterIntervalClass contains only private data.</doc>
-      <field name="parent_class">
-        <type name="GObject.InitiallyUnownedClass"
-              c:type="GInitiallyUnownedClass"/>
-      </field>
-      <field name="validate">
-        <callback name="validate">
-          <return-value transfer-ownership="none">
-            <doc xml:whitespace="preserve">%TRUE if the #ClutterInterval is valid, %FALSE otherwise</doc>
-            <type name="gboolean" c:type="gboolean"/>
-          </return-value>
-          <parameters>
-            <parameter name="interval" transfer-ownership="none">
-              <type name="Interval" c:type="ClutterInterval*"/>
-            </parameter>
-            <parameter name="pspec" transfer-ownership="none">
-              <doc xml:whitespace="preserve">a #GParamSpec</doc>
-              <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="compute_value">
-        <callback name="compute_value">
-          <return-value transfer-ownership="none">
-            <doc xml:whitespace="preserve">%TRUE if the operation was successful</doc>
-            <type name="gboolean" c:type="gboolean"/>
-          </return-value>
-          <parameters>
-            <parameter name="interval" transfer-ownership="none">
-              <type name="Interval" c:type="ClutterInterval*"/>
-            </parameter>
-            <parameter name="factor" transfer-ownership="none">
-              <doc xml:whitespace="preserve">the progress factor, between 0 and 1</doc>
-              <type name="gdouble" c:type="gdouble"/>
-            </parameter>
-            <parameter name="value"
-                       direction="out"
-                       caller-allocates="1"
-                       transfer-ownership="none">
-              <doc xml:whitespace="preserve">return location for an initialized #GValue</doc>
-              <type name="GObject.Value" c:type="GValue*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="_clutter_reserved1" introspectable="0">
-        <callback name="_clutter_reserved1">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-      <field name="_clutter_reserved2" introspectable="0">
-        <callback name="_clutter_reserved2">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-      <field name="_clutter_reserved3" introspectable="0">
-        <callback name="_clutter_reserved3">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-      <field name="_clutter_reserved4" introspectable="0">
-        <callback name="_clutter_reserved4">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-      <field name="_clutter_reserved5" introspectable="0">
-        <callback name="_clutter_reserved5">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-      <field name="_clutter_reserved6" introspectable="0">
-        <callback name="_clutter_reserved6">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-    </record>
-    <record name="IntervalPrivate"
-            c:type="ClutterIntervalPrivate"
-            disguised="1">
-    </record>
-    <constant name="Iogonek" value="967">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Itilde" value="933">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="J" value="74">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Jcircumflex" value="684">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="K" value="75">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_0" value="48">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_1" value="49">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_2" value="50">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_3" value="51">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_3270_AltCursor" value="64784">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_3270_Attn" value="64782">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_3270_BackTab" value="64773">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_3270_ChangeScreen" value="64793">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_3270_Copy" value="64789">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_3270_CursorBlink" value="64783">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_3270_CursorSelect" value="64796">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_3270_DeleteWord" value="64794">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_3270_Duplicate" value="64769">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_3270_Enter" value="64798">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_3270_EraseEOF" value="64774">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_3270_EraseInput" value="64775">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_3270_ExSelect" value="64795">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_3270_FieldMark" value="64770">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_3270_Ident" value="64787">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_3270_Jump" value="64786">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_3270_KeyClick" value="64785">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_3270_Left2" value="64772">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_3270_PA1" value="64778">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_3270_PA2" value="64779">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_3270_PA3" value="64780">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_3270_Play" value="64790">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_3270_PrintScreen" value="64797">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_3270_Quit" value="64777">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_3270_Record" value="64792">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_3270_Reset" value="64776">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_3270_Right2" value="64771">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_3270_Rule" value="64788">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_3270_Setup" value="64791">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_3270_Test" value="64781">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_4" value="52">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_5" value="53">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_6" value="54">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_7" value="55">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_8" value="56">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_9" value="57">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_A" value="65">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_AE" value="198">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Aacute" value="193">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Abelowdot" value="16785056">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Abreve" value="451">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Abreveacute" value="16785070">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Abrevebelowdot" value="16785078">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Abrevegrave" value="16785072">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Abrevehook" value="16785074">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Abrevetilde" value="16785076">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_AccessX_Enable" value="65136">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_AccessX_Feedback_Enable" value="65137">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Acircumflex" value="194">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Acircumflexacute" value="16785060">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Acircumflexbelowdot" value="16785068">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Acircumflexgrave" value="16785062">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Acircumflexhook" value="16785064">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Acircumflextilde" value="16785066">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_AddFavorite" value="269025081">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Adiaeresis" value="196">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Agrave" value="192">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Ahook" value="16785058">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Alt_L" value="65513">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Alt_R" value="65514">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Amacron" value="960">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Aogonek" value="417">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_ApplicationLeft" value="269025104">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_ApplicationRight" value="269025105">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Arabic_0" value="16778848">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Arabic_1" value="16778849">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Arabic_2" value="16778850">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Arabic_3" value="16778851">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Arabic_4" value="16778852">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Arabic_5" value="16778853">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Arabic_6" value="16778854">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Arabic_7" value="16778855">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Arabic_8" value="16778856">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Arabic_9" value="16778857">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Arabic_ain" value="1497">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Arabic_alef" value="1479">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Arabic_alefmaksura" value="1513">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Arabic_beh" value="1480">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Arabic_comma" value="1452">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Arabic_dad" value="1494">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Arabic_dal" value="1487">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Arabic_damma" value="1519">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Arabic_dammatan" value="1516">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Arabic_ddal" value="16778888">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Arabic_farsi_yeh" value="16778956">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Arabic_fatha" value="1518">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Arabic_fathatan" value="1515">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Arabic_feh" value="1505">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Arabic_fullstop" value="16778964">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Arabic_gaf" value="16778927">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Arabic_ghain" value="1498">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Arabic_ha" value="1511">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Arabic_hah" value="1485">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Arabic_hamza" value="1473">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Arabic_hamza_above" value="16778836">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Arabic_hamza_below" value="16778837">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Arabic_hamzaonalef" value="1475">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Arabic_hamzaonwaw" value="1476">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Arabic_hamzaonyeh" value="1478">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Arabic_hamzaunderalef" value="1477">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Arabic_heh" value="1511">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Arabic_heh_doachashmee" value="16778942">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Arabic_heh_goal" value="16778945">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Arabic_jeem" value="1484">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Arabic_jeh" value="16778904">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Arabic_kaf" value="1507">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Arabic_kasra" value="1520">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Arabic_kasratan" value="1517">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Arabic_keheh" value="16778921">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Arabic_khah" value="1486">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Arabic_lam" value="1508">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Arabic_madda_above" value="16778835">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Arabic_maddaonalef" value="1474">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Arabic_meem" value="1509">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Arabic_noon" value="1510">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Arabic_noon_ghunna" value="16778938">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Arabic_peh" value="16778878">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Arabic_percent" value="16778858">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Arabic_qaf" value="1506">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Arabic_question_mark" value="1471">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Arabic_ra" value="1489">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Arabic_rreh" value="16778897">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Arabic_sad" value="1493">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Arabic_seen" value="1491">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Arabic_semicolon" value="1467">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Arabic_shadda" value="1521">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Arabic_sheen" value="1492">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Arabic_sukun" value="1522">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Arabic_superscript_alef" value="16778864">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Arabic_switch" value="65406">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Arabic_tah" value="1495">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Arabic_tatweel" value="1504">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Arabic_tcheh" value="16778886">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Arabic_teh" value="1482">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Arabic_tehmarbuta" value="1481">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Arabic_thal" value="1488">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Arabic_theh" value="1483">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Arabic_tteh" value="16778873">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Arabic_veh" value="16778916">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Arabic_waw" value="1512">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Arabic_yeh" value="1514">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Arabic_yeh_baree" value="16778962">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Arabic_zah" value="1496">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Arabic_zain" value="1490">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Aring" value="197">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Armenian_AT" value="16778552">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Armenian_AYB" value="16778545">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Armenian_BEN" value="16778546">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Armenian_CHA" value="16778569">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Armenian_DA" value="16778548">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Armenian_DZA" value="16778561">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Armenian_E" value="16778551">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Armenian_FE" value="16778582">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Armenian_GHAT" value="16778562">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Armenian_GIM" value="16778547">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Armenian_HI" value="16778565">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Armenian_HO" value="16778560">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Armenian_INI" value="16778555">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Armenian_JE" value="16778571">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Armenian_KE" value="16778580">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Armenian_KEN" value="16778559">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Armenian_KHE" value="16778557">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Armenian_LYUN" value="16778556">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Armenian_MEN" value="16778564">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Armenian_NU" value="16778566">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Armenian_O" value="16778581">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Armenian_PE" value="16778570">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Armenian_PYUR" value="16778579">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Armenian_RA" value="16778572">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Armenian_RE" value="16778576">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Armenian_SE" value="16778573">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Armenian_SHA" value="16778567">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Armenian_TCHE" value="16778563">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Armenian_TO" value="16778553">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Armenian_TSA" value="16778558">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Armenian_TSO" value="16778577">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Armenian_TYUN" value="16778575">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Armenian_VEV" value="16778574">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Armenian_VO" value="16778568">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Armenian_VYUN" value="16778578">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Armenian_YECH" value="16778549">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Armenian_ZA" value="16778550">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Armenian_ZHE" value="16778554">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Armenian_accent" value="16778587">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Armenian_amanak" value="16778588">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Armenian_apostrophe" value="16778586">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Armenian_at" value="16778600">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Armenian_ayb" value="16778593">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Armenian_ben" value="16778594">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Armenian_but" value="16778589">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Armenian_cha" value="16778617">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Armenian_da" value="16778596">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Armenian_dza" value="16778609">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Armenian_e" value="16778599">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Armenian_exclam" value="16778588">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Armenian_fe" value="16778630">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Armenian_full_stop" value="16778633">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Armenian_ghat" value="16778610">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Armenian_gim" value="16778595">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Armenian_hi" value="16778613">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Armenian_ho" value="16778608">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Armenian_hyphen" value="16778634">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Armenian_ini" value="16778603">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Armenian_je" value="16778619">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Armenian_ke" value="16778628">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Armenian_ken" value="16778607">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Armenian_khe" value="16778605">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Armenian_ligature_ew" value="16778631">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Armenian_lyun" value="16778604">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Armenian_men" value="16778612">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Armenian_nu" value="16778614">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Armenian_o" value="16778629">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Armenian_paruyk" value="16778590">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Armenian_pe" value="16778618">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Armenian_pyur" value="16778627">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Armenian_question" value="16778590">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Armenian_ra" value="16778620">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Armenian_re" value="16778624">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Armenian_se" value="16778621">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Armenian_separation_mark" value="16778589">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Armenian_sha" value="16778615">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Armenian_shesht" value="16778587">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Armenian_tche" value="16778611">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Armenian_to" value="16778601">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Armenian_tsa" value="16778606">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Armenian_tso" value="16778625">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Armenian_tyun" value="16778623">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Armenian_verjaket" value="16778633">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Armenian_vev" value="16778622">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Armenian_vo" value="16778616">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Armenian_vyun" value="16778626">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Armenian_yech" value="16778597">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Armenian_yentamna" value="16778634">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Armenian_za" value="16778598">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Armenian_zhe" value="16778602">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Atilde" value="195">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_AudibleBell_Enable" value="65146">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_AudioCycleTrack" value="269025179">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_AudioForward" value="269025175">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_AudioLowerVolume" value="269025041">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_AudioMedia" value="269025074">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_AudioMute" value="269025042">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_AudioNext" value="269025047">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_AudioPause" value="269025073">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_AudioPlay" value="269025044">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_AudioPrev" value="269025046">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_AudioRaiseVolume" value="269025043">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_AudioRandomPlay" value="269025177">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_AudioRecord" value="269025052">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_AudioRepeat" value="269025176">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_AudioRewind" value="269025086">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_AudioStop" value="269025045">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Away" value="269025165">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_B" value="66">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Babovedot" value="16784898">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Back" value="269025062">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_BackForward" value="269025087">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_BackSpace" value="65288">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Battery" value="269025171">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Begin" value="65368">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Blue" value="269025190">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Bluetooth" value="269025172">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Book" value="269025106">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_BounceKeys_Enable" value="65140">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Break" value="65387">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_BrightnessAdjust" value="269025083">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Byelorussian_SHORTU" value="1726">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Byelorussian_shortu" value="1710">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_C" value="67">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_CD" value="269025107">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Cabovedot" value="709">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Cacute" value="454">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Calculator" value="269025053">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Calendar" value="269025056">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Cancel" value="65385">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Caps_Lock" value="65509">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Ccaron" value="456">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Ccedilla" value="199">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Ccircumflex" value="710">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Clear" value="65291">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_ClearGrab" value="269024801">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Close" value="269025110">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Codeinput" value="65335">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_ColonSign" value="16785569">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Community" value="269025085">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_ContrastAdjust" value="269025058">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Control_L" value="65507">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Control_R" value="65508">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Copy" value="269025111">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_CruzeiroSign" value="16785570">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Cut" value="269025112">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_CycleAngle" value="269025180">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Cyrillic_A" value="1761">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Cyrillic_BE" value="1762">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Cyrillic_CHE" value="1790">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Cyrillic_CHE_descender" value="16778422">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Cyrillic_CHE_vertstroke" value="16778424">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Cyrillic_DE" value="1764">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Cyrillic_DZHE" value="1727">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Cyrillic_E" value="1788">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Cyrillic_EF" value="1766">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Cyrillic_EL" value="1772">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Cyrillic_EM" value="1773">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Cyrillic_EN" value="1774">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Cyrillic_EN_descender" value="16778402">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Cyrillic_ER" value="1778">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Cyrillic_ES" value="1779">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Cyrillic_GHE" value="1767">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Cyrillic_GHE_bar" value="16778386">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Cyrillic_HA" value="1768">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Cyrillic_HARDSIGN" value="1791">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Cyrillic_HA_descender" value="16778418">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Cyrillic_I" value="1769">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Cyrillic_IE" value="1765">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Cyrillic_IO" value="1715">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Cyrillic_I_macron" value="16778466">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Cyrillic_JE" value="1720">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Cyrillic_KA" value="1771">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Cyrillic_KA_descender" value="16778394">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Cyrillic_KA_vertstroke" value="16778396">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Cyrillic_LJE" value="1721">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Cyrillic_NJE" value="1722">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Cyrillic_O" value="1775">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Cyrillic_O_bar" value="16778472">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Cyrillic_PE" value="1776">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Cyrillic_SCHWA" value="16778456">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Cyrillic_SHA" value="1787">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Cyrillic_SHCHA" value="1789">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Cyrillic_SHHA" value="16778426">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Cyrillic_SHORTI" value="1770">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Cyrillic_SOFTSIGN" value="1784">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Cyrillic_TE" value="1780">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Cyrillic_TSE" value="1763">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Cyrillic_U" value="1781">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Cyrillic_U_macron" value="16778478">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Cyrillic_U_straight" value="16778414">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Cyrillic_U_straight_bar" value="16778416">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Cyrillic_VE" value="1783">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Cyrillic_YA" value="1777">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Cyrillic_YERU" value="1785">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Cyrillic_YU" value="1760">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Cyrillic_ZE" value="1786">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Cyrillic_ZHE" value="1782">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Cyrillic_ZHE_descender" value="16778390">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Cyrillic_a" value="1729">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Cyrillic_be" value="1730">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Cyrillic_che" value="1758">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Cyrillic_che_descender" value="16778423">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Cyrillic_che_vertstroke" value="16778425">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Cyrillic_de" value="1732">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Cyrillic_dzhe" value="1711">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Cyrillic_e" value="1756">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Cyrillic_ef" value="1734">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Cyrillic_el" value="1740">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Cyrillic_em" value="1741">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Cyrillic_en" value="1742">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Cyrillic_en_descender" value="16778403">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Cyrillic_er" value="1746">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Cyrillic_es" value="1747">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Cyrillic_ghe" value="1735">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Cyrillic_ghe_bar" value="16778387">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Cyrillic_ha" value="1736">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Cyrillic_ha_descender" value="16778419">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Cyrillic_hardsign" value="1759">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Cyrillic_i" value="1737">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Cyrillic_i_macron" value="16778467">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Cyrillic_ie" value="1733">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Cyrillic_io" value="1699">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Cyrillic_je" value="1704">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Cyrillic_ka" value="1739">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Cyrillic_ka_descender" value="16778395">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Cyrillic_ka_vertstroke" value="16778397">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Cyrillic_lje" value="1705">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Cyrillic_nje" value="1706">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Cyrillic_o" value="1743">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Cyrillic_o_bar" value="16778473">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Cyrillic_pe" value="1744">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Cyrillic_schwa" value="16778457">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Cyrillic_sha" value="1755">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Cyrillic_shcha" value="1757">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Cyrillic_shha" value="16778427">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Cyrillic_shorti" value="1738">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Cyrillic_softsign" value="1752">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Cyrillic_te" value="1748">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Cyrillic_tse" value="1731">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Cyrillic_u" value="1749">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Cyrillic_u_macron" value="16778479">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Cyrillic_u_straight" value="16778415">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Cyrillic_u_straight_bar" value="16778417">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Cyrillic_ve" value="1751">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Cyrillic_ya" value="1745">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Cyrillic_yeru" value="1753">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Cyrillic_yu" value="1728">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Cyrillic_ze" value="1754">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Cyrillic_zhe" value="1750">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Cyrillic_zhe_descender" value="16778391">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_D" value="68">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_DOS" value="269025114">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Dabovedot" value="16784906">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Dcaron" value="463">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Delete" value="65535">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Display" value="269025113">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Documents" value="269025115">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_DongSign" value="16785579">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Down" value="65364">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Dstroke" value="464">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_E" value="69">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_ENG" value="957">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_ETH" value="208">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Eabovedot" value="972">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Eacute" value="201">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Ebelowdot" value="16785080">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Ecaron" value="460">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Ecircumflex" value="202">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Ecircumflexacute" value="16785086">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Ecircumflexbelowdot" value="16785094">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Ecircumflexgrave" value="16785088">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Ecircumflexhook" value="16785090">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Ecircumflextilde" value="16785092">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_EcuSign" value="16785568">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Ediaeresis" value="203">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Egrave" value="200">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Ehook" value="16785082">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Eisu_Shift" value="65327">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Eisu_toggle" value="65328">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Eject" value="269025068">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Emacron" value="938">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_End" value="65367">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Eogonek" value="458">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Escape" value="65307">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Eth" value="208">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Etilde" value="16785084">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_EuroSign" value="8364">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Excel" value="269025116">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Execute" value="65378">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Explorer" value="269025117">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_F" value="70">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_F1" value="65470">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_F10" value="65479">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_F11" value="65480">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_F12" value="65481">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_F13" value="65482">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_F14" value="65483">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_F15" value="65484">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_F16" value="65485">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_F17" value="65486">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_F18" value="65487">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_F19" value="65488">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_F2" value="65471">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_F20" value="65489">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_F21" value="65490">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_F22" value="65491">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_F23" value="65492">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_F24" value="65493">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_F25" value="65494">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_F26" value="65495">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_F27" value="65496">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_F28" value="65497">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_F29" value="65498">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_F3" value="65472">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_F30" value="65499">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_F31" value="65500">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_F32" value="65501">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_F33" value="65502">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_F34" value="65503">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_F35" value="65504">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_F4" value="65473">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_F5" value="65474">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_F6" value="65475">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_F7" value="65476">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_F8" value="65477">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_F9" value="65478">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_FFrancSign" value="16785571">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Fabovedot" value="16784926">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Farsi_0" value="16778992">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Farsi_1" value="16778993">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Farsi_2" value="16778994">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Farsi_3" value="16778995">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Farsi_4" value="16778996">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Farsi_5" value="16778997">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Farsi_6" value="16778998">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Farsi_7" value="16778999">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Farsi_8" value="16779000">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Farsi_9" value="16779001">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Farsi_yeh" value="16778956">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Favorites" value="269025072">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Finance" value="269025084">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Find" value="65384">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_First_Virtual_Screen" value="65232">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Forward" value="269025063">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_FrameBack" value="269025181">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_FrameForward" value="269025182">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_G" value="71">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Gabovedot" value="725">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Game" value="269025118">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Gbreve" value="683">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Gcaron" value="16777702">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Gcedilla" value="939">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Gcircumflex" value="728">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Georgian_an" value="16781520">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Georgian_ban" value="16781521">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Georgian_can" value="16781546">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Georgian_char" value="16781549">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Georgian_chin" value="16781545">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Georgian_cil" value="16781548">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Georgian_don" value="16781523">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Georgian_en" value="16781524">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Georgian_fi" value="16781558">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Georgian_gan" value="16781522">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Georgian_ghan" value="16781542">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Georgian_hae" value="16781552">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Georgian_har" value="16781556">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Georgian_he" value="16781553">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Georgian_hie" value="16781554">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Georgian_hoe" value="16781557">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Georgian_in" value="16781528">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Georgian_jhan" value="16781551">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Georgian_jil" value="16781547">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Georgian_kan" value="16781529">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Georgian_khar" value="16781541">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Georgian_las" value="16781530">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Georgian_man" value="16781531">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Georgian_nar" value="16781532">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Georgian_on" value="16781533">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Georgian_par" value="16781534">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Georgian_phar" value="16781540">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Georgian_qar" value="16781543">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Georgian_rae" value="16781536">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Georgian_san" value="16781537">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Georgian_shin" value="16781544">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Georgian_tan" value="16781527">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Georgian_tar" value="16781538">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Georgian_un" value="16781539">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Georgian_vin" value="16781525">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Georgian_we" value="16781555">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Georgian_xan" value="16781550">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Georgian_zen" value="16781526">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Georgian_zhar" value="16781535">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Go" value="269025119">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Greek_ALPHA" value="1985">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Greek_ALPHAaccent" value="1953">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Greek_BETA" value="1986">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Greek_CHI" value="2007">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Greek_DELTA" value="1988">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Greek_EPSILON" value="1989">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Greek_EPSILONaccent" value="1954">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Greek_ETA" value="1991">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Greek_ETAaccent" value="1955">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Greek_GAMMA" value="1987">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Greek_IOTA" value="1993">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Greek_IOTAaccent" value="1956">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Greek_IOTAdiaeresis" value="1957">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Greek_IOTAdieresis" value="1957">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Greek_KAPPA" value="1994">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Greek_LAMBDA" value="1995">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Greek_LAMDA" value="1995">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Greek_MU" value="1996">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Greek_NU" value="1997">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Greek_OMEGA" value="2009">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Greek_OMEGAaccent" value="1963">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Greek_OMICRON" value="1999">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Greek_OMICRONaccent" value="1959">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Greek_PHI" value="2006">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Greek_PI" value="2000">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Greek_PSI" value="2008">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Greek_RHO" value="2001">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Greek_SIGMA" value="2002">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Greek_TAU" value="2004">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Greek_THETA" value="1992">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Greek_UPSILON" value="2005">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Greek_UPSILONaccent" value="1960">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Greek_UPSILONdieresis" value="1961">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Greek_XI" value="1998">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Greek_ZETA" value="1990">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Greek_accentdieresis" value="1966">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Greek_alpha" value="2017">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Greek_alphaaccent" value="1969">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Greek_beta" value="2018">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Greek_chi" value="2039">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Greek_delta" value="2020">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Greek_epsilon" value="2021">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Greek_epsilonaccent" value="1970">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Greek_eta" value="2023">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Greek_etaaccent" value="1971">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Greek_finalsmallsigma" value="2035">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Greek_gamma" value="2019">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Greek_horizbar" value="1967">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Greek_iota" value="2025">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Greek_iotaaccent" value="1972">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Greek_iotaaccentdieresis" value="1974">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Greek_iotadieresis" value="1973">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Greek_kappa" value="2026">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Greek_lambda" value="2027">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Greek_lamda" value="2027">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Greek_mu" value="2028">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Greek_nu" value="2029">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Greek_omega" value="2041">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Greek_omegaaccent" value="1979">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Greek_omicron" value="2031">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Greek_omicronaccent" value="1975">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Greek_phi" value="2038">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Greek_pi" value="2032">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Greek_psi" value="2040">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Greek_rho" value="2033">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Greek_sigma" value="2034">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Greek_switch" value="65406">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Greek_tau" value="2036">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Greek_theta" value="2024">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Greek_upsilon" value="2037">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Greek_upsilonaccent" value="1976">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Greek_upsilonaccentdieresis" value="1978">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Greek_upsilondieresis" value="1977">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Greek_xi" value="2030">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Greek_zeta" value="2022">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Green" value="269025188">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_H" value="72">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Hangul" value="65329">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Hangul_A" value="3775">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Hangul_AE" value="3776">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Hangul_AraeA" value="3830">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Hangul_AraeAE" value="3831">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Hangul_Banja" value="65337">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Hangul_Cieuc" value="3770">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Hangul_Codeinput" value="65335">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Hangul_Dikeud" value="3751">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Hangul_E" value="3780">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Hangul_EO" value="3779">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Hangul_EU" value="3793">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Hangul_End" value="65331">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Hangul_Hanja" value="65332">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Hangul_Hieuh" value="3774">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Hangul_I" value="3795">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Hangul_Ieung" value="3767">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Hangul_J_Cieuc" value="3818">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Hangul_J_Dikeud" value="3802">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Hangul_J_Hieuh" value="3822">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Hangul_J_Ieung" value="3816">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Hangul_J_Jieuj" value="3817">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Hangul_J_Khieuq" value="3819">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Hangul_J_Kiyeog" value="3796">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Hangul_J_KiyeogSios" value="3798">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Hangul_J_KkogjiDalrinIeung" value="3833">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Hangul_J_Mieum" value="3811">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Hangul_J_Nieun" value="3799">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Hangul_J_NieunHieuh" value="3801">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Hangul_J_NieunJieuj" value="3800">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Hangul_J_PanSios" value="3832">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Hangul_J_Phieuf" value="3821">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Hangul_J_Pieub" value="3812">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Hangul_J_PieubSios" value="3813">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Hangul_J_Rieul" value="3803">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Hangul_J_RieulHieuh" value="3810">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Hangul_J_RieulKiyeog" value="3804">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Hangul_J_RieulMieum" value="3805">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Hangul_J_RieulPhieuf" value="3809">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Hangul_J_RieulPieub" value="3806">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Hangul_J_RieulSios" value="3807">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Hangul_J_RieulTieut" value="3808">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Hangul_J_Sios" value="3814">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Hangul_J_SsangKiyeog" value="3797">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Hangul_J_SsangSios" value="3815">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Hangul_J_Tieut" value="3820">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Hangul_J_YeorinHieuh" value="3834">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Hangul_Jamo" value="65333">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Hangul_Jeonja" value="65336">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Hangul_Jieuj" value="3768">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Hangul_Khieuq" value="3771">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Hangul_Kiyeog" value="3745">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Hangul_KiyeogSios" value="3747">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Hangul_KkogjiDalrinIeung" value="3827">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Hangul_Mieum" value="3761">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Hangul_MultipleCandidate" value="65341">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Hangul_Nieun" value="3748">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Hangul_NieunHieuh" value="3750">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Hangul_NieunJieuj" value="3749">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Hangul_O" value="3783">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Hangul_OE" value="3786">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Hangul_PanSios" value="3826">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Hangul_Phieuf" value="3773">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Hangul_Pieub" value="3762">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Hangul_PieubSios" value="3764">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Hangul_PostHanja" value="65339">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Hangul_PreHanja" value="65338">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Hangul_PreviousCandidate" value="65342">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Hangul_Rieul" value="3753">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Hangul_RieulHieuh" value="3760">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Hangul_RieulKiyeog" value="3754">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Hangul_RieulMieum" value="3755">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Hangul_RieulPhieuf" value="3759">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Hangul_RieulPieub" value="3756">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Hangul_RieulSios" value="3757">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Hangul_RieulTieut" value="3758">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Hangul_RieulYeorinHieuh" value="3823">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Hangul_Romaja" value="65334">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Hangul_SingleCandidate" value="65340">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Hangul_Sios" value="3765">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Hangul_Special" value="65343">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Hangul_SsangDikeud" value="3752">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Hangul_SsangJieuj" value="3769">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Hangul_SsangKiyeog" value="3746">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Hangul_SsangPieub" value="3763">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Hangul_SsangSios" value="3766">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Hangul_Start" value="65330">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Hangul_SunkyeongeumMieum" value="3824">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Hangul_SunkyeongeumPhieuf" value="3828">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Hangul_SunkyeongeumPieub" value="3825">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Hangul_Tieut" value="3772">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Hangul_U" value="3788">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Hangul_WA" value="3784">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Hangul_WAE" value="3785">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Hangul_WE" value="3790">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Hangul_WEO" value="3789">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Hangul_WI" value="3791">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Hangul_YA" value="3777">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Hangul_YAE" value="3778">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Hangul_YE" value="3782">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Hangul_YEO" value="3781">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Hangul_YI" value="3794">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Hangul_YO" value="3787">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Hangul_YU" value="3792">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Hangul_YeorinHieuh" value="3829">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Hangul_switch" value="65406">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Hankaku" value="65321">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Hcircumflex" value="678">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Hebrew_switch" value="65406">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Help" value="65386">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Henkan" value="65315">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Henkan_Mode" value="65315">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Hibernate" value="269025192">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Hiragana" value="65317">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Hiragana_Katakana" value="65319">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_History" value="269025079">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Home" value="65360">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_HomePage" value="269025048">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_HotLinks" value="269025082">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Hstroke" value="673">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Hyper_L" value="65517">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Hyper_R" value="65518">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_I" value="73">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_ISO_Center_Object" value="65075">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_ISO_Continuous_Underline" value="65072">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_ISO_Discontinuous_Underline" value="65073">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_ISO_Emphasize" value="65074">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_ISO_Enter" value="65076">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_ISO_Fast_Cursor_Down" value="65071">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_ISO_Fast_Cursor_Left" value="65068">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_ISO_Fast_Cursor_Right" value="65069">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_ISO_Fast_Cursor_Up" value="65070">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_ISO_First_Group" value="65036">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_ISO_First_Group_Lock" value="65037">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_ISO_Group_Latch" value="65030">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_ISO_Group_Lock" value="65031">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_ISO_Group_Shift" value="65406">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_ISO_Last_Group" value="65038">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_ISO_Last_Group_Lock" value="65039">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_ISO_Left_Tab" value="65056">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_ISO_Level2_Latch" value="65026">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_ISO_Level3_Latch" value="65028">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_ISO_Level3_Lock" value="65029">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_ISO_Level3_Shift" value="65027">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_ISO_Level5_Latch" value="65042">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_ISO_Level5_Lock" value="65043">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_ISO_Level5_Shift" value="65041">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_ISO_Lock" value="65025">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_ISO_Move_Line_Down" value="65058">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_ISO_Move_Line_Up" value="65057">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_ISO_Next_Group" value="65032">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_ISO_Next_Group_Lock" value="65033">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_ISO_Partial_Line_Down" value="65060">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_ISO_Partial_Line_Up" value="65059">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_ISO_Partial_Space_Left" value="65061">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_ISO_Partial_Space_Right" value="65062">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_ISO_Prev_Group" value="65034">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_ISO_Prev_Group_Lock" value="65035">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_ISO_Release_Both_Margins" value="65067">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_ISO_Release_Margin_Left" value="65065">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_ISO_Release_Margin_Right" value="65066">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_ISO_Set_Margin_Left" value="65063">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_ISO_Set_Margin_Right" value="65064">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Iabovedot" value="681">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Iacute" value="205">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Ibelowdot" value="16785098">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Ibreve" value="16777516">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Icircumflex" value="206">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Idiaeresis" value="207">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Igrave" value="204">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Ihook" value="16785096">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Imacron" value="975">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Insert" value="65379">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Iogonek" value="967">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Itilde" value="933">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_J" value="74">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Jcircumflex" value="684">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_K" value="75">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_KP_0" value="65456">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_KP_1" value="65457">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_KP_2" value="65458">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_KP_3" value="65459">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_KP_4" value="65460">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_KP_5" value="65461">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_KP_6" value="65462">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_KP_7" value="65463">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_KP_8" value="65464">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_KP_9" value="65465">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_KP_Add" value="65451">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_KP_Begin" value="65437">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_KP_Decimal" value="65454">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_KP_Delete" value="65439">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_KP_Divide" value="65455">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_KP_Down" value="65433">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_KP_End" value="65436">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_KP_Enter" value="65421">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_KP_Equal" value="65469">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_KP_F1" value="65425">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_KP_F2" value="65426">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_KP_F3" value="65427">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_KP_F4" value="65428">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_KP_Home" value="65429">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_KP_Insert" value="65438">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_KP_Left" value="65430">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_KP_Multiply" value="65450">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_KP_Next" value="65435">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_KP_Page_Down" value="65435">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_KP_Page_Up" value="65434">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_KP_Prior" value="65434">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_KP_Right" value="65432">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_KP_Separator" value="65452">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_KP_Space" value="65408">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_KP_Subtract" value="65453">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_KP_Tab" value="65417">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_KP_Up" value="65431">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Kana_Lock" value="65325">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Kana_Shift" value="65326">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Kanji" value="65313">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Kanji_Bangou" value="65335">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Katakana" value="65318">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_KbdBrightnessDown" value="269025030">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_KbdBrightnessUp" value="269025029">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_KbdLightOnOff" value="269025028">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Kcedilla" value="979">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Korean_Won" value="3839">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_L" value="76">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_L1" value="65480">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_L10" value="65489">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_L2" value="65481">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_L3" value="65482">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_L4" value="65483">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_L5" value="65484">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_L6" value="65485">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_L7" value="65486">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_L8" value="65487">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_L9" value="65488">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Lacute" value="453">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Last_Virtual_Screen" value="65236">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Launch0" value="269025088">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Launch1" value="269025089">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Launch2" value="269025090">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Launch3" value="269025091">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Launch4" value="269025092">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Launch5" value="269025093">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Launch6" value="269025094">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Launch7" value="269025095">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Launch8" value="269025096">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Launch9" value="269025097">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_LaunchA" value="269025098">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_LaunchB" value="269025099">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_LaunchC" value="269025100">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_LaunchD" value="269025101">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_LaunchE" value="269025102">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_LaunchF" value="269025103">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Lbelowdot" value="16784950">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Lcaron" value="421">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Lcedilla" value="934">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Left" value="65361">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_LightBulb" value="269025077">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Linefeed" value="65290">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_LiraSign" value="16785572">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_LogOff" value="269025121">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Lstroke" value="419">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_M" value="77">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Mabovedot" value="16784960">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Macedonia_DSE" value="1717">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Macedonia_GJE" value="1714">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Macedonia_KJE" value="1724">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Macedonia_dse" value="1701">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Macedonia_gje" value="1698">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Macedonia_kje" value="1708">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Mae_Koho" value="65342">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Mail" value="269025049">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_MailForward" value="269025168">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Market" value="269025122">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Massyo" value="65324">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Meeting" value="269025123">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Memo" value="269025054">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Menu" value="65383">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_MenuKB" value="269025125">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_MenuPB" value="269025126">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Messenger" value="269025166">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Meta_L" value="65511">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Meta_R" value="65512">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_MillSign" value="16785573">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_ModeLock" value="269025025">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Mode_switch" value="65406">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_MonBrightnessDown" value="269025027">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_MonBrightnessUp" value="269025026">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_MouseKeys_Accel_Enable" value="65143">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_MouseKeys_Enable" value="65142">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Muhenkan" value="65314">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Multi_key" value="65312">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_MultipleCandidate" value="65341">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Music" value="269025170">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_MyComputer" value="269025075">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_MySites" value="269025127">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_N" value="78">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Nacute" value="465">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_NairaSign" value="16785574">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Ncaron" value="466">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Ncedilla" value="977">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_New" value="269025128">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_NewSheqelSign" value="16785578">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_News" value="269025129">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Next" value="65366">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Next_VMode" value="269024802">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Next_Virtual_Screen" value="65234">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Ntilde" value="209">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Num_Lock" value="65407">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_O" value="79">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_OE" value="5052">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Oacute" value="211">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Obarred" value="16777631">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Obelowdot" value="16785100">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Ocaron" value="16777681">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Ocircumflex" value="212">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Ocircumflexacute" value="16785104">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Ocircumflexbelowdot" value="16785112">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Ocircumflexgrave" value="16785106">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Ocircumflexhook" value="16785108">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Ocircumflextilde" value="16785110">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Odiaeresis" value="214">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Odoubleacute" value="469">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_OfficeHome" value="269025130">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Ograve" value="210">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Ohook" value="16785102">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Ohorn" value="16777632">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Ohornacute" value="16785114">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Ohornbelowdot" value="16785122">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Ohorngrave" value="16785116">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Ohornhook" value="16785118">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Ohorntilde" value="16785120">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Omacron" value="978">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Ooblique" value="216">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Open" value="269025131">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_OpenURL" value="269025080">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Option" value="269025132">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Oslash" value="216">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Otilde" value="213">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Overlay1_Enable" value="65144">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Overlay2_Enable" value="65145">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_P" value="80">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Pabovedot" value="16784982">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Page_Down" value="65366">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Page_Up" value="65365">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Paste" value="269025133">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Pause" value="65299">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_PesetaSign" value="16785575">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Phone" value="269025134">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Pictures" value="269025169">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Pointer_Accelerate" value="65274">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Pointer_Button1" value="65257">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Pointer_Button2" value="65258">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Pointer_Button3" value="65259">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Pointer_Button4" value="65260">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Pointer_Button5" value="65261">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Pointer_Button_Dflt" value="65256">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Pointer_DblClick1" value="65263">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Pointer_DblClick2" value="65264">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Pointer_DblClick3" value="65265">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Pointer_DblClick4" value="65266">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Pointer_DblClick5" value="65267">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Pointer_DblClick_Dflt" value="65262">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Pointer_DfltBtnNext" value="65275">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Pointer_DfltBtnPrev" value="65276">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Pointer_Down" value="65251">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Pointer_DownLeft" value="65254">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Pointer_DownRight" value="65255">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Pointer_Drag1" value="65269">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Pointer_Drag2" value="65270">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Pointer_Drag3" value="65271">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Pointer_Drag4" value="65272">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Pointer_Drag5" value="65277">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Pointer_Drag_Dflt" value="65268">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Pointer_EnableKeys" value="65273">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Pointer_Left" value="65248">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Pointer_Right" value="65249">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Pointer_Up" value="65250">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Pointer_UpLeft" value="65252">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Pointer_UpRight" value="65253">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_PowerDown" value="269025057">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_PowerOff" value="269025066">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Prev_VMode" value="269024803">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Prev_Virtual_Screen" value="65233">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_PreviousCandidate" value="65342">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Print" value="65377">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Prior" value="65365">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Q" value="81">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_R" value="82">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_R1" value="65490">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_R10" value="65499">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_R11" value="65500">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_R12" value="65501">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_R13" value="65502">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_R14" value="65503">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_R15" value="65504">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_R2" value="65491">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_R3" value="65492">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_R4" value="65493">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_R5" value="65494">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_R6" value="65495">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_R7" value="65496">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_R8" value="65497">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_R9" value="65498">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Racute" value="448">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Rcaron" value="472">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Rcedilla" value="931">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Red" value="269025187">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Redo" value="65382">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Refresh" value="269025065">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Reload" value="269025139">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_RepeatKeys_Enable" value="65138">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Reply" value="269025138">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Return" value="65293">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Right" value="65363">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_RockerDown" value="269025060">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_RockerEnter" value="269025061">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_RockerUp" value="269025059">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Romaji" value="65316">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_RotateWindows" value="269025140">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_RotationKB" value="269025142">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_RotationPB" value="269025141">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_RupeeSign" value="16785576">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_S" value="83">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_SCHWA" value="16777615">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Sabovedot" value="16784992">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Sacute" value="422">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Save" value="269025143">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Scaron" value="425">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Scedilla" value="426">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Scircumflex" value="734">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_ScreenSaver" value="269025069">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_ScrollClick" value="269025146">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_ScrollDown" value="269025145">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_ScrollUp" value="269025144">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Scroll_Lock" value="65300">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Search" value="269025051">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Select" value="65376">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_SelectButton" value="269025184">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Send" value="269025147">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Serbian_DJE" value="1713">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Serbian_DZE" value="1727">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Serbian_JE" value="1720">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Serbian_LJE" value="1721">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Serbian_NJE" value="1722">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Serbian_TSHE" value="1723">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Serbian_dje" value="1697">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Serbian_dze" value="1711">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Serbian_je" value="1704">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Serbian_lje" value="1705">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Serbian_nje" value="1706">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Serbian_tshe" value="1707">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Shift_L" value="65505">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Shift_Lock" value="65510">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Shift_R" value="65506">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Shop" value="269025078">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_SingleCandidate" value="65340">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Sleep" value="269025071">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_SlowKeys_Enable" value="65139">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Spell" value="269025148">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_SplitScreen" value="269025149">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Standby" value="269025040">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Start" value="269025050">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_StickyKeys_Enable" value="65141">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Stop" value="269025064">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Subtitle" value="269025178">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Super_L" value="65515">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Super_R" value="65516">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Support" value="269025150">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Suspend" value="269025191">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Switch_VT_1" value="269024769">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Switch_VT_10" value="269024778">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Switch_VT_11" value="269024779">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Switch_VT_12" value="269024780">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Switch_VT_2" value="269024770">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Switch_VT_3" value="269024771">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Switch_VT_4" value="269024772">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Switch_VT_5" value="269024773">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Switch_VT_6" value="269024774">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Switch_VT_7" value="269024775">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Switch_VT_8" value="269024776">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Switch_VT_9" value="269024777">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Sys_Req" value="65301">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_T" value="84">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_THORN" value="222">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Tab" value="65289">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Tabovedot" value="16785002">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_TaskPane" value="269025151">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Tcaron" value="427">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Tcedilla" value="478">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Terminal" value="269025152">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Terminate_Server" value="65237">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Thai_baht" value="3551">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Thai_bobaimai" value="3514">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Thai_chochan" value="3496">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Thai_chochang" value="3498">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Thai_choching" value="3497">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Thai_chochoe" value="3500">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Thai_dochada" value="3502">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Thai_dodek" value="3508">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Thai_fofa" value="3517">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Thai_fofan" value="3519">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Thai_hohip" value="3531">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Thai_honokhuk" value="3534">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Thai_khokhai" value="3490">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Thai_khokhon" value="3493">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Thai_khokhuat" value="3491">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Thai_khokhwai" value="3492">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Thai_khorakhang" value="3494">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Thai_kokai" value="3489">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Thai_lakkhangyao" value="3557">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Thai_lekchet" value="3575">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Thai_lekha" value="3573">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Thai_lekhok" value="3574">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Thai_lekkao" value="3577">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Thai_leknung" value="3569">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Thai_lekpaet" value="3576">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Thai_leksam" value="3571">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Thai_leksi" value="3572">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Thai_leksong" value="3570">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Thai_leksun" value="3568">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Thai_lochula" value="3532">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Thai_loling" value="3525">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Thai_lu" value="3526">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Thai_maichattawa" value="3563">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Thai_maiek" value="3560">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Thai_maihanakat" value="3537">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Thai_maihanakat_maitho" value="3550">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Thai_maitaikhu" value="3559">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Thai_maitho" value="3561">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Thai_maitri" value="3562">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Thai_maiyamok" value="3558">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Thai_moma" value="3521">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Thai_ngongu" value="3495">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Thai_nikhahit" value="3565">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Thai_nonen" value="3507">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Thai_nonu" value="3513">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Thai_oang" value="3533">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Thai_paiyannoi" value="3535">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Thai_phinthu" value="3546">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Thai_phophan" value="3518">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Thai_phophung" value="3516">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Thai_phosamphao" value="3520">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Thai_popla" value="3515">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Thai_rorua" value="3523">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Thai_ru" value="3524">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Thai_saraa" value="3536">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Thai_saraaa" value="3538">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Thai_saraae" value="3553">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Thai_saraaimaimalai" value="3556">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Thai_saraaimaimuan" value="3555">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Thai_saraam" value="3539">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Thai_sarae" value="3552">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Thai_sarai" value="3540">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Thai_saraii" value="3541">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Thai_sarao" value="3554">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Thai_sarau" value="3544">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Thai_saraue" value="3542">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Thai_sarauee" value="3543">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Thai_sarauu" value="3545">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Thai_sorusi" value="3529">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Thai_sosala" value="3528">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Thai_soso" value="3499">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Thai_sosua" value="3530">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Thai_thanthakhat" value="3564">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Thai_thonangmontho" value="3505">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Thai_thophuthao" value="3506">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Thai_thothahan" value="3511">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Thai_thothan" value="3504">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Thai_thothong" value="3512">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Thai_thothung" value="3510">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Thai_topatak" value="3503">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Thai_totao" value="3509">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Thai_wowaen" value="3527">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Thai_yoyak" value="3522">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Thai_yoying" value="3501">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Thorn" value="222">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Time" value="269025183">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_ToDoList" value="269025055">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Tools" value="269025153">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_TopMenu" value="269025186">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_TouchpadToggle" value="269025193">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Touroku" value="65323">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Travel" value="269025154">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Tslash" value="940">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_U" value="85">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_UWB" value="269025174">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Uacute" value="218">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Ubelowdot" value="16785124">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Ubreve" value="733">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Ucircumflex" value="219">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Udiaeresis" value="220">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Udoubleacute" value="475">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Ugrave" value="217">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Uhook" value="16785126">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Uhorn" value="16777647">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Uhornacute" value="16785128">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Uhornbelowdot" value="16785136">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Uhorngrave" value="16785130">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Uhornhook" value="16785132">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Uhorntilde" value="16785134">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Ukrainian_GHE_WITH_UPTURN" value="1725">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Ukrainian_I" value="1718">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Ukrainian_IE" value="1716">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Ukrainian_YI" value="1719">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Ukrainian_ghe_with_upturn" value="1709">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Ukrainian_i" value="1702">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Ukrainian_ie" value="1700">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Ukrainian_yi" value="1703">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Ukranian_I" value="1718">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Ukranian_JE" value="1716">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Ukranian_YI" value="1719">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Ukranian_i" value="1702">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Ukranian_je" value="1700">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Ukranian_yi" value="1703">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Umacron" value="990">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Undo" value="65381">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Ungrab" value="269024800">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Uogonek" value="985">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Up" value="65362">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Uring" value="473">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_User1KB" value="269025157">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_User2KB" value="269025158">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_UserPB" value="269025156">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Utilde" value="989">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_V" value="86">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_VendorHome" value="269025076">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Video" value="269025159">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_View" value="269025185">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_VoidSymbol" value="16777215">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_W" value="87">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_WLAN" value="269025173">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_WWW" value="269025070">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Wacute" value="16785026">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_WakeUp" value="269025067">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Wcircumflex" value="16777588">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Wdiaeresis" value="16785028">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_WebCam" value="269025167">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Wgrave" value="16785024">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_WheelButton" value="269025160">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_WindowClear" value="269025109">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_WonSign" value="16785577">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Word" value="269025161">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_X" value="88">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Xabovedot" value="16785034">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Xfer" value="269025162">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Y" value="89">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Yacute" value="221">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Ybelowdot" value="16785140">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Ycircumflex" value="16777590">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Ydiaeresis" value="5054">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Yellow" value="269025189">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Ygrave" value="16785138">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Yhook" value="16785142">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Ytilde" value="16785144">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Z" value="90">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Zabovedot" value="431">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Zacute" value="428">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Zcaron" value="430">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Zen_Koho" value="65341">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Zenkaku" value="65320">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Zenkaku_Hankaku" value="65322">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_ZoomIn" value="269025163">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_ZoomOut" value="269025164">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_Zstroke" value="16777653">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_a" value="97">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_aacute" value="225">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_abelowdot" value="16785057">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_abovedot" value="511">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_abreve" value="483">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_abreveacute" value="16785071">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_abrevebelowdot" value="16785079">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_abrevegrave" value="16785073">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_abrevehook" value="16785075">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_abrevetilde" value="16785077">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_acircumflex" value="226">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_acircumflexacute" value="16785061">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_acircumflexbelowdot" value="16785069">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_acircumflexgrave" value="16785063">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_acircumflexhook" value="16785065">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_acircumflextilde" value="16785067">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_acute" value="180">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_adiaeresis" value="228">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_ae" value="230">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_agrave" value="224">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_ahook" value="16785059">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_amacron" value="992">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_ampersand" value="38">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_aogonek" value="433">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_apostrophe" value="39">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_approxeq" value="16785992">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_approximate" value="2248">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_aring" value="229">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_asciicircum" value="94">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_asciitilde" value="126">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_asterisk" value="42">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_at" value="64">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_atilde" value="227">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_b" value="98">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_babovedot" value="16784899">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_backslash" value="92">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_ballotcross" value="2804">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_bar" value="124">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_because" value="16785973">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_blank" value="2527">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_botintegral" value="2213">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_botleftparens" value="2220">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_botleftsqbracket" value="2216">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_botleftsummation" value="2226">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_botrightparens" value="2222">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_botrightsqbracket" value="2218">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_botrightsummation" value="2230">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_bott" value="2550">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_botvertsummationconnector" value="2228">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braceleft" value="123">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braceright" value="125">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_bracketleft" value="91">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_bracketright" value="93">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_blank" value="16787456">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dot_1" value="65521">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dot_10" value="65530">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dot_2" value="65522">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dot_3" value="65523">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dot_4" value="65524">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dot_5" value="65525">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dot_6" value="65526">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dot_7" value="65527">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dot_8" value="65528">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dot_9" value="65529">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_1" value="16787457">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_12" value="16787459">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_123" value="16787463">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_1234" value="16787471">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_12345" value="16787487">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_123456" value="16787519">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_1234567" value="16787583">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_12345678" value="16787711">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_1234568" value="16787647">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_123457" value="16787551">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_1234578" value="16787679">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_123458" value="16787615">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_12346" value="16787503">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_123467" value="16787567">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_1234678" value="16787695">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_123468" value="16787631">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_12347" value="16787535">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_123478" value="16787663">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_12348" value="16787599">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_1235" value="16787479">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_12356" value="16787511">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_123567" value="16787575">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_1235678" value="16787703">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_123568" value="16787639">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_12357" value="16787543">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_123578" value="16787671">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_12358" value="16787607">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_1236" value="16787495">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_12367" value="16787559">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_123678" value="16787687">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_12368" value="16787623">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_1237" value="16787527">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_12378" value="16787655">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_1238" value="16787591">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_124" value="16787467">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_1245" value="16787483">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_12456" value="16787515">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_124567" value="16787579">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_1245678" value="16787707">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_124568" value="16787643">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_12457" value="16787547">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_124578" value="16787675">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_12458" value="16787611">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_1246" value="16787499">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_12467" value="16787563">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_124678" value="16787691">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_12468" value="16787627">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_1247" value="16787531">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_12478" value="16787659">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_1248" value="16787595">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_125" value="16787475">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_1256" value="16787507">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_12567" value="16787571">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_125678" value="16787699">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_12568" value="16787635">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_1257" value="16787539">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_12578" value="16787667">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_1258" value="16787603">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_126" value="16787491">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_1267" value="16787555">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_12678" value="16787683">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_1268" value="16787619">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_127" value="16787523">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_1278" value="16787651">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_128" value="16787587">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_13" value="16787461">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_134" value="16787469">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_1345" value="16787485">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_13456" value="16787517">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_134567" value="16787581">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_1345678" value="16787709">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_134568" value="16787645">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_13457" value="16787549">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_134578" value="16787677">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_13458" value="16787613">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_1346" value="16787501">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_13467" value="16787565">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_134678" value="16787693">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_13468" value="16787629">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_1347" value="16787533">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_13478" value="16787661">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_1348" value="16787597">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_135" value="16787477">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_1356" value="16787509">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_13567" value="16787573">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_135678" value="16787701">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_13568" value="16787637">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_1357" value="16787541">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_13578" value="16787669">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_1358" value="16787605">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_136" value="16787493">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_1367" value="16787557">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_13678" value="16787685">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_1368" value="16787621">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_137" value="16787525">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_1378" value="16787653">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_138" value="16787589">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_14" value="16787465">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_145" value="16787481">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_1456" value="16787513">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_14567" value="16787577">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_145678" value="16787705">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_14568" value="16787641">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_1457" value="16787545">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_14578" value="16787673">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_1458" value="16787609">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_146" value="16787497">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_1467" value="16787561">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_14678" value="16787689">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_1468" value="16787625">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_147" value="16787529">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_1478" value="16787657">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_148" value="16787593">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_15" value="16787473">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_156" value="16787505">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_1567" value="16787569">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_15678" value="16787697">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_1568" value="16787633">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_157" value="16787537">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_1578" value="16787665">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_158" value="16787601">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_16" value="16787489">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_167" value="16787553">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_1678" value="16787681">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_168" value="16787617">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_17" value="16787521">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_178" value="16787649">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_18" value="16787585">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_2" value="16787458">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_23" value="16787462">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_234" value="16787470">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_2345" value="16787486">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_23456" value="16787518">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_234567" value="16787582">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_2345678" value="16787710">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_234568" value="16787646">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_23457" value="16787550">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_234578" value="16787678">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_23458" value="16787614">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_2346" value="16787502">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_23467" value="16787566">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_234678" value="16787694">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_23468" value="16787630">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_2347" value="16787534">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_23478" value="16787662">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_2348" value="16787598">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_235" value="16787478">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_2356" value="16787510">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_23567" value="16787574">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_235678" value="16787702">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_23568" value="16787638">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_2357" value="16787542">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_23578" value="16787670">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_2358" value="16787606">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_236" value="16787494">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_2367" value="16787558">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_23678" value="16787686">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_2368" value="16787622">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_237" value="16787526">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_2378" value="16787654">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_238" value="16787590">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_24" value="16787466">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_245" value="16787482">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_2456" value="16787514">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_24567" value="16787578">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_245678" value="16787706">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_24568" value="16787642">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_2457" value="16787546">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_24578" value="16787674">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_2458" value="16787610">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_246" value="16787498">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_2467" value="16787562">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_24678" value="16787690">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_2468" value="16787626">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_247" value="16787530">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_2478" value="16787658">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_248" value="16787594">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_25" value="16787474">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_256" value="16787506">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_2567" value="16787570">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_25678" value="16787698">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_2568" value="16787634">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_257" value="16787538">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_2578" value="16787666">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_258" value="16787602">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_26" value="16787490">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_267" value="16787554">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_2678" value="16787682">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_268" value="16787618">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_27" value="16787522">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_278" value="16787650">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_28" value="16787586">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_3" value="16787460">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_34" value="16787468">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_345" value="16787484">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_3456" value="16787516">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_34567" value="16787580">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_345678" value="16787708">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_34568" value="16787644">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_3457" value="16787548">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_34578" value="16787676">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_3458" value="16787612">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_346" value="16787500">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_3467" value="16787564">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_34678" value="16787692">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_3468" value="16787628">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_347" value="16787532">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_3478" value="16787660">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_348" value="16787596">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_35" value="16787476">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_356" value="16787508">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_3567" value="16787572">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_35678" value="16787700">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_3568" value="16787636">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_357" value="16787540">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_3578" value="16787668">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_358" value="16787604">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_36" value="16787492">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_367" value="16787556">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_3678" value="16787684">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_368" value="16787620">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_37" value="16787524">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_378" value="16787652">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_38" value="16787588">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_4" value="16787464">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_45" value="16787480">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_456" value="16787512">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_4567" value="16787576">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_45678" value="16787704">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_4568" value="16787640">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_457" value="16787544">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_4578" value="16787672">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_458" value="16787608">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_46" value="16787496">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_467" value="16787560">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_4678" value="16787688">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_468" value="16787624">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_47" value="16787528">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_478" value="16787656">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_48" value="16787592">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_5" value="16787472">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_56" value="16787504">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_567" value="16787568">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_5678" value="16787696">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_568" value="16787632">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_57" value="16787536">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_578" value="16787664">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_58" value="16787600">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_6" value="16787488">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_67" value="16787552">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_678" value="16787680">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_68" value="16787616">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_7" value="16787520">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_78" value="16787648">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_braille_dots_8" value="16787584">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_breve" value="418">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_brokenbar" value="166">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_c" value="99">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_cabovedot" value="741">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_cacute" value="486">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_careof" value="2744">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_caret" value="2812">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_caron" value="439">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_ccaron" value="488">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_ccedilla" value="231">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_ccircumflex" value="742">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_cedilla" value="184">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_cent" value="162">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_checkerboard" value="2529">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_checkmark" value="2803">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_circle" value="3023">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_club" value="2796">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_colon" value="58">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_comma" value="44">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_containsas" value="16785931">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_copyright" value="169">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_cr" value="2532">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_crossinglines" value="2542">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_cuberoot" value="16785947">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_currency" value="164">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_cursor" value="2815">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_d" value="100">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_dabovedot" value="16784907">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_dagger" value="2801">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_dcaron" value="495">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_dead_A" value="65153">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_dead_E" value="65155">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_dead_I" value="65157">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_dead_O" value="65159">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_dead_U" value="65161">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_dead_a" value="65152">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_dead_abovecomma" value="65124">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_dead_abovedot" value="65110">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_dead_abovereversedcomma" value="65125">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_dead_abovering" value="65112">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_dead_acute" value="65105">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_dead_belowbreve" value="65131">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_dead_belowcircumflex" value="65129">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_dead_belowcomma" value="65134">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_dead_belowdiaeresis" value="65132">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_dead_belowdot" value="65120">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_dead_belowmacron" value="65128">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_dead_belowring" value="65127">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_dead_belowtilde" value="65130">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_dead_breve" value="65109">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_dead_capital_schwa" value="65163">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_dead_caron" value="65114">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_dead_cedilla" value="65115">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_dead_circumflex" value="65106">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_dead_currency" value="65135">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_dead_dasia" value="65125">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_dead_diaeresis" value="65111">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_dead_doubleacute" value="65113">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_dead_doublegrave" value="65126">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_dead_e" value="65154">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_dead_grave" value="65104">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_dead_hook" value="65121">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_dead_horn" value="65122">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_dead_i" value="65156">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_dead_invertedbreve" value="65133">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_dead_iota" value="65117">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_dead_macron" value="65108">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_dead_o" value="65158">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_dead_ogonek" value="65116">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_dead_perispomeni" value="65107">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_dead_psili" value="65124">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_dead_semivoiced_sound" value="65119">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_dead_small_schwa" value="65162">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_dead_stroke" value="65123">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_dead_tilde" value="65107">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_dead_u" value="65160">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_dead_voiced_sound" value="65118">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_decimalpoint" value="2749">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_degree" value="176">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_diaeresis" value="168">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_diamond" value="2797">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_digitspace" value="2725">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_dintegral" value="16785964">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_division" value="247">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_dollar" value="36">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_doubbaselinedot" value="2735">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_doubleacute" value="445">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_doubledagger" value="2802">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_doublelowquotemark" value="2814">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_downarrow" value="2302">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_downcaret" value="2984">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_downshoe" value="3030">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_downstile" value="3012">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_downtack" value="3010">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_dstroke" value="496">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_e" value="101">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_eabovedot" value="1004">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_eacute" value="233">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_ebelowdot" value="16785081">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_ecaron" value="492">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_ecircumflex" value="234">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_ecircumflexacute" value="16785087">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_ecircumflexbelowdot" value="16785095">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_ecircumflexgrave" value="16785089">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_ecircumflexhook" value="16785091">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_ecircumflextilde" value="16785093">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_ediaeresis" value="235">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_egrave" value="232">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_ehook" value="16785083">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_eightsubscript" value="16785544">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_eightsuperior" value="16785528">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_elementof" value="16785928">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_ellipsis" value="2734">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_em3space" value="2723">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_em4space" value="2724">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_emacron" value="954">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_emdash" value="2729">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_emfilledcircle" value="2782">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_emfilledrect" value="2783">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_emopencircle" value="2766">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_emopenrectangle" value="2767">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_emptyset" value="16785925">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_emspace" value="2721">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_endash" value="2730">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_enfilledcircbullet" value="2790">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_enfilledsqbullet" value="2791">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_eng" value="959">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_enopencircbullet" value="2784">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_enopensquarebullet" value="2785">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_enspace" value="2722">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_eogonek" value="490">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_equal" value="61">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_eth" value="240">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_etilde" value="16785085">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_exclam" value="33">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_exclamdown" value="161">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_f" value="102">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_fabovedot" value="16784927">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_femalesymbol" value="2808">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_ff" value="2531">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_figdash" value="2747">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_filledlefttribullet" value="2780">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_filledrectbullet" value="2779">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_filledrighttribullet" value="2781">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_filledtribulletdown" value="2793">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_filledtribulletup" value="2792">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_fiveeighths" value="2757">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_fivesixths" value="2743">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_fivesubscript" value="16785541">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_fivesuperior" value="16785525">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_fourfifths" value="2741">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_foursubscript" value="16785540">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_foursuperior" value="16785524">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_fourthroot" value="16785948">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_function" value="2294">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_g" value="103">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_gabovedot" value="757">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_gbreve" value="699">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_gcaron" value="16777703">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_gcedilla" value="955">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_gcircumflex" value="760">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_grave" value="96">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_greater" value="62">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_greaterthanequal" value="2238">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_guillemotleft" value="171">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_guillemotright" value="187">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_h" value="104">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_hairspace" value="2728">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_hcircumflex" value="694">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_heart" value="2798">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_hebrew_aleph" value="3296">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_hebrew_ayin" value="3314">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_hebrew_bet" value="3297">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_hebrew_beth" value="3297">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_hebrew_chet" value="3303">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_hebrew_dalet" value="3299">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_hebrew_daleth" value="3299">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_hebrew_doublelowline" value="3295">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_hebrew_finalkaph" value="3306">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_hebrew_finalmem" value="3309">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_hebrew_finalnun" value="3311">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_hebrew_finalpe" value="3315">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_hebrew_finalzade" value="3317">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_hebrew_finalzadi" value="3317">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_hebrew_gimel" value="3298">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_hebrew_gimmel" value="3298">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_hebrew_he" value="3300">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_hebrew_het" value="3303">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_hebrew_kaph" value="3307">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_hebrew_kuf" value="3319">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_hebrew_lamed" value="3308">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_hebrew_mem" value="3310">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_hebrew_nun" value="3312">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_hebrew_pe" value="3316">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_hebrew_qoph" value="3319">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_hebrew_resh" value="3320">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_hebrew_samech" value="3313">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_hebrew_samekh" value="3313">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_hebrew_shin" value="3321">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_hebrew_taf" value="3322">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_hebrew_taw" value="3322">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_hebrew_tet" value="3304">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_hebrew_teth" value="3304">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_hebrew_waw" value="3301">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_hebrew_yod" value="3305">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_hebrew_zade" value="3318">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_hebrew_zadi" value="3318">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_hebrew_zain" value="3302">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_hebrew_zayin" value="3302">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_hexagram" value="2778">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_horizconnector" value="2211">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_horizlinescan1" value="2543">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_horizlinescan3" value="2544">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_horizlinescan5" value="2545">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_horizlinescan7" value="2546">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_horizlinescan9" value="2547">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_hstroke" value="689">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_ht" value="2530">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_hyphen" value="173">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_i" value="105">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_iTouch" value="269025120">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_iacute" value="237">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_ibelowdot" value="16785099">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_ibreve" value="16777517">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_icircumflex" value="238">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_identical" value="2255">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_idiaeresis" value="239">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_idotless" value="697">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_ifonlyif" value="2253">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_igrave" value="236">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_ihook" value="16785097">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_imacron" value="1007">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_implies" value="2254">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_includedin" value="2266">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_includes" value="2267">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_infinity" value="2242">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_integral" value="2239">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_intersection" value="2268">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_iogonek" value="999">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_itilde" value="949">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_j" value="106">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_jcircumflex" value="700">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_jot" value="3018">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_k" value="107">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_kana_A" value="1201">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_kana_CHI" value="1217">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_kana_E" value="1204">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_kana_FU" value="1228">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_kana_HA" value="1226">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_kana_HE" value="1229">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_kana_HI" value="1227">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_kana_HO" value="1230">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_kana_HU" value="1228">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_kana_I" value="1202">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_kana_KA" value="1206">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_kana_KE" value="1209">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_kana_KI" value="1207">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_kana_KO" value="1210">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_kana_KU" value="1208">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_kana_MA" value="1231">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_kana_ME" value="1234">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_kana_MI" value="1232">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_kana_MO" value="1235">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_kana_MU" value="1233">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_kana_N" value="1245">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_kana_NA" value="1221">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_kana_NE" value="1224">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_kana_NI" value="1222">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_kana_NO" value="1225">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_kana_NU" value="1223">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_kana_O" value="1205">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_kana_RA" value="1239">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_kana_RE" value="1242">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_kana_RI" value="1240">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_kana_RO" value="1243">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_kana_RU" value="1241">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_kana_SA" value="1211">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_kana_SE" value="1214">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_kana_SHI" value="1212">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_kana_SO" value="1215">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_kana_SU" value="1213">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_kana_TA" value="1216">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_kana_TE" value="1219">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_kana_TI" value="1217">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_kana_TO" value="1220">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_kana_TSU" value="1218">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_kana_TU" value="1218">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_kana_U" value="1203">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_kana_WA" value="1244">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_kana_WO" value="1190">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_kana_YA" value="1236">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_kana_YO" value="1238">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_kana_YU" value="1237">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_kana_a" value="1191">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_kana_closingbracket" value="1187">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_kana_comma" value="1188">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_kana_conjunctive" value="1189">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_kana_e" value="1194">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_kana_fullstop" value="1185">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_kana_i" value="1192">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_kana_middledot" value="1189">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_kana_o" value="1195">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_kana_openingbracket" value="1186">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_kana_switch" value="65406">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_kana_tsu" value="1199">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_kana_tu" value="1199">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_kana_u" value="1193">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_kana_ya" value="1196">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_kana_yo" value="1198">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_kana_yu" value="1197">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_kappa" value="930">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_kcedilla" value="1011">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_kra" value="930">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_l" value="108">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_lacute" value="485">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_latincross" value="2777">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_lbelowdot" value="16784951">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_lcaron" value="437">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_lcedilla" value="950">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_leftanglebracket" value="2748">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_leftarrow" value="2299">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_leftcaret" value="2979">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_leftdoublequotemark" value="2770">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_leftmiddlecurlybrace" value="2223">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_leftopentriangle" value="2764">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_leftpointer" value="2794">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_leftradical" value="2209">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_leftshoe" value="3034">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_leftsinglequotemark" value="2768">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_leftt" value="2548">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_lefttack" value="3036">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_less" value="60">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_lessthanequal" value="2236">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_lf" value="2533">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_logicaland" value="2270">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_logicalor" value="2271">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_lowleftcorner" value="2541">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_lowrightcorner" value="2538">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_lstroke" value="435">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_m" value="109">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_mabovedot" value="16784961">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_macron" value="175">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_malesymbol" value="2807">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_maltesecross" value="2800">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_marker" value="2751">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_masculine" value="186">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_minus" value="45">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_minutes" value="2774">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_mu" value="181">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_multiply" value="215">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_musicalflat" value="2806">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_musicalsharp" value="2805">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_n" value="110">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_nabla" value="2245">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_nacute" value="497">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_ncaron" value="498">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_ncedilla" value="1009">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_ninesubscript" value="16785545">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_ninesuperior" value="16785529">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_nl" value="2536">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_nobreakspace" value="160">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_notapproxeq" value="16785991">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_notelementof" value="16785929">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_notequal" value="2237">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_notidentical" value="16786018">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_notsign" value="172">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_ntilde" value="241">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_numbersign" value="35">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_numerosign" value="1712">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_o" value="111">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_oacute" value="243">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_obarred" value="16777845">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_obelowdot" value="16785101">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_ocaron" value="16777682">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_ocircumflex" value="244">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_ocircumflexacute" value="16785105">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_ocircumflexbelowdot" value="16785113">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_ocircumflexgrave" value="16785107">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_ocircumflexhook" value="16785109">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_ocircumflextilde" value="16785111">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_odiaeresis" value="246">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_odoubleacute" value="501">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_oe" value="5053">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_ogonek" value="434">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_ograve" value="242">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_ohook" value="16785103">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_ohorn" value="16777633">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_ohornacute" value="16785115">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_ohornbelowdot" value="16785123">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_ohorngrave" value="16785117">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_ohornhook" value="16785119">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_ohorntilde" value="16785121">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_omacron" value="1010">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_oneeighth" value="2755">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_onefifth" value="2738">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_onehalf" value="189">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_onequarter" value="188">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_onesixth" value="2742">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_onesubscript" value="16785537">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_onesuperior" value="185">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_onethird" value="2736">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_ooblique" value="248">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_openrectbullet" value="2786">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_openstar" value="2789">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_opentribulletdown" value="2788">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_opentribulletup" value="2787">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_ordfeminine" value="170">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_oslash" value="248">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_otilde" value="245">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_overbar" value="3008">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_overline" value="1150">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_p" value="112">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_pabovedot" value="16784983">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_paragraph" value="182">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_parenleft" value="40">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_parenright" value="41">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_partdifferential" value="16785922">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_partialderivative" value="2287">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_percent" value="37">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_period" value="46">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_periodcentered" value="183">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_phonographcopyright" value="2811">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_plus" value="43">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_plusminus" value="177">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_prescription" value="2772">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_prolongedsound" value="1200">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_punctspace" value="2726">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_q" value="113">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_quad" value="3020">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_question" value="63">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_questiondown" value="191">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_quotedbl" value="34">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_quoteleft" value="96">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_quoteright" value="39">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_r" value="114">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_racute" value="480">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_radical" value="2262">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_rcaron" value="504">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_rcedilla" value="947">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_registered" value="174">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_rightanglebracket" value="2750">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_rightarrow" value="2301">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_rightcaret" value="2982">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_rightdoublequotemark" value="2771">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_rightmiddlecurlybrace" value="2224">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_rightmiddlesummation" value="2231">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_rightopentriangle" value="2765">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_rightpointer" value="2795">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_rightshoe" value="3032">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_rightsinglequotemark" value="2769">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_rightt" value="2549">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_righttack" value="3068">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_s" value="115">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_sabovedot" value="16784993">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_sacute" value="438">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_scaron" value="441">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_scedilla" value="442">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_schwa" value="16777817">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_scircumflex" value="766">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_script_switch" value="65406">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_seconds" value="2775">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_section" value="167">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_semicolon" value="59">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_semivoicedsound" value="1247">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_seveneighths" value="2758">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_sevensubscript" value="16785543">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_sevensuperior" value="16785527">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_signaturemark" value="2762">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_signifblank" value="2732">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_similarequal" value="2249">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_singlelowquotemark" value="2813">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_sixsubscript" value="16785542">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_sixsuperior" value="16785526">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_slash" value="47">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_soliddiamond" value="2528">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_space" value="32">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_squareroot" value="16785946">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_ssharp" value="223">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_sterling" value="163">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_stricteq" value="16786019">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_t" value="116">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_tabovedot" value="16785003">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_tcaron" value="443">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_tcedilla" value="510">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_telephone" value="2809">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_telephonerecorder" value="2810">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_therefore" value="2240">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_thinspace" value="2727">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_thorn" value="254">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_threeeighths" value="2756">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_threefifths" value="2740">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_threequarters" value="190">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_threesubscript" value="16785539">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_threesuperior" value="179">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_tintegral" value="16785965">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_topintegral" value="2212">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_topleftparens" value="2219">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_topleftradical" value="2210">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_topleftsqbracket" value="2215">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_topleftsummation" value="2225">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_toprightparens" value="2221">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_toprightsqbracket" value="2217">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_toprightsummation" value="2229">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_topt" value="2551">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_topvertsummationconnector" value="2227">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_trademark" value="2761">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_trademarkincircle" value="2763">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_tslash" value="956">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_twofifths" value="2739">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_twosubscript" value="16785538">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_twosuperior" value="178">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_twothirds" value="2737">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_u" value="117">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_uacute" value="250">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_ubelowdot" value="16785125">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_ubreve" value="765">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_ucircumflex" value="251">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_udiaeresis" value="252">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_udoubleacute" value="507">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_ugrave" value="249">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_uhook" value="16785127">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_uhorn" value="16777648">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_uhornacute" value="16785129">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_uhornbelowdot" value="16785137">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_uhorngrave" value="16785131">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_uhornhook" value="16785133">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_uhorntilde" value="16785135">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_umacron" value="1022">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_underbar" value="3014">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_underscore" value="95">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_union" value="2269">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_uogonek" value="1017">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_uparrow" value="2300">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_upcaret" value="2985">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_upleftcorner" value="2540">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_uprightcorner" value="2539">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_upshoe" value="3011">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_upstile" value="3027">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_uptack" value="3022">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_uring" value="505">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_utilde" value="1021">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_v" value="118">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_variation" value="2241">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_vertbar" value="2552">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_vertconnector" value="2214">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_voicedsound" value="1246">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_vt" value="2537">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_w" value="119">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_wacute" value="16785027">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_wcircumflex" value="16777589">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_wdiaeresis" value="16785029">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_wgrave" value="16785025">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_x" value="120">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_xabovedot" value="16785035">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_y" value="121">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_yacute" value="253">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_ybelowdot" value="16785141">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_ycircumflex" value="16777591">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_ydiaeresis" value="255">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_yen" value="165">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_ygrave" value="16785139">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_yhook" value="16785143">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_ytilde" value="16785145">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_z" value="122">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_zabovedot" value="447">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_zacute" value="444">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_zcaron" value="446">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_zerosubscript" value="16785536">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_zerosuperior" value="16785520">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KEY_zstroke" value="16777654">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KP_0" value="65456">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KP_1" value="65457">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KP_2" value="65458">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KP_3" value="65459">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KP_4" value="65460">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KP_5" value="65461">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KP_6" value="65462">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KP_7" value="65463">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KP_8" value="65464">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KP_9" value="65465">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KP_Add" value="65451">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KP_Begin" value="65437">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KP_Decimal" value="65454">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KP_Delete" value="65439">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KP_Divide" value="65455">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KP_Down" value="65433">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KP_End" value="65436">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KP_Enter" value="65421">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KP_Equal" value="65469">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KP_F1" value="65425">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KP_F2" value="65426">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KP_F3" value="65427">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KP_F4" value="65428">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KP_Home" value="65429">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KP_Insert" value="65438">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KP_Left" value="65430">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KP_Multiply" value="65450">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KP_Next" value="65435">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KP_Page_Down" value="65435">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KP_Page_Up" value="65434">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KP_Prior" value="65434">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KP_Right" value="65432">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KP_Separator" value="65452">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KP_Space" value="65408">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KP_Subtract" value="65453">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KP_Tab" value="65417">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KP_Up" value="65431">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Kana_Lock" value="65325">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Kana_Shift" value="65326">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Kanji" value="65313">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Kanji_Bangou" value="65335">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Katakana" value="65318">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KbdBrightnessDown" value="269025030">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KbdBrightnessUp" value="269025029">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="KbdLightOnOff" value="269025028">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Kcedilla" value="979">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <record name="KeyEvent" c:type="ClutterKeyEvent" version="0.2">
-      <doc xml:whitespace="preserve">Key event</doc>
-      <field name="type" writable="1">
-        <type name="EventType" c:type="ClutterEventType"/>
-      </field>
-      <field name="time" writable="1">
-        <type name="guint32" c:type="guint32"/>
-      </field>
-      <field name="flags" writable="1">
-        <type name="EventFlags" c:type="ClutterEventFlags"/>
-      </field>
-      <field name="stage" writable="1">
-        <type name="Stage" c:type="ClutterStage*"/>
-      </field>
-      <field name="source" writable="1">
-        <type name="Actor" c:type="ClutterActor*"/>
-      </field>
-      <field name="modifier_state" writable="1">
-        <type name="ModifierType" c:type="ClutterModifierType"/>
-      </field>
-      <field name="keyval" writable="1">
-        <type name="guint" c:type="guint"/>
-      </field>
-      <field name="hardware_keycode" writable="1">
-        <type name="guint16" c:type="guint16"/>
-      </field>
-      <field name="unicode_value" introspectable="0" writable="1">
-        <type name="gunichar" c:type="gunichar"/>
-      </field>
-      <field name="device" writable="1">
-        <type name="InputDevice" c:type="ClutterInputDevice*"/>
-      </field>
-    </record>
-    <record name="Knot"
-            c:type="ClutterKnot"
-            version="0.2"
-            glib:type-name="ClutterKnot"
-            glib:get-type="clutter_knot_get_type"
-            c:symbol-prefix="knot">
-      <doc xml:whitespace="preserve">Point in a path behaviour.</doc>
-      <field name="x" writable="1">
-        <type name="gint" c:type="gint"/>
-      </field>
-      <field name="y" writable="1">
-        <type name="gint" c:type="gint"/>
-      </field>
-      <method name="copy" c:identifier="clutter_knot_copy" version="0.2">
-        <doc xml:whitespace="preserve">Makes an allocated copy of a knot.</doc>
-        <return-value transfer-ownership="full">
-          <doc xml:whitespace="preserve">the copied knot.</doc>
-          <type name="Knot" c:type="ClutterKnot*"/>
-        </return-value>
-      </method>
-      <method name="equal" c:identifier="clutter_knot_equal" version="0.2">
-        <doc xml:whitespace="preserve">Compares to knot and checks if the point to the same location.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">%TRUE if the knots point to the same location.</doc>
-          <type name="gboolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="knot_b" transfer-ownership="none">
-            <doc xml:whitespace="preserve">Second knot</doc>
-            <type name="Knot" c:type="ClutterKnot*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="free" c:identifier="clutter_knot_free" version="0.2">
-        <doc xml:whitespace="preserve">Frees the memory of an allocated knot.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </method>
-    </record>
-    <constant name="Korean_Won" value="3839">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="L" value="76">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="L1" value="65480">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="L10" value="65489">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="L2" value="65481">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="L3" value="65482">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="L4" value="65483">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="L5" value="65484">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="L6" value="65485">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="L7" value="65486">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="L8" value="65487">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="L9" value="65488">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Lacute" value="453">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Last_Virtual_Screen" value="65236">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Launch0" value="269025088">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Launch1" value="269025089">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Launch2" value="269025090">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Launch3" value="269025091">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Launch4" value="269025092">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Launch5" value="269025093">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Launch6" value="269025094">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Launch7" value="269025095">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Launch8" value="269025096">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Launch9" value="269025097">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="LaunchA" value="269025098">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="LaunchB" value="269025099">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="LaunchC" value="269025100">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="LaunchD" value="269025101">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="LaunchE" value="269025102">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="LaunchF" value="269025103">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <class name="LayoutManager"
-           c:symbol-prefix="layout_manager"
-           c:type="ClutterLayoutManager"
-           version="1.2"
-           parent="GObject.InitiallyUnowned"
-           abstract="1"
-           glib:type-name="ClutterLayoutManager"
-           glib:get-type="clutter_layout_manager_get_type"
-           glib:type-struct="LayoutManagerClass">
-      <doc xml:whitespace="preserve">The #ClutterLayoutManager structure contains only private data
-and should be accessed using the provided API</doc>
-      <virtual-method name="allocate" invoker="allocate" version="1.2">
-        <doc xml:whitespace="preserve">Allocates the children of @container given an area
-See also clutter_actor_allocate()</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="container" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the #ClutterContainer using @manager</doc>
-            <type name="Container" c:type="ClutterContainer*"/>
-          </parameter>
-          <parameter name="allocation" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the #ClutterActorBox containing the allocated area of @container</doc>
-            <type name="ActorBox" c:type="ClutterActorBox*"/>
-          </parameter>
-          <parameter name="flags" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the allocation flags</doc>
-            <type name="AllocationFlags" c:type="ClutterAllocationFlags"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <virtual-method name="begin_animation"
-                      invoker="begin_animation"
-                      version="1.2">
-        <doc xml:whitespace="preserve">Begins an animation of @duration milliseconds, using the provided
-easing @mode
-The easing mode can be specified either as a #ClutterAnimationMode
-or as a logical id returned by clutter_alpha_register_func()
-The result of this function depends on the @manager implementation
-layout manager; the returned instance is owned by the layout
-manager and should not be unreferenced</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">The #ClutterAlpha created by the</doc>
-          <type name="Alpha" c:type="ClutterAlpha*"/>
-        </return-value>
-        <parameters>
-          <parameter name="duration" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the duration of the animation, in milliseconds</doc>
-            <type name="guint" c:type="guint"/>
-          </parameter>
-          <parameter name="mode" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the easing mode of the animation</doc>
-            <type name="gulong" c:type="gulong"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <virtual-method name="create_child_meta" introspectable="0">
-        <return-value>
-          <type name="LayoutMeta" c:type="ClutterLayoutMeta*"/>
-        </return-value>
-        <parameters>
-          <parameter name="container" transfer-ownership="none">
-            <type name="Container" c:type="ClutterContainer*"/>
-          </parameter>
-          <parameter name="actor" transfer-ownership="none">
-            <type name="Actor" c:type="ClutterActor*"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <virtual-method name="end_animation"
-                      invoker="end_animation"
-                      version="1.2">
-        <doc xml:whitespace="preserve">Ends an animation started by clutter_layout_manager_begin_animation()
-The result of this call depends on the @manager implementation</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </virtual-method>
-      <virtual-method name="get_animation_progress"
-                      invoker="get_animation_progress"
-                      version="1.2">
-        <doc xml:whitespace="preserve">Retrieves the progress of the animation, if one has been started by
-clutter_layout_manager_begin_animation()
-The returned value has the same semantics of the #ClutterAlpha:alpha
-value</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the progress of the animation</doc>
-          <type name="gdouble" c:type="gdouble"/>
-        </return-value>
-      </virtual-method>
-      <virtual-method name="get_child_meta_type">
-        <return-value transfer-ownership="none">
-          <type name="GType" c:type="GType"/>
-        </return-value>
-      </virtual-method>
-      <virtual-method name="get_preferred_height"
-                      invoker="get_preferred_height"
-                      version="1.2">
-        <doc xml:whitespace="preserve">Computes the minimum and natural heights of the @container according
-to @manager.
-See also clutter_actor_get_preferred_height()</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="container" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the #ClutterContainer using @manager</doc>
-            <type name="Container" c:type="ClutterContainer*"/>
-          </parameter>
-          <parameter name="for_width" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the width for which the height should be computed, or -1</doc>
-            <type name="gfloat" c:type="gfloat"/>
-          </parameter>
-          <parameter name="minimum_height_p" transfer-ownership="none">
-            <type name="gfloat" c:type="gfloat*"/>
-          </parameter>
-          <parameter name="natural_height_p" transfer-ownership="none">
-            <type name="gfloat" c:type="gfloat*"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <virtual-method name="get_preferred_width"
-                      invoker="get_preferred_width"
-                      version="1.2">
-        <doc xml:whitespace="preserve">Computes the minimum and natural widths of the @container according
-to @manager.
-See also clutter_actor_get_preferred_width()</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="container" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the #ClutterContainer using @manager</doc>
-            <type name="Container" c:type="ClutterContainer*"/>
-          </parameter>
-          <parameter name="for_height" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the height for which the width should be computed, or -1</doc>
-            <type name="gfloat" c:type="gfloat"/>
-          </parameter>
-          <parameter name="minimum_width_p" transfer-ownership="none">
-            <type name="gfloat" c:type="gfloat*"/>
-          </parameter>
-          <parameter name="natural_width_p" transfer-ownership="none">
-            <type name="gfloat" c:type="gfloat*"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <virtual-method name="set_container"
-                      invoker="set_container"
-                      version="1.2">
-        <doc xml:whitespace="preserve">If the #ClutterLayoutManager sub-class allows it, allow
-adding a weak reference of the @container using @manager
-from within the layout manager
-The layout manager should not increase the reference
-count of the @container</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="container" transfer-ownership="none" allow-none="1">
-            <doc xml:whitespace="preserve">a #ClutterContainer using @manager</doc>
-            <type name="Container" c:type="ClutterContainer*"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <method name="allocate"
-              c:identifier="clutter_layout_manager_allocate"
-              version="1.2">
-        <doc xml:whitespace="preserve">Allocates the children of @container given an area
-See also clutter_actor_allocate()</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="container" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the #ClutterContainer using @manager</doc>
-            <type name="Container" c:type="ClutterContainer*"/>
-          </parameter>
-          <parameter name="allocation" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the #ClutterActorBox containing the allocated area of @container</doc>
-            <type name="ActorBox" c:type="ClutterActorBox*"/>
-          </parameter>
-          <parameter name="flags" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the allocation flags</doc>
-            <type name="AllocationFlags" c:type="ClutterAllocationFlags"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="begin_animation"
-              c:identifier="clutter_layout_manager_begin_animation"
-              version="1.2">
-        <doc xml:whitespace="preserve">Begins an animation of @duration milliseconds, using the provided
-easing @mode
-The easing mode can be specified either as a #ClutterAnimationMode
-or as a logical id returned by clutter_alpha_register_func()
-The result of this function depends on the @manager implementation
-layout manager; the returned instance is owned by the layout
-manager and should not be unreferenced</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">The #ClutterAlpha created by the</doc>
-          <type name="Alpha" c:type="ClutterAlpha*"/>
-        </return-value>
-        <parameters>
-          <parameter name="duration" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the duration of the animation, in milliseconds</doc>
-            <type name="guint" c:type="guint"/>
-          </parameter>
-          <parameter name="mode" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the easing mode of the animation</doc>
-            <type name="gulong" c:type="gulong"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="child_get"
-              c:identifier="clutter_layout_manager_child_get"
-              version="1.2"
-              introspectable="0">
-        <doc xml:whitespace="preserve">Retrieves the values for a list of properties out of the
-#ClutterLayoutMeta created by @manager and attached to the
-child of a @container</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="container" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #ClutterContainer using @manager</doc>
-            <type name="Container" c:type="ClutterContainer*"/>
-          </parameter>
-          <parameter name="actor" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #ClutterActor child of @container</doc>
-            <type name="Actor" c:type="ClutterActor*"/>
-          </parameter>
-          <parameter name="first_property" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the name of the first property</doc>
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter transfer-ownership="none">
-            <varargs>
-            </varargs>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="child_get_property"
-              c:identifier="clutter_layout_manager_child_get_property"
-              version="1.2">
-        <doc xml:whitespace="preserve">Gets a property on the #ClutterLayoutMeta created by @manager and
-attached to a child of @container
-The #GValue must already be initialized to the type of the property
-and has to be unset with g_value_unset() after extracting the real
-value out of it</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="container" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #ClutterContainer using @manager</doc>
-            <type name="Container" c:type="ClutterContainer*"/>
-          </parameter>
-          <parameter name="actor" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #ClutterActor child of @container</doc>
-            <type name="Actor" c:type="ClutterActor*"/>
-          </parameter>
-          <parameter name="property_name" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the name of the property to get</doc>
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="value" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #GValue with the value of the property to get</doc>
-            <type name="GObject.Value" c:type="GValue*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="child_set"
-              c:identifier="clutter_layout_manager_child_set"
-              version="1.2"
-              introspectable="0">
-        <doc xml:whitespace="preserve">Sets a list of properties and their values on the #ClutterLayoutMeta
-associated by @manager to a child of @container
-Languages bindings should use clutter_layout_manager_child_set_property()
-instead</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="container" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #ClutterContainer using @manager</doc>
-            <type name="Container" c:type="ClutterContainer*"/>
-          </parameter>
-          <parameter name="actor" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #ClutterActor child of @container</doc>
-            <type name="Actor" c:type="ClutterActor*"/>
-          </parameter>
-          <parameter name="first_property" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the first property name</doc>
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter transfer-ownership="none">
-            <varargs>
-            </varargs>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="child_set_property"
-              c:identifier="clutter_layout_manager_child_set_property"
-              version="1.2">
-        <doc xml:whitespace="preserve">Sets a property on the #ClutterLayoutMeta created by @manager and
-attached to a child of @container</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="container" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #ClutterContainer using @manager</doc>
-            <type name="Container" c:type="ClutterContainer*"/>
-          </parameter>
-          <parameter name="actor" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #ClutterActor child of @container</doc>
-            <type name="Actor" c:type="ClutterActor*"/>
-          </parameter>
-          <parameter name="property_name" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the name of the property to set</doc>
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="value" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #GValue with the value of the property to set</doc>
-            <type name="GObject.Value" c:type="GValue*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="end_animation"
-              c:identifier="clutter_layout_manager_end_animation"
-              version="1.2">
-        <doc xml:whitespace="preserve">Ends an animation started by clutter_layout_manager_begin_animation()
-The result of this call depends on the @manager implementation</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </method>
-      <method name="find_child_property"
-              c:identifier="clutter_layout_manager_find_child_property"
-              version="1.2">
-        <doc xml:whitespace="preserve">Retrieves the #GParamSpec for the layout property @name inside
-the #ClutterLayoutMeta sub-class used by @manager
-or %NULL if no property with that name exists. The returned
-#GParamSpec is owned by the layout manager and should not be
-modified or freed</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">a #GParamSpec describing the property,</doc>
-          <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
-        </return-value>
-        <parameters>
-          <parameter name="name" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the name of the property</doc>
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_animation_progress"
-              c:identifier="clutter_layout_manager_get_animation_progress"
-              version="1.2">
-        <doc xml:whitespace="preserve">Retrieves the progress of the animation, if one has been started by
-clutter_layout_manager_begin_animation()
-The returned value has the same semantics of the #ClutterAlpha:alpha
-value</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the progress of the animation</doc>
-          <type name="gdouble" c:type="gdouble"/>
-        </return-value>
-      </method>
-      <method name="get_child_meta"
-              c:identifier="clutter_layout_manager_get_child_meta"
-              version="1.0">
-        <doc xml:whitespace="preserve">Retrieves the #ClutterLayoutMeta that the layout @manager associated
-to the @actor child of @container, eventually by creating one if the
-#ClutterLayoutManager supports layout properties
-#ClutterLayoutManager does not have layout properties. The returned
-layout meta instance is owned by the #ClutterLayoutManager and it
-should not be unreferenced</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">a #ClutterLayoutMeta, or %NULL if the</doc>
-          <type name="LayoutMeta" c:type="ClutterLayoutMeta*"/>
-        </return-value>
-        <parameters>
-          <parameter name="container" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #ClutterContainer using @manager</doc>
-            <type name="Container" c:type="ClutterContainer*"/>
-          </parameter>
-          <parameter name="actor" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #ClutterActor child of @container</doc>
-            <type name="Actor" c:type="ClutterActor*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_preferred_height"
-              c:identifier="clutter_layout_manager_get_preferred_height"
-              version="1.2">
-        <doc xml:whitespace="preserve">Computes the minimum and natural heights of the @container according
-to @manager.
-See also clutter_actor_get_preferred_height()</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="container" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the #ClutterContainer using @manager</doc>
-            <type name="Container" c:type="ClutterContainer*"/>
-          </parameter>
-          <parameter name="for_width" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the width for which the height should be computed, or -1</doc>
-            <type name="gfloat" c:type="gfloat"/>
-          </parameter>
-          <parameter name="min_height_p"
-                     direction="out"
-                     caller-allocates="0"
-                     transfer-ownership="full"
-                     allow-none="1">
-            <doc xml:whitespace="preserve">return location for the minimum height of the layout, or %NULL</doc>
-            <type name="gfloat" c:type="gfloat*"/>
-          </parameter>
-          <parameter name="nat_height_p"
-                     direction="out"
-                     caller-allocates="0"
-                     transfer-ownership="full"
-                     allow-none="1">
-            <doc xml:whitespace="preserve">return location for the natural height of the layout, or %NULL</doc>
-            <type name="gfloat" c:type="gfloat*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_preferred_width"
-              c:identifier="clutter_layout_manager_get_preferred_width"
-              version="1.2">
-        <doc xml:whitespace="preserve">Computes the minimum and natural widths of the @container according
-to @manager.
-See also clutter_actor_get_preferred_width()</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="container" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the #ClutterContainer using @manager</doc>
-            <type name="Container" c:type="ClutterContainer*"/>
-          </parameter>
-          <parameter name="for_height" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the height for which the width should be computed, or -1</doc>
-            <type name="gfloat" c:type="gfloat"/>
-          </parameter>
-          <parameter name="min_width_p"
-                     direction="out"
-                     caller-allocates="0"
-                     transfer-ownership="full"
-                     allow-none="1">
-            <doc xml:whitespace="preserve">return location for the minimum width of the layout, or %NULL</doc>
-            <type name="gfloat" c:type="gfloat*"/>
-          </parameter>
-          <parameter name="nat_width_p"
-                     direction="out"
-                     caller-allocates="0"
-                     transfer-ownership="full"
-                     allow-none="1">
-            <doc xml:whitespace="preserve">return location for the natural width of the layout, or %NULL</doc>
-            <type name="gfloat" c:type="gfloat*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="layout_changed"
-              c:identifier="clutter_layout_manager_layout_changed"
-              version="1.2">
-        <doc xml:whitespace="preserve">Emits the #ClutterLayoutManager::layout-changed signal on @manager
-This function should only be called by implementations of the
-#ClutterLayoutManager class</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </method>
-      <method name="list_child_properties"
-              c:identifier="clutter_layout_manager_list_child_properties"
-              version="1.2">
-        <doc xml:whitespace="preserve">Retrieves all the #GParamSpec&lt;!-- --&gt;s for the layout properties
-stored inside the #ClutterLayoutMeta sub-class used by @manager
-%NULL-terminated array of #GParamSpec&lt;!-- --&gt;s. Use g_free() to free the
-resources allocated for the array</doc>
-        <return-value transfer-ownership="full">
-          <doc xml:whitespace="preserve">the newly-allocated,</doc>
-          <array length="0" c:type="GParamSpec**">
-            <type name="GObject.ParamSpec"/>
-          </array>
-        </return-value>
-        <parameters>
-          <parameter name="n_pspecs"
-                     direction="out"
-                     caller-allocates="0"
-                     transfer-ownership="full">
-            <doc xml:whitespace="preserve">return location for the number of returned #GParamSpec&lt;!-- --&gt;s</doc>
-            <type name="guint" c:type="guint*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_container"
-              c:identifier="clutter_layout_manager_set_container"
-              version="1.2">
-        <doc xml:whitespace="preserve">If the #ClutterLayoutManager sub-class allows it, allow
-adding a weak reference of the @container using @manager
-from within the layout manager
-The layout manager should not increase the reference
-count of the @container</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="container" transfer-ownership="none" allow-none="1">
-            <doc xml:whitespace="preserve">a #ClutterContainer using @manager</doc>
-            <type name="Container" c:type="ClutterContainer*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <field name="parent_instance">
-        <type name="GObject.InitiallyUnowned" c:type="GInitiallyUnowned"/>
-      </field>
-      <field name="dummy">
-        <type name="gpointer" c:type="gpointer"/>
-      </field>
-      <glib:signal name="layout-changed" version="1.2">
-        <doc xml:whitespace="preserve">The ::layout-changed signal is emitted each time a layout manager
-has been changed. Every #ClutterActor using the @manager instance
-as a layout manager should connect a handler to the ::layout-changed
-signal and queue a relayout on themselves:
-|[
-static void layout_changed (ClutterLayoutManager *manager,
-ClutterActor         *self)
-{
-clutter_actor_queue_relayout (self);
-}
-...
-self-&gt;manager = g_object_ref_sink (manager);
-g_signal_connect (self-&gt;manager, "layout-changed",
-G_CALLBACK (layout_changed),
-self);
-]|
-Sub-classes of #ClutterLayoutManager that implement a layout that
-can be controlled or changed using parameters should emit the
-::layout-changed signal whenever one of the parameters changes,
-by using clutter_layout_manager_layout_changed().</doc>
-        <return-value transfer-ownership="none">
-          <type name="none"/>
-        </return-value>
-      </glib:signal>
-    </class>
-    <record name="LayoutManagerClass"
-            c:type="ClutterLayoutManagerClass"
-            glib:is-gtype-struct-for="LayoutManager"
-            version="1.2">
-      <doc xml:whitespace="preserve">The #ClutterLayoutManagerClass structure contains only private
-data and should be accessed using the provided API</doc>
-      <field name="parent_class">
-        <type name="GObject.InitiallyUnownedClass"
-              c:type="GInitiallyUnownedClass"/>
-      </field>
-      <field name="get_preferred_width">
-        <callback name="get_preferred_width">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="manager" transfer-ownership="none">
-              <type name="LayoutManager" c:type="ClutterLayoutManager*"/>
-            </parameter>
-            <parameter name="container" transfer-ownership="none">
-              <doc xml:whitespace="preserve">the #ClutterContainer using @manager</doc>
-              <type name="Container" c:type="ClutterContainer*"/>
-            </parameter>
-            <parameter name="for_height" transfer-ownership="none">
-              <doc xml:whitespace="preserve">the height for which the width should be computed, or -1</doc>
-              <type name="gfloat" c:type="gfloat"/>
-            </parameter>
-            <parameter name="minimum_width_p" transfer-ownership="none">
-              <type name="gfloat" c:type="gfloat*"/>
-            </parameter>
-            <parameter name="natural_width_p" transfer-ownership="none">
-              <type name="gfloat" c:type="gfloat*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="get_preferred_height">
-        <callback name="get_preferred_height">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="manager" transfer-ownership="none">
-              <type name="LayoutManager" c:type="ClutterLayoutManager*"/>
-            </parameter>
-            <parameter name="container" transfer-ownership="none">
-              <doc xml:whitespace="preserve">the #ClutterContainer using @manager</doc>
-              <type name="Container" c:type="ClutterContainer*"/>
-            </parameter>
-            <parameter name="for_width" transfer-ownership="none">
-              <doc xml:whitespace="preserve">the width for which the height should be computed, or -1</doc>
-              <type name="gfloat" c:type="gfloat"/>
-            </parameter>
-            <parameter name="minimum_height_p" transfer-ownership="none">
-              <type name="gfloat" c:type="gfloat*"/>
-            </parameter>
-            <parameter name="natural_height_p" transfer-ownership="none">
-              <type name="gfloat" c:type="gfloat*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="allocate">
-        <callback name="allocate">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="manager" transfer-ownership="none">
-              <type name="LayoutManager" c:type="ClutterLayoutManager*"/>
-            </parameter>
-            <parameter name="container" transfer-ownership="none">
-              <doc xml:whitespace="preserve">the #ClutterContainer using @manager</doc>
-              <type name="Container" c:type="ClutterContainer*"/>
-            </parameter>
-            <parameter name="allocation" transfer-ownership="none">
-              <doc xml:whitespace="preserve">the #ClutterActorBox containing the allocated area of @container</doc>
-              <type name="ActorBox" c:type="ClutterActorBox*"/>
-            </parameter>
-            <parameter name="flags" transfer-ownership="none">
-              <doc xml:whitespace="preserve">the allocation flags</doc>
-              <type name="AllocationFlags" c:type="ClutterAllocationFlags"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="set_container">
-        <callback name="set_container">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="manager" transfer-ownership="none">
-              <type name="LayoutManager" c:type="ClutterLayoutManager*"/>
-            </parameter>
-            <parameter name="container"
-                       transfer-ownership="none"
-                       allow-none="1">
-              <doc xml:whitespace="preserve">a #ClutterContainer using @manager</doc>
-              <type name="Container" c:type="ClutterContainer*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="get_child_meta_type">
-        <callback name="get_child_meta_type">
-          <return-value transfer-ownership="none">
-            <type name="GType" c:type="GType"/>
-          </return-value>
-          <parameters>
-            <parameter name="manager" transfer-ownership="none">
-              <type name="LayoutManager" c:type="ClutterLayoutManager*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="create_child_meta" introspectable="0">
-        <callback name="create_child_meta" introspectable="0">
-          <return-value>
-            <type name="LayoutMeta" c:type="ClutterLayoutMeta*"/>
-          </return-value>
-          <parameters>
-            <parameter name="manager" transfer-ownership="none">
-              <type name="LayoutManager" c:type="ClutterLayoutManager*"/>
-            </parameter>
-            <parameter name="container" transfer-ownership="none">
-              <type name="Container" c:type="ClutterContainer*"/>
-            </parameter>
-            <parameter name="actor" transfer-ownership="none">
-              <type name="Actor" c:type="ClutterActor*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="begin_animation">
-        <callback name="begin_animation">
-          <return-value transfer-ownership="none">
-            <doc xml:whitespace="preserve">The #ClutterAlpha created by the</doc>
-            <type name="Alpha" c:type="ClutterAlpha*"/>
-          </return-value>
-          <parameters>
-            <parameter name="manager" transfer-ownership="none">
-              <type name="LayoutManager" c:type="ClutterLayoutManager*"/>
-            </parameter>
-            <parameter name="duration" transfer-ownership="none">
-              <doc xml:whitespace="preserve">the duration of the animation, in milliseconds</doc>
-              <type name="guint" c:type="guint"/>
-            </parameter>
-            <parameter name="mode" transfer-ownership="none">
-              <doc xml:whitespace="preserve">the easing mode of the animation</doc>
-              <type name="gulong" c:type="gulong"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="get_animation_progress">
-        <callback name="get_animation_progress">
-          <return-value transfer-ownership="none">
-            <doc xml:whitespace="preserve">the progress of the animation</doc>
-            <type name="gdouble" c:type="gdouble"/>
-          </return-value>
-          <parameters>
-            <parameter name="manager" transfer-ownership="none">
-              <type name="LayoutManager" c:type="ClutterLayoutManager*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="end_animation">
-        <callback name="end_animation">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="manager" transfer-ownership="none">
-              <type name="LayoutManager" c:type="ClutterLayoutManager*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="layout_changed">
-        <callback name="layout_changed">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="manager" transfer-ownership="none">
-              <type name="LayoutManager" c:type="ClutterLayoutManager*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="_clutter_padding_1" introspectable="0">
-        <callback name="_clutter_padding_1">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-      <field name="_clutter_padding_2" introspectable="0">
-        <callback name="_clutter_padding_2">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-      <field name="_clutter_padding_3" introspectable="0">
-        <callback name="_clutter_padding_3">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-      <field name="_clutter_padding_4" introspectable="0">
-        <callback name="_clutter_padding_4">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-      <field name="_clutter_padding_5" introspectable="0">
-        <callback name="_clutter_padding_5">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-      <field name="_clutter_padding_6" introspectable="0">
-        <callback name="_clutter_padding_6">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-      <field name="_clutter_padding_7" introspectable="0">
-        <callback name="_clutter_padding_7">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-      <field name="_clutter_padding_8" introspectable="0">
-        <callback name="_clutter_padding_8">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-    </record>
-    <class name="LayoutMeta"
-           c:symbol-prefix="layout_meta"
-           c:type="ClutterLayoutMeta"
-           parent="ChildMeta"
-           abstract="1"
-           glib:type-name="ClutterLayoutMeta"
-           glib:get-type="clutter_layout_meta_get_type"
-           glib:type-struct="LayoutMetaClass">
-      <method name="get_manager"
-              c:identifier="clutter_layout_meta_get_manager"
-              version="1.2">
-        <doc xml:whitespace="preserve">Retrieves the actor wrapped by @data</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">a #ClutterLayoutManager</doc>
-          <type name="LayoutManager" c:type="ClutterLayoutManager*"/>
-        </return-value>
-      </method>
-      <property name="manager"
-                version="1.2"
-                writable="1"
-                construct-only="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">The #ClutterLayoutManager that created this #ClutterLayoutMeta.</doc>
-        <type name="LayoutManager"/>
-      </property>
-      <field name="parent_instance">
-        <type name="ChildMeta" c:type="ClutterChildMeta"/>
-      </field>
-      <field name="manager">
-        <type name="LayoutManager" c:type="ClutterLayoutManager*"/>
-      </field>
-      <field name="dummy0">
-        <type name="gint32" c:type="gint32"/>
-      </field>
-      <field name="dummy1">
-        <type name="gpointer" c:type="gpointer"/>
-      </field>
-    </class>
-    <record name="LayoutMetaClass"
-            c:type="ClutterLayoutMetaClass"
-            glib:is-gtype-struct-for="LayoutMeta"
-            version="1.2">
-      <doc xml:whitespace="preserve">The #ClutterLayoutMetaClass contains only private data and
-should never be accessed directly</doc>
-      <field name="parent_class">
-        <type name="ChildMetaClass" c:type="ClutterChildMetaClass"/>
-      </field>
-      <field name="_clutter_padding1" introspectable="0">
-        <callback name="_clutter_padding1">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-      <field name="_clutter_padding2" introspectable="0">
-        <callback name="_clutter_padding2">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-      <field name="_clutter_padding3" introspectable="0">
-        <callback name="_clutter_padding3">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-      <field name="_clutter_padding4" introspectable="0">
-        <callback name="_clutter_padding4">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-    </record>
-    <constant name="Lbelowdot" value="16784950">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Lcaron" value="421">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Lcedilla" value="934">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Left" value="65361">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="LightBulb" value="269025077">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Linefeed" value="65290">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="LiraSign" value="16785572">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <class name="ListModel"
-           c:symbol-prefix="list_model"
-           c:type="ClutterListModel"
-           version="0.6"
-           parent="Model"
-           glib:type-name="ClutterListModel"
-           glib:get-type="clutter_list_model_get_type"
-           glib:type-struct="ListModelClass">
-      <doc xml:whitespace="preserve">The #ClutterListModel struct contains only private data.</doc>
-      <implements name="Scriptable"/>
-      <constructor name="new"
-                   c:identifier="clutter_list_model_new"
-                   version="0.6"
-                   introspectable="0">
-        <doc xml:whitespace="preserve">Creates a new default model with @n_columns columns with the types 
-and names passed in.
-For example:
-&lt;informalexample&gt;&lt;programlisting&gt;
-model = clutter_list_model_new (3,
-G_TYPE_INT,      "Score",
-G_TYPE_STRING,   "Team",
-GDK_TYPE_PIXBUF, "Logo");
-&lt;/programlisting&gt;&lt;/informalexample&gt;
-will create a new #ClutterModel with three columns of type int,
-string and #GdkPixbuf respectively.
-Note that the name of the column can be set to %NULL, in which case
-the canonical name of the type held by the column will be used as
-the title.</doc>
-        <return-value transfer-ownership="full">
-          <doc xml:whitespace="preserve">a new #ClutterListModel</doc>
-          <type name="Model" c:type="ClutterModel*"/>
-        </return-value>
-        <parameters>
-          <parameter name="n_columns" transfer-ownership="none">
-            <doc xml:whitespace="preserve">number of columns in the model</doc>
-            <type name="guint" c:type="guint"/>
-          </parameter>
-          <parameter transfer-ownership="none">
-            <varargs>
-            </varargs>
-          </parameter>
-        </parameters>
-      </constructor>
-      <function name="newv"
-                c:identifier="clutter_list_model_newv"
-                version="0.6">
-        <doc xml:whitespace="preserve">Non-vararg version of clutter_list_model_new(). This function is
-useful for language bindings.</doc>
-        <return-value transfer-ownership="full">
-          <doc xml:whitespace="preserve">a new default #ClutterModel</doc>
-          <type name="Model" c:type="ClutterModel*"/>
-        </return-value>
-        <parameters>
-          <parameter name="n_columns" transfer-ownership="none">
-            <doc xml:whitespace="preserve">number of columns in the model</doc>
-            <type name="guint" c:type="guint"/>
-          </parameter>
-          <parameter name="types" transfer-ownership="none">
-            <doc xml:whitespace="preserve">an array of #GType types for the columns, from first to last</doc>
-            <type name="GType" c:type="GType*"/>
-          </parameter>
-          <parameter name="names" transfer-ownership="none">
-            <doc xml:whitespace="preserve">an array of names for the columns, from first to last</doc>
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </function>
-      <field name="parent_instance">
-        <type name="Model" c:type="ClutterModel"/>
-      </field>
-      <field name="priv">
-        <type name="ListModelPrivate" c:type="ClutterListModelPrivate*"/>
-      </field>
-    </class>
-    <record name="ListModelClass"
-            c:type="ClutterListModelClass"
-            glib:is-gtype-struct-for="ListModel"
-            version="0.6">
-      <doc xml:whitespace="preserve">The #ClutterListModelClass struct contains only private data.</doc>
-      <field name="parent_class">
-        <type name="ModelClass" c:type="ClutterModelClass"/>
-      </field>
-    </record>
-    <record name="ListModelPrivate"
-            c:type="ClutterListModelPrivate"
-            disguised="1">
-    </record>
-    <constant name="LogOff" value="269025121">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Lstroke" value="419">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="M" value="77">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="MAJOR_VERSION" value="1">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="MICRO_VERSION" value="0">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="MINOR_VERSION" value="4">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Mabovedot" value="16784960">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Macedonia_DSE" value="1717">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Macedonia_GJE" value="1714">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Macedonia_KJE" value="1724">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Macedonia_dse" value="1701">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Macedonia_gje" value="1698">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Macedonia_kje" value="1708">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Mae_Koho" value="65342">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Mail" value="269025049">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="MailForward" value="269025168">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Market" value="269025122">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Massyo" value="65324">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <interface name="Media"
-               c:symbol-prefix="media"
-               c:type="ClutterMedia"
-               version="0.2"
-               glib:type-name="ClutterMedia"
-               glib:get-type="clutter_media_get_type"
-               glib:type-struct="MediaIface">
-      <doc xml:whitespace="preserve">#ClutterMedia is an opaque structure whose members cannot be directly
-accessed</doc>
-      <method name="get_audio_volume"
-              c:identifier="clutter_media_get_audio_volume"
-              version="1.0">
-        <doc xml:whitespace="preserve">Retrieves the playback volume of @media.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">The playback volume between 0.0 and 1.0</doc>
-          <type name="gdouble" c:type="gdouble"/>
-        </return-value>
-      </method>
-      <method name="get_buffer_fill"
-              c:identifier="clutter_media_get_buffer_fill"
-              version="1.0">
-        <doc xml:whitespace="preserve">Retrieves the amount of the stream that is buffered.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the fill level, between 0.0 and 1.0</doc>
-          <type name="gdouble" c:type="gdouble"/>
-        </return-value>
-      </method>
-      <method name="get_can_seek"
-              c:identifier="clutter_media_get_can_seek"
-              version="0.2">
-        <doc xml:whitespace="preserve">Retrieves whether @media is seekable or not.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">%TRUE if @media can seek, %FALSE otherwise.</doc>
-          <type name="gboolean" c:type="gboolean"/>
-        </return-value>
-      </method>
-      <method name="get_duration"
-              c:identifier="clutter_media_get_duration"
-              version="0.2">
-        <doc xml:whitespace="preserve">Retrieves the duration of the media stream that @media represents.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the duration of the media stream, in seconds</doc>
-          <type name="gdouble" c:type="gdouble"/>
-        </return-value>
-      </method>
-      <method name="get_playing"
-              c:identifier="clutter_media_get_playing"
-              version="0.2">
-        <doc xml:whitespace="preserve">Retrieves the playing status of @media.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">%TRUE if playing, %FALSE if stopped.</doc>
-          <type name="gboolean" c:type="gboolean"/>
-        </return-value>
-      </method>
-      <method name="get_progress"
-              c:identifier="clutter_media_get_progress"
-              version="1.0">
-        <doc xml:whitespace="preserve">Retrieves the playback progress of @media.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the playback progress, between 0.0 and 1.0</doc>
-          <type name="gdouble" c:type="gdouble"/>
-        </return-value>
-      </method>
-      <method name="get_subtitle_font_name"
-              c:identifier="clutter_media_get_subtitle_font_name"
-              version="1.2">
-        <doc xml:whitespace="preserve">Retrieves the font name currently used.
-to free the returned string</doc>
-        <return-value transfer-ownership="full">
-          <doc xml:whitespace="preserve">a string containing the font name. Use g_free()</doc>
-          <type name="utf8" c:type="gchar*"/>
-        </return-value>
-      </method>
-      <method name="get_subtitle_uri"
-              c:identifier="clutter_media_get_subtitle_uri"
-              version="1.2">
-        <doc xml:whitespace="preserve">Retrieves the URI of the subtitle file in use.
-to free the returned string</doc>
-        <return-value transfer-ownership="full">
-          <doc xml:whitespace="preserve">the URI of the subtitle file. Use g_free()</doc>
-          <type name="utf8" c:type="gchar*"/>
-        </return-value>
-      </method>
-      <method name="get_uri"
-              c:identifier="clutter_media_get_uri"
-              version="0.2">
-        <doc xml:whitespace="preserve">Retrieves the URI from @media.
-to free the returned string</doc>
-        <return-value transfer-ownership="full">
-          <doc xml:whitespace="preserve">the URI of the media stream. Use g_free()</doc>
-          <type name="utf8" c:type="gchar*"/>
-        </return-value>
-      </method>
-      <method name="set_audio_volume"
-              c:identifier="clutter_media_set_audio_volume"
-              version="1.0">
-        <doc xml:whitespace="preserve">Sets the playback volume of @media to @volume.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="volume" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the volume as a double between 0.0 and 1.0</doc>
-            <type name="gdouble" c:type="gdouble"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_filename"
-              c:identifier="clutter_media_set_filename"
-              version="0.2">
-        <doc xml:whitespace="preserve">Sets the source of @media using a file path.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="filename" transfer-ownership="none">
-            <doc xml:whitespace="preserve">A filename</doc>
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_playing"
-              c:identifier="clutter_media_set_playing"
-              version="0.2">
-        <doc xml:whitespace="preserve">Starts or stops playing of @media.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="playing" transfer-ownership="none">
-            <doc xml:whitespace="preserve">%TRUE to start playing</doc>
-            <type name="gboolean" c:type="gboolean"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_progress"
-              c:identifier="clutter_media_set_progress"
-              version="1.0">
-        <doc xml:whitespace="preserve">Sets the playback progress of @media. The @progress is
-a normalized value between 0.0 (begin) and 1.0 (end).</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="progress" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the progress of the playback, between 0.0 and 1.0</doc>
-            <type name="gdouble" c:type="gdouble"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_subtitle_font_name"
-              c:identifier="clutter_media_set_subtitle_font_name"
-              version="1.2">
-        <doc xml:whitespace="preserve">Sets the font used by the subtitle renderer. The @font_name string must be
-either %NULL, which means that the default font name of the underlying
-implementation will be used; or must follow the grammar recognized by
-pango_font_description_from_string() like:
-|[
-clutter_media_set_subtitle_font_name (media, "Sans 24pt");
-]|</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="font_name" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a font name, or %NULL to set the default font name</doc>
-            <type name="utf8" c:type="char*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_subtitle_uri"
-              c:identifier="clutter_media_set_subtitle_uri"
-              version="1.2">
-        <doc xml:whitespace="preserve">Sets the location of a subtitle file to display while playing @media.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="uri" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the URI of a subtitle file</doc>
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_uri"
-              c:identifier="clutter_media_set_uri"
-              version="0.2">
-        <doc xml:whitespace="preserve">Sets the URI of @media to @uri.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="uri" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the URI of the media stream</doc>
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <property name="audio-volume"
-                version="1.0"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">The volume of the audio, as a normalized value between
-0.0 and 1.0.</doc>
-        <type name="gdouble"/>
-      </property>
-      <property name="buffer-fill" version="1.0" transfer-ownership="none">
-        <doc xml:whitespace="preserve">The fill level of the buffer for the current stream,
-as a value between 0.0 and 1.0.</doc>
-        <type name="gdouble"/>
-      </property>
-      <property name="can-seek" version="0.2" transfer-ownership="none">
-        <doc xml:whitespace="preserve">Whether the current stream is seekable.</doc>
-        <type name="gboolean"/>
-      </property>
-      <property name="duration" version="0.2" transfer-ownership="none">
-        <doc xml:whitespace="preserve">The duration of the current stream, in seconds</doc>
-        <type name="gdouble"/>
-      </property>
-      <property name="playing"
-                version="0.2"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">Whether the #ClutterMedia actor is playing.</doc>
-        <type name="gboolean"/>
-      </property>
-      <property name="progress"
-                version="1.0"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">The current progress of the playback, as a normalized
-value between 0.0 and 1.0.</doc>
-        <type name="gdouble"/>
-      </property>
-      <property name="subtitle-font-name"
-                version="1.2"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">The font used to display subtitles. The font description has to
-follow the same grammar as the one recognized by
-pango_font_description_from_string().</doc>
-        <type name="utf8"/>
-      </property>
-      <property name="subtitle-uri"
-                version="1.2"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">The location of a subtitle file, expressed as a valid URI.</doc>
-        <type name="utf8"/>
-      </property>
-      <property name="uri"
-                version="0.2"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">The location of a media file, expressed as a valid URI.</doc>
-        <type name="utf8"/>
-      </property>
-      <glib:signal name="eos" version="0.2">
-        <doc xml:whitespace="preserve">The ::eos signal is emitted each time the media stream ends.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none"/>
-        </return-value>
-      </glib:signal>
-      <glib:signal name="error" version="0.2">
-        <doc xml:whitespace="preserve">The ::error signal is emitted each time an error occurred.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none"/>
-        </return-value>
-        <parameters>
-          <parameter name="object" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the #GError</doc>
-            <type name="gpointer"/>
-          </parameter>
-        </parameters>
-      </glib:signal>
-    </interface>
-    <record name="MediaIface"
-            c:type="ClutterMediaIface"
-            glib:is-gtype-struct-for="Media"
-            version="0.2">
-      <doc xml:whitespace="preserve">Interface vtable for #ClutterMedia implementations</doc>
-      <field name="base_iface">
-        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
-      </field>
-      <field name="eos">
-        <callback name="eos">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="media" transfer-ownership="none">
-              <type name="Media" c:type="ClutterMedia*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="error">
-        <callback name="error">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="media" transfer-ownership="none">
-              <type name="Media" c:type="ClutterMedia*"/>
-            </parameter>
-            <parameter name="error" transfer-ownership="none">
-              <type name="GLib.Error" c:type="GError*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-    </record>
-    <constant name="Meeting" value="269025123">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Memo" value="269025054">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Menu" value="65383">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="MenuKB" value="269025125">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="MenuPB" value="269025126">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Messenger" value="269025166">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Meta_L" value="65511">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Meta_R" value="65512">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="MillSign" value="16785573">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="ModeLock" value="269025025">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Mode_switch" value="65406">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <class name="Model"
-           c:symbol-prefix="model"
-           c:type="ClutterModel"
-           version="0.6"
-           parent="GObject.Object"
-           abstract="1"
-           glib:type-name="ClutterModel"
-           glib:get-type="clutter_model_get_type"
-           glib:type-struct="ModelClass">
-      <doc xml:whitespace="preserve">Base class for list models. The #ClutterModel structure contains
-only private data and should be manipulated using the provided
-API.</doc>
-      <implements name="Scriptable"/>
-      <virtual-method name="get_column_name"
-                      invoker="get_column_name"
-                      version="0.6">
-        <doc xml:whitespace="preserve">Retrieves the name of the @column
-string, and it should not be modified or freed</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the name of the column. The model holds the returned</doc>
-          <type name="utf8" c:type="gchar*"/>
-        </return-value>
-        <parameters>
-          <parameter name="column" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the column number</doc>
-            <type name="guint" c:type="guint"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <virtual-method name="get_column_type"
-                      invoker="get_column_type"
-                      version="0.6">
-        <doc xml:whitespace="preserve">Retrieves the type of the @column.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the type of the column.</doc>
-          <type name="GType" c:type="GType"/>
-        </return-value>
-        <parameters>
-          <parameter name="column" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the column number</doc>
-            <type name="guint" c:type="guint"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <virtual-method name="get_iter_at_row"
-                      invoker="get_iter_at_row"
-                      version="0.6">
-        <doc xml:whitespace="preserve">Retrieves a #ClutterModelIter representing the row at the given index.
-If a filter function has been set using clutter_model_set_filter()
-then the @model implementation will return the first non filtered
-row.
-out of bounds. When done using the iterator object, call g_object_unref()
-to deallocate its resources</doc>
-        <return-value transfer-ownership="full">
-          <doc xml:whitespace="preserve">A new #ClutterModelIter, or %NULL if @row was</doc>
-          <type name="ModelIter" c:type="ClutterModelIter*"/>
-        </return-value>
-        <parameters>
-          <parameter name="row" transfer-ownership="none">
-            <doc xml:whitespace="preserve">position of the row to retrieve</doc>
-            <type name="guint" c:type="guint"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <virtual-method name="get_n_columns"
-                      invoker="get_n_columns"
-                      version="0.6">
-        <doc xml:whitespace="preserve">Retrieves the number of columns inside @model.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the number of columns</doc>
-          <type name="guint" c:type="guint"/>
-        </return-value>
-      </virtual-method>
-      <virtual-method name="get_n_rows" invoker="get_n_rows" version="0.6">
-        <doc xml:whitespace="preserve">Retrieves the number of rows inside @model, eventually taking
-into account any filtering function set using clutter_model_set_filter().
-the length of the filtered @model is returned.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">The length of the @model. If there is a filter set, then</doc>
-          <type name="guint" c:type="guint"/>
-        </return-value>
-      </virtual-method>
-      <virtual-method name="insert_row" introspectable="0">
-        <return-value>
-          <type name="ModelIter" c:type="ClutterModelIter*"/>
-        </return-value>
-        <parameters>
-          <parameter name="index_" transfer-ownership="none">
-            <type name="gint" c:type="gint"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <virtual-method name="remove_row">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="row" transfer-ownership="none">
-            <type name="guint" c:type="guint"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <virtual-method name="resort" introspectable="0">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="func" transfer-ownership="none" closure="1">
-            <type name="ModelSortFunc" c:type="ClutterModelSortFunc"/>
-          </parameter>
-          <parameter name="data" transfer-ownership="none">
-            <type name="gpointer" c:type="gpointer"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <method name="append"
-              c:identifier="clutter_model_append"
-              version="0.6"
-              introspectable="0">
-        <doc xml:whitespace="preserve">Creates and appends a new row to the #ClutterModel, setting the
-row values upon creation. For example, to append a new row where
-column 0 is type %G_TYPE_INT and column 1 is of type %G_TYPE_STRING:
-&lt;informalexample&gt;&lt;programlisting&gt;
-ClutterModel *model;
-model = clutter_model_default_new (2,
-G_TYPE_INT,    "Score",
-G_TYPE_STRING, "Team");
-clutter_model_append (model, 0, 42, 1, "Team #1", -1);
-&lt;/programlisting&gt;&lt;/informalexample&gt;</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter transfer-ownership="none">
-            <varargs>
-            </varargs>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="appendv"
-              c:identifier="clutter_model_appendv"
-              version="0.6">
-        <doc xml:whitespace="preserve">Creates and appends a new row to the #ClutterModel, setting the row
-values for the given @columns upon creation.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="n_columns" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the number of columns and values</doc>
-            <type name="guint" c:type="guint"/>
-          </parameter>
-          <parameter name="columns" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a vector with the columns to set</doc>
-            <array length="0" c:type="guint*">
-              <type name="guint"/>
-            </array>
-          </parameter>
-          <parameter name="values" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a vector with the values</doc>
-            <array length="0" c:type="GValue*">
-              <type name="GObject.Value"/>
-            </array>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="filter_iter"
-              c:identifier="clutter_model_filter_iter"
-              version="0.6">
-        <doc xml:whitespace="preserve">Checks whether the row pointer by @iter should be filtered or not using
-the filtering function set on @model.
-This function should be used only by subclasses of #ClutterModel.
-%FALSE otherwise</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">%TRUE if the row should be displayed,</doc>
-          <type name="gboolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="iter" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the row to filter</doc>
-            <type name="ModelIter" c:type="ClutterModelIter*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="filter_row"
-              c:identifier="clutter_model_filter_row"
-              version="0.6">
-        <doc xml:whitespace="preserve">Checks whether @row should be filtered or not using the
-filtering function set on @model.
-This function should be used only by subclasses of #ClutterModel.
-%FALSE otherwise</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">%TRUE if the row should be displayed,</doc>
-          <type name="gboolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="row" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the row to filter</doc>
-            <type name="guint" c:type="guint"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="foreach"
-              c:identifier="clutter_model_foreach"
-              version="0.6">
-        <doc xml:whitespace="preserve">Calls @func for each row in the model.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="func"
-                     transfer-ownership="none"
-                     scope="call"
-                     closure="1">
-            <doc xml:whitespace="preserve">a #ClutterModelForeachFunc</doc>
-            <type name="ModelForeachFunc" c:type="ClutterModelForeachFunc"/>
-          </parameter>
-          <parameter name="user_data" transfer-ownership="none">
-            <doc xml:whitespace="preserve">user data to pass to @func</doc>
-            <type name="gpointer" c:type="gpointer"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_column_name"
-              c:identifier="clutter_model_get_column_name"
-              version="0.6">
-        <doc xml:whitespace="preserve">Retrieves the name of the @column
-string, and it should not be modified or freed</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the name of the column. The model holds the returned</doc>
-          <type name="utf8" c:type="gchar*"/>
-        </return-value>
-        <parameters>
-          <parameter name="column" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the column number</doc>
-            <type name="guint" c:type="guint"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_column_type"
-              c:identifier="clutter_model_get_column_type"
-              version="0.6">
-        <doc xml:whitespace="preserve">Retrieves the type of the @column.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the type of the column.</doc>
-          <type name="GType" c:type="GType"/>
-        </return-value>
-        <parameters>
-          <parameter name="column" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the column number</doc>
-            <type name="guint" c:type="guint"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_filter_set"
-              c:identifier="clutter_model_get_filter_set"
-              version="1.0">
-        <doc xml:whitespace="preserve">Returns whether the @model has a filter in place, set
-using clutter_model_set_filter()</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">%TRUE if a filter is set</doc>
-          <type name="gboolean" c:type="gboolean"/>
-        </return-value>
-      </method>
-      <method name="get_first_iter"
-              c:identifier="clutter_model_get_first_iter"
-              version="0.6">
-        <doc xml:whitespace="preserve">Retrieves a #ClutterModelIter representing the first non-filtered
-row in @model.
-Call g_object_unref() when done using it</doc>
-        <return-value transfer-ownership="full">
-          <doc xml:whitespace="preserve">A new #ClutterModelIter.</doc>
-          <type name="ModelIter" c:type="ClutterModelIter*"/>
-        </return-value>
-      </method>
-      <method name="get_iter_at_row"
-              c:identifier="clutter_model_get_iter_at_row"
-              version="0.6">
-        <doc xml:whitespace="preserve">Retrieves a #ClutterModelIter representing the row at the given index.
-If a filter function has been set using clutter_model_set_filter()
-then the @model implementation will return the first non filtered
-row.
-out of bounds. When done using the iterator object, call g_object_unref()
-to deallocate its resources</doc>
-        <return-value transfer-ownership="full">
-          <doc xml:whitespace="preserve">A new #ClutterModelIter, or %NULL if @row was</doc>
-          <type name="ModelIter" c:type="ClutterModelIter*"/>
-        </return-value>
-        <parameters>
-          <parameter name="row" transfer-ownership="none">
-            <doc xml:whitespace="preserve">position of the row to retrieve</doc>
-            <type name="guint" c:type="guint"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_last_iter"
-              c:identifier="clutter_model_get_last_iter"
-              version="0.6">
-        <doc xml:whitespace="preserve">Retrieves a #ClutterModelIter representing the last non-filtered
-row in @model.
-Call g_object_unref() when done using it</doc>
-        <return-value transfer-ownership="full">
-          <doc xml:whitespace="preserve">A new #ClutterModelIter.</doc>
-          <type name="ModelIter" c:type="ClutterModelIter*"/>
-        </return-value>
-      </method>
-      <method name="get_n_columns"
-              c:identifier="clutter_model_get_n_columns"
-              version="0.6">
-        <doc xml:whitespace="preserve">Retrieves the number of columns inside @model.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the number of columns</doc>
-          <type name="guint" c:type="guint"/>
-        </return-value>
-      </method>
-      <method name="get_n_rows"
-              c:identifier="clutter_model_get_n_rows"
-              version="0.6">
-        <doc xml:whitespace="preserve">Retrieves the number of rows inside @model, eventually taking
-into account any filtering function set using clutter_model_set_filter().
-the length of the filtered @model is returned.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">The length of the @model. If there is a filter set, then</doc>
-          <type name="guint" c:type="guint"/>
-        </return-value>
-      </method>
-      <method name="get_sorting_column"
-              c:identifier="clutter_model_get_sorting_column"
-              version="0.6">
-        <doc xml:whitespace="preserve">Retrieves the number of column used for sorting the @model.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">a column number, or -1 if the model is not sorted</doc>
-          <type name="gint" c:type="gint"/>
-        </return-value>
-      </method>
-      <method name="insert"
-              c:identifier="clutter_model_insert"
-              version="0.6"
-              introspectable="0">
-        <doc xml:whitespace="preserve">Inserts a new row to the #ClutterModel at @row, setting the row
-values upon creation. For example, to insert a new row at index 100,
-where column 0 is type %G_TYPE_INT and column 1 is of type
-%G_TYPE_STRING:
-&lt;informalexample&gt;&lt;programlisting&gt;
-ClutterModel *model;
-model = clutter_model_default_new (2,
-G_TYPE_INT,    "Score",
-G_TYPE_STRING, "Team");
-clutter_model_insert (model, 3, 0, 42, 1, "Team #1", -1);
-&lt;/programlisting&gt;&lt;/informalexample&gt;</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="row" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the position to insert the new row</doc>
-            <type name="guint" c:type="guint"/>
-          </parameter>
-          <parameter transfer-ownership="none">
-            <varargs>
-            </varargs>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="insert_value"
-              c:identifier="clutter_model_insert_value"
-              version="0.6">
-        <doc xml:whitespace="preserve">Sets the data in the cell specified by @iter and @column. The type of 
-not exist then it is created.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="row" transfer-ownership="none">
-            <doc xml:whitespace="preserve">position of the row to modify</doc>
-            <type name="guint" c:type="guint"/>
-          </parameter>
-          <parameter name="column" transfer-ownership="none">
-            <doc xml:whitespace="preserve">column to modify</doc>
-            <type name="guint" c:type="guint"/>
-          </parameter>
-          <parameter name="value" transfer-ownership="none">
-            <doc xml:whitespace="preserve">new value for the cell</doc>
-            <type name="GObject.Value" c:type="GValue*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="insertv"
-              c:identifier="clutter_model_insertv"
-              version="0.6">
-        <doc xml:whitespace="preserve">Inserts data at @row into the #ClutterModel, setting the row
-values for the given @columns upon creation.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="row" transfer-ownership="none">
-            <doc xml:whitespace="preserve">row index</doc>
-            <type name="guint" c:type="guint"/>
-          </parameter>
-          <parameter name="n_columns" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the number of columns and values to set</doc>
-            <type name="guint" c:type="guint"/>
-          </parameter>
-          <parameter name="columns" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a vector containing the columns to set</doc>
-            <array length="1" c:type="guint*">
-              <type name="guint"/>
-            </array>
-          </parameter>
-          <parameter name="values" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a vector containing the values for the cells</doc>
-            <array length="1" c:type="GValue*">
-              <type name="GObject.Value"/>
-            </array>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="prepend"
-              c:identifier="clutter_model_prepend"
-              version="0.6"
-              introspectable="0">
-        <doc xml:whitespace="preserve">Creates and prepends a new row to the #ClutterModel, setting the row
-values upon creation. For example, to prepend a new row where column 0
-is type %G_TYPE_INT and column 1 is of type %G_TYPE_STRING:
-&lt;informalexample&gt;&lt;programlisting&gt;
-ClutterModel *model;
-model = clutter_model_default_new (2,
-G_TYPE_INT,    "Score",
-G_TYPE_STRING, "Team");
-clutter_model_prepend (model, 0, 42, 1, "Team #1", -1);
-&lt;/programlisting&gt;&lt;/informalexample&gt;</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter transfer-ownership="none">
-            <varargs>
-            </varargs>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="prependv"
-              c:identifier="clutter_model_prependv"
-              version="0.6">
-        <doc xml:whitespace="preserve">Creates and prepends a new row to the #ClutterModel, setting the row
-values for the given @columns upon creation.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="n_columns" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the number of columns and values to set</doc>
-            <type name="guint" c:type="guint"/>
-          </parameter>
-          <parameter name="columns" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a vector containing the columns to set</doc>
-            <array length="0" c:type="guint*">
-              <type name="guint"/>
-            </array>
-          </parameter>
-          <parameter name="values" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a vector containing the values for the cells</doc>
-            <array length="0" c:type="GValue*">
-              <type name="GObject.Value"/>
-            </array>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="remove" c:identifier="clutter_model_remove" version="0.6">
-        <doc xml:whitespace="preserve">Removes the row at the given position from the model.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="row" transfer-ownership="none">
-            <doc xml:whitespace="preserve">position of row to remove</doc>
-            <type name="guint" c:type="guint"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="resort" c:identifier="clutter_model_resort" version="0.6">
-        <doc xml:whitespace="preserve">Force a resort on the @model. This function should only be
-used by subclasses of #ClutterModel.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </method>
-      <method name="set_filter"
-              c:identifier="clutter_model_set_filter"
-              version="0.6">
-        <doc xml:whitespace="preserve">Filters the @model using the given filtering function.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="func"
-                     transfer-ownership="none"
-                     scope="notified"
-                     closure="1"
-                     destroy="2">
-            <doc xml:whitespace="preserve">a #ClutterModelFilterFunc, or #NULL</doc>
-            <type name="ModelFilterFunc" c:type="ClutterModelFilterFunc"/>
-          </parameter>
-          <parameter name="user_data" transfer-ownership="none">
-            <doc xml:whitespace="preserve">user data to pass to @func, or #NULL</doc>
-            <type name="gpointer" c:type="gpointer"/>
-          </parameter>
-          <parameter name="notify" transfer-ownership="none" scope="async">
-            <doc xml:whitespace="preserve">destroy notifier of @user_data, or #NULL</doc>
-            <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_names"
-              c:identifier="clutter_model_set_names"
-              version="0.6">
-        <doc xml:whitespace="preserve">Assigns a name to the columns of a #ClutterModel.
-This function is meant primarily for #GObjects that inherit from
-#ClutterModel, and should only be used when contructing a #ClutterModel.
-It will not work after the initial creation of the #ClutterModel.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="n_columns" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the number of column names</doc>
-            <type name="guint" c:type="guint"/>
-          </parameter>
-          <parameter name="names" transfer-ownership="none">
-            <doc xml:whitespace="preserve">an array of strings</doc>
-            <array length="0" c:type="gchar*">
-              <type name="utf8"/>
-            </array>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_sort"
-              c:identifier="clutter_model_set_sort"
-              version="0.6">
-        <doc xml:whitespace="preserve">Sorts @model using the given sorting function.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="column" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the column to sort on</doc>
-            <type name="guint" c:type="guint"/>
-          </parameter>
-          <parameter name="func"
-                     transfer-ownership="none"
-                     scope="notified"
-                     closure="2"
-                     destroy="3">
-            <doc xml:whitespace="preserve">a #ClutterModelSortFunc, or #NULL</doc>
-            <type name="ModelSortFunc" c:type="ClutterModelSortFunc"/>
-          </parameter>
-          <parameter name="user_data" transfer-ownership="none">
-            <doc xml:whitespace="preserve">user data to pass to @func, or #NULL</doc>
-            <type name="gpointer" c:type="gpointer"/>
-          </parameter>
-          <parameter name="notify" transfer-ownership="none" scope="async">
-            <doc xml:whitespace="preserve">destroy notifier of @user_data, or #NULL</doc>
-            <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_sorting_column"
-              c:identifier="clutter_model_set_sorting_column"
-              version="0.6">
-        <doc xml:whitespace="preserve">Sets the model to sort by @column. If @column is a negative value
-the sorting column will be unset.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="column" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the column of the @model to sort, or -1</doc>
-            <type name="gint" c:type="gint"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_types"
-              c:identifier="clutter_model_set_types"
-              version="0.6">
-        <doc xml:whitespace="preserve">Sets the types of the columns inside a #ClutterModel.
-This function is meant primarily for #GObjects that inherit from
-#ClutterModel, and should only be used when contructing a #ClutterModel.
-It will not work after the initial creation of the #ClutterModel.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="n_columns" transfer-ownership="none">
-            <doc xml:whitespace="preserve">number of columns for the model</doc>
-            <type name="guint" c:type="guint"/>
-          </parameter>
-          <parameter name="types" transfer-ownership="none">
-            <doc xml:whitespace="preserve">an array of #GType types</doc>
-            <array length="0" c:type="GType*">
-              <type name="GType"/>
-            </array>
-          </parameter>
-        </parameters>
-      </method>
-      <property name="filter-set" version="1.0" transfer-ownership="none">
-        <doc xml:whitespace="preserve">Whether the #ClutterModel has a filter set
-This property is set to %TRUE if a filter function has been
-set using clutter_model_set_filter()</doc>
-        <type name="gboolean"/>
-      </property>
-      <field name="parent_instance">
-        <type name="GObject.Object" c:type="GObject"/>
-      </field>
-      <field name="priv">
-        <type name="ModelPrivate" c:type="ClutterModelPrivate*"/>
-      </field>
-      <glib:signal name="filter-changed" version="0.6">
-        <doc xml:whitespace="preserve">The ::filter-changed signal is emitted when a new filter has been applied</doc>
-        <return-value transfer-ownership="none">
-          <type name="none"/>
-        </return-value>
-      </glib:signal>
-      <glib:signal name="row-added" version="0.6">
-        <doc xml:whitespace="preserve">The ::row-added signal is emitted when a new row has been added.
-The data on the row has already been set when the ::row-added signal
-has been emitted.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none"/>
-        </return-value>
-        <parameters>
-          <parameter name="object" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #ClutterModelIter pointing to the new row</doc>
-            <type name="ModelIter"/>
-          </parameter>
-        </parameters>
-      </glib:signal>
-      <glib:signal name="row-changed" version="0.6">
-        <doc xml:whitespace="preserve">The ::row-removed signal is emitted when a row has been changed.
-The data on the row has already been updated when the ::row-changed
-signal has been emitted.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none"/>
-        </return-value>
-        <parameters>
-          <parameter name="object" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #ClutterModelIter pointing to the changed row</doc>
-            <type name="ModelIter"/>
-          </parameter>
-        </parameters>
-      </glib:signal>
-      <glib:signal name="row-removed" version="0.6">
-        <doc xml:whitespace="preserve">The ::row-removed signal is emitted when a row has been removed.
-The data on the row pointed by the passed iterator is still valid
-when the ::row-removed signal has been emitted.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none"/>
-        </return-value>
-        <parameters>
-          <parameter name="object" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #ClutterModelIter pointing to the removed row</doc>
-            <type name="ModelIter"/>
-          </parameter>
-        </parameters>
-      </glib:signal>
-      <glib:signal name="sort-changed" version="0.6">
-        <doc xml:whitespace="preserve">The ::sort-changed signal is emitted after the model has been sorted</doc>
-        <return-value transfer-ownership="none">
-          <type name="none"/>
-        </return-value>
-      </glib:signal>
-    </class>
-    <record name="ModelClass"
-            c:type="ClutterModelClass"
-            glib:is-gtype-struct-for="Model"
-            version="0.6">
-      <doc xml:whitespace="preserve">Class for #ClutterModel instances.</doc>
-      <field name="parent_class">
-        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
-      </field>
-      <field name="get_n_rows">
-        <callback name="get_n_rows">
-          <return-value transfer-ownership="none">
-            <doc xml:whitespace="preserve">The length of the @model. If there is a filter set, then</doc>
-            <type name="guint" c:type="guint"/>
-          </return-value>
-          <parameters>
-            <parameter name="model" transfer-ownership="none">
-              <type name="Model" c:type="ClutterModel*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="get_n_columns">
-        <callback name="get_n_columns">
-          <return-value transfer-ownership="none">
-            <doc xml:whitespace="preserve">the number of columns</doc>
-            <type name="guint" c:type="guint"/>
-          </return-value>
-          <parameters>
-            <parameter name="model" transfer-ownership="none">
-              <type name="Model" c:type="ClutterModel*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="get_column_name">
-        <callback name="get_column_name">
-          <return-value transfer-ownership="none">
-            <doc xml:whitespace="preserve">the name of the column. The model holds the returned</doc>
-            <type name="utf8" c:type="gchar*"/>
-          </return-value>
-          <parameters>
-            <parameter name="model" transfer-ownership="none">
-              <type name="Model" c:type="ClutterModel*"/>
-            </parameter>
-            <parameter name="column" transfer-ownership="none">
-              <doc xml:whitespace="preserve">the column number</doc>
-              <type name="guint" c:type="guint"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="get_column_type">
-        <callback name="get_column_type">
-          <return-value transfer-ownership="none">
-            <doc xml:whitespace="preserve">the type of the column.</doc>
-            <type name="GType" c:type="GType"/>
-          </return-value>
-          <parameters>
-            <parameter name="model" transfer-ownership="none">
-              <type name="Model" c:type="ClutterModel*"/>
-            </parameter>
-            <parameter name="column" transfer-ownership="none">
-              <doc xml:whitespace="preserve">the column number</doc>
-              <type name="guint" c:type="guint"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="insert_row" introspectable="0">
-        <callback name="insert_row" introspectable="0">
-          <return-value>
-            <type name="ModelIter" c:type="ClutterModelIter*"/>
-          </return-value>
-          <parameters>
-            <parameter name="model" transfer-ownership="none">
-              <type name="Model" c:type="ClutterModel*"/>
-            </parameter>
-            <parameter name="index_" transfer-ownership="none">
-              <type name="gint" c:type="gint"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="remove_row">
-        <callback name="remove_row">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="model" transfer-ownership="none">
-              <type name="Model" c:type="ClutterModel*"/>
-            </parameter>
-            <parameter name="row" transfer-ownership="none">
-              <type name="guint" c:type="guint"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="get_iter_at_row">
-        <callback name="get_iter_at_row">
-          <return-value transfer-ownership="full">
-            <doc xml:whitespace="preserve">A new #ClutterModelIter, or %NULL if @row was</doc>
-            <type name="ModelIter" c:type="ClutterModelIter*"/>
-          </return-value>
-          <parameters>
-            <parameter name="model" transfer-ownership="none">
-              <type name="Model" c:type="ClutterModel*"/>
-            </parameter>
-            <parameter name="row" transfer-ownership="none">
-              <doc xml:whitespace="preserve">position of the row to retrieve</doc>
-              <type name="guint" c:type="guint"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="resort" introspectable="0">
-        <callback name="resort" introspectable="0">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="model" transfer-ownership="none">
-              <type name="Model" c:type="ClutterModel*"/>
-            </parameter>
-            <parameter name="func" transfer-ownership="none" closure="2">
-              <type name="ModelSortFunc" c:type="ClutterModelSortFunc"/>
-            </parameter>
-            <parameter name="data" transfer-ownership="none">
-              <type name="gpointer" c:type="gpointer"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="row_added">
-        <callback name="row_added">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="model" transfer-ownership="none">
-              <type name="Model" c:type="ClutterModel*"/>
-            </parameter>
-            <parameter name="iter" transfer-ownership="none">
-              <type name="ModelIter" c:type="ClutterModelIter*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="row_removed">
-        <callback name="row_removed">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="model" transfer-ownership="none">
-              <type name="Model" c:type="ClutterModel*"/>
-            </parameter>
-            <parameter name="iter" transfer-ownership="none">
-              <type name="ModelIter" c:type="ClutterModelIter*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="row_changed">
-        <callback name="row_changed">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="model" transfer-ownership="none">
-              <type name="Model" c:type="ClutterModel*"/>
-            </parameter>
-            <parameter name="iter" transfer-ownership="none">
-              <type name="ModelIter" c:type="ClutterModelIter*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="sort_changed">
-        <callback name="sort_changed">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="model" transfer-ownership="none">
-              <type name="Model" c:type="ClutterModel*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="filter_changed">
-        <callback name="filter_changed">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="model" transfer-ownership="none">
-              <type name="Model" c:type="ClutterModel*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="_clutter_model_1" introspectable="0">
-        <callback name="_clutter_model_1">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-      <field name="_clutter_model_2" introspectable="0">
-        <callback name="_clutter_model_2">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-      <field name="_clutter_model_3" introspectable="0">
-        <callback name="_clutter_model_3">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-      <field name="_clutter_model_4" introspectable="0">
-        <callback name="_clutter_model_4">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-      <field name="_clutter_model_5" introspectable="0">
-        <callback name="_clutter_model_5">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-      <field name="_clutter_model_6" introspectable="0">
-        <callback name="_clutter_model_6">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-      <field name="_clutter_model_7" introspectable="0">
-        <callback name="_clutter_model_7">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-      <field name="_clutter_model_8" introspectable="0">
-        <callback name="_clutter_model_8">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-    </record>
-    <callback name="ModelFilterFunc"
-              c:type="ClutterModelFilterFunc"
-              version="0.6">
-      <doc xml:whitespace="preserve">Filters the content of a row in the model.</doc>
-      <return-value transfer-ownership="none">
-        <doc xml:whitespace="preserve">If the row should be displayed, return %TRUE</doc>
-        <type name="gboolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="model" transfer-ownership="none">
-          <doc xml:whitespace="preserve">a #ClutterModel</doc>
-          <type name="Model" c:type="ClutterModel*"/>
-        </parameter>
-        <parameter name="iter" transfer-ownership="none">
-          <doc xml:whitespace="preserve">the iterator for the row</doc>
-          <type name="ModelIter" c:type="ClutterModelIter*"/>
-        </parameter>
-        <parameter name="user_data" transfer-ownership="none" closure="2">
-          <doc xml:whitespace="preserve">data passed to clutter_model_set_filter()</doc>
-          <type name="gpointer" c:type="gpointer"/>
-        </parameter>
-      </parameters>
-    </callback>
-    <callback name="ModelForeachFunc"
-              c:type="ClutterModelForeachFunc"
-              version="0.6">
-      <doc xml:whitespace="preserve">Iterates on the content of a row in the model</doc>
-      <return-value transfer-ownership="none">
-        <doc xml:whitespace="preserve">%TRUE if the iteration should continue, %FALSE otherwise</doc>
-        <type name="gboolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="model" transfer-ownership="none">
-          <doc xml:whitespace="preserve">a #ClutterModel</doc>
-          <type name="Model" c:type="ClutterModel*"/>
-        </parameter>
-        <parameter name="iter" transfer-ownership="none">
-          <doc xml:whitespace="preserve">the iterator for the row</doc>
-          <type name="ModelIter" c:type="ClutterModelIter*"/>
-        </parameter>
-        <parameter name="user_data" transfer-ownership="none" closure="2">
-          <doc xml:whitespace="preserve">data passed to clutter_model_foreach()</doc>
-          <type name="gpointer" c:type="gpointer"/>
-        </parameter>
-      </parameters>
-    </callback>
-    <class name="ModelIter"
-           c:symbol-prefix="model_iter"
-           c:type="ClutterModelIter"
-           version="0.6"
-           parent="GObject.Object"
-           abstract="1"
-           glib:type-name="ClutterModelIter"
-           glib:get-type="clutter_model_iter_get_type"
-           glib:type-struct="ModelIterClass">
-      <doc xml:whitespace="preserve">Base class for list models iters. The #ClutterModelIter structure
-contains only private data and should be manipulated using the
-provided API.</doc>
-      <virtual-method name="copy" invoker="copy" version="0.8">
-        <doc xml:whitespace="preserve">Copies the passed iterator.</doc>
-        <return-value transfer-ownership="full">
-          <doc xml:whitespace="preserve">a copy of the iterator, or %NULL</doc>
-          <type name="ModelIter" c:type="ClutterModelIter*"/>
-        </return-value>
-      </virtual-method>
-      <virtual-method name="get_model" invoker="get_model" version="0.6">
-        <doc xml:whitespace="preserve">Retrieves a pointer to the #ClutterModel that this iter is part of.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">a pointer to a #ClutterModel.</doc>
-          <type name="Model" c:type="ClutterModel*"/>
-        </return-value>
-      </virtual-method>
-      <virtual-method name="get_row" invoker="get_row" version="0.6">
-        <doc xml:whitespace="preserve">Retrieves the position of the row that the @iter points to.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the position of the @iter in the model</doc>
-          <type name="guint" c:type="guint"/>
-        </return-value>
-      </virtual-method>
-      <virtual-method name="get_value" invoker="get_value" version="0.6">
-        <doc xml:whitespace="preserve">Sets an initializes @value to that at @column. When done with @value, 
-g_value_unset() needs to be called to free any allocated memory.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="column" transfer-ownership="none">
-            <doc xml:whitespace="preserve">column number to retrieve the value from</doc>
-            <type name="guint" c:type="guint"/>
-          </parameter>
-          <parameter name="value" transfer-ownership="none">
-            <doc xml:whitespace="preserve">an empty #GValue to set</doc>
-            <type name="GObject.Value" c:type="GValue*"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <virtual-method name="is_first" invoker="is_first" version="0.6">
-        <doc xml:whitespace="preserve">Gets whether the current iterator is at the beginning of the model
-to which it belongs.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">#TRUE if @iter is the first iter in the filtered model</doc>
-          <type name="gboolean" c:type="gboolean"/>
-        </return-value>
-      </virtual-method>
-      <virtual-method name="is_last" invoker="is_last" version="0.6">
-        <doc xml:whitespace="preserve">Gets whether the iterator is at the end of the model to which it
-belongs.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">#TRUE if @iter is the last iter in the filtered model.</doc>
-          <type name="gboolean" c:type="gboolean"/>
-        </return-value>
-      </virtual-method>
-      <virtual-method name="next" invoker="next" version="0.6">
-        <doc xml:whitespace="preserve">Updates the @iter to point at the next position in the model.
-The model implementation should take into account the presence of
-a filter function.
-row in the model.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">The passed iterator, updated to point at the next</doc>
-          <type name="ModelIter" c:type="ClutterModelIter*"/>
-        </return-value>
-      </virtual-method>
-      <virtual-method name="prev" invoker="prev" version="0.6">
-        <doc xml:whitespace="preserve">Sets the @iter to point at the previous position in the model.
-The model implementation should take into account the presence of
-a filter function.
-row in the model.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">The passed iterator, updated to point at the previous</doc>
-          <type name="ModelIter" c:type="ClutterModelIter*"/>
-        </return-value>
-      </virtual-method>
-      <virtual-method name="set_value" invoker="set_value" version="0.6">
-        <doc xml:whitespace="preserve">Sets the data in the cell specified by @iter and @column. The type of</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="column" transfer-ownership="none">
-            <doc xml:whitespace="preserve">column number to retrieve the value from</doc>
-            <type name="guint" c:type="guint"/>
-          </parameter>
-          <parameter name="value" transfer-ownership="none">
-            <doc xml:whitespace="preserve">new value for the cell</doc>
-            <type name="GObject.Value" c:type="GValue*"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <method name="copy" c:identifier="clutter_model_iter_copy" version="0.8">
-        <doc xml:whitespace="preserve">Copies the passed iterator.</doc>
-        <return-value transfer-ownership="full">
-          <doc xml:whitespace="preserve">a copy of the iterator, or %NULL</doc>
-          <type name="ModelIter" c:type="ClutterModelIter*"/>
-        </return-value>
-      </method>
-      <method name="get"
-              c:identifier="clutter_model_iter_get"
-              version="0.6"
-              introspectable="0">
-        <doc xml:whitespace="preserve">Gets the value of one or more cells in the row referenced by @iter. The
-variable argument list should contain integer column numbers, each column
-column number followed by a place to store the value being retrieved. The
-list is terminated by a -1.
-For example, to get a value from column 0 with type %G_TYPE_STRING use:
-&lt;informalexample&gt;&lt;programlisting&gt;
-clutter_model_iter_get (iter, 0, &amp;place_string_here, -1);
-&lt;/programlisting&gt;&lt;/informalexample&gt;
-where place_string_here is a gchar* to be filled with the string. If
-appropriate, the returned values have to be freed or unreferenced.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter transfer-ownership="none">
-            <varargs>
-            </varargs>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_model"
-              c:identifier="clutter_model_iter_get_model"
-              version="0.6">
-        <doc xml:whitespace="preserve">Retrieves a pointer to the #ClutterModel that this iter is part of.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">a pointer to a #ClutterModel.</doc>
-          <type name="Model" c:type="ClutterModel*"/>
-        </return-value>
-      </method>
-      <method name="get_row"
-              c:identifier="clutter_model_iter_get_row"
-              version="0.6">
-        <doc xml:whitespace="preserve">Retrieves the position of the row that the @iter points to.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the position of the @iter in the model</doc>
-          <type name="guint" c:type="guint"/>
-        </return-value>
-      </method>
-      <method name="get_valist"
-              c:identifier="clutter_model_iter_get_valist"
-              version="0.6"
-              introspectable="0">
-        <doc xml:whitespace="preserve">See clutter_model_iter_get(). This version takes a va_list for language
-bindings.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="args" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a list of column/return location pairs, terminated by -1</doc>
-            <type name="va_list" c:type="va_list"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_value"
-              c:identifier="clutter_model_iter_get_value"
-              version="0.6">
-        <doc xml:whitespace="preserve">Sets an initializes @value to that at @column. When done with @value, 
-g_value_unset() needs to be called to free any allocated memory.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="column" transfer-ownership="none">
-            <doc xml:whitespace="preserve">column number to retrieve the value from</doc>
-            <type name="guint" c:type="guint"/>
-          </parameter>
-          <parameter name="value" transfer-ownership="none">
-            <doc xml:whitespace="preserve">an empty #GValue to set</doc>
-            <type name="GObject.Value" c:type="GValue*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="is_first"
-              c:identifier="clutter_model_iter_is_first"
-              version="0.6">
-        <doc xml:whitespace="preserve">Gets whether the current iterator is at the beginning of the model
-to which it belongs.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">#TRUE if @iter is the first iter in the filtered model</doc>
-          <type name="gboolean" c:type="gboolean"/>
-        </return-value>
-      </method>
-      <method name="is_last"
-              c:identifier="clutter_model_iter_is_last"
-              version="0.6">
-        <doc xml:whitespace="preserve">Gets whether the iterator is at the end of the model to which it
-belongs.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">#TRUE if @iter is the last iter in the filtered model.</doc>
-          <type name="gboolean" c:type="gboolean"/>
-        </return-value>
-      </method>
-      <method name="next" c:identifier="clutter_model_iter_next" version="0.6">
-        <doc xml:whitespace="preserve">Updates the @iter to point at the next position in the model.
-The model implementation should take into account the presence of
-a filter function.
-row in the model.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">The passed iterator, updated to point at the next</doc>
-          <type name="ModelIter" c:type="ClutterModelIter*"/>
-        </return-value>
-      </method>
-      <method name="prev" c:identifier="clutter_model_iter_prev" version="0.6">
-        <doc xml:whitespace="preserve">Sets the @iter to point at the previous position in the model.
-The model implementation should take into account the presence of
-a filter function.
-row in the model.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">The passed iterator, updated to point at the previous</doc>
-          <type name="ModelIter" c:type="ClutterModelIter*"/>
-        </return-value>
-      </method>
-      <method name="set"
-              c:identifier="clutter_model_iter_set"
-              version="0.6"
-              introspectable="0">
-        <doc xml:whitespace="preserve">Sets the value of one or more cells in the row referenced by @iter. The
-variable argument list should contain integer column numbers, each column
-column number followed by the value to be set. The  list is terminated by a
--1.
-For example, to set column 0 with type %G_TYPE_STRING, use:
-&lt;informalexample&gt;&lt;programlisting&gt;
-clutter_model_iter_set (iter, 0, "foo", -1);
-&lt;/programlisting&gt;&lt;/informalexample&gt;</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter transfer-ownership="none">
-            <varargs>
-            </varargs>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_valist"
-              c:identifier="clutter_model_iter_set_valist"
-              version="0.6"
-              introspectable="0">
-        <doc xml:whitespace="preserve">See clutter_model_iter_set(); this version takes a va_list for language
-bindings.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="args" transfer-ownership="none">
-            <doc xml:whitespace="preserve">va_list of column/value pairs, terminiated by -1</doc>
-            <type name="va_list" c:type="va_list"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_value"
-              c:identifier="clutter_model_iter_set_value"
-              version="0.6">
-        <doc xml:whitespace="preserve">Sets the data in the cell specified by @iter and @column. The type of</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="column" transfer-ownership="none">
-            <doc xml:whitespace="preserve">column number to retrieve the value from</doc>
-            <type name="guint" c:type="guint"/>
-          </parameter>
-          <parameter name="value" transfer-ownership="none">
-            <doc xml:whitespace="preserve">new value for the cell</doc>
-            <type name="GObject.Value" c:type="GValue*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <property name="model"
-                version="0.6"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">A reference to the #ClutterModel that this iter belongs to.</doc>
-        <type name="Model"/>
-      </property>
-      <property name="row"
-                version="0.6"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">The row number to which this iter points to.</doc>
-        <type name="guint"/>
-      </property>
-      <field name="parent_instance">
-        <type name="GObject.Object" c:type="GObject"/>
-      </field>
-      <field name="priv">
-        <type name="ModelIterPrivate" c:type="ClutterModelIterPrivate*"/>
-      </field>
-    </class>
-    <record name="ModelIterClass"
-            c:type="ClutterModelIterClass"
-            glib:is-gtype-struct-for="ModelIter"
-            version="0.6">
-      <doc xml:whitespace="preserve">Class for #ClutterModelIter instances.</doc>
-      <field name="parent_class">
-        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
-      </field>
-      <field name="get_value">
-        <callback name="get_value">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="iter" transfer-ownership="none">
-              <type name="ModelIter" c:type="ClutterModelIter*"/>
-            </parameter>
-            <parameter name="column" transfer-ownership="none">
-              <doc xml:whitespace="preserve">column number to retrieve the value from</doc>
-              <type name="guint" c:type="guint"/>
-            </parameter>
-            <parameter name="value" transfer-ownership="none">
-              <doc xml:whitespace="preserve">an empty #GValue to set</doc>
-              <type name="GObject.Value" c:type="GValue*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="set_value">
-        <callback name="set_value">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="iter" transfer-ownership="none">
-              <type name="ModelIter" c:type="ClutterModelIter*"/>
-            </parameter>
-            <parameter name="column" transfer-ownership="none">
-              <doc xml:whitespace="preserve">column number to retrieve the value from</doc>
-              <type name="guint" c:type="guint"/>
-            </parameter>
-            <parameter name="value" transfer-ownership="none">
-              <doc xml:whitespace="preserve">new value for the cell</doc>
-              <type name="GObject.Value" c:type="GValue*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="is_first">
-        <callback name="is_first">
-          <return-value transfer-ownership="none">
-            <doc xml:whitespace="preserve">#TRUE if @iter is the first iter in the filtered model</doc>
-            <type name="gboolean" c:type="gboolean"/>
-          </return-value>
-          <parameters>
-            <parameter name="iter" transfer-ownership="none">
-              <type name="ModelIter" c:type="ClutterModelIter*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="is_last">
-        <callback name="is_last">
-          <return-value transfer-ownership="none">
-            <doc xml:whitespace="preserve">#TRUE if @iter is the last iter in the filtered model.</doc>
-            <type name="gboolean" c:type="gboolean"/>
-          </return-value>
-          <parameters>
-            <parameter name="iter" transfer-ownership="none">
-              <type name="ModelIter" c:type="ClutterModelIter*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="next">
-        <callback name="next">
-          <return-value transfer-ownership="none">
-            <doc xml:whitespace="preserve">The passed iterator, updated to point at the next</doc>
-            <type name="ModelIter" c:type="ClutterModelIter*"/>
-          </return-value>
-          <parameters>
-            <parameter name="iter" transfer-ownership="none">
-              <type name="ModelIter" c:type="ClutterModelIter*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="prev">
-        <callback name="prev">
-          <return-value transfer-ownership="none">
-            <doc xml:whitespace="preserve">The passed iterator, updated to point at the previous</doc>
-            <type name="ModelIter" c:type="ClutterModelIter*"/>
-          </return-value>
-          <parameters>
-            <parameter name="iter" transfer-ownership="none">
-              <type name="ModelIter" c:type="ClutterModelIter*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="get_model">
-        <callback name="get_model">
-          <return-value transfer-ownership="none">
-            <doc xml:whitespace="preserve">a pointer to a #ClutterModel.</doc>
-            <type name="Model" c:type="ClutterModel*"/>
-          </return-value>
-          <parameters>
-            <parameter name="iter" transfer-ownership="none">
-              <type name="ModelIter" c:type="ClutterModelIter*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="get_row">
-        <callback name="get_row">
-          <return-value transfer-ownership="none">
-            <doc xml:whitespace="preserve">the position of the @iter in the model</doc>
-            <type name="guint" c:type="guint"/>
-          </return-value>
-          <parameters>
-            <parameter name="iter" transfer-ownership="none">
-              <type name="ModelIter" c:type="ClutterModelIter*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="copy">
-        <callback name="copy">
-          <return-value transfer-ownership="full">
-            <doc xml:whitespace="preserve">a copy of the iterator, or %NULL</doc>
-            <type name="ModelIter" c:type="ClutterModelIter*"/>
-          </return-value>
-          <parameters>
-            <parameter name="iter" transfer-ownership="none">
-              <type name="ModelIter" c:type="ClutterModelIter*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="_clutter_model_iter_1" introspectable="0">
-        <callback name="_clutter_model_iter_1">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-      <field name="_clutter_model_iter_2" introspectable="0">
-        <callback name="_clutter_model_iter_2">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-      <field name="_clutter_model_iter_3" introspectable="0">
-        <callback name="_clutter_model_iter_3">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-      <field name="_clutter_model_iter_4" introspectable="0">
-        <callback name="_clutter_model_iter_4">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-      <field name="_clutter_model_iter_5" introspectable="0">
-        <callback name="_clutter_model_iter_5">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-      <field name="_clutter_model_iter_6" introspectable="0">
-        <callback name="_clutter_model_iter_6">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-      <field name="_clutter_model_iter_7" introspectable="0">
-        <callback name="_clutter_model_iter_7">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-      <field name="_clutter_model_iter_8" introspectable="0">
-        <callback name="_clutter_model_iter_8">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-    </record>
-    <record name="ModelIterPrivate"
-            c:type="ClutterModelIterPrivate"
-            disguised="1">
-    </record>
-    <record name="ModelPrivate" c:type="ClutterModelPrivate" disguised="1">
-    </record>
-    <callback name="ModelSortFunc" c:type="ClutterModelSortFunc" version="0.6">
-      <doc xml:whitespace="preserve">Compares the content of two rows in the model.</doc>
-      <return-value transfer-ownership="none">
-        <doc xml:whitespace="preserve">a positive integer if @a is after @b, a negative integer if</doc>
-        <type name="gint" c:type="gint"/>
-      </return-value>
-      <parameters>
-        <parameter name="model" transfer-ownership="none">
-          <doc xml:whitespace="preserve">a #ClutterModel</doc>
-          <type name="Model" c:type="ClutterModel*"/>
-        </parameter>
-        <parameter name="a" transfer-ownership="none">
-          <doc xml:whitespace="preserve">a #GValue representing the contents of the row</doc>
-          <type name="GObject.Value" c:type="GValue*"/>
-        </parameter>
-        <parameter name="b" transfer-ownership="none">
-          <doc xml:whitespace="preserve">a #GValue representing the contents of the second row</doc>
-          <type name="GObject.Value" c:type="GValue*"/>
-        </parameter>
-        <parameter name="user_data" transfer-ownership="none" closure="3">
-          <doc xml:whitespace="preserve">data passed to clutter_model_set_sort()</doc>
-          <type name="gpointer" c:type="gpointer"/>
-        </parameter>
-      </parameters>
-    </callback>
-    <bitfield name="ModifierType"
-              version="0.4"
-              glib:type-name="ClutterModifierType"
-              glib:get-type="clutter_modifier_type_get_type"
-              c:type="ClutterModifierType">
-      <doc xml:whitespace="preserve">Masks applied to a #ClutterEvent by modifiers.</doc>
-      <member name="shift_mask"
-              value="1"
-              c:identifier="CLUTTER_SHIFT_MASK"
-              glib:nick="shift-mask"/>
-      <member name="lock_mask"
-              value="2"
-              c:identifier="CLUTTER_LOCK_MASK"
-              glib:nick="lock-mask"/>
-      <member name="control_mask"
-              value="4"
-              c:identifier="CLUTTER_CONTROL_MASK"
-              glib:nick="control-mask"/>
-      <member name="mod1_mask"
-              value="8"
-              c:identifier="CLUTTER_MOD1_MASK"
-              glib:nick="mod1-mask"/>
-      <member name="mod2_mask"
-              value="16"
-              c:identifier="CLUTTER_MOD2_MASK"
-              glib:nick="mod2-mask"/>
-      <member name="mod3_mask"
-              value="32"
-              c:identifier="CLUTTER_MOD3_MASK"
-              glib:nick="mod3-mask"/>
-      <member name="mod4_mask"
-              value="64"
-              c:identifier="CLUTTER_MOD4_MASK"
-              glib:nick="mod4-mask"/>
-      <member name="mod5_mask"
-              value="128"
-              c:identifier="CLUTTER_MOD5_MASK"
-              glib:nick="mod5-mask"/>
-      <member name="button1_mask"
-              value="256"
-              c:identifier="CLUTTER_BUTTON1_MASK"
-              glib:nick="button1-mask"/>
-      <member name="button2_mask"
-              value="512"
-              c:identifier="CLUTTER_BUTTON2_MASK"
-              glib:nick="button2-mask"/>
-      <member name="button3_mask"
-              value="1024"
-              c:identifier="CLUTTER_BUTTON3_MASK"
-              glib:nick="button3-mask"/>
-      <member name="button4_mask"
-              value="2048"
-              c:identifier="CLUTTER_BUTTON4_MASK"
-              glib:nick="button4-mask"/>
-      <member name="button5_mask"
-              value="4096"
-              c:identifier="CLUTTER_BUTTON5_MASK"
-              glib:nick="button5-mask"/>
-      <member name="super_mask"
-              value="67108864"
-              c:identifier="CLUTTER_SUPER_MASK"
-              glib:nick="super-mask"/>
-      <member name="hyper_mask"
-              value="134217728"
-              c:identifier="CLUTTER_HYPER_MASK"
-              glib:nick="hyper-mask"/>
-      <member name="meta_mask"
-              value="268435456"
-              c:identifier="CLUTTER_META_MASK"
-              glib:nick="meta-mask"/>
-      <member name="release_mask"
-              value="1073741824"
-              c:identifier="CLUTTER_RELEASE_MASK"
-              glib:nick="release-mask"/>
-      <member name="modifier_mask"
-              value="1543512063"
-              c:identifier="CLUTTER_MODIFIER_MASK"
-              glib:nick="modifier-mask"/>
-    </bitfield>
-    <constant name="MonBrightnessDown" value="269025027">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="MonBrightnessUp" value="269025026">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <record name="MotionEvent" c:type="ClutterMotionEvent" version="0.2">
-      <doc xml:whitespace="preserve">Event for the pointer motion</doc>
-      <field name="type" writable="1">
-        <type name="EventType" c:type="ClutterEventType"/>
-      </field>
-      <field name="time" writable="1">
-        <type name="guint32" c:type="guint32"/>
-      </field>
-      <field name="flags" writable="1">
-        <type name="EventFlags" c:type="ClutterEventFlags"/>
-      </field>
-      <field name="stage" writable="1">
-        <type name="Stage" c:type="ClutterStage*"/>
-      </field>
-      <field name="source" writable="1">
-        <type name="Actor" c:type="ClutterActor*"/>
-      </field>
-      <field name="x" writable="1">
-        <type name="gfloat" c:type="gfloat"/>
-      </field>
-      <field name="y" writable="1">
-        <type name="gfloat" c:type="gfloat"/>
-      </field>
-      <field name="modifier_state" writable="1">
-        <type name="ModifierType" c:type="ClutterModifierType"/>
-      </field>
-      <field name="axes" writable="1">
-        <type name="gdouble" c:type="gdouble*"/>
-      </field>
-      <field name="device" writable="1">
-        <type name="InputDevice" c:type="ClutterInputDevice*"/>
-      </field>
-    </record>
-    <constant name="MouseKeys_Accel_Enable" value="65143">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="MouseKeys_Enable" value="65142">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Muhenkan" value="65314">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Multi_key" value="65312">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="MultipleCandidate" value="65341">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Music" value="269025170">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="MyComputer" value="269025075">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="MySites" value="269025127">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="N" value="78">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Nacute" value="465">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="NairaSign" value="16785574">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Ncaron" value="466">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Ncedilla" value="977">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="New" value="269025128">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="NewSheqelSign" value="16785578">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="News" value="269025129">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Next" value="65366">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Next_VMode" value="269024802">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Next_Virtual_Screen" value="65234">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Ntilde" value="209">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Num_Lock" value="65407">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="O" value="79">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="OE" value="5052">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Oacute" value="211">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Obarred" value="16777631">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Obelowdot" value="16785100">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Ocaron" value="16777681">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Ocircumflex" value="212">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Ocircumflexacute" value="16785104">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Ocircumflexbelowdot" value="16785112">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Ocircumflexgrave" value="16785106">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Ocircumflexhook" value="16785108">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Ocircumflextilde" value="16785110">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Odiaeresis" value="214">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Odoubleacute" value="469">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="OfficeHome" value="269025130">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <class name="OffscreenEffect"
-           c:symbol-prefix="offscreen_effect"
-           c:type="ClutterOffscreenEffect"
-           version="1.4"
-           parent="Effect"
-           abstract="1"
-           glib:type-name="ClutterOffscreenEffect"
-           glib:get-type="clutter_offscreen_effect_get_type"
-           glib:type-struct="OffscreenEffectClass">
-      <doc xml:whitespace="preserve">The #ClutterOffscreenEffect structure contains only private data
-and should be accessed using the provided API</doc>
-      <virtual-method name="create_texture"
-                      invoker="create_texture"
-                      version="1.4">
-        <doc xml:whitespace="preserve">Calls the create_texture() virtual function of the @effect
-%COGL_INVALID_HANDLE. The returned handle has its reference
-count increased.</doc>
-        <return-value transfer-ownership="full">
-          <doc xml:whitespace="preserve">a handle to a Cogl texture, or</doc>
-          <type name="Cogl.Handle" c:type="CoglHandle"/>
-        </return-value>
-        <parameters>
-          <parameter name="min_width" transfer-ownership="none">
-            <type name="gfloat" c:type="gfloat"/>
-          </parameter>
-          <parameter name="min_height" transfer-ownership="none">
-            <type name="gfloat" c:type="gfloat"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <virtual-method name="paint_target" invoker="paint_target" version="1.4">
-        <doc xml:whitespace="preserve">Calls the paint_target() virtual function of the @effect</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </virtual-method>
-      <method name="create_texture"
-              c:identifier="clutter_offscreen_effect_create_texture"
-              version="1.4">
-        <doc xml:whitespace="preserve">Calls the create_texture() virtual function of the @effect
-%COGL_INVALID_HANDLE. The returned handle has its reference
-count increased.</doc>
-        <return-value transfer-ownership="full">
-          <doc xml:whitespace="preserve">a handle to a Cogl texture, or</doc>
-          <type name="Cogl.Handle" c:type="CoglHandle"/>
-        </return-value>
-        <parameters>
-          <parameter name="width" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the minimum width of the target texture</doc>
-            <type name="gfloat" c:type="gfloat"/>
-          </parameter>
-          <parameter name="height" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the minimum height of the target texture</doc>
-            <type name="gfloat" c:type="gfloat"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_target"
-              c:identifier="clutter_offscreen_effect_get_target"
-              version="1.4">
-        <doc xml:whitespace="preserve">Retrieves the material used as a render target for the offscreen
-buffer created by @effect
-You should only use the returned #CoglMaterial when painting. The
-returned material might change between different frames.
-returned material is owned by Clutter and it should not be
-modified or freed</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">a #CoglMaterial or %NULL. The</doc>
-          <type name="Cogl.Material" c:type="CoglMaterial*"/>
-        </return-value>
-      </method>
-      <method name="paint_target"
-              c:identifier="clutter_offscreen_effect_paint_target"
-              version="1.4">
-        <doc xml:whitespace="preserve">Calls the paint_target() virtual function of the @effect</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </method>
-      <field name="parent_instance">
-        <type name="Effect" c:type="ClutterEffect"/>
-      </field>
-      <field name="priv">
-        <type name="OffscreenEffectPrivate"
-              c:type="ClutterOffscreenEffectPrivate*"/>
-      </field>
-    </class>
-    <record name="OffscreenEffectClass"
-            c:type="ClutterOffscreenEffectClass"
-            glib:is-gtype-struct-for="OffscreenEffect"
-            version="1.4">
-      <doc xml:whitespace="preserve">The #ClutterOffscreenEffectClass structure contains only private data</doc>
-      <field name="parent_class">
-        <type name="EffectClass" c:type="ClutterEffectClass"/>
-      </field>
-      <field name="create_texture">
-        <callback name="create_texture">
-          <return-value transfer-ownership="full">
-            <doc xml:whitespace="preserve">a handle to a Cogl texture, or</doc>
-            <type name="Cogl.Handle" c:type="CoglHandle"/>
-          </return-value>
-          <parameters>
-            <parameter name="effect" transfer-ownership="none">
-              <type name="OffscreenEffect" c:type="ClutterOffscreenEffect*"/>
-            </parameter>
-            <parameter name="min_width" transfer-ownership="none">
-              <type name="gfloat" c:type="gfloat"/>
-            </parameter>
-            <parameter name="min_height" transfer-ownership="none">
-              <type name="gfloat" c:type="gfloat"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="paint_target">
-        <callback name="paint_target">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="effect" transfer-ownership="none">
-              <type name="OffscreenEffect" c:type="ClutterOffscreenEffect*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="_clutter_offscreen1" introspectable="0">
-        <callback name="_clutter_offscreen1">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-      <field name="_clutter_offscreen2" introspectable="0">
-        <callback name="_clutter_offscreen2">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-      <field name="_clutter_offscreen3" introspectable="0">
-        <callback name="_clutter_offscreen3">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-      <field name="_clutter_offscreen4" introspectable="0">
-        <callback name="_clutter_offscreen4">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-      <field name="_clutter_offscreen5" introspectable="0">
-        <callback name="_clutter_offscreen5">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-      <field name="_clutter_offscreen6" introspectable="0">
-        <callback name="_clutter_offscreen6">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-      <field name="_clutter_offscreen7" introspectable="0">
-        <callback name="_clutter_offscreen7">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-    </record>
-    <record name="OffscreenEffectPrivate"
-            c:type="ClutterOffscreenEffectPrivate"
-            disguised="1">
-    </record>
-    <constant name="Ograve" value="210">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Ohook" value="16785102">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Ohorn" value="16777632">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Ohornacute" value="16785114">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Ohornbelowdot" value="16785122">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Ohorngrave" value="16785116">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Ohornhook" value="16785118">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Ohorntilde" value="16785120">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Omacron" value="978">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Ooblique" value="216">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Open" value="269025131">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="OpenURL" value="269025080">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Option" value="269025132">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Oslash" value="216">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Otilde" value="213">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Overlay1_Enable" value="65144">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Overlay2_Enable" value="65145">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="P" value="80">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="PATH_RELATIVE" value="32">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="PRIORITY_REDRAW" value="50">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Pabovedot" value="16784982">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <class name="PageTurnEffect"
-           c:symbol-prefix="page_turn_effect"
-           c:type="ClutterPageTurnEffect"
-           version="1.4"
-           parent="DeformEffect"
-           glib:type-name="ClutterPageTurnEffect"
-           glib:get-type="clutter_page_turn_effect_get_type">
-      <doc xml:whitespace="preserve">&lt;structname&gt;ClutterPageTurnEffect&lt;/structname&gt; is an opaque structure
-whose members can only be accessed using the provided API</doc>
-      <constructor name="new"
-                   c:identifier="clutter_page_turn_effect_new"
-                   version="1.4">
-        <doc xml:whitespace="preserve">Creates a new #ClutterPageTurnEffect instance with the given parameters</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the newly created #ClutterPageTurnEffect</doc>
-          <type name="Effect" c:type="ClutterEffect*"/>
-        </return-value>
-        <parameters>
-          <parameter name="period" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the period of the page curl, between 0.0 and 1.0</doc>
-            <type name="gdouble" c:type="gdouble"/>
-          </parameter>
-          <parameter name="angle" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the angle of the page curl, between 0.0 and 360.0</doc>
-            <type name="gdouble" c:type="gdouble"/>
-          </parameter>
-          <parameter name="radius" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the radius of the page curl, in pixels</doc>
-            <type name="gfloat" c:type="gfloat"/>
-          </parameter>
-        </parameters>
-      </constructor>
-      <method name="get_angle"
-              c:identifier="clutter_page_turn_effect_get_angle"
-              version="1.4">
-        <doc xml:whitespace="preserve">Retrieves the value set using clutter_page_turn_effect_get_angle()</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the angle of the page curling</doc>
-          <type name="gdouble" c:type="gdouble"/>
-        </return-value>
-      </method>
-      <method name="get_period"
-              c:identifier="clutter_page_turn_effect_get_period"
-              version="1.4">
-        <doc xml:whitespace="preserve">Retrieves the value set using clutter_page_turn_effect_get_period()</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the period of the page curling</doc>
-          <type name="gdouble" c:type="gdouble"/>
-        </return-value>
-      </method>
-      <method name="get_radius"
-              c:identifier="clutter_page_turn_effect_get_radius"
-              version="1.4">
-        <doc xml:whitespace="preserve">Retrieves the value set using clutter_page_turn_effect_set_radius()</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the radius of the page curling</doc>
-          <type name="gfloat" c:type="gfloat"/>
-        </return-value>
-      </method>
-      <method name="set_angle"
-              c:identifier="clutter_page_turn_effect_set_angle"
-              version="1.4">
-        <doc xml:whitespace="preserve">Sets the angle of the page curling, in degrees</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="angle" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the angle of the page curl, in degrees</doc>
-            <type name="gdouble" c:type="gdouble"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_period"
-              c:identifier="clutter_page_turn_effect_set_period"
-              version="1.4">
-        <doc xml:whitespace="preserve">Sets the period of the page curling, between 0.0 (no curling)
-and 1.0 (fully curled)</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="period" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the period of the page curl, between 0.0 and 1.0</doc>
-            <type name="gdouble" c:type="gdouble"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_radius"
-              c:identifier="clutter_page_turn_effect_set_radius"
-              version="1.4">
-        <doc xml:whitespace="preserve">Sets the radius of the page curling</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="radius" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the radius of the page curling, in pixels</doc>
-            <type name="gfloat" c:type="gfloat"/>
-          </parameter>
-        </parameters>
-      </method>
-      <property name="angle"
-                version="1.4"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">The angle of the page rotation, in degrees, between 0.0 and 360.0</doc>
-        <type name="gdouble"/>
-      </property>
-      <property name="period"
-                version="1.4"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">The period of the page turn, between 0.0 (no curling) and
-1.0 (fully curled)</doc>
-        <type name="gdouble"/>
-      </property>
-      <property name="radius"
-                version="1.4"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">The radius of the page curl, in pixels</doc>
-        <type name="gfloat"/>
-      </property>
-    </class>
-    <constant name="Page_Down" value="65366">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Page_Up" value="65365">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <class name="ParamSpecColor"
-           c:symbol-prefix="param_color"
-           c:type="ClutterParamSpecColor"
-           version="1.0"
-           glib:type-name="ClutterParamSpecColor"
-           glib:get-type="clutter_param_color_get_type"
-           glib:fundamental="1">
-      <doc xml:whitespace="preserve">A #GParamSpec subclass for defining properties holding
-a #ClutterColor.</doc>
-      <field name="parent_instance">
-        <type name="GObject.ParamSpec" c:type="GParamSpec"/>
-      </field>
-      <field name="default_value">
-        <type name="Color" c:type="ClutterColor*"/>
-      </field>
-    </class>
-    <class name="ParamSpecFixed"
-           c:symbol-prefix="param_fixed"
-           c:type="ClutterParamSpecFixed"
-           glib:type-name="ClutterParamSpecFixed"
-           glib:get-type="clutter_param_fixed_get_type"
-           glib:fundamental="1">
-      <field name="parent_instance">
-        <type name="GObject.ParamSpec" c:type="GParamSpec"/>
-      </field>
-      <field name="minimum">
-        <type name="Cogl.Fixed" c:type="CoglFixed"/>
-      </field>
-      <field name="maximum">
-        <type name="Cogl.Fixed" c:type="CoglFixed"/>
-      </field>
-      <field name="default_value">
-        <type name="Cogl.Fixed" c:type="CoglFixed"/>
-      </field>
-    </class>
-    <class name="ParamSpecUnit"
-           c:symbol-prefix="param_units"
-           glib:type-name="ClutterParamSpecUnit"
-           glib:get-type="clutter_param_units_get_type"
-           glib:fundamental="1">
-    </class>
-    <record name="ParamSpecUnits" c:type="ClutterParamSpecUnits" version="1.0">
-      <doc xml:whitespace="preserve">#GParamSpec subclass for unit based properties.</doc>
-      <field name="parent_instance" writable="1">
-        <type name="GObject.ParamSpec" c:type="GParamSpec"/>
-      </field>
-      <field name="default_type" writable="1">
-        <type name="UnitType" c:type="ClutterUnitType"/>
-      </field>
-      <field name="default_value" writable="1">
-        <type name="gfloat" c:type="gfloat"/>
-      </field>
-      <field name="minimum" writable="1">
-        <type name="gfloat" c:type="gfloat"/>
-      </field>
-      <field name="maximum" writable="1">
-        <type name="gfloat" c:type="gfloat"/>
-      </field>
-    </record>
-    <constant name="Paste" value="269025133">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <class name="Path"
-           c:symbol-prefix="path"
-           c:type="ClutterPath"
-           version="1.0"
-           parent="GObject.InitiallyUnowned"
-           glib:type-name="ClutterPath"
-           glib:get-type="clutter_path_get_type"
-           glib:type-struct="PathClass">
-      <doc xml:whitespace="preserve">The #ClutterPath struct contains only private data and should
-be accessed with the functions below.</doc>
-      <constructor name="new" c:identifier="clutter_path_new" version="1.0">
-        <doc xml:whitespace="preserve">Creates a new #ClutterPath instance with no nodes.
-The object has a floating reference so if you add it to a
-#ClutterBehaviourPath then you do not need to unref it.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the newly created #ClutterPath</doc>
-          <type name="Path" c:type="ClutterPath*"/>
-        </return-value>
-      </constructor>
-      <constructor name="new_with_description"
-                   c:identifier="clutter_path_new_with_description"
-                   version="1.0">
-        <doc xml:whitespace="preserve">Creates a new #ClutterPath instance with the nodes described in
-the string.
-The object has a floating reference so if you add it to a
-#ClutterBehaviourPath then you do not need to unref it.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the newly created #ClutterPath</doc>
-          <type name="Path" c:type="ClutterPath*"/>
-        </return-value>
-        <parameters>
-          <parameter name="desc" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a string describing the path</doc>
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </constructor>
-      <method name="add_cairo_path"
-              c:identifier="clutter_path_add_cairo_path"
-              version="1.0">
-        <doc xml:whitespace="preserve">Add the nodes of the Cairo path to the end of @path.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="cpath" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a Cairo path</doc>
-            <type name="cairo.Path" c:type="cairo_path_t*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="add_close"
-              c:identifier="clutter_path_add_close"
-              version="1.0">
-        <doc xml:whitespace="preserve">Adds a %CLUTTER_PATH_CLOSE type node to the path. This creates a
-straight line from the last node to the last %CLUTTER_PATH_MOVE_TO
-type node.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </method>
-      <method name="add_curve_to"
-              c:identifier="clutter_path_add_curve_to"
-              version="1.0">
-        <doc xml:whitespace="preserve">Adds a %CLUTTER_PATH_CURVE_TO type node to the path. This causes
-the actor to follow a bezier from the last node to (@x_3, @y_3) using
-(@x_1, @y_1) and (@x_2,@y_2) as control points.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="x_1" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the x coordinate of the first control point</doc>
-            <type name="gint" c:type="gint"/>
-          </parameter>
-          <parameter name="y_1" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the y coordinate of the first control point</doc>
-            <type name="gint" c:type="gint"/>
-          </parameter>
-          <parameter name="x_2" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the x coordinate of the second control point</doc>
-            <type name="gint" c:type="gint"/>
-          </parameter>
-          <parameter name="y_2" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the y coordinate of the second control point</doc>
-            <type name="gint" c:type="gint"/>
-          </parameter>
-          <parameter name="x_3" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the x coordinate of the third control point</doc>
-            <type name="gint" c:type="gint"/>
-          </parameter>
-          <parameter name="y_3" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the y coordinate of the third control point</doc>
-            <type name="gint" c:type="gint"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="add_line_to"
-              c:identifier="clutter_path_add_line_to"
-              version="1.0">
-        <doc xml:whitespace="preserve">Adds a %CLUTTER_PATH_LINE_TO type node to the path. This causes the
-actor to move to the new coordinates in a straight line.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="x" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the x coordinate</doc>
-            <type name="gint" c:type="gint"/>
-          </parameter>
-          <parameter name="y" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the y coordinate</doc>
-            <type name="gint" c:type="gint"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="add_move_to"
-              c:identifier="clutter_path_add_move_to"
-              version="1.0">
-        <doc xml:whitespace="preserve">Adds a %CLUTTER_PATH_MOVE_TO type node to the path. This is usually
-used as the first node in a path. It can also be used in the middle
-of the path to cause the actor to jump to the new coordinate.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="x" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the x coordinate</doc>
-            <type name="gint" c:type="gint"/>
-          </parameter>
-          <parameter name="y" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the y coordinate</doc>
-            <type name="gint" c:type="gint"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="add_node"
-              c:identifier="clutter_path_add_node"
-              version="1.0">
-        <doc xml:whitespace="preserve">Adds @node to the end of the path.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="node" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #ClutterPathNode</doc>
-            <type name="PathNode" c:type="ClutterPathNode*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="add_rel_curve_to"
-              c:identifier="clutter_path_add_rel_curve_to"
-              version="1.0">
-        <doc xml:whitespace="preserve">Same as clutter_path_add_curve_to() except the coordinates are
-relative to the previous node.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="x_1" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the x coordinate of the first control point</doc>
-            <type name="gint" c:type="gint"/>
-          </parameter>
-          <parameter name="y_1" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the y coordinate of the first control point</doc>
-            <type name="gint" c:type="gint"/>
-          </parameter>
-          <parameter name="x_2" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the x coordinate of the second control point</doc>
-            <type name="gint" c:type="gint"/>
-          </parameter>
-          <parameter name="y_2" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the y coordinate of the second control point</doc>
-            <type name="gint" c:type="gint"/>
-          </parameter>
-          <parameter name="x_3" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the x coordinate of the third control point</doc>
-            <type name="gint" c:type="gint"/>
-          </parameter>
-          <parameter name="y_3" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the y coordinate of the third control point</doc>
-            <type name="gint" c:type="gint"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="add_rel_line_to"
-              c:identifier="clutter_path_add_rel_line_to"
-              version="1.0">
-        <doc xml:whitespace="preserve">Same as clutter_path_add_line_to() except the coordinates are
-relative to the previous node.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="x" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the x coordinate</doc>
-            <type name="gint" c:type="gint"/>
-          </parameter>
-          <parameter name="y" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the y coordinate</doc>
-            <type name="gint" c:type="gint"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="add_rel_move_to"
-              c:identifier="clutter_path_add_rel_move_to"
-              version="1.0">
-        <doc xml:whitespace="preserve">Same as clutter_path_add_move_to() except the coordinates are
-relative to the previous node.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="x" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the x coordinate</doc>
-            <type name="gint" c:type="gint"/>
-          </parameter>
-          <parameter name="y" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the y coordinate</doc>
-            <type name="gint" c:type="gint"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="add_string"
-              c:identifier="clutter_path_add_string"
-              version="1.0">
-        <doc xml:whitespace="preserve">Adds new nodes to the end of the path as described in @str. The
-format is a subset of the SVG path format. Each node is represented
-by a letter and is followed by zero, one or three pairs of
-coordinates. The coordinates can be separated by spaces or a
-comma. The types are:
-&lt;variablelist&gt;
-&lt;varlistentry&gt;&lt;term&gt;M&lt;/term&gt;
-&lt;listitem&gt;&lt;para&gt;
-Adds a %CLUTTER_PATH_MOVE_TO node. Takes one pair of coordinates.
-&lt;/para&gt;&lt;/listitem&gt;&lt;/varlistentry&gt;
-&lt;varlistentry&gt;&lt;term&gt;L&lt;/term&gt;
-&lt;listitem&gt;&lt;para&gt;
-Adds a %CLUTTER_PATH_LINE_TO node. Takes one pair of coordinates.
-&lt;/para&gt;&lt;/listitem&gt;&lt;/varlistentry&gt;
-&lt;varlistentry&gt;&lt;term&gt;C&lt;/term&gt;
-&lt;listitem&gt;&lt;para&gt;
-Adds a %CLUTTER_PATH_CURVE_TO node. Takes three pairs of coordinates.
-&lt;/para&gt;&lt;/listitem&gt;&lt;/varlistentry&gt;
-&lt;varlistentry&gt;&lt;term&gt;z&lt;/term&gt;
-&lt;listitem&gt;&lt;para&gt;
-Adds a %CLUTTER_PATH_CLOSE node. No coordinates are needed.
-&lt;/para&gt;&lt;/listitem&gt;&lt;/varlistentry&gt;
-&lt;/variablelist&gt;
-The M, L and C commands can also be specified in lower case which
-means the coordinates are relative to the previous node.
-For example, to move an actor in a 100 by 100 pixel square centered
-on the point 300,300 you could use the following path:
-&lt;informalexample&gt;
-&lt;programlisting&gt;
-M 250,350 l 0 -100 L 350,250 l 0 100 z
-&lt;/programlisting&gt;
-&lt;/informalexample&gt;
-If the path description isn't valid %FALSE will be returned and no
-nodes will be added.
-otherwise.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">%TRUE is the path description was valid or %FALSE</doc>
-          <type name="gboolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="str" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a string describing the new nodes</doc>
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="clear" c:identifier="clutter_path_clear" version="1.0">
-        <doc xml:whitespace="preserve">Removes all nodes from the path.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </method>
-      <method name="foreach" c:identifier="clutter_path_foreach" version="1.0">
-        <doc xml:whitespace="preserve">Calls a function for each node of the path.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="callback"
-                     transfer-ownership="none"
-                     scope="call"
-                     closure="1">
-            <doc xml:whitespace="preserve">the function to call with each node</doc>
-            <type name="PathCallback" c:type="ClutterPathCallback"/>
-          </parameter>
-          <parameter name="user_data" transfer-ownership="none">
-            <doc xml:whitespace="preserve">user data to pass to the function</doc>
-            <type name="gpointer" c:type="gpointer"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_description"
-              c:identifier="clutter_path_get_description"
-              version="1.0">
-        <doc xml:whitespace="preserve">Returns a newly allocated string describing the path in the same
-format as used by clutter_path_add_string().</doc>
-        <return-value transfer-ownership="full">
-          <doc xml:whitespace="preserve">a string description of the path. Free with g_free().</doc>
-          <type name="utf8" c:type="gchar*"/>
-        </return-value>
-      </method>
-      <method name="get_length"
-              c:identifier="clutter_path_get_length"
-              version="1.0">
-        <doc xml:whitespace="preserve">Retrieves an approximation of the total length of the path.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the length of the path.</doc>
-          <type name="guint" c:type="guint"/>
-        </return-value>
-      </method>
-      <method name="get_n_nodes"
-              c:identifier="clutter_path_get_n_nodes"
-              version="1.0">
-        <doc xml:whitespace="preserve">Retrieves the number of nodes in the path.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the number of nodes.</doc>
-          <type name="guint" c:type="guint"/>
-        </return-value>
-      </method>
-      <method name="get_node"
-              c:identifier="clutter_path_get_node"
-              version="1.0">
-        <doc xml:whitespace="preserve">Retrieves the node of the path indexed by @index.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="index_" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the node number to retrieve</doc>
-            <type name="guint" c:type="guint"/>
-          </parameter>
-          <parameter name="node" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a location to store a copy of the node</doc>
-            <type name="PathNode" c:type="ClutterPathNode*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_nodes"
-              c:identifier="clutter_path_get_nodes"
-              version="1.0">
-        <doc xml:whitespace="preserve">Returns a #GSList of #ClutterPathNode&lt;!-- --&gt;s. The list should be
-freed with g_slist_free(). The nodes are owned by the path and
-should not be freed. Altering the path may cause the nodes in the
-list to become invalid so you should copy them if you want to keep
-the list.
-list of nodes in the path.</doc>
-        <return-value transfer-ownership="container">
-          <doc xml:whitespace="preserve">a</doc>
-          <type name="GLib.SList" c:type="GSList*">
-            <type name="PathNode"/>
-          </type>
-        </return-value>
-      </method>
-      <method name="get_position"
-              c:identifier="clutter_path_get_position"
-              version="1.0">
-        <doc xml:whitespace="preserve">The value in @progress represents a position along the path where
-0.0 is the beginning and 1.0 is the end of the path. An
-interpolated position is then stored in @position.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">index of the node used to calculate the position.</doc>
-          <type name="guint" c:type="guint"/>
-        </return-value>
-        <parameters>
-          <parameter name="progress" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a position along the path as a fraction of its length</doc>
-            <type name="gdouble" c:type="gdouble"/>
-          </parameter>
-          <parameter name="position" transfer-ownership="none">
-            <doc xml:whitespace="preserve">location to store the position</doc>
-            <type name="Knot" c:type="ClutterKnot*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="insert_node"
-              c:identifier="clutter_path_insert_node"
-              version="1.0">
-        <doc xml:whitespace="preserve">Inserts @node into the path before the node at the given offset. If</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="index_" transfer-ownership="none">
-            <doc xml:whitespace="preserve">offset of where to insert the node</doc>
-            <type name="gint" c:type="gint"/>
-          </parameter>
-          <parameter name="node" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the node to insert</doc>
-            <type name="PathNode" c:type="ClutterPathNode*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="remove_node"
-              c:identifier="clutter_path_remove_node"
-              version="1.0">
-        <doc xml:whitespace="preserve">Removes the node at the given offset from the path.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="index_" transfer-ownership="none">
-            <doc xml:whitespace="preserve">index of the node to remove</doc>
-            <type name="guint" c:type="guint"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="replace_node"
-              c:identifier="clutter_path_replace_node"
-              version="1.0">
-        <doc xml:whitespace="preserve">Replaces the node at offset @index_ with @node.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="index_" transfer-ownership="none">
-            <doc xml:whitespace="preserve">index to the existing node</doc>
-            <type name="guint" c:type="guint"/>
-          </parameter>
-          <parameter name="node" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the replacement node</doc>
-            <type name="PathNode" c:type="ClutterPathNode*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_description"
-              c:identifier="clutter_path_set_description"
-              version="1.0">
-        <doc xml:whitespace="preserve">Replaces all of the nodes in the path with nodes described by
-If the string is invalid then %FALSE is returned and the path is
-unaltered.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">%TRUE is the path was valid, %FALSE otherwise.</doc>
-          <type name="gboolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="str" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a string describing the path</doc>
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="to_cairo_path"
-              c:identifier="clutter_path_to_cairo_path"
-              version="1.0">
-        <doc xml:whitespace="preserve">Add the nodes of the ClutterPath to the path in the Cairo context.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="cr" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a Cairo context</doc>
-            <type name="cairo.Context" c:type="cairo_t*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <property name="description" writable="1" transfer-ownership="none">
-        <type name="utf8"/>
-      </property>
-      <property name="length" transfer-ownership="none">
-        <type name="guint"/>
-      </property>
-      <field name="parent">
-        <type name="GObject.InitiallyUnowned" c:type="GInitiallyUnowned"/>
-      </field>
-      <field name="priv">
-        <type name="PathPrivate" c:type="ClutterPathPrivate*"/>
-      </field>
-    </class>
-    <callback name="PathCallback" c:type="ClutterPathCallback" version="1.0">
-      <doc xml:whitespace="preserve">This function is passed to clutter_path_foreach() and will be
-called for each node contained in the path.</doc>
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="node" transfer-ownership="none">
-          <doc xml:whitespace="preserve">the node</doc>
-          <type name="PathNode" c:type="ClutterPathNode*"/>
-        </parameter>
-        <parameter name="data" transfer-ownership="none">
-          <doc xml:whitespace="preserve">optional data passed to the function</doc>
-          <type name="gpointer" c:type="gpointer"/>
-        </parameter>
-      </parameters>
-    </callback>
-    <record name="PathClass"
-            c:type="ClutterPathClass"
-            glib:is-gtype-struct-for="Path"
-            version="1.0">
-      <doc xml:whitespace="preserve">The #ClutterPathClass struct contains only private data.</doc>
-      <field name="parent_class">
-        <type name="GObject.InitiallyUnownedClass"
-              c:type="GInitiallyUnownedClass"/>
-      </field>
-    </record>
-    <record name="PathNode"
-            c:type="ClutterPathNode"
-            version="1.0"
-            glib:type-name="ClutterPathNode"
-            glib:get-type="clutter_path_node_get_type"
-            c:symbol-prefix="path_node">
-      <doc xml:whitespace="preserve">Represents a single node of a #ClutterPath.
-Some of the coordinates in @points may be unused for some node
-types. %CLUTTER_PATH_MOVE_TO and %CLUTTER_PATH_LINE_TO use only one
-pair of coordinates, %CLUTTER_PATH_CURVE_TO uses all three and
-%CLUTTER_PATH_CLOSE uses none.</doc>
-      <field name="type" writable="1">
-        <type name="PathNodeType" c:type="ClutterPathNodeType"/>
-      </field>
-      <field name="points" writable="1">
-        <array zero-terminated="0" c:type="ClutterKnot" fixed-size="3">
-          <type name="Knot" c:type="ClutterKnot"/>
-        </array>
-      </field>
-      <method name="copy" c:identifier="clutter_path_node_copy" version="1.0">
-        <doc xml:whitespace="preserve">Makes an allocated copy of a node.</doc>
-        <return-value transfer-ownership="full">
-          <doc xml:whitespace="preserve">the copied node.</doc>
-          <type name="PathNode" c:type="ClutterPathNode*"/>
-        </return-value>
-      </method>
-      <method name="equal"
-              c:identifier="clutter_path_node_equal"
-              version="1.0">
-        <doc xml:whitespace="preserve">Compares two nodes and checks if they are the same type with the
-same coordinates.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">%TRUE if the nodes are the same.</doc>
-          <type name="gboolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="node_b" transfer-ownership="none">
-            <doc xml:whitespace="preserve">Second node</doc>
-            <type name="PathNode" c:type="ClutterPathNode*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="free" c:identifier="clutter_path_node_free" version="1.0">
-        <doc xml:whitespace="preserve">Frees the memory of an allocated node.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </method>
-    </record>
-    <enumeration name="PathNodeType"
-                 version="1.0"
-                 glib:type-name="ClutterPathNodeType"
-                 glib:get-type="clutter_path_node_type_get_type"
-                 c:type="ClutterPathNodeType">
-      <doc xml:whitespace="preserve">Types of nodes in a #ClutterPath.</doc>
-      <member name="move_to"
-              value="0"
-              c:identifier="CLUTTER_PATH_MOVE_TO"
-              glib:nick="move-to"/>
-      <member name="line_to"
-              value="1"
-              c:identifier="CLUTTER_PATH_LINE_TO"
-              glib:nick="line-to"/>
-      <member name="curve_to"
-              value="2"
-              c:identifier="CLUTTER_PATH_CURVE_TO"
-              glib:nick="curve-to"/>
-      <member name="close"
-              value="3"
-              c:identifier="CLUTTER_PATH_CLOSE"
-              glib:nick="close"/>
-      <member name="rel_move_to"
-              value="32"
-              c:identifier="CLUTTER_PATH_REL_MOVE_TO"
-              glib:nick="rel-move-to"/>
-      <member name="rel_line_to"
-              value="33"
-              c:identifier="CLUTTER_PATH_REL_LINE_TO"
-              glib:nick="rel-line-to"/>
-      <member name="rel_curve_to"
-              value="34"
-              c:identifier="CLUTTER_PATH_REL_CURVE_TO"
-              glib:nick="rel-curve-to"/>
-    </enumeration>
-    <record name="PathPrivate" c:type="ClutterPathPrivate" disguised="1">
-    </record>
-    <constant name="Pause" value="65299">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <record name="Perspective"
-            c:type="ClutterPerspective"
-            version="0.4"
-            glib:type-name="ClutterPerspective"
-            glib:get-type="clutter_perspective_get_type"
-            c:symbol-prefix="perspective">
-      <doc xml:whitespace="preserve">Stage perspective definition. #ClutterPerspective is only used by
-the fixed point version of clutter_stage_set_perspective().</doc>
-      <field name="fovy" writable="1">
-        <type name="gfloat" c:type="gfloat"/>
-      </field>
-      <field name="aspect" writable="1">
-        <type name="gfloat" c:type="gfloat"/>
-      </field>
-      <field name="z_near" writable="1">
-        <type name="gfloat" c:type="gfloat"/>
-      </field>
-      <field name="z_far" writable="1">
-        <type name="gfloat" c:type="gfloat"/>
-      </field>
-    </record>
-    <constant name="PesetaSign" value="16785575">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Phone" value="269025134">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <enumeration name="PickMode"
-                 version="1.0"
-                 glib:type-name="ClutterPickMode"
-                 glib:get-type="clutter_pick_mode_get_type"
-                 c:type="ClutterPickMode">
-      <doc xml:whitespace="preserve">Controls the paint cycle of the scene graph when in pick mode</doc>
-      <member name="none"
-              value="0"
-              c:identifier="CLUTTER_PICK_NONE"
-              glib:nick="none"/>
-      <member name="reactive"
-              value="1"
-              c:identifier="CLUTTER_PICK_REACTIVE"
-              glib:nick="reactive"/>
-      <member name="all"
-              value="2"
-              c:identifier="CLUTTER_PICK_ALL"
-              glib:nick="all"/>
-    </enumeration>
-    <constant name="Pictures" value="269025169">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Pointer_Accelerate" value="65274">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Pointer_Button1" value="65257">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Pointer_Button2" value="65258">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Pointer_Button3" value="65259">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Pointer_Button4" value="65260">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Pointer_Button5" value="65261">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Pointer_Button_Dflt" value="65256">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Pointer_DblClick1" value="65263">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Pointer_DblClick2" value="65264">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Pointer_DblClick3" value="65265">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Pointer_DblClick4" value="65266">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Pointer_DblClick5" value="65267">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Pointer_DblClick_Dflt" value="65262">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Pointer_DfltBtnNext" value="65275">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Pointer_DfltBtnPrev" value="65276">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Pointer_Down" value="65251">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Pointer_DownLeft" value="65254">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Pointer_DownRight" value="65255">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Pointer_Drag1" value="65269">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Pointer_Drag2" value="65270">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Pointer_Drag3" value="65271">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Pointer_Drag4" value="65272">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Pointer_Drag5" value="65277">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Pointer_Drag_Dflt" value="65268">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Pointer_EnableKeys" value="65273">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Pointer_Left" value="65248">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Pointer_Right" value="65249">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Pointer_Up" value="65250">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Pointer_UpLeft" value="65252">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Pointer_UpRight" value="65253">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="PowerDown" value="269025057">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="PowerOff" value="269025066">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Prev_VMode" value="269024803">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Prev_Virtual_Screen" value="65233">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="PreviousCandidate" value="65342">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Print" value="65377">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Prior" value="65365">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <callback name="ProgressFunc" c:type="ClutterProgressFunc" version="1.0">
-      <doc xml:whitespace="preserve">Prototype of the progress function used to compute the value
-between the two ends @a and @b of an interval depending on
-the value of @progress.
-The #GValue in @retval is already initialized with the same
-type as @a and @b.
-This function will be called by #ClutterInterval if the
-type of the values of the interval was registered using
-clutter_interval_register_progress_func().
-the value and stored it inside @retval</doc>
-      <return-value transfer-ownership="none">
-        <doc xml:whitespace="preserve">%TRUE if the function successfully computed</doc>
-        <type name="gboolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="a" transfer-ownership="none">
-          <doc xml:whitespace="preserve">the initial value of an interval</doc>
-          <type name="GObject.Value" c:type="GValue*"/>
-        </parameter>
-        <parameter name="b" transfer-ownership="none">
-          <doc xml:whitespace="preserve">the final value of an interval</doc>
-          <type name="GObject.Value" c:type="GValue*"/>
-        </parameter>
-        <parameter name="progress" transfer-ownership="none">
-          <doc xml:whitespace="preserve">the progress factor, between 0 and 1</doc>
-          <type name="gdouble" c:type="gdouble"/>
-        </parameter>
-        <parameter name="retval" transfer-ownership="none">
-          <doc xml:whitespace="preserve">the value used to store the progress</doc>
-          <type name="GObject.Value" c:type="GValue*"/>
-        </parameter>
-      </parameters>
-    </callback>
-    <constant name="Q" value="81">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="R" value="82">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="R1" value="65490">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="R10" value="65499">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="R11" value="65500">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="R12" value="65501">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="R13" value="65502">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="R14" value="65503">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="R15" value="65504">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="R2" value="65491">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="R3" value="65492">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="R4" value="65493">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="R5" value="65494">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="R6" value="65495">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="R7" value="65496">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="R8" value="65497">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="R9" value="65498">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Racute" value="448">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Rcaron" value="472">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Rcedilla" value="931">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <class name="Rectangle"
-           c:symbol-prefix="rectangle"
-           c:type="ClutterRectangle"
-           version="0.1"
-           parent="Actor"
-           glib:type-name="ClutterRectangle"
-           glib:get-type="clutter_rectangle_get_type"
-           glib:type-struct="RectangleClass">
-      <doc xml:whitespace="preserve">The #ClutterRectangle structure contains only private data
-and should be accessed using the provided API</doc>
-      <implements name="Atk.ImplementorIface"/>
-      <implements name="Animatable"/>
-      <implements name="Scriptable"/>
-      <constructor name="new" c:identifier="clutter_rectangle_new">
-        <doc xml:whitespace="preserve">Creates a new #ClutterActor with a rectangular shape.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">a new #ClutterActor</doc>
-          <type name="Actor" c:type="ClutterActor*"/>
-        </return-value>
-      </constructor>
-      <constructor name="new_with_color"
-                   c:identifier="clutter_rectangle_new_with_color">
-        <doc xml:whitespace="preserve">Creates a new #ClutterActor with a rectangular shape
-and of the given @color.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">a new #ClutterActor</doc>
-          <type name="Actor" c:type="ClutterActor*"/>
-        </return-value>
-        <parameters>
-          <parameter name="color" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #ClutterColor</doc>
-            <type name="Color" c:type="ClutterColor*"/>
-          </parameter>
-        </parameters>
-      </constructor>
-      <method name="get_border_color"
-              c:identifier="clutter_rectangle_get_border_color"
-              version="0.2">
-        <doc xml:whitespace="preserve">Gets the color of the border used by @rectangle and places
-it into @color.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="color" transfer-ownership="none">
-            <doc xml:whitespace="preserve">return location for a #ClutterColor</doc>
-            <type name="Color" c:type="ClutterColor*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_border_width"
-              c:identifier="clutter_rectangle_get_border_width"
-              version="0.2">
-        <doc xml:whitespace="preserve">Gets the width (in pixels) of the border used by @rectangle</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the border's width</doc>
-          <type name="guint" c:type="guint"/>
-        </return-value>
-      </method>
-      <method name="get_color" c:identifier="clutter_rectangle_get_color">
-        <doc xml:whitespace="preserve">Retrieves the color of @rectangle.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="color" transfer-ownership="none">
-            <doc xml:whitespace="preserve">return location for a #ClutterColor</doc>
-            <type name="Color" c:type="ClutterColor*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_border_color"
-              c:identifier="clutter_rectangle_set_border_color">
-        <doc xml:whitespace="preserve">Sets the color of the border used by @rectangle using @color</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="color" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the color of the border</doc>
-            <type name="Color" c:type="ClutterColor*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_border_width"
-              c:identifier="clutter_rectangle_set_border_width"
-              version="0.2">
-        <doc xml:whitespace="preserve">Sets the width (in pixel) of the border used by @rectangle.
-A @width of 0 will unset the border.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="width" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the width of the border</doc>
-            <type name="guint" c:type="guint"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_color" c:identifier="clutter_rectangle_set_color">
-        <doc xml:whitespace="preserve">Sets the color of @rectangle.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="color" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #ClutterColor</doc>
-            <type name="Color" c:type="ClutterColor*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <property name="border-color"
-                version="0.2"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">The color of the border of the rectangle.</doc>
-        <type name="Color"/>
-      </property>
-      <property name="border-width"
-                version="0.2"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">The width of the border of the rectangle, in pixels.</doc>
-        <type name="guint"/>
-      </property>
-      <property name="color" writable="1" transfer-ownership="none">
-        <doc xml:whitespace="preserve">The color of the rectangle.</doc>
-        <type name="Color"/>
-      </property>
-      <property name="has-border"
-                version="0.2"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">Whether the #ClutterRectangle should be displayed with a border.</doc>
-        <type name="gboolean"/>
-      </property>
-      <field name="parent">
-        <type name="Actor" c:type="ClutterActor"/>
-      </field>
-      <field name="priv">
-        <type name="RectanglePrivate" c:type="ClutterRectanglePrivate*"/>
-      </field>
-    </class>
-    <record name="RectangleClass"
-            c:type="ClutterRectangleClass"
-            glib:is-gtype-struct-for="Rectangle"
-            version="0.1">
-      <doc xml:whitespace="preserve">The #ClutterRectangleClass structure contains only private data</doc>
-      <field name="parent_class">
-        <type name="ActorClass" c:type="ClutterActorClass"/>
-      </field>
-      <field name="_clutter_rectangle1" introspectable="0">
-        <callback name="_clutter_rectangle1">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-      <field name="_clutter_rectangle2" introspectable="0">
-        <callback name="_clutter_rectangle2">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-      <field name="_clutter_rectangle3" introspectable="0">
-        <callback name="_clutter_rectangle3">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-      <field name="_clutter_rectangle4" introspectable="0">
-        <callback name="_clutter_rectangle4">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-    </record>
-    <record name="RectanglePrivate"
-            c:type="ClutterRectanglePrivate"
-            disguised="1">
-    </record>
-    <constant name="Red" value="269025187">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Redo" value="65382">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <bitfield name="RedrawFlags"
-              version="1.2"
-              glib:type-name="ClutterRedrawFlags"
-              glib:get-type="clutter_redraw_flags_get_type"
-              c:type="ClutterRedrawFlags">
-      <doc xml:whitespace="preserve">Flags passed to the clutter_actor_queue_redraw_with_clip ()
-function</doc>
-      <member name="box"
-              value="0"
-              c:identifier="CLUTTER_REDRAW_CLIPPED_TO_BOX"
-              glib:nick="box"/>
-      <member name="allocation"
-              value="2"
-              c:identifier="CLUTTER_REDRAW_CLIPPED_TO_ALLOCATION"
-              glib:nick="allocation"/>
-    </bitfield>
-    <constant name="Refresh" value="269025065">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Reload" value="269025139">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="RepeatKeys_Enable" value="65138">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Reply" value="269025138">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <enumeration name="RequestMode"
-                 version="0.8"
-                 glib:type-name="ClutterRequestMode"
-                 glib:get-type="clutter_request_mode_get_type"
-                 c:type="ClutterRequestMode">
-      <doc xml:whitespace="preserve">Specifies the type of requests for a #ClutterActor.</doc>
-      <member name="height_for_width"
-              value="0"
-              c:identifier="CLUTTER_REQUEST_HEIGHT_FOR_WIDTH"
-              glib:nick="height-for-width"/>
-      <member name="width_for_height"
-              value="1"
-              c:identifier="CLUTTER_REQUEST_WIDTH_FOR_HEIGHT"
-              glib:nick="width-for-height"/>
-    </enumeration>
-    <constant name="Return" value="65293">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Right" value="65363">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="RockerDown" value="269025060">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="RockerEnter" value="269025061">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="RockerUp" value="269025059">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Romaji" value="65316">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <enumeration name="RotateAxis"
-                 version="0.4"
-                 glib:type-name="ClutterRotateAxis"
-                 glib:get-type="clutter_rotate_axis_get_type"
-                 c:type="ClutterRotateAxis">
-      <doc xml:whitespace="preserve">Axis of a rotation.</doc>
-      <member name="x_axis"
-              value="0"
-              c:identifier="CLUTTER_X_AXIS"
-              glib:nick="x-axis"/>
-      <member name="y_axis"
-              value="1"
-              c:identifier="CLUTTER_Y_AXIS"
-              glib:nick="y-axis"/>
-      <member name="z_axis"
-              value="2"
-              c:identifier="CLUTTER_Z_AXIS"
-              glib:nick="z-axis"/>
-    </enumeration>
-    <enumeration name="RotateDirection"
-                 version="0.4"
-                 glib:type-name="ClutterRotateDirection"
-                 glib:get-type="clutter_rotate_direction_get_type"
-                 c:type="ClutterRotateDirection">
-      <doc xml:whitespace="preserve">Direction of a rotation.</doc>
-      <member name="cw"
-              value="0"
-              c:identifier="CLUTTER_ROTATE_CW"
-              glib:nick="cw"/>
-      <member name="ccw"
-              value="1"
-              c:identifier="CLUTTER_ROTATE_CCW"
-              glib:nick="ccw"/>
-    </enumeration>
-    <constant name="RotateWindows" value="269025140">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="RotationKB" value="269025142">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="RotationPB" value="269025141">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="RupeeSign" value="16785576">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="S" value="83">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="SCHWA" value="16777615">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Sabovedot" value="16784992">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Sacute" value="422">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Save" value="269025143">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Scaron" value="425">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Scedilla" value="426">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Scircumflex" value="734">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <class name="Score"
-           c:symbol-prefix="score"
-           c:type="ClutterScore"
-           version="0.6"
-           parent="GObject.Object"
-           glib:type-name="ClutterScore"
-           glib:get-type="clutter_score_get_type"
-           glib:type-struct="ScoreClass">
-      <doc xml:whitespace="preserve">The #ClutterScore structure contains only private data
-and should be accessed using the provided API</doc>
-      <constructor name="new" c:identifier="clutter_score_new" version="0.6">
-        <doc xml:whitespace="preserve">Creates a new #ClutterScore. A #ClutterScore is an object that can
-hold multiple #ClutterTimeline&lt;!-- --&gt;s in a sequential order.
-when done.</doc>
-        <return-value transfer-ownership="full">
-          <doc xml:whitespace="preserve">the newly created #ClutterScore. Use g_object_unref()</doc>
-          <type name="Score" c:type="ClutterScore*"/>
-        </return-value>
-      </constructor>
-      <method name="append" c:identifier="clutter_score_append" version="0.6">
-        <doc xml:whitespace="preserve">Appends a timeline to another one existing in the score; the newly
-appended timeline will be started when @parent is complete.
-If @parent is %NULL, the new #ClutterTimeline will be started when
-clutter_score_start() is called.
-#ClutterScore will take a reference on @timeline.
-0 on failure. The returned id can be used with clutter_score_remove()
-or clutter_score_get_timeline().</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the id of the #ClutterTimeline inside the score, or</doc>
-          <type name="gulong" c:type="gulong"/>
-        </return-value>
-        <parameters>
-          <parameter name="parent" transfer-ownership="none" allow-none="1">
-            <doc xml:whitespace="preserve">a #ClutterTimeline in the score, or %NULL</doc>
-            <type name="Timeline" c:type="ClutterTimeline*"/>
-          </parameter>
-          <parameter name="timeline" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #ClutterTimeline</doc>
-            <type name="Timeline" c:type="ClutterTimeline*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="append_at_marker"
-              c:identifier="clutter_score_append_at_marker"
-              version="0.8">
-        <doc xml:whitespace="preserve">Appends @timeline at the given @marker_name on the @parent
-#ClutterTimeline.
-If you want to append @timeline at the end of @parent, use
-clutter_score_append().
-The #ClutterScore will take a reference on @timeline.
-0 on failure. The returned id can be used with clutter_score_remove()
-or clutter_score_get_timeline().</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the id of the #ClutterTimeline inside the score, or</doc>
-          <type name="gulong" c:type="gulong"/>
-        </return-value>
-        <parameters>
-          <parameter name="parent" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the parent #ClutterTimeline</doc>
-            <type name="Timeline" c:type="ClutterTimeline*"/>
-          </parameter>
-          <parameter name="marker_name" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the name of the marker to use</doc>
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="timeline" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the #ClutterTimeline to append</doc>
-            <type name="Timeline" c:type="ClutterTimeline*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_loop"
-              c:identifier="clutter_score_get_loop"
-              version="0.6">
-        <doc xml:whitespace="preserve">Gets whether @score is looping</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">%TRUE if the score is looping</doc>
-          <type name="gboolean" c:type="gboolean"/>
-        </return-value>
-      </method>
-      <method name="get_timeline"
-              c:identifier="clutter_score_get_timeline"
-              version="0.6">
-        <doc xml:whitespace="preserve">Retrieves the #ClutterTimeline for @id inside @score.
-function does not increase the reference count on the returned
-#ClutterTimeline</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the requested timeline, or %NULL. This</doc>
-          <type name="Timeline" c:type="ClutterTimeline*"/>
-        </return-value>
-        <parameters>
-          <parameter name="id" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the id of the timeline</doc>
-            <type name="gulong" c:type="gulong"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="is_playing"
-              c:identifier="clutter_score_is_playing"
-              version="0.6">
-        <doc xml:whitespace="preserve">Query state of a #ClutterScore instance.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">%TRUE if score is currently playing</doc>
-          <type name="gboolean" c:type="gboolean"/>
-        </return-value>
-      </method>
-      <method name="list_timelines"
-              c:identifier="clutter_score_list_timelines"
-              version="0.6">
-        <doc xml:whitespace="preserve">Retrieves a list of all the #ClutterTimelines managed by @score.
-#GSList containing all the timelines in the score. This function does
-not increase the reference count of the returned timelines. Use
-g_slist_free() on the returned list to deallocate its resources.</doc>
-        <return-value transfer-ownership="container">
-          <doc xml:whitespace="preserve">a</doc>
-          <type name="GLib.SList" c:type="GSList*">
-            <type name="Timeline"/>
-          </type>
-        </return-value>
-      </method>
-      <method name="pause" c:identifier="clutter_score_pause" version="0.6">
-        <doc xml:whitespace="preserve">Pauses a playing score @score.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </method>
-      <method name="remove" c:identifier="clutter_score_remove" version="0.6">
-        <doc xml:whitespace="preserve">Removes the #ClutterTimeline with the given id inside @score. If
-the timeline has other timelines attached to it, those are removed
-as well.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="id" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the id of the timeline to remove</doc>
-            <type name="gulong" c:type="gulong"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="remove_all"
-              c:identifier="clutter_score_remove_all"
-              version="0.6">
-        <doc xml:whitespace="preserve">Removes all the timelines inside @score.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </method>
-      <method name="rewind" c:identifier="clutter_score_rewind" version="0.6">
-        <doc xml:whitespace="preserve">Rewinds a #ClutterScore to its initial state.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </method>
-      <method name="set_loop"
-              c:identifier="clutter_score_set_loop"
-              version="0.6">
-        <doc xml:whitespace="preserve">Sets whether @score should loop. A looping #ClutterScore will start
-from its initial state after the ::complete signal has been fired.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="loop" transfer-ownership="none">
-            <doc xml:whitespace="preserve">%TRUE for enable looping</doc>
-            <type name="gboolean" c:type="gboolean"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="start" c:identifier="clutter_score_start" version="0.6">
-        <doc xml:whitespace="preserve">Starts the score.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </method>
-      <method name="stop" c:identifier="clutter_score_stop" version="0.6">
-        <doc xml:whitespace="preserve">Stops and rewinds a playing #ClutterScore instance.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </method>
-      <property name="loop"
-                version="0.6"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">Whether the #ClutterScore should restart once finished.</doc>
-        <type name="gboolean"/>
-      </property>
-      <field name="parent">
-        <type name="GObject.Object" c:type="GObject"/>
-      </field>
-      <field name="priv">
-        <type name="ScorePrivate" c:type="ClutterScorePrivate*"/>
-      </field>
-      <glib:signal name="completed" version="0.6">
-        <doc xml:whitespace="preserve">The ::completed signal is emitted each time a #ClutterScore terminates.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none"/>
-        </return-value>
-      </glib:signal>
-      <glib:signal name="paused" version="0.6">
-        <doc xml:whitespace="preserve">The ::paused signal is emitted each time a #ClutterScore
-is paused.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none"/>
-        </return-value>
-      </glib:signal>
-      <glib:signal name="started" version="0.6">
-        <doc xml:whitespace="preserve">The ::started signal is emitted each time a #ClutterScore starts playing.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none"/>
-        </return-value>
-      </glib:signal>
-      <glib:signal name="timeline-completed" version="0.6">
-        <doc xml:whitespace="preserve">The ::timeline-completed signal is emitted each time a timeline
-inside a #ClutterScore terminates.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none"/>
-        </return-value>
-        <parameters>
-          <parameter name="object" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the completed timeline</doc>
-            <type name="Timeline"/>
-          </parameter>
-        </parameters>
-      </glib:signal>
-      <glib:signal name="timeline-started" version="0.6">
-        <doc xml:whitespace="preserve">The ::timeline-started signal is emitted each time a new timeline
-inside a #ClutterScore starts playing.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none"/>
-        </return-value>
-        <parameters>
-          <parameter name="object" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the current timeline</doc>
-            <type name="Timeline"/>
-          </parameter>
-        </parameters>
-      </glib:signal>
-    </class>
-    <record name="ScoreClass"
-            c:type="ClutterScoreClass"
-            glib:is-gtype-struct-for="Score"
-            version="0.6">
-      <doc xml:whitespace="preserve">The #ClutterScoreClass structure contains only private data</doc>
-      <field name="parent_class">
-        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
-      </field>
-      <field name="timeline_started">
-        <callback name="timeline_started">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="score" transfer-ownership="none">
-              <type name="Score" c:type="ClutterScore*"/>
-            </parameter>
-            <parameter name="timeline" transfer-ownership="none">
-              <type name="Timeline" c:type="ClutterTimeline*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="timeline_completed">
-        <callback name="timeline_completed">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="score" transfer-ownership="none">
-              <type name="Score" c:type="ClutterScore*"/>
-            </parameter>
-            <parameter name="timeline" transfer-ownership="none">
-              <type name="Timeline" c:type="ClutterTimeline*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="started">
-        <callback name="started">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="score" transfer-ownership="none">
-              <type name="Score" c:type="ClutterScore*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="completed">
-        <callback name="completed">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="score" transfer-ownership="none">
-              <type name="Score" c:type="ClutterScore*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="paused">
-        <callback name="paused">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="score" transfer-ownership="none">
-              <type name="Score" c:type="ClutterScore*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="_clutter_score_1" introspectable="0">
-        <callback name="_clutter_score_1">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-      <field name="_clutter_score_2" introspectable="0">
-        <callback name="_clutter_score_2">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-      <field name="_clutter_score_3" introspectable="0">
-        <callback name="_clutter_score_3">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-      <field name="_clutter_score_4" introspectable="0">
-        <callback name="_clutter_score_4">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-      <field name="_clutter_score_5" introspectable="0">
-        <callback name="_clutter_score_5">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-    </record>
-    <record name="ScorePrivate" c:type="ClutterScorePrivate" disguised="1">
-    </record>
-    <constant name="ScreenSaver" value="269025069">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <class name="Script"
-           c:symbol-prefix="script"
-           c:type="ClutterScript"
-           version="0.6"
-           parent="GObject.Object"
-           glib:type-name="ClutterScript"
-           glib:get-type="clutter_script_get_type"
-           glib:type-struct="ScriptClass">
-      <doc xml:whitespace="preserve">The #ClutterScript structure contains only private data
-and should be accessed using the provided API</doc>
-      <constructor name="new" c:identifier="clutter_script_new" version="0.6">
-        <doc xml:whitespace="preserve">Creates a new #ClutterScript instance. #ClutterScript can be used
-to load objects definitions for scenegraph elements, like actors,
-or behavioural elements, like behaviours and timelines. The
-definitions must be encoded using the JavaScript Object Notation (JSON)
-language.
-g_object_unref() when done.</doc>
-        <return-value transfer-ownership="full">
-          <doc xml:whitespace="preserve">the newly created #ClutterScript instance. Use</doc>
-          <type name="Script" c:type="ClutterScript*"/>
-        </return-value>
-      </constructor>
-      <virtual-method name="get_type_from_name"
-                      invoker="get_type_from_name"
-                      version="0.6">
-        <doc xml:whitespace="preserve">Looks up a type by name, using the virtual function that 
-#ClutterScript has for that purpose. This function should
-rarely be used.
-%G_TYPE_INVALID if not corresponding type was found.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the type for the requested type name, or</doc>
-          <type name="GType" c:type="GType"/>
-        </return-value>
-        <parameters>
-          <parameter name="type_name" transfer-ownership="none">
-            <doc xml:whitespace="preserve">name of the type to look up</doc>
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <method name="add_search_paths"
-              c:identifier="clutter_script_add_search_paths"
-              version="0.8">
-        <doc xml:whitespace="preserve">Adds @paths to the list of search paths held by @script.
-The search paths are used by clutter_script_lookup_filename(), which
-can be used to define search paths for the textures source file name
-or other custom, file-based properties.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="paths" transfer-ownership="none">
-            <doc xml:whitespace="preserve">an array of strings containing different search paths</doc>
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="n_paths" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the length of the passed array</doc>
-            <type name="gulong" c:type="gsize"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="connect_signals"
-              c:identifier="clutter_script_connect_signals"
-              version="0.6">
-        <doc xml:whitespace="preserve">Connects all the signals defined into a UI definition file to their
-handlers.
-This method invokes clutter_script_connect_signals_full() internally
-and uses  #GModule's introspective features (by opening the current
-module's scope) to look at the application's symbol table.
-Note that this function will not work if #GModule is not supported by
-the platform Clutter is running on.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="user_data" transfer-ownership="none">
-            <doc xml:whitespace="preserve">data to be passed to the signal handlers, or %NULL</doc>
-            <type name="gpointer" c:type="gpointer"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="connect_signals_full"
-              c:identifier="clutter_script_connect_signals_full"
-              version="0.6"
-              introspectable="0">
-        <doc xml:whitespace="preserve">Connects all the signals defined into a UI definition file to their
-handlers.
-This function allows to control how the signal handlers are
-going to be connected to their respective signals. It is meant
-primarily for language bindings to allow resolving the function
-names using the native API, but it can also be used on platforms
-that do not support GModule.
-Applications should use clutter_script_connect_signals().</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="func" transfer-ownership="none" closure="1">
-            <doc xml:whitespace="preserve">signal connection function</doc>
-            <type name="ScriptConnectFunc" c:type="ClutterScriptConnectFunc"/>
-          </parameter>
-          <parameter name="user_data" transfer-ownership="none">
-            <doc xml:whitespace="preserve">data to be passed to the signal handlers, or %NULL</doc>
-            <type name="gpointer" c:type="gpointer"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="ensure_objects"
-              c:identifier="clutter_script_ensure_objects"
-              version="0.6">
-        <doc xml:whitespace="preserve">Ensure that every object defined inside @script is correctly
-constructed. You should rarely need to use this function.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </method>
-      <method name="get_object"
-              c:identifier="clutter_script_get_object"
-              version="0.6">
-        <doc xml:whitespace="preserve">Retrieves the object bound to @name. This function does not increment
-the reference count of the returned object.
-with the given name was available</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the named object, or %NULL if no object</doc>
-          <type name="GObject.Object" c:type="GObject*"/>
-        </return-value>
-        <parameters>
-          <parameter name="name" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the name of the object to retrieve</doc>
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_objects"
-              c:identifier="clutter_script_get_objects"
-              version="0.6"
-              introspectable="0">
-        <doc xml:whitespace="preserve">Retrieves a list of objects for the given names. After @script, object
-names/return location pairs should be listed, with a %NULL pointer
-ending the list, like:
-&lt;informalexample&gt;&lt;programlisting&gt;
-GObject *my_label, *a_button, *main_timeline;
-clutter_script_get_objects (script,
-"my-label", &amp;amp;my_label,
-"a-button", &amp;amp;a_button,
-"main-timeline", &amp;amp;main_timeline,
-NULL);
-&lt;/programlisting&gt;&lt;/informalexample&gt;
-returned objects.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the number of objects returned.</doc>
-          <type name="gint" c:type="gint"/>
-        </return-value>
-        <parameters>
-          <parameter name="first_name" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the name of the first object to retrieve</doc>
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter transfer-ownership="none">
-            <varargs>
-            </varargs>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_type_from_name"
-              c:identifier="clutter_script_get_type_from_name"
-              version="0.6">
-        <doc xml:whitespace="preserve">Looks up a type by name, using the virtual function that 
-#ClutterScript has for that purpose. This function should
-rarely be used.
-%G_TYPE_INVALID if not corresponding type was found.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the type for the requested type name, or</doc>
-          <type name="GType" c:type="GType"/>
-        </return-value>
-        <parameters>
-          <parameter name="type_name" transfer-ownership="none">
-            <doc xml:whitespace="preserve">name of the type to look up</doc>
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="list_objects"
-              c:identifier="clutter_script_list_objects"
-              version="0.8.2">
-        <doc xml:whitespace="preserve">Retrieves all the objects created by @script.
-objects it returns.
-of #GObject&lt;!-- --&gt;s, or %NULL. The objects are owned by the
-#ClutterScript instance. Use g_list_free() on the returned list when
-done.</doc>
-        <return-value transfer-ownership="container">
-          <doc xml:whitespace="preserve">a list</doc>
-          <type name="GLib.List" c:type="GList*">
-            <type name="GObject.Object"/>
-          </type>
-        </return-value>
-      </method>
-      <method name="load_from_data"
-              c:identifier="clutter_script_load_from_data"
-              version="0.6"
-              throws="1">
-        <doc xml:whitespace="preserve">Loads the definitions from @data into @script and merges with
-the currently loaded ones, if any.
-accordingly. On success, the merge id for the UI definitions is
-returned. You can use the merge id with clutter_script_unmerge().</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">on error, zero is returned and @error is set</doc>
-          <type name="guint" c:type="guint"/>
-        </return-value>
-        <parameters>
-          <parameter name="data" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a buffer containing the definitions</doc>
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="length" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the length of the buffer, or -1 if @data is a NUL-terminated buffer</doc>
-            <type name="glong" c:type="gssize"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="load_from_file"
-              c:identifier="clutter_script_load_from_file"
-              version="0.6"
-              throws="1">
-        <doc xml:whitespace="preserve">Loads the definitions from @filename into @script and merges with
-the currently loaded ones, if any.
-accordingly. On success, the merge id for the UI definitions is
-returned. You can use the merge id with clutter_script_unmerge_objects().</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">on error, zero is returned and @error is set</doc>
-          <type name="guint" c:type="guint"/>
-        </return-value>
-        <parameters>
-          <parameter name="filename" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the full path to the definition file</doc>
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="lookup_filename"
-              c:identifier="clutter_script_lookup_filename"
-              version="0.8">
-        <doc xml:whitespace="preserve">Looks up @filename inside the search paths of @script. If @filename
-is found, its full path will be returned .
-found.</doc>
-        <return-value transfer-ownership="full">
-          <doc xml:whitespace="preserve">the full path of @filename or %NULL if no path was</doc>
-          <type name="utf8" c:type="gchar*"/>
-        </return-value>
-        <parameters>
-          <parameter name="filename" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the name of the file to lookup</doc>
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="unmerge_objects"
-              c:identifier="clutter_script_unmerge_objects"
-              version="0.6">
-        <doc xml:whitespace="preserve">Unmerges the objects identified by @merge_id.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="merge_id" transfer-ownership="none">
-            <doc xml:whitespace="preserve">merge id returned when loading a UI definition</doc>
-            <type name="guint" c:type="guint"/>
-          </parameter>
-        </parameters>
-      </method>
-      <property name="filename" version="0.6" transfer-ownership="none">
-        <doc xml:whitespace="preserve">The path of the currently parsed file. If #ClutterScript:filename-set
-is %FALSE then the value of this property is undefined.</doc>
-        <type name="utf8"/>
-      </property>
-      <property name="filename-set" version="0.6" transfer-ownership="none">
-        <doc xml:whitespace="preserve">Whether the #ClutterScript:filename property is set. If this property
-is %TRUE then the currently parsed data comes from a file, and the
-file name is stored inside the #ClutterScript:filename property.</doc>
-        <type name="gboolean"/>
-      </property>
-      <field name="parent_instance">
-        <type name="GObject.Object" c:type="GObject"/>
-      </field>
-      <field name="priv">
-        <type name="ScriptPrivate" c:type="ClutterScriptPrivate*"/>
-      </field>
-    </class>
-    <record name="ScriptClass"
-            c:type="ClutterScriptClass"
-            glib:is-gtype-struct-for="Script"
-            version="0.6">
-      <doc xml:whitespace="preserve">The #ClutterScriptClass structure contains only private data</doc>
-      <field name="parent_class">
-        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
-      </field>
-      <field name="get_type_from_name">
-        <callback name="get_type_from_name">
-          <return-value transfer-ownership="none">
-            <doc xml:whitespace="preserve">the type for the requested type name, or</doc>
-            <type name="GType" c:type="GType"/>
-          </return-value>
-          <parameters>
-            <parameter name="script" transfer-ownership="none">
-              <type name="Script" c:type="ClutterScript*"/>
-            </parameter>
-            <parameter name="type_name" transfer-ownership="none">
-              <doc xml:whitespace="preserve">name of the type to look up</doc>
-              <type name="utf8" c:type="gchar*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="_clutter_reserved1" introspectable="0">
-        <callback name="_clutter_reserved1">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-      <field name="_clutter_reserved2" introspectable="0">
-        <callback name="_clutter_reserved2">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-      <field name="_clutter_reserved3" introspectable="0">
-        <callback name="_clutter_reserved3">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-      <field name="_clutter_reserved4" introspectable="0">
-        <callback name="_clutter_reserved4">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-      <field name="_clutter_reserved5" introspectable="0">
-        <callback name="_clutter_reserved5">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-      <field name="_clutter_reserved6" introspectable="0">
-        <callback name="_clutter_reserved6">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-      <field name="_clutter_reserved7" introspectable="0">
-        <callback name="_clutter_reserved7">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-      <field name="_clutter_reserved8" introspectable="0">
-        <callback name="_clutter_reserved8">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-    </record>
-    <callback name="ScriptConnectFunc"
-              c:type="ClutterScriptConnectFunc"
-              version="0.6">
-      <doc xml:whitespace="preserve">This is the signature of a function used to connect signals.  It is used
-by the clutter_script_connect_signals_full() function.  It is mainly
-intended for interpreted language bindings, but could be useful where the
-programmer wants more control over the signal connection process.</doc>
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="script" transfer-ownership="none">
-          <doc xml:whitespace="preserve">a #ClutterScript</doc>
-          <type name="Script" c:type="ClutterScript*"/>
-        </parameter>
-        <parameter name="object" transfer-ownership="none">
-          <doc xml:whitespace="preserve">the object to connect</doc>
-          <type name="GObject.Object" c:type="GObject*"/>
-        </parameter>
-        <parameter name="signal_name" transfer-ownership="none">
-          <doc xml:whitespace="preserve">the name of the signal</doc>
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-        <parameter name="handler_name" transfer-ownership="none">
-          <doc xml:whitespace="preserve">the name of the signal handler</doc>
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-        <parameter name="connect_object" transfer-ownership="none">
-          <doc xml:whitespace="preserve">the object to connect the signal to, or %NULL</doc>
-          <type name="GObject.Object" c:type="GObject*"/>
-        </parameter>
-        <parameter name="flags" transfer-ownership="none">
-          <doc xml:whitespace="preserve">signal connection flags</doc>
-          <type name="GObject.ConnectFlags" c:type="GConnectFlags"/>
-        </parameter>
-        <parameter name="user_data" transfer-ownership="none" closure="6">
-          <doc xml:whitespace="preserve">user data to pass to the signal handler</doc>
-          <type name="gpointer" c:type="gpointer"/>
-        </parameter>
-      </parameters>
-    </callback>
-    <enumeration name="ScriptError"
-                 version="0.6"
-                 glib:type-name="ClutterScriptError"
-                 glib:get-type="clutter_script_error_get_type"
-                 c:type="ClutterScriptError"
-                 glib:error-quark="clutter_script_error_quark">
-      <doc xml:whitespace="preserve">#ClutterScript error enumeration.</doc>
-      <member name="type_function"
-              value="0"
-              c:identifier="CLUTTER_SCRIPT_ERROR_INVALID_TYPE_FUNCTION"
-              glib:nick="type-function"/>
-      <member name="property"
-              value="1"
-              c:identifier="CLUTTER_SCRIPT_ERROR_INVALID_PROPERTY"
-              glib:nick="property"/>
-      <member name="value"
-              value="2"
-              c:identifier="CLUTTER_SCRIPT_ERROR_INVALID_VALUE"
-              glib:nick="value"/>
-    </enumeration>
-    <record name="ScriptPrivate" c:type="ClutterScriptPrivate" disguised="1">
-    </record>
-    <interface name="Scriptable"
-               c:symbol-prefix="scriptable"
-               c:type="ClutterScriptable"
-               version="0.6"
-               glib:type-name="ClutterScriptable"
-               glib:get-type="clutter_scriptable_get_type"
-               glib:type-struct="ScriptableIface">
-      <doc xml:whitespace="preserve">#ClutterScriptable is an opaque structure whose members cannot be directly
-accessed</doc>
-      <virtual-method name="get_id" invoker="get_id" version="0.6">
-        <doc xml:whitespace="preserve">Retrieves the id of @scriptable set using clutter_scriptable_set_id().
-the scriptable object and should never be modified of freed</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the id of the object. The returned string is owned by</doc>
-          <type name="utf8" c:type="gchar*"/>
-        </return-value>
-      </virtual-method>
-      <virtual-method name="parse_custom_node"
-                      invoker="parse_custom_node"
-                      version="0.6">
-        <doc xml:whitespace="preserve">Parses the passed JSON node. The implementation must set the type
-of the passed #GValue pointer using g_value_init().</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">%TRUE if the node was successfully parsed, %FALSE otherwise.</doc>
-          <type name="gboolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="script" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the #ClutterScript creating the scriptable instance</doc>
-            <type name="Script" c:type="ClutterScript*"/>
-          </parameter>
-          <parameter name="value" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the generic value to be set</doc>
-            <type name="GObject.Value" c:type="GValue*"/>
-          </parameter>
-          <parameter name="name" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the name of the node</doc>
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="node" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the JSON node to be parsed</doc>
-            <type name="Json.Node" c:type="JsonNode*"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <virtual-method name="set_custom_property"
-                      invoker="set_custom_property"
-                      version="0.6">
-        <doc xml:whitespace="preserve">Overrides the common properties setting. The underlying virtual
-function should be used when implementing custom properties.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="script" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the #ClutterScript creating the scriptable instance</doc>
-            <type name="Script" c:type="ClutterScript*"/>
-          </parameter>
-          <parameter name="name" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the name of the property</doc>
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="value" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the value of the property</doc>
-            <type name="GObject.Value" c:type="GValue*"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <virtual-method name="set_id" invoker="set_id" version="0.6">
-        <doc xml:whitespace="preserve">Sets @id as the unique Clutter script it for this instance of
-#ClutterScriptableIface.
-This name can be used by user interface designer applications to
-define a unique name for an object constructable using the UI
-definition language parsed by #ClutterScript.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="name" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <method name="get_id"
-              c:identifier="clutter_scriptable_get_id"
-              version="0.6">
-        <doc xml:whitespace="preserve">Retrieves the id of @scriptable set using clutter_scriptable_set_id().
-the scriptable object and should never be modified of freed</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the id of the object. The returned string is owned by</doc>
-          <type name="utf8" c:type="gchar*"/>
-        </return-value>
-      </method>
-      <method name="parse_custom_node"
-              c:identifier="clutter_scriptable_parse_custom_node"
-              version="0.6">
-        <doc xml:whitespace="preserve">Parses the passed JSON node. The implementation must set the type
-of the passed #GValue pointer using g_value_init().</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">%TRUE if the node was successfully parsed, %FALSE otherwise.</doc>
-          <type name="gboolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="script" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the #ClutterScript creating the scriptable instance</doc>
-            <type name="Script" c:type="ClutterScript*"/>
-          </parameter>
-          <parameter name="value" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the generic value to be set</doc>
-            <type name="GObject.Value" c:type="GValue*"/>
-          </parameter>
-          <parameter name="name" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the name of the node</doc>
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="node" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the JSON node to be parsed</doc>
-            <type name="Json.Node" c:type="JsonNode*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_custom_property"
-              c:identifier="clutter_scriptable_set_custom_property"
-              version="0.6">
-        <doc xml:whitespace="preserve">Overrides the common properties setting. The underlying virtual
-function should be used when implementing custom properties.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="script" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the #ClutterScript creating the scriptable instance</doc>
-            <type name="Script" c:type="ClutterScript*"/>
-          </parameter>
-          <parameter name="name" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the name of the property</doc>
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="value" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the value of the property</doc>
-            <type name="GObject.Value" c:type="GValue*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_id"
-              c:identifier="clutter_scriptable_set_id"
-              version="0.6">
-        <doc xml:whitespace="preserve">Sets @id as the unique Clutter script it for this instance of
-#ClutterScriptableIface.
-This name can be used by user interface designer applications to
-define a unique name for an object constructable using the UI
-definition language parsed by #ClutterScript.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="id" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the #ClutterScript id of the object</doc>
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </method>
-    </interface>
-    <record name="ScriptableIface"
-            c:type="ClutterScriptableIface"
-            glib:is-gtype-struct-for="Scriptable"
-            version="0.6">
-      <doc xml:whitespace="preserve">Interface for implementing "scriptable" objects. An object implementing
-this interface can override the parsing and properties setting sequence
-when loading a UI definition data with #ClutterScript</doc>
-      <field name="g_iface">
-        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
-      </field>
-      <field name="set_id">
-        <callback name="set_id">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="scriptable" transfer-ownership="none">
-              <type name="Scriptable" c:type="ClutterScriptable*"/>
-            </parameter>
-            <parameter name="name" transfer-ownership="none">
-              <type name="utf8" c:type="gchar*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="get_id">
-        <callback name="get_id">
-          <return-value transfer-ownership="none">
-            <doc xml:whitespace="preserve">the id of the object. The returned string is owned by</doc>
-            <type name="utf8" c:type="gchar*"/>
-          </return-value>
-          <parameters>
-            <parameter name="scriptable" transfer-ownership="none">
-              <type name="Scriptable" c:type="ClutterScriptable*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="parse_custom_node">
-        <callback name="parse_custom_node">
-          <return-value transfer-ownership="none">
-            <doc xml:whitespace="preserve">%TRUE if the node was successfully parsed, %FALSE otherwise.</doc>
-            <type name="gboolean" c:type="gboolean"/>
-          </return-value>
-          <parameters>
-            <parameter name="scriptable" transfer-ownership="none">
-              <type name="Scriptable" c:type="ClutterScriptable*"/>
-            </parameter>
-            <parameter name="script" transfer-ownership="none">
-              <doc xml:whitespace="preserve">the #ClutterScript creating the scriptable instance</doc>
-              <type name="Script" c:type="ClutterScript*"/>
-            </parameter>
-            <parameter name="value" transfer-ownership="none">
-              <doc xml:whitespace="preserve">the generic value to be set</doc>
-              <type name="GObject.Value" c:type="GValue*"/>
-            </parameter>
-            <parameter name="name" transfer-ownership="none">
-              <doc xml:whitespace="preserve">the name of the node</doc>
-              <type name="utf8" c:type="gchar*"/>
-            </parameter>
-            <parameter name="node" transfer-ownership="none">
-              <doc xml:whitespace="preserve">the JSON node to be parsed</doc>
-              <type name="Json.Node" c:type="JsonNode*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="set_custom_property">
-        <callback name="set_custom_property">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="scriptable" transfer-ownership="none">
-              <type name="Scriptable" c:type="ClutterScriptable*"/>
-            </parameter>
-            <parameter name="script" transfer-ownership="none">
-              <doc xml:whitespace="preserve">the #ClutterScript creating the scriptable instance</doc>
-              <type name="Script" c:type="ClutterScript*"/>
-            </parameter>
-            <parameter name="name" transfer-ownership="none">
-              <doc xml:whitespace="preserve">the name of the property</doc>
-              <type name="utf8" c:type="gchar*"/>
-            </parameter>
-            <parameter name="value" transfer-ownership="none">
-              <doc xml:whitespace="preserve">the value of the property</doc>
-              <type name="GObject.Value" c:type="GValue*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-    </record>
-    <constant name="ScrollClick" value="269025146">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <enumeration name="ScrollDirection"
-                 version="0.4"
-                 glib:type-name="ClutterScrollDirection"
-                 glib:get-type="clutter_scroll_direction_get_type"
-                 c:type="ClutterScrollDirection">
-      <doc xml:whitespace="preserve">Direction of a pointer scroll event.</doc>
-      <member name="up"
-              value="0"
-              c:identifier="CLUTTER_SCROLL_UP"
-              glib:nick="up"/>
-      <member name="down"
-              value="1"
-              c:identifier="CLUTTER_SCROLL_DOWN"
-              glib:nick="down"/>
-      <member name="left"
-              value="2"
-              c:identifier="CLUTTER_SCROLL_LEFT"
-              glib:nick="left"/>
-      <member name="right"
-              value="3"
-              c:identifier="CLUTTER_SCROLL_RIGHT"
-              glib:nick="right"/>
-    </enumeration>
-    <constant name="ScrollDown" value="269025145">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <record name="ScrollEvent" c:type="ClutterScrollEvent" version="0.2">
-      <doc xml:whitespace="preserve">Scroll wheel (or similar device) event</doc>
-      <field name="type" writable="1">
-        <type name="EventType" c:type="ClutterEventType"/>
-      </field>
-      <field name="time" writable="1">
-        <type name="guint32" c:type="guint32"/>
-      </field>
-      <field name="flags" writable="1">
-        <type name="EventFlags" c:type="ClutterEventFlags"/>
-      </field>
-      <field name="stage" writable="1">
-        <type name="Stage" c:type="ClutterStage*"/>
-      </field>
-      <field name="source" writable="1">
-        <type name="Actor" c:type="ClutterActor*"/>
-      </field>
-      <field name="x" writable="1">
-        <type name="gfloat" c:type="gfloat"/>
-      </field>
-      <field name="y" writable="1">
-        <type name="gfloat" c:type="gfloat"/>
-      </field>
-      <field name="direction" writable="1">
-        <type name="ScrollDirection" c:type="ClutterScrollDirection"/>
-      </field>
-      <field name="modifier_state" writable="1">
-        <type name="ModifierType" c:type="ClutterModifierType"/>
-      </field>
-      <field name="axes" writable="1">
-        <type name="gdouble" c:type="gdouble*"/>
-      </field>
-      <field name="device" writable="1">
-        <type name="InputDevice" c:type="ClutterInputDevice*"/>
-      </field>
-    </record>
-    <constant name="ScrollUp" value="269025144">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Scroll_Lock" value="65300">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Search" value="269025051">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Select" value="65376">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="SelectButton" value="269025184">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Send" value="269025147">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Serbian_DJE" value="1713">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Serbian_DZE" value="1727">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Serbian_JE" value="1720">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Serbian_LJE" value="1721">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Serbian_NJE" value="1722">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Serbian_TSHE" value="1723">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Serbian_dje" value="1697">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Serbian_dze" value="1711">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Serbian_je" value="1704">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Serbian_lje" value="1705">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Serbian_nje" value="1706">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Serbian_tshe" value="1707">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <class name="Settings"
-           c:symbol-prefix="settings"
-           c:type="ClutterSettings"
-           version="1.4"
-           parent="GObject.Object"
-           glib:type-name="ClutterSettings"
-           glib:get-type="clutter_settings_get_type">
-      <doc xml:whitespace="preserve">&lt;structname&gt;ClutterSettings&lt;/structname&gt; is an opaque structure whose
-members cannot be directly accessed.</doc>
-      <function name="get_default"
-                c:identifier="clutter_settings_get_default"
-                version="1.4">
-        <doc xml:whitespace="preserve">Retrieves the singleton instance of #ClutterSettings
-returned object is owned by Clutter and it should not be unreferenced
-directly</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the instance of #ClutterSettings. The</doc>
-          <type name="Settings" c:type="ClutterSettings*"/>
-        </return-value>
-      </function>
-      <property name="backend"
-                version="1.4"
-                readable="0"
-                writable="1"
-                construct-only="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">A back pointer to the #ClutterBackend</doc>
-        <type name="Backend"/>
-      </property>
-      <property name="double-click-distance"
-                version="1.4"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">The maximum distance, in pixels, between button-press events that
-determines whether or not to increase the click count by 1.</doc>
-        <type name="gint"/>
-      </property>
-      <property name="double-click-time"
-                version="1.4"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">The time, in milliseconds, that should elapse between button-press
-events in order to increase the click count by 1.</doc>
-        <type name="gint"/>
-      </property>
-      <property name="font-antialias"
-                version="1.4"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">Whether or not to use antialiasing when rendering text; a value
-of 1 enables it unconditionally; a value of 0 disables it
-unconditionally; and -1 will use the system's default.</doc>
-        <type name="gint"/>
-      </property>
-      <property name="font-dpi"
-                version="1.4"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">The DPI used when rendering text, as a value of 1024 * dots/inch.
-If set to -1, the system's default will be used instead</doc>
-        <type name="gint"/>
-      </property>
-      <property name="font-hint-style"
-                version="1.4"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">The style of the hinting used when rendering text. Valid values
-are:
-&lt;itemizedlist&gt;
-&lt;listitem&gt;&lt;simpara&gt;hintnone&lt;/simpara&gt;&lt;/listitem&gt;
-&lt;listitem&gt;&lt;simpara&gt;hintslight&lt;/simpara&gt;&lt;/listitem&gt;
-&lt;listitem&gt;&lt;simpara&gt;hintmedium&lt;/simpara&gt;&lt;/listitem&gt;
-&lt;listitem&gt;&lt;simpara&gt;hintfull&lt;/simpara&gt;&lt;/listitem&gt;
-&lt;/itemizedlist&gt;</doc>
-        <type name="utf8"/>
-      </property>
-      <property name="font-hinting"
-                version="1.4"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">Whether or not to use hinting when rendering text; a value of 1
-unconditionally enables it; a value of 0 unconditionally disables
-it; and a value of -1 will use the system's default.</doc>
-        <type name="gint"/>
-      </property>
-      <property name="font-name"
-                version="1.4"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">The default font name that should be used by text actors, as
-a string that can be passed to pango_font_description_from_string().</doc>
-        <type name="utf8"/>
-      </property>
-      <property name="font-subpixel-order"
-                version="1.4"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">The type of sub-pixel antialiasing used when rendering text. Valid
-values are:
-&lt;itemizedlist&gt;
-&lt;listitem&gt;&lt;simpara&gt;none&lt;/simpara&gt;&lt;/listitem&gt;
-&lt;listitem&gt;&lt;simpara&gt;rgb&lt;/simpara&gt;&lt;/listitem&gt;
-&lt;listitem&gt;&lt;simpara&gt;bgr&lt;/simpara&gt;&lt;/listitem&gt;
-&lt;listitem&gt;&lt;simpara&gt;vrgb&lt;/simpara&gt;&lt;/listitem&gt;
-&lt;listitem&gt;&lt;simpara&gt;vbgr&lt;/simpara&gt;&lt;/listitem&gt;
-&lt;/itemizedlist&gt;</doc>
-        <type name="utf8"/>
-      </property>
-    </class>
-    <class name="Shader"
-           c:symbol-prefix="shader"
-           c:type="ClutterShader"
-           version="0.6"
-           parent="GObject.Object"
-           glib:type-name="ClutterShader"
-           glib:get-type="clutter_shader_get_type"
-           glib:type-struct="ShaderClass">
-      <doc xml:whitespace="preserve">The #ClutterShader structure contains only private data
-and should be accessed using the provided API</doc>
-      <constructor name="new" c:identifier="clutter_shader_new" version="0.6">
-        <doc xml:whitespace="preserve">Create a new #ClutterShader instance.</doc>
-        <return-value transfer-ownership="full">
-          <doc xml:whitespace="preserve">a new #ClutterShader.</doc>
-          <type name="Shader" c:type="ClutterShader*"/>
-        </return-value>
-      </constructor>
-      <method name="compile"
-              c:identifier="clutter_shader_compile"
-              version="0.8"
-              throws="1">
-        <doc xml:whitespace="preserve">Compiles and links GLSL sources set for vertex and fragment shaders for
-a #ClutterShader. If the compilation fails and a #GError return location is
-provided the error will contain the errors from the compiler, if any.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">returns TRUE if the shader was succesfully compiled.</doc>
-          <type name="gboolean" c:type="gboolean"/>
-        </return-value>
-      </method>
-      <method name="get_cogl_fragment_shader"
-              c:identifier="clutter_shader_get_cogl_fragment_shader"
-              version="1.0">
-        <doc xml:whitespace="preserve">Retrieves the underlying #CoglHandle for the fragment shader.
-shader, or %NULL. The handle is owned by the #ClutterShader
-and it should not be unreferenced</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">A #CoglHandle for the fragment</doc>
-          <type name="Cogl.Handle" c:type="CoglHandle"/>
-        </return-value>
-      </method>
-      <method name="get_cogl_program"
-              c:identifier="clutter_shader_get_cogl_program"
-              version="1.0">
-        <doc xml:whitespace="preserve">Retrieves the underlying #CoglHandle for the shader program.
-or %NULL. The handle is owned by the #ClutterShader and it should
-not be unreferenced</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">A #CoglHandle for the shader program,</doc>
-          <type name="Cogl.Handle" c:type="CoglHandle"/>
-        </return-value>
-      </method>
-      <method name="get_cogl_vertex_shader"
-              c:identifier="clutter_shader_get_cogl_vertex_shader"
-              version="1.0">
-        <doc xml:whitespace="preserve">Retrieves the underlying #CoglHandle for the vertex shader.
-shader, or %NULL. The handle is owned by the #ClutterShader
-and it should not be unreferenced</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">A #CoglHandle for the vertex</doc>
-          <type name="Cogl.Handle" c:type="CoglHandle"/>
-        </return-value>
-      </method>
-      <method name="get_fragment_source"
-              c:identifier="clutter_shader_get_fragment_source"
-              version="0.6">
-        <doc xml:whitespace="preserve">Query the current GLSL fragment source set on @shader.
-ClutterShader object or %NULL. The returned string is owned by the
-shader object and should never be modified or freed</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the source of the fragment shader for this</doc>
-          <type name="utf8" c:type="gchar*"/>
-        </return-value>
-      </method>
-      <method name="get_is_enabled"
-              c:identifier="clutter_shader_get_is_enabled"
-              version="0.6">
-        <doc xml:whitespace="preserve">Checks whether @shader is enabled.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">%TRUE if the shader is enabled.</doc>
-          <type name="gboolean" c:type="gboolean"/>
-        </return-value>
-      </method>
-      <method name="get_vertex_source"
-              c:identifier="clutter_shader_get_vertex_source"
-              version="0.6">
-        <doc xml:whitespace="preserve">Query the current GLSL vertex source set on @shader.
-ClutterShader object or %NULL. The returned string is owned by the
-shader object and should never be modified or freed</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the source of the vertex shader for this</doc>
-          <type name="utf8" c:type="gchar*"/>
-        </return-value>
-      </method>
-      <method name="is_compiled"
-              c:identifier="clutter_shader_is_compiled"
-              version="0.8">
-        <doc xml:whitespace="preserve">Checks whether @shader is is currently compiled, linked and bound
-to the GL context.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">%TRUE if the shader is compiled, linked and ready for use.</doc>
-          <type name="gboolean" c:type="gboolean"/>
-        </return-value>
-      </method>
-      <method name="release"
-              c:identifier="clutter_shader_release"
-              version="0.6">
-        <doc xml:whitespace="preserve">Frees up any GL context resources held by the shader.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </method>
-      <method name="set_fragment_source"
-              c:identifier="clutter_shader_set_fragment_source"
-              version="0.6">
-        <doc xml:whitespace="preserve">Sets the GLSL source code to be used by a #ClutterShader for the fragment
-program.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="data" transfer-ownership="none">
-            <doc xml:whitespace="preserve">GLSL source code.</doc>
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="length" transfer-ownership="none">
-            <doc xml:whitespace="preserve">length of source buffer (currently ignored)</doc>
-            <type name="glong" c:type="gssize"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_is_enabled"
-              c:identifier="clutter_shader_set_is_enabled"
-              version="0.6">
-        <doc xml:whitespace="preserve">Enables a shader. This function will attempt to compile and link
-the shader, if it isn't already.
-When @enabled is %FALSE the default state of the GL pipeline will be
-used instead.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="enabled" transfer-ownership="none">
-            <doc xml:whitespace="preserve">The new state of the shader.</doc>
-            <type name="gboolean" c:type="gboolean"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_uniform"
-              c:identifier="clutter_shader_set_uniform"
-              version="1.0">
-        <doc xml:whitespace="preserve">Sets a user configurable variable in the GLSL shader programs attached to
-a #ClutterShader.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="name" transfer-ownership="none">
-            <doc xml:whitespace="preserve">name of uniform in GLSL shader program to set.</doc>
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="value" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #ClutterShaderFloat, #ClutterShaderInt or #ClutterShaderMatrix #GValue.</doc>
-            <type name="GObject.Value" c:type="GValue*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_vertex_source"
-              c:identifier="clutter_shader_set_vertex_source"
-              version="0.6">
-        <doc xml:whitespace="preserve">Sets the GLSL source code to be used by a #ClutterShader for the vertex
-program.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="data" transfer-ownership="none">
-            <doc xml:whitespace="preserve">GLSL source code.</doc>
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="length" transfer-ownership="none">
-            <doc xml:whitespace="preserve">length of source buffer (currently ignored)</doc>
-            <type name="glong" c:type="gssize"/>
-          </parameter>
-        </parameters>
-      </method>
-      <property name="compiled" version="0.8" transfer-ownership="none">
-        <doc xml:whitespace="preserve">Whether the shader is compiled and linked, ready for use
-in the GL context.</doc>
-        <type name="gboolean"/>
-      </property>
-      <property name="enabled"
-                version="0.6"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">Whether the shader is currently used in the GL rendering pipeline.</doc>
-        <type name="gboolean"/>
-      </property>
-      <property name="fragment-source"
-                version="0.6"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">GLSL source code for the fragment shader part of the shader program.</doc>
-        <type name="utf8"/>
-      </property>
-      <property name="vertex-source"
-                version="0.6"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">GLSL source code for the vertex shader part of the shader
-program, if any</doc>
-        <type name="utf8"/>
-      </property>
-      <field name="parent">
-        <type name="GObject.Object" c:type="GObject"/>
-      </field>
-      <field name="priv">
-        <type name="ShaderPrivate" c:type="ClutterShaderPrivate*"/>
-      </field>
-    </class>
-    <record name="ShaderClass"
-            c:type="ClutterShaderClass"
-            glib:is-gtype-struct-for="Shader"
-            version="0.6">
-      <doc xml:whitespace="preserve">The #ClutterShaderClass structure contains only private data</doc>
-      <field name="parent_class">
-        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
-      </field>
-    </record>
-    <class name="ShaderEffect"
-           c:symbol-prefix="shader_effect"
-           c:type="ClutterShaderEffect"
-           version="1.4"
-           parent="OffscreenEffect"
-           abstract="1"
-           glib:type-name="ClutterShaderEffect"
-           glib:get-type="clutter_shader_effect_get_type"
-           glib:type-struct="ShaderEffectClass">
-      <doc xml:whitespace="preserve">The &lt;structname&gt;ClutterShaderEffect&lt;/structname&gt; structure contains
-only private data and should be accessed using the provided API</doc>
-      <method name="get_program"
-              c:identifier="clutter_shader_effect_get_program"
-              version="1.4">
-        <doc xml:whitespace="preserve">Retrieves a pointer to the program's handle
-or %COGL_INVALID_HANDLE</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">a pointer to the program's handle,</doc>
-          <type name="Cogl.Handle" c:type="CoglHandle"/>
-        </return-value>
-      </method>
-      <method name="get_shader"
-              c:identifier="clutter_shader_effect_get_shader"
-              version="1.4">
-        <doc xml:whitespace="preserve">Retrieves a pointer to the shader's handle
-or %COGL_INVALID_HANDLE</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">a pointer to the shader's handle,</doc>
-          <type name="Cogl.Handle" c:type="CoglHandle"/>
-        </return-value>
-      </method>
-      <method name="set_shader_source"
-              c:identifier="clutter_shader_effect_set_shader_source"
-              version="1.4">
-        <doc xml:whitespace="preserve">Sets the source of the GLSL shader used by @effect
-This function should only be called by implementations of
-the #ClutterShaderEffect class, and not by application code.
-This function can only be called once; subsequent calls will
-yield no result.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">%TRUE if the source was set</doc>
-          <type name="gboolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="source" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the source of a GLSL shader</doc>
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_uniform"
-              c:identifier="clutter_shader_effect_set_uniform"
-              version="1.4"
-              introspectable="0">
-        <doc xml:whitespace="preserve">Sets a list of values as the payload for the uniform @name inside
-the shader effect
-%G_TYPE_FLOAT, for 1 or more floating point values;
-%CLUTTER_TYPE_SHADER_INT, for a pointer to an array of integer values;
-%CLUTTER_TYPE_SHADER_FLOAT, for a pointer to an array of floating point
-values; and %CLUTTER_TYPE_SHADER_MATRIX, for a pointer to an array of
-floating point values mapping a matrix
-The number of values interepreted is defined by the @n_value
-argument, and by the @gtype argument. For instance, a uniform named
-"sampler0" and containing a single integer value is set using:
-|[
-clutter_shader_effect_set_uniform (effect, "sampler0",
-G_TYPE_INT, 1,
-0);
-]|
-While a uniform named "components" and containing a 3-elements vector
-of floating point values (a "vec3") can be set using:
-|[
-gfloat component_r, component_g, component_b;
-clutter_shader_effect_set_uniform (effect, "components",
-G_TYPE_FLOAT, 3,
-component_r,
-component_g,
-component_b);
-]|
-or can be set using:
-|[
-gfloat component_vec[3];
-clutter_shader_effect_set_uniform (effect, "components",
-CLUTTER_TYPE_SHADER_FLOAT, 3,
-component_vec);
-]|
-Finally, a uniform named "map" and containing a matrix can be set using:
-|[
-clutter_shader_effect_set_uniform (effect, "map",
-CLUTTER_TYPE_SHADER_MATRIX, 1,
-cogl_matrix_get_array (&amp;matrix));
-]|</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="name" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the name of the uniform to set</doc>
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="gtype" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the type of the uniform to set</doc>
-            <type name="GType" c:type="GType"/>
-          </parameter>
-          <parameter name="n_values" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the number of values</doc>
-            <type name="gulong" c:type="gsize"/>
-          </parameter>
-          <parameter transfer-ownership="none">
-            <varargs>
-            </varargs>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_uniform_value"
-              c:identifier="clutter_shader_effect_set_uniform_value"
-              version="1.4">
-        <doc xml:whitespace="preserve">Sets @value as the payload for the uniform @name inside the shader
-effect
-integer value; %G_TYPE_FLOAT, for a single floating point value;
-%CLUTTER_TYPE_SHADER_INT, for an array of integer values;
-%CLUTTER_TYPE_SHADER_FLOAT, for an array of floating point values;
-and %CLUTTER_TYPE_SHADER_MATRIX, for a matrix of floating point
-values</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="name" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the name of the uniform to set</doc>
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="value" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #GValue with the value of the uniform to set</doc>
-            <type name="GObject.Value" c:type="GValue*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <property name="shader-type"
-                version="1.4"
-                readable="0"
-                writable="1"
-                construct-only="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">The type of shader that is used by the effect. This property
-should be set by the constructor of #ClutterShaderEffect
-sub-classes.</doc>
-        <type name="ShaderType"/>
-      </property>
-      <field name="parent_instance">
-        <type name="OffscreenEffect" c:type="ClutterOffscreenEffect"/>
-      </field>
-      <field name="priv">
-        <type name="ShaderEffectPrivate" c:type="ClutterShaderEffectPrivate*"/>
-      </field>
-    </class>
-    <record name="ShaderEffectClass"
-            c:type="ClutterShaderEffectClass"
-            glib:is-gtype-struct-for="ShaderEffect"
-            version="1.4">
-      <doc xml:whitespace="preserve">The &lt;structname&gt;ClutterShaderEffectClass&lt;/structname&gt; structure contains
-only private data</doc>
-      <field name="parent_class">
-        <type name="OffscreenEffectClass"
-              c:type="ClutterOffscreenEffectClass"/>
-      </field>
-      <field name="_clutter_shader1" introspectable="0">
-        <callback name="_clutter_shader1">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-      <field name="_clutter_shader2" introspectable="0">
-        <callback name="_clutter_shader2">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-      <field name="_clutter_shader3" introspectable="0">
-        <callback name="_clutter_shader3">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-      <field name="_clutter_shader4" introspectable="0">
-        <callback name="_clutter_shader4">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-      <field name="_clutter_shader5" introspectable="0">
-        <callback name="_clutter_shader5">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-      <field name="_clutter_shader6" introspectable="0">
-        <callback name="_clutter_shader6">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-    </record>
-    <record name="ShaderEffectPrivate"
-            c:type="ClutterShaderEffectPrivate"
-            disguised="1">
-    </record>
-    <enumeration name="ShaderError"
-                 version="0.6"
-                 glib:type-name="ClutterShaderError"
-                 glib:get-type="clutter_shader_error_get_type"
-                 c:type="ClutterShaderError"
-                 glib:error-quark="clutter_shader_error_quark">
-      <doc xml:whitespace="preserve">#ClutterShader error enumeration</doc>
-      <member name="no_asm"
-              value="0"
-              c:identifier="CLUTTER_SHADER_ERROR_NO_ASM"
-              glib:nick="no-asm"/>
-      <member name="no_glsl"
-              value="1"
-              c:identifier="CLUTTER_SHADER_ERROR_NO_GLSL"
-              glib:nick="no-glsl"/>
-      <member name="compile"
-              value="2"
-              c:identifier="CLUTTER_SHADER_ERROR_COMPILE"
-              glib:nick="compile"/>
-    </enumeration>
-    <record name="ShaderFloat" c:type="ClutterShaderFloat" disguised="1">
-    </record>
-    <record name="ShaderInt" c:type="ClutterShaderInt" disguised="1">
-    </record>
-    <record name="ShaderMatrix" c:type="ClutterShaderMatrix" disguised="1">
-    </record>
-    <record name="ShaderPrivate" c:type="ClutterShaderPrivate" disguised="1">
-    </record>
-    <enumeration name="ShaderType"
-                 version="1.4"
-                 glib:type-name="ClutterShaderType"
-                 glib:get-type="clutter_shader_type_get_type"
-                 c:type="ClutterShaderType">
-      <doc xml:whitespace="preserve">The type of GLSL shader program</doc>
-      <member name="vertex_shader"
-              value="0"
-              c:identifier="CLUTTER_VERTEX_SHADER"
-              glib:nick="vertex-shader"/>
-      <member name="fragment_shader"
-              value="1"
-              c:identifier="CLUTTER_FRAGMENT_SHADER"
-              glib:nick="fragment-shader"/>
-    </enumeration>
-    <constant name="Shift_L" value="65505">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Shift_Lock" value="65510">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Shift_R" value="65506">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Shop" value="269025078">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="SingleCandidate" value="65340">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Sleep" value="269025071">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="SlowKeys_Enable" value="65139">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Spell" value="269025148">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="SplitScreen" value="269025149">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <class name="Stage"
-           c:symbol-prefix="stage"
-           c:type="ClutterStage"
-           version="0.1"
-           parent="Group"
-           glib:type-name="ClutterStage"
-           glib:get-type="clutter_stage_get_type"
-           glib:type-struct="StageClass">
-      <doc xml:whitespace="preserve">The #ClutterStage structure contains only private data
-and should be accessed using the provided API</doc>
-      <implements name="Atk.ImplementorIface"/>
-      <implements name="Animatable"/>
-      <implements name="Container"/>
-      <implements name="Scriptable"/>
-      <constructor name="new" c:identifier="clutter_stage_new" version="0.8">
-        <doc xml:whitespace="preserve">Creates a new, non-default stage. A non-default stage is a new
-top-level actor which can be used as another container. It works
-exactly like the default stage, but while clutter_stage_get_default()
-will always return the same instance, you will have to keep a pointer
-to any #ClutterStage returned by clutter_stage_create().
-The ability to support multiple stages depends on the current
-backend. Use clutter_feature_available() and
-%CLUTTER_FEATURE_STAGE_MULTIPLE to check at runtime whether a
-backend supports multiple stages.
-not support multiple stages. Use clutter_actor_destroy() to
-programmatically close the returned stage.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">a new stage, or %NULL if the default backend does</doc>
-          <type name="Actor" c:type="ClutterActor*"/>
-        </return-value>
-      </constructor>
-      <function name="get_default" c:identifier="clutter_stage_get_default">
-        <doc xml:whitespace="preserve">Returns the main stage. The default #ClutterStage is a singleton,
-so the stage will be created the first time this function is
-called (typically, inside clutter_init()); all the subsequent
-calls to clutter_stage_get_default() will return the same instance.
-Clutter guarantess the existence of the default stage.
-destroy or unref the returned actor.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the main #ClutterStage.  You should never</doc>
-          <type name="Actor" c:type="ClutterActor*"/>
-        </return-value>
-      </function>
-      <method name="ensure_current"
-              c:identifier="clutter_stage_ensure_current"
-              version="0.8">
-        <doc xml:whitespace="preserve">This function essentially makes sure the right GL context is
-current for the passed stage. It is not intended to
-be used by applications.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </method>
-      <method name="ensure_redraw"
-              c:identifier="clutter_stage_ensure_redraw"
-              version="1.0">
-        <doc xml:whitespace="preserve">Ensures that @stage is redrawn
-used when embedding a #ClutterStage into a toolkit with
-another windowing system, like GTK+.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </method>
-      <method name="ensure_viewport"
-              c:identifier="clutter_stage_ensure_viewport"
-              version="1.0">
-        <doc xml:whitespace="preserve">Ensures that the GL viewport is updated with the current
-stage window size.
-This function will queue a redraw of @stage.
-This function should not be called by applications; it is used
-when embedding a #ClutterStage into a toolkit with another
-windowing system, like GTK+.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </method>
-      <method name="event" c:identifier="clutter_stage_event" version="0.4">
-        <doc xml:whitespace="preserve">This function is used to emit an event on the main stage.
-You should rarely need to use this function, except for
-synthetised events.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the return value from the signal emission</doc>
-          <type name="gboolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="event" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #ClutterEvent</doc>
-            <type name="Event" c:type="ClutterEvent*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_actor_at_pos"
-              c:identifier="clutter_stage_get_actor_at_pos">
-        <doc xml:whitespace="preserve">Checks the scene at the coordinates @x and @y and returns a pointer
-to the #ClutterActor at those coordinates.
-By using @pick_mode it is possible to control which actors will be
-painted and thus available.
-if any</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the actor at the specified coordinates,</doc>
-          <type name="Actor" c:type="ClutterActor*"/>
-        </return-value>
-        <parameters>
-          <parameter name="pick_mode" transfer-ownership="none">
-            <doc xml:whitespace="preserve">how the scene graph should be painted</doc>
-            <type name="PickMode" c:type="ClutterPickMode"/>
-          </parameter>
-          <parameter name="x" transfer-ownership="none">
-            <doc xml:whitespace="preserve">X coordinate to check</doc>
-            <type name="gint" c:type="gint"/>
-          </parameter>
-          <parameter name="y" transfer-ownership="none">
-            <doc xml:whitespace="preserve">Y coordinate to check</doc>
-            <type name="gint" c:type="gint"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_color" c:identifier="clutter_stage_get_color">
-        <doc xml:whitespace="preserve">Retrieves the stage color.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="color" transfer-ownership="none">
-            <doc xml:whitespace="preserve">return location for a #ClutterColor</doc>
-            <type name="Color" c:type="ClutterColor*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_fog"
-              c:identifier="clutter_stage_get_fog"
-              version="0.6">
-        <doc xml:whitespace="preserve">Retrieves the current depth cueing settings from the stage.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="fog" transfer-ownership="none">
-            <doc xml:whitespace="preserve">return location for a #ClutterFog structure</doc>
-            <type name="Fog" c:type="ClutterFog*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_fullscreen"
-              c:identifier="clutter_stage_get_fullscreen"
-              version="1.0">
-        <doc xml:whitespace="preserve">Retrieves whether the stage is full screen or not</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">%TRUE if the stage is full screen</doc>
-          <type name="gboolean" c:type="gboolean"/>
-        </return-value>
-      </method>
-      <method name="get_key_focus"
-              c:identifier="clutter_stage_get_key_focus"
-              version="0.6">
-        <doc xml:whitespace="preserve">Retrieves the actor that is currently under key focus.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the actor with key focus, or the stage</doc>
-          <type name="Actor" c:type="ClutterActor*"/>
-        </return-value>
-      </method>
-      <method name="get_minimum_size"
-              c:identifier="clutter_stage_get_minimum_size"
-              version="1.2">
-        <doc xml:whitespace="preserve">Retrieves the minimum size for a stage window as set using
-clutter_stage_set_minimum_size().
-The returned size may not correspond to the actual minimum size and
-it is specific to the #ClutterStage implementation inside the
-Clutter backend</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="width"
-                     direction="out"
-                     caller-allocates="0"
-                     transfer-ownership="full">
-            <doc xml:whitespace="preserve">return location for the minimum width, in pixels, or %NULL</doc>
-            <type name="guint" c:type="guint*"/>
-          </parameter>
-          <parameter name="height"
-                     direction="out"
-                     caller-allocates="0"
-                     transfer-ownership="full">
-            <doc xml:whitespace="preserve">return location for the minimum height, in pixels, or %NULL</doc>
-            <type name="guint" c:type="guint*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_no_clear_hint"
-              c:identifier="clutter_stage_get_no_clear_hint"
-              version="1.4">
-        <doc xml:whitespace="preserve">Retrieves the hint set with clutter_stage_set_no_clear_hint()
-cycle, and %FALSE otherwise</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">%TRUE if the stage should not clear itself on every paint</doc>
-          <type name="gboolean" c:type="gboolean"/>
-        </return-value>
-      </method>
-      <method name="get_perspective"
-              c:identifier="clutter_stage_get_perspective">
-        <doc xml:whitespace="preserve">Retrieves the stage perspective.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="perspective"
-                     direction="out"
-                     caller-allocates="1"
-                     transfer-ownership="none"
-                     allow-none="1">
-            <doc xml:whitespace="preserve">return location for a #ClutterPerspective</doc>
-            <type name="Perspective" c:type="ClutterPerspective*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_throttle_motion_events"
-              c:identifier="clutter_stage_get_throttle_motion_events"
-              version="1.0">
-        <doc xml:whitespace="preserve">Retrieves the value set with clutter_stage_set_throttle_motion_events()
-and %FALSE otherwise</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">%TRUE if the motion events are being throttled,</doc>
-          <type name="gboolean" c:type="gboolean"/>
-        </return-value>
-      </method>
-      <method name="get_title" c:identifier="clutter_stage_get_title">
-        <return-value transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </return-value>
-      </method>
-      <method name="get_use_alpha"
-              c:identifier="clutter_stage_get_use_alpha"
-              version="1.2">
-        <doc xml:whitespace="preserve">Retrieves the value set using clutter_stage_set_use_alpha()
-alpha channel of the stage color</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">%TRUE if the stage should honour the opacity and the</doc>
-          <type name="gboolean" c:type="gboolean"/>
-        </return-value>
-      </method>
-      <method name="get_use_fog"
-              c:identifier="clutter_stage_get_use_fog"
-              version="0.6">
-        <doc xml:whitespace="preserve">Gets whether the depth cueing effect is enabled on @stage.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">%TRUE if the the depth cueing effect is enabled</doc>
-          <type name="gboolean" c:type="gboolean"/>
-        </return-value>
-      </method>
-      <method name="get_user_resizable"
-              c:identifier="clutter_stage_get_user_resizable"
-              version="0.4">
-        <doc xml:whitespace="preserve">Retrieves the value set with clutter_stage_set_user_resizable().</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">%TRUE if the stage is resizable by the user.</doc>
-          <type name="gboolean" c:type="gboolean"/>
-        </return-value>
-      </method>
-      <method name="hide_cursor"
-              c:identifier="clutter_stage_hide_cursor"
-              version="0.4">
-        <doc xml:whitespace="preserve">Makes the cursor invisible on the stage window</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </method>
-      <method name="is_default"
-              c:identifier="clutter_stage_is_default"
-              version="0.8">
-        <doc xml:whitespace="preserve">Checks if @stage is the default stage, or an instance created using
-clutter_stage_new() but internally using the same implementation.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">%TRUE if the passed stage is the default one</doc>
-          <type name="gboolean" c:type="gboolean"/>
-        </return-value>
-      </method>
-      <method name="queue_redraw"
-              c:identifier="clutter_stage_queue_redraw"
-              version="0.8">
-        <doc xml:whitespace="preserve">Queues a redraw for the passed stage.
-&lt;note&gt;Applications should call clutter_actor_queue_redraw() and not
-this function.&lt;/note&gt;
-&lt;note&gt;This function is just a wrapper for clutter_actor_queue_redraw()
-and should probably go away.&lt;/note&gt;</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </method>
-      <method name="read_pixels" c:identifier="clutter_stage_read_pixels">
-        <doc xml:whitespace="preserve">Makes a screenshot of the stage in RGBA 8bit data, returns a
-linear buffer with @width * 4 as rowstride.
-The alpha data contained in the returned buffer is driver-dependent,
-and not guaranteed to hold any sensible value.
-or %NULL if the read failed. Use g_free() on the returned data
-to release the resources it has allocated.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">a pointer to newly allocated memory with the buffer</doc>
-          <type name="guint8" c:type="guchar*"/>
-        </return-value>
-        <parameters>
-          <parameter name="x" transfer-ownership="none">
-            <doc xml:whitespace="preserve">x coordinate of the first pixel that is read from stage</doc>
-            <type name="gint" c:type="gint"/>
-          </parameter>
-          <parameter name="y" transfer-ownership="none">
-            <doc xml:whitespace="preserve">y coordinate of the first pixel that is read from stage</doc>
-            <type name="gint" c:type="gint"/>
-          </parameter>
-          <parameter name="width" transfer-ownership="none">
-            <doc xml:whitespace="preserve">Width dimention of pixels to be read, or -1 for the entire stage width</doc>
-            <type name="gint" c:type="gint"/>
-          </parameter>
-          <parameter name="height" transfer-ownership="none">
-            <doc xml:whitespace="preserve">Height dimention of pixels to be read, or -1 for the entire stage height</doc>
-            <type name="gint" c:type="gint"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_color" c:identifier="clutter_stage_set_color">
-        <doc xml:whitespace="preserve">Sets the stage color.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="color" transfer-ownership="none">
-            <doc xml:whitespace="preserve">A #ClutterColor</doc>
-            <type name="Color" c:type="ClutterColor*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_fog"
-              c:identifier="clutter_stage_set_fog"
-              version="0.6">
-        <doc xml:whitespace="preserve">Sets the fog (also known as "depth cueing") settings for the @stage.
-A #ClutterStage will only use a linear fog progression, which
-depends solely on the distance from the viewer. The cogl_set_fog()
-function in COGL exposes more of the underlying implementation,
-and allows changing the for progression function. It can be directly
-used by disabling the #ClutterStage:use-fog property and connecting
-a signal handler to the #ClutterActor::paint signal on the @stage,
-like:
-|[
-clutter_stage_set_use_fog (stage, FALSE);
-g_signal_connect (stage, "paint", G_CALLBACK (on_stage_paint), NULL);
-]|
-The paint signal handler will call cogl_set_fog() with the
-desired settings:
-|[
-static void
-on_stage_paint (ClutterActor *actor)
-{
-ClutterColor stage_color = { 0, };
-CoglColor fog_color = { 0, };
-/&amp;ast; set the fog color to the stage background color &amp;ast;/
-clutter_stage_get_color (CLUTTER_STAGE (actor), &amp;amp;stage_color);
-cogl_color_init_from_4ub (&amp;amp;fog_color,
-stage_color.red,
-stage_color.green,
-stage_color.blue,
-stage_color.alpha);
-/&amp;ast; enable fog &amp;ast;/
-cogl_set_fog (&amp;amp;fog_color,
-COGL_FOG_MODE_EXPONENTIAL, /&amp;ast; mode &amp;ast;/
-0.5,                       /&amp;ast; density &amp;ast;/
-5.0, 30.0);                /&amp;ast; z_near and z_far &amp;ast;/
-}
-]|
-&lt;note&gt;The fogging functions only work correctly when the visible actors use
-unmultiplied alpha colors. By default Cogl will premultiply textures and
-cogl_set_source_color() will premultiply colors, so unless you explicitly
-load your textures requesting an unmultiplied internal format and use
-cogl_material_set_color() you can only use fogging with fully opaque actors.
-Support for premultiplied colors will improve in the future when we can
-depend on fragment shaders.&lt;/note&gt;</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="fog" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #ClutterFog structure</doc>
-            <type name="Fog" c:type="ClutterFog*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_fullscreen"
-              c:identifier="clutter_stage_set_fullscreen"
-              version="1.0">
-        <doc xml:whitespace="preserve">Asks to place the stage window in the fullscreen or unfullscreen
-states.
-afterward, because other entities (e.g. the user or window manager)
-could unfullscreen it again, and not all window managers honor
-requests to fullscreen windows.
-If you want to receive notification of the fullscreen state you
-should either use the #ClutterStage::fullscreen and
-#ClutterStage::unfullscreen signals, or use the notify signal
-for the #ClutterStage:fullscreen-set property</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="fullscreen" transfer-ownership="none">
-            <doc xml:whitespace="preserve">%TRUE to to set the stage fullscreen</doc>
-            <type name="gboolean" c:type="gboolean"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_key_focus"
-              c:identifier="clutter_stage_set_key_focus"
-              version="0.6">
-        <doc xml:whitespace="preserve">Sets the key focus on @actor. An actor with key focus will receive
-all the key events. If @actor is %NULL, the stage will receive
-focus.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="actor" transfer-ownership="none" allow-none="1">
-            <doc xml:whitespace="preserve">the actor to set key focus to, or %NULL</doc>
-            <type name="Actor" c:type="ClutterActor*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_minimum_size"
-              c:identifier="clutter_stage_set_minimum_size"
-              version="1.2">
-        <doc xml:whitespace="preserve">Sets the minimum size for a stage window, if the default backend
-uses #ClutterStage inside a window
-This is a convenience function, and it is equivalent to setting the
-#ClutterActor:min-width and #ClutterActor:min-height on @stage
-If the current size of @stage is smaller than the minimum size, the
-This function has no effect if @stage is fullscreen</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="width" transfer-ownership="none">
-            <doc xml:whitespace="preserve">width, in pixels</doc>
-            <type name="guint" c:type="guint"/>
-          </parameter>
-          <parameter name="height" transfer-ownership="none">
-            <doc xml:whitespace="preserve">height, in pixels</doc>
-            <type name="guint" c:type="guint"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_no_clear_hint"
-              c:identifier="clutter_stage_set_no_clear_hint"
-              version="1.4">
-        <doc xml:whitespace="preserve">Sets whether the @stage should clear itself at the beginning
-of each paint cycle or not.
-Clearing the #ClutterStage can be a costly operation, especially
-if the stage is always covered - for instance, in a full-screen
-video player or in a game with a background texture.
-&lt;note&gt;&lt;para&gt;This setting is a hint; Clutter might discard this
-hint depending on its internal state.&lt;/para&gt;&lt;/note&gt;
-&lt;warning&gt;&lt;para&gt;If parts of the stage are visible and you disable
-clearing you might end up with visual artifacts while painting the
-contents of the stage.&lt;/para&gt;&lt;/warning&gt;</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="no_clear" transfer-ownership="none">
-            <doc xml:whitespace="preserve">%TRUE if the @stage should not clear itself on every repaint cycle</doc>
-            <type name="gboolean" c:type="gboolean"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_perspective"
-              c:identifier="clutter_stage_set_perspective">
-        <doc xml:whitespace="preserve">Sets the stage perspective.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="perspective" transfer-ownership="none">
-            <doc xml:whitespace="preserve">A #ClutterPerspective</doc>
-            <type name="Perspective" c:type="ClutterPerspective*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_throttle_motion_events"
-              c:identifier="clutter_stage_set_throttle_motion_events"
-              version="1.0">
-        <doc xml:whitespace="preserve">Sets whether motion events received between redraws should
-be throttled or not. If motion events are throttled, those
-events received by the windowing system between redraws will
-be compressed so that only the last event will be propagated
-to the @stage and its actors.
-This function should only be used if you want to have all
-the motion events delivered to your application code.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="throttle" transfer-ownership="none">
-            <doc xml:whitespace="preserve">%TRUE to throttle motion events</doc>
-            <type name="gboolean" c:type="gboolean"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_title" c:identifier="clutter_stage_set_title">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="title" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_use_alpha"
-              c:identifier="clutter_stage_set_use_alpha"
-              version="1.2">
-        <doc xml:whitespace="preserve">Sets whether the @stage should honour the #ClutterActor:opacity and
-the alpha channel of the #ClutterStage:color</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="use_alpha" transfer-ownership="none">
-            <doc xml:whitespace="preserve">whether the stage should honour the opacity or the alpha channel of the stage color</doc>
-            <type name="gboolean" c:type="gboolean"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_use_fog"
-              c:identifier="clutter_stage_set_use_fog"
-              version="0.6">
-        <doc xml:whitespace="preserve">Sets whether the depth cueing effect on the stage should be enabled
-or not.
-Depth cueing is a 3D effect that makes actors farther away from the
-viewing point less opaque, by fading them with the stage color.
-The parameters of the GL fog used can be changed using the
-clutter_stage_set_fog() function.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="fog" transfer-ownership="none">
-            <doc xml:whitespace="preserve">%TRUE for enabling the depth cueing effect</doc>
-            <type name="gboolean" c:type="gboolean"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_user_resizable"
-              c:identifier="clutter_stage_set_user_resizable"
-              version="0.4">
-        <doc xml:whitespace="preserve">Sets if the stage is resizable by user interaction (e.g. via
-window manager controls)</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="resizable" transfer-ownership="none">
-            <doc xml:whitespace="preserve">whether the stage should be user resizable.</doc>
-            <type name="gboolean" c:type="gboolean"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="show_cursor" c:identifier="clutter_stage_show_cursor">
-        <doc xml:whitespace="preserve">Shows the cursor on the stage window</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </method>
-      <property name="color" writable="1" transfer-ownership="none">
-        <doc xml:whitespace="preserve">The color of the main stage.</doc>
-        <type name="Color"/>
-      </property>
-      <property name="cursor-visible" writable="1" transfer-ownership="none">
-        <doc xml:whitespace="preserve">Whether the mouse pointer should be visible</doc>
-        <type name="gboolean"/>
-      </property>
-      <property name="fog"
-                version="1.0"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">The settings for the GL "fog", used only if #ClutterStage:use-fog
-is set to %TRUE</doc>
-        <type name="Fog"/>
-      </property>
-      <property name="fullscreen-set" transfer-ownership="none">
-        <type name="gboolean"/>
-      </property>
-      <property name="key-focus"
-                version="1.2"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">The #ClutterActor that will receive key events from the underlying
-windowing system.
-If %NULL, the #ClutterStage will receive the events.</doc>
-        <type name="Actor"/>
-      </property>
-      <property name="no-clear-hint"
-                version="1.4"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">Whether or not the #ClutterStage should clear its contents
-before each paint cycle.
-See clutter_stage_set_no_clear_hint() for further information.</doc>
-        <type name="gboolean"/>
-      </property>
-      <property name="offscreen" writable="1" transfer-ownership="none">
-        <doc xml:whitespace="preserve">Whether the stage should be rendered in an offscreen buffer.
-&lt;warning&gt;&lt;para&gt;Not every backend supports redirecting the
-stage to an offscreen buffer. This property might not work
-and it might be deprecated at any later date.&lt;/para&gt;&lt;/warning&gt;</doc>
-        <type name="gboolean"/>
-      </property>
-      <property name="perspective"
-                version="0.8.2"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">The parameters used for the perspective projection from 3D
-coordinates to 2D</doc>
-        <type name="Perspective"/>
-      </property>
-      <property name="title"
-                version="0.4"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">The stage's title - usually displayed in stage windows title decorations.</doc>
-        <type name="utf8"/>
-      </property>
-      <property name="use-alpha"
-                version="1.2"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">Whether the #ClutterStage should honour the alpha component of the
-#ClutterStage:color property when painting. If Clutter is run under
-a compositing manager this will result in the stage being blended
-with the underlying window(s)</doc>
-        <type name="gboolean"/>
-      </property>
-      <property name="use-fog"
-                version="0.6"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">Whether the stage should use a linear GL "fog" in creating the
-depth-cueing effect, to enhance the perception of depth by fading
-actors farther from the viewpoint.</doc>
-        <type name="gboolean"/>
-      </property>
-      <property name="user-resizable"
-                version="0.4"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">Whether the stage is resizable via user interaction.</doc>
-        <type name="gboolean"/>
-      </property>
-      <field name="parent_instance">
-        <type name="Group" c:type="ClutterGroup"/>
-      </field>
-      <field name="priv">
-        <type name="StagePrivate" c:type="ClutterStagePrivate*"/>
-      </field>
-      <glib:signal name="activate">
-        <return-value transfer-ownership="none">
-          <type name="none"/>
-        </return-value>
-      </glib:signal>
-      <glib:signal name="deactivate">
-        <return-value transfer-ownership="none">
-          <type name="none"/>
-        </return-value>
-      </glib:signal>
-      <glib:signal name="delete-event" version="1.2">
-        <doc xml:whitespace="preserve">The ::delete-event signal is emitted when the user closes a
-#ClutterStage window using the window controls.
-Clutter by default will call clutter_main_quit() if @stage is
-the default stage, and clutter_actor_destroy() for any other
-stage.
-It is possible to override the default behaviour by connecting
-a new handler and returning %TRUE there.
-&lt;note&gt;This signal is emitted only on Clutter backends that
-embed #ClutterStage in native windows. It is not emitted for
-backends that use a static frame buffer.&lt;/note&gt;</doc>
-        <return-value transfer-ownership="none">
-          <type name="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="object" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #ClutterEvent of type %CLUTTER_DELETE</doc>
-            <type name="Event"/>
-          </parameter>
-        </parameters>
-      </glib:signal>
-      <glib:signal name="fullscreen">
-        <return-value transfer-ownership="none">
-          <type name="none"/>
-        </return-value>
-      </glib:signal>
-      <glib:signal name="unfullscreen">
-        <return-value transfer-ownership="none">
-          <type name="none"/>
-        </return-value>
-      </glib:signal>
-    </class>
-    <record name="StageClass"
-            c:type="ClutterStageClass"
-            glib:is-gtype-struct-for="Stage"
-            version="0.1">
-      <doc xml:whitespace="preserve">The #ClutterStageClass structure contains only private data</doc>
-      <field name="parent_class">
-        <type name="GroupClass" c:type="ClutterGroupClass"/>
-      </field>
-      <field name="fullscreen">
-        <callback name="fullscreen">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="stage" transfer-ownership="none">
-              <type name="Stage" c:type="ClutterStage*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="unfullscreen">
-        <callback name="unfullscreen">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="stage" transfer-ownership="none">
-              <type name="Stage" c:type="ClutterStage*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="activate">
-        <callback name="activate">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="stage" transfer-ownership="none">
-              <type name="Stage" c:type="ClutterStage*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="deactivate">
-        <callback name="deactivate">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="stage" transfer-ownership="none">
-              <type name="Stage" c:type="ClutterStage*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="delete_event">
-        <callback name="delete_event">
-          <return-value transfer-ownership="none">
-            <type name="gboolean" c:type="gboolean"/>
-          </return-value>
-          <parameters>
-            <parameter name="stage" transfer-ownership="none">
-              <type name="Stage" c:type="ClutterStage*"/>
-            </parameter>
-            <parameter name="event" transfer-ownership="none">
-              <type name="Event" c:type="ClutterEvent*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="_padding_dummy">
-        <array zero-terminated="0" c:type="gpointer" fixed-size="31">
-          <type name="gpointer" c:type="gpointer"/>
-        </array>
-      </field>
-    </record>
-    <class name="StageManager"
-           c:symbol-prefix="stage_manager"
-           c:type="ClutterStageManager"
-           version="1.0"
-           parent="GObject.Object"
-           glib:type-name="ClutterStageManager"
-           glib:get-type="clutter_stage_manager_get_type"
-           glib:type-struct="StageManagerClass">
-      <doc xml:whitespace="preserve">The #ClutterStageManager structure is private.</doc>
-      <function name="get_default"
-                c:identifier="clutter_stage_manager_get_default"
-                version="0.8">
-        <doc xml:whitespace="preserve">Returns the default #ClutterStageManager.
-object is owned by Clutter and you should not reference or unreference it.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the default stage manager instance. The returned</doc>
-          <type name="StageManager" c:type="ClutterStageManager*"/>
-        </return-value>
-      </function>
-      <method name="get_default_stage"
-              c:identifier="clutter_stage_manager_get_default_stage"
-              version="0.8">
-        <doc xml:whitespace="preserve">Returns the default #ClutterStage.
-is owned by Clutter and you should never reference or unreference it</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the default stage. The returned object</doc>
-          <type name="Stage" c:type="ClutterStage*"/>
-        </return-value>
-      </method>
-      <method name="list_stages"
-              c:identifier="clutter_stage_manager_list_stages"
-              version="0.8">
-        <doc xml:whitespace="preserve">Lists all currently used stages.
-allocated list of #ClutterStage objects. Use g_slist_free() to
-deallocate it when done.</doc>
-        <return-value transfer-ownership="container">
-          <doc xml:whitespace="preserve">a newly</doc>
-          <type name="GLib.SList" c:type="GSList*">
-            <type name="Stage"/>
-          </type>
-        </return-value>
-      </method>
-      <method name="peek_stages"
-              c:identifier="clutter_stage_manager_peek_stages"
-              version="1.0">
-        <doc xml:whitespace="preserve">Lists all currently used stages.
-to the internal list of #ClutterStage objects. The returned list
-is owned by the #ClutterStageManager and should never be modified
-or freed</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">a pointer</doc>
-          <type name="GLib.SList" c:type="GSList*">
-            <type name="Stage"/>
-          </type>
-        </return-value>
-      </method>
-      <method name="set_default_stage"
-              c:identifier="clutter_stage_manager_set_default_stage"
-              version="0.8"
-              deprecated="Calling this function has no effect"
-              deprecated-version="1.2">
-        <doc xml:whitespace="preserve">Sets @stage as the default stage.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="stage" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #ClutterStage</doc>
-            <type name="Stage" c:type="ClutterStage*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <property name="default-stage" version="0.8" transfer-ownership="none">
-        <doc xml:whitespace="preserve">The default stage used by Clutter.</doc>
-        <type name="Stage"/>
-      </property>
-      <glib:signal name="stage-added" version="0.8">
-        <doc xml:whitespace="preserve">The ::stage-added signal is emitted each time a new #ClutterStage
-has been added to the stage manager.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none"/>
-        </return-value>
-        <parameters>
-          <parameter name="object" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the added stage</doc>
-            <type name="Stage"/>
-          </parameter>
-        </parameters>
-      </glib:signal>
-      <glib:signal name="stage-removed" version="0.8">
-        <doc xml:whitespace="preserve">The ::stage-removed signal is emitted each time a #ClutterStage
-has been removed from the stage manager.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none"/>
-        </return-value>
-        <parameters>
-          <parameter name="object" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the removed stage</doc>
-            <type name="Stage"/>
-          </parameter>
-        </parameters>
-      </glib:signal>
-    </class>
-    <record name="StageManagerClass"
-            c:type="ClutterStageManagerClass"
-            glib:is-gtype-struct-for="StageManager"
-            version="1.0">
-      <doc xml:whitespace="preserve">The #ClutterStageManagerClass structure contains only private data
-and should be accessed using the provided API</doc>
-      <field name="parent_class">
-        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
-      </field>
-      <field name="stage_added">
-        <callback name="stage_added">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="stage_manager" transfer-ownership="none">
-              <type name="StageManager" c:type="ClutterStageManager*"/>
-            </parameter>
-            <parameter name="stage" transfer-ownership="none">
-              <type name="Stage" c:type="ClutterStage*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="stage_removed">
-        <callback name="stage_removed">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="stage_manager" transfer-ownership="none">
-              <type name="StageManager" c:type="ClutterStageManager*"/>
-            </parameter>
-            <parameter name="stage" transfer-ownership="none">
-              <type name="Stage" c:type="ClutterStage*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-    </record>
-    <record name="StagePrivate" c:type="ClutterStagePrivate" disguised="1">
-    </record>
-    <bitfield name="StageState"
-              version="0.4"
-              glib:type-name="ClutterStageState"
-              glib:get-type="clutter_stage_state_get_type"
-              c:type="ClutterStageState">
-      <doc xml:whitespace="preserve">Stage state masks</doc>
-      <member name="fullscreen"
-              value="2"
-              c:identifier="CLUTTER_STAGE_STATE_FULLSCREEN"
-              glib:nick="fullscreen"/>
-      <member name="offscreen"
-              value="4"
-              c:identifier="CLUTTER_STAGE_STATE_OFFSCREEN"
-              glib:nick="offscreen"/>
-      <member name="activated"
-              value="8"
-              c:identifier="CLUTTER_STAGE_STATE_ACTIVATED"
-              glib:nick="activated"/>
-    </bitfield>
-    <record name="StageStateEvent"
-            c:type="ClutterStageStateEvent"
-            version="0.2">
-      <doc xml:whitespace="preserve">Event signalling a change in the #ClutterStage state.</doc>
-      <field name="type" writable="1">
-        <type name="EventType" c:type="ClutterEventType"/>
-      </field>
-      <field name="time" writable="1">
-        <type name="guint32" c:type="guint32"/>
-      </field>
-      <field name="flags" writable="1">
-        <type name="EventFlags" c:type="ClutterEventFlags"/>
-      </field>
-      <field name="stage" writable="1">
-        <type name="Stage" c:type="ClutterStage*"/>
-      </field>
-      <field name="source" writable="1">
-        <type name="Actor" c:type="ClutterActor*"/>
-      </field>
-      <field name="changed_mask" writable="1">
-        <type name="StageState" c:type="ClutterStageState"/>
-      </field>
-      <field name="new_state" writable="1">
-        <type name="StageState" c:type="ClutterStageState"/>
-      </field>
-    </record>
-    <interface name="StageWindow"
-               c:symbol-prefix="stage_window"
-               c:type="ClutterStageWindow"
-               version="0.8"
-               glib:type-name="ClutterStageWindow"
-               glib:get-type="clutter_stage_window_get_type"
-               glib:type-struct="StageWindowIface">
-      <doc xml:whitespace="preserve">&lt;structname&gt;ClutterStageWindow&lt;/structname&gt; is an opaque structure
-whose members should not be accessed directly</doc>
-      <virtual-method name="add_redraw_clip">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="stage_rectangle" transfer-ownership="none">
-            <type name="Geometry" c:type="ClutterGeometry*"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <virtual-method name="get_geometry">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="geometry" transfer-ownership="none">
-            <type name="Geometry" c:type="ClutterGeometry*"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <virtual-method name="get_pending_swaps">
-        <return-value transfer-ownership="none">
-          <type name="gint" c:type="int"/>
-        </return-value>
-      </virtual-method>
-      <virtual-method name="get_wrapper" introspectable="0">
-        <return-value>
-          <type name="Actor" c:type="ClutterActor*"/>
-        </return-value>
-      </virtual-method>
-      <virtual-method name="has_redraw_clips">
-        <return-value transfer-ownership="none">
-          <type name="gboolean" c:type="gboolean"/>
-        </return-value>
-      </virtual-method>
-      <virtual-method name="hide">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </virtual-method>
-      <virtual-method name="ignoring_redraw_clips">
-        <return-value transfer-ownership="none">
-          <type name="gboolean" c:type="gboolean"/>
-        </return-value>
-      </virtual-method>
-      <virtual-method name="realize">
-        <return-value transfer-ownership="none">
-          <type name="gboolean" c:type="gboolean"/>
-        </return-value>
-      </virtual-method>
-      <virtual-method name="resize">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="width" transfer-ownership="none">
-            <type name="gint" c:type="gint"/>
-          </parameter>
-          <parameter name="height" transfer-ownership="none">
-            <type name="gint" c:type="gint"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <virtual-method name="set_cursor_visible">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="cursor_visible" transfer-ownership="none">
-            <type name="gboolean" c:type="gboolean"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <virtual-method name="set_fullscreen">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="is_fullscreen" transfer-ownership="none">
-            <type name="gboolean" c:type="gboolean"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <virtual-method name="set_title">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="title" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <virtual-method name="set_user_resizable">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="is_resizable" transfer-ownership="none">
-            <type name="gboolean" c:type="gboolean"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <virtual-method name="show">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="do_raise" transfer-ownership="none">
-            <type name="gboolean" c:type="gboolean"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <virtual-method name="unrealize">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </virtual-method>
-    </interface>
-    <record name="StageWindowIface"
-            c:type="ClutterStageWindowIface"
-            glib:is-gtype-struct-for="StageWindow"
-            version="0.8">
-      <doc xml:whitespace="preserve">The interface implemented by backends for stage windows</doc>
-      <field name="parent_iface">
-        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
-      </field>
-      <field name="get_wrapper" introspectable="0">
-        <callback name="get_wrapper" introspectable="0">
-          <return-value>
-            <type name="Actor" c:type="ClutterActor*"/>
-          </return-value>
-          <parameters>
-            <parameter name="stage_window" transfer-ownership="none">
-              <type name="StageWindow" c:type="ClutterStageWindow*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="set_title">
-        <callback name="set_title">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="stage_window" transfer-ownership="none">
-              <type name="StageWindow" c:type="ClutterStageWindow*"/>
-            </parameter>
-            <parameter name="title" transfer-ownership="none">
-              <type name="utf8" c:type="gchar*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="set_fullscreen">
-        <callback name="set_fullscreen">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="stage_window" transfer-ownership="none">
-              <type name="StageWindow" c:type="ClutterStageWindow*"/>
-            </parameter>
-            <parameter name="is_fullscreen" transfer-ownership="none">
-              <type name="gboolean" c:type="gboolean"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="set_cursor_visible">
-        <callback name="set_cursor_visible">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="stage_window" transfer-ownership="none">
-              <type name="StageWindow" c:type="ClutterStageWindow*"/>
-            </parameter>
-            <parameter name="cursor_visible" transfer-ownership="none">
-              <type name="gboolean" c:type="gboolean"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="set_user_resizable">
-        <callback name="set_user_resizable">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="stage_window" transfer-ownership="none">
-              <type name="StageWindow" c:type="ClutterStageWindow*"/>
-            </parameter>
-            <parameter name="is_resizable" transfer-ownership="none">
-              <type name="gboolean" c:type="gboolean"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="realize">
-        <callback name="realize">
-          <return-value transfer-ownership="none">
-            <type name="gboolean" c:type="gboolean"/>
-          </return-value>
-          <parameters>
-            <parameter name="stage_window" transfer-ownership="none">
-              <type name="StageWindow" c:type="ClutterStageWindow*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="unrealize">
-        <callback name="unrealize">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="stage_window" transfer-ownership="none">
-              <type name="StageWindow" c:type="ClutterStageWindow*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="show">
-        <callback name="show">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="stage_window" transfer-ownership="none">
-              <type name="StageWindow" c:type="ClutterStageWindow*"/>
-            </parameter>
-            <parameter name="do_raise" transfer-ownership="none">
-              <type name="gboolean" c:type="gboolean"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="hide">
-        <callback name="hide">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="stage_window" transfer-ownership="none">
-              <type name="StageWindow" c:type="ClutterStageWindow*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="resize">
-        <callback name="resize">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="stage_window" transfer-ownership="none">
-              <type name="StageWindow" c:type="ClutterStageWindow*"/>
-            </parameter>
-            <parameter name="width" transfer-ownership="none">
-              <type name="gint" c:type="gint"/>
-            </parameter>
-            <parameter name="height" transfer-ownership="none">
-              <type name="gint" c:type="gint"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="get_geometry">
-        <callback name="get_geometry">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="stage_window" transfer-ownership="none">
-              <type name="StageWindow" c:type="ClutterStageWindow*"/>
-            </parameter>
-            <parameter name="geometry" transfer-ownership="none">
-              <type name="Geometry" c:type="ClutterGeometry*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="get_pending_swaps">
-        <callback name="get_pending_swaps">
-          <return-value transfer-ownership="none">
-            <type name="gint" c:type="int"/>
-          </return-value>
-          <parameters>
-            <parameter name="stage_window" transfer-ownership="none">
-              <type name="StageWindow" c:type="ClutterStageWindow*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="add_redraw_clip">
-        <callback name="add_redraw_clip">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="stage_window" transfer-ownership="none">
-              <type name="StageWindow" c:type="ClutterStageWindow*"/>
-            </parameter>
-            <parameter name="stage_rectangle" transfer-ownership="none">
-              <type name="Geometry" c:type="ClutterGeometry*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="has_redraw_clips">
-        <callback name="has_redraw_clips">
-          <return-value transfer-ownership="none">
-            <type name="gboolean" c:type="gboolean"/>
-          </return-value>
-          <parameters>
-            <parameter name="stage_window" transfer-ownership="none">
-              <type name="StageWindow" c:type="ClutterStageWindow*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="ignoring_redraw_clips">
-        <callback name="ignoring_redraw_clips">
-          <return-value transfer-ownership="none">
-            <type name="gboolean" c:type="gboolean"/>
-          </return-value>
-          <parameters>
-            <parameter name="stage_window" transfer-ownership="none">
-              <type name="StageWindow" c:type="ClutterStageWindow*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-    </record>
-    <constant name="Standby" value="269025040">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Start" value="269025050">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <class name="State"
-           c:symbol-prefix="state"
-           c:type="ClutterState"
-           version="1.4"
-           parent="GObject.Object"
-           glib:type-name="ClutterState"
-           glib:get-type="clutter_state_get_type"
-           glib:type-struct="StateClass">
-      <doc xml:whitespace="preserve">The &lt;structname&gt;ClutterState&lt;/structname&gt; structure contains only
-private data and should be accessed using the provided API</doc>
-      <implements name="Scriptable"/>
-      <constructor name="new" c:identifier="clutter_state_new">
-        <doc xml:whitespace="preserve">Creates a new #ClutterState</doc>
-        <return-value transfer-ownership="full">
-          <doc xml:whitespace="preserve">the newly create #ClutterState instance</doc>
-          <type name="State" c:type="ClutterState*"/>
-        </return-value>
-      </constructor>
-      <method name="get_animator"
-              c:identifier="clutter_state_get_animator"
-              version="1.4">
-        <doc xml:whitespace="preserve">Retrieves the #ClutterAnimator that is being used for transitioning
-between the two states, if any has been set</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">a #ClutterAnimator instance, or %NULL</doc>
-          <type name="Animator" c:type="ClutterAnimator*"/>
-        </return-value>
-        <parameters>
-          <parameter name="source_state_name" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the name of a source state</doc>
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="target_state_name" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the name of a target state</doc>
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_duration"
-              c:identifier="clutter_state_get_duration"
-              version="1.4">
-        <doc xml:whitespace="preserve">Queries the duration used for transitions between a source and
-target state pair
-The semantics for the query are the same as the semantics used for
-setting the duration with clutter_state_set_duration()</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the duration, in milliseconds</doc>
-          <type name="guint" c:type="guint"/>
-        </return-value>
-        <parameters>
-          <parameter name="source_state_name"
-                     transfer-ownership="none"
-                     allow-none="1">
-            <doc xml:whitespace="preserve">the name of the source state to get the duration of, or %NULL</doc>
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="target_state_name"
-                     transfer-ownership="none"
-                     allow-none="1">
-            <doc xml:whitespace="preserve">the name of the source state to get the duration of, or %NULL</doc>
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_keys"
-              c:identifier="clutter_state_get_keys"
-              version="1.4">
-        <doc xml:whitespace="preserve">Returns a list of pointers to opaque structures with accessor functions
-that describe the keys added to an animator.
-newly allocated #GList of #ClutterStateKey&lt;!-- --&gt;s. The contents of
-the returned list are owned by the #ClutterState and should not be
-modified or freed. Use g_list_free() to free the resources allocated
-by the returned list when done using it</doc>
-        <return-value transfer-ownership="container">
-          <doc xml:whitespace="preserve">a</doc>
-          <type name="GLib.List" c:type="GList*">
-            <type name="StateKey"/>
-          </type>
-        </return-value>
-        <parameters>
-          <parameter name="source_state_name"
-                     transfer-ownership="none"
-                     allow-none="1">
-            <doc xml:whitespace="preserve">the source transition name to query, or %NULL for all source states</doc>
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="target_state_name"
-                     transfer-ownership="none"
-                     allow-none="1">
-            <doc xml:whitespace="preserve">the target transition name to query, or %NULL for all target states</doc>
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="object" transfer-ownership="none" allow-none="1">
-            <doc xml:whitespace="preserve">the specific object instance to list keys for, or %NULL for all managed objects</doc>
-            <type name="GObject.Object" c:type="GObject*"/>
-          </parameter>
-          <parameter name="property_name"
-                     transfer-ownership="none"
-                     allow-none="1">
-            <doc xml:whitespace="preserve">the property name to search for, or %NULL for all properties.</doc>
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_state"
-              c:identifier="clutter_state_get_state"
-              version="1.4">
-        <doc xml:whitespace="preserve">Queries the currently set target state.
-During a transition this function will return the target of the transition.
-This function is useful when called from handlers of the
-#ClutterState::completed signal.
-is owned by the #ClutterState and should not be modified or freed</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">a string containing the target state. The returned string</doc>
-          <type name="utf8" c:type="gchar*"/>
-        </return-value>
-      </method>
-      <method name="get_states"
-              c:identifier="clutter_state_get_states"
-              version="1.4">
-        <doc xml:whitespace="preserve">Gets a list of all the state names managed by this #ClutterState.
-#GList of state names. The contents of the returned #GList are owned
-by the #ClutterState and should not be modified or freed. Use
-g_list_free() to free the resources allocated by the returned list when
-done using it</doc>
-        <return-value transfer-ownership="container">
-          <doc xml:whitespace="preserve">a newly allocated</doc>
-          <type name="GLib.List" c:type="GList*">
-            <type name="utf8"/>
-          </type>
-        </return-value>
-      </method>
-      <method name="get_timeline"
-              c:identifier="clutter_state_get_timeline"
-              version="1.4">
-        <doc xml:whitespace="preserve">Gets the timeline driving the #ClutterState
-the state change animations. The returned timeline is owned
-by the #ClutterState and it should not be unreferenced directly</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the #ClutterTimeline that drives</doc>
-          <type name="Timeline" c:type="ClutterTimeline*"/>
-        </return-value>
-      </method>
-      <method name="remove_key"
-              c:identifier="clutter_state_remove_key"
-              version="1.4">
-        <doc xml:whitespace="preserve">Removes all keys matching the search criteria passed in arguments.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="source_state_name"
-                     transfer-ownership="none"
-                     allow-none="1">
-            <doc xml:whitespace="preserve">the source state name to query, or %NULL for all source states</doc>
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="target_state_name"
-                     transfer-ownership="none"
-                     allow-none="1">
-            <doc xml:whitespace="preserve">the target state name to query, or %NULL for all target states</doc>
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="object" transfer-ownership="none" allow-none="1">
-            <doc xml:whitespace="preserve">the specific object instance to list keys for, or %NULL for all managed objects</doc>
-            <type name="GObject.Object" c:type="GObject*"/>
-          </parameter>
-          <parameter name="property_name"
-                     transfer-ownership="none"
-                     allow-none="1">
-            <doc xml:whitespace="preserve">the property name to search for, or %NULL for all properties.</doc>
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set"
-              c:identifier="clutter_state_set"
-              version="1.4"
-              introspectable="0">
-        <doc xml:whitespace="preserve">Adds multiple keys to a named state of a #ClutterState instance, specifying
-the easing mode and value a given property of an object should have at a
-given progress of the animation.
-The mode specified is the easing mode used when going to from the previous
-key to the specified key.
-For instance, the code below:
-|[
-clutter_state_set (state, NULL, "hover",
-button, "opacity", 255, CLUTTER_LINEAR,
-button, "scale-x", 1.2, CLUTTER_EASE_OUT_CUBIC,
-button, "scale-y", 1.2, CLUTTER_EASE_OUT_CUBIC,
-NULL);
-]|
-will create a transition from any state (a @source_state_name of NULL is
-treated as a wildcard) and a state named "hover"; the
-&lt;emphasis&gt;button&lt;/emphasis&gt; object will have the #ClutterActor:opacity
-property animated to a value of 255 using %CLUTTER_LINEAR as the animation
-mode, and the #ClutterActor:scale-x and #ClutterActor:scale-y properties
-animated to a value of 1.2 using %CLUTTER_EASE_OUT_CUBIC as the animation
-mode. To change the state (and start the transition) you can use the
-clutter_state_change() function:
-|[
-clutter_state_change (state, "hover", TRUE);
-]|
-If a given object, state_name, property tuple already exist in the
-#ClutterState instance, then the mode and value will be replaced with
-the new specified values.
-If a property name is prefixed with "delayed::" two additional
-to pause before transitioning and a similar value to pause after
-transitioning, e.g.:
-|[
-clutter_state_set (state, "hover", "toggled",
-button, "delayed::scale-x", 1.0, 0.2, 0.2,
-button, "delayed::scale-y", 1.0, 0.2, 0.2,
-NULL);
-]|
-will pause for 20% of the duration of the transition before animating,
-and 20% of the duration after animating.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="source_state_name" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the name of the source state keys are being added for</doc>
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="target_state_name" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the name of the target state keys are being added for</doc>
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="first_object" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #GObject</doc>
-            <type name="gpointer" c:type="gpointer"/>
-          </parameter>
-          <parameter name="first_property_name" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a property of @first_object to specify a key for</doc>
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="first_mode" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the id of the alpha function to use</doc>
-            <type name="gulong" c:type="gulong"/>
-          </parameter>
-          <parameter transfer-ownership="none">
-            <varargs>
-            </varargs>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_animator"
-              c:identifier="clutter_state_set_animator"
-              version="1.4">
-        <doc xml:whitespace="preserve">Specifies a #ClutterAnimator to be used when transitioning between
-the two named states.
-The @animator allows specifying a transition between the state that is
-more elaborate than the basic transitions allowed by the tweening of
-properties defined in the #ClutterState keys.
-If @animator is %NULL it will unset an existing animator.
-#ClutterState will take a reference on the passed @animator, if any</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="source_state_name" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the name of a source state</doc>
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="target_state_name" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the name of a target state</doc>
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="animator" transfer-ownership="none" allow-none="1">
-            <doc xml:whitespace="preserve">a #ClutterAnimator instance, or %NULL to unset an existing #ClutterAnimator</doc>
-            <type name="Animator" c:type="ClutterAnimator*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_duration"
-              c:identifier="clutter_state_set_duration"
-              version="1.4">
-        <doc xml:whitespace="preserve">Sets the duration of a transition.
-If both state names are %NULL the default duration for @state is set.
-If only @target_state_name is specified, the passed @duration becomes
-the default duration for transitions to the target state.
-If both states names are specified, the passed @duration only applies
-to the specified transition.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="source_state_name"
-                     transfer-ownership="none"
-                     allow-none="1">
-            <doc xml:whitespace="preserve">the name of the source state, or %NULL</doc>
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="target_state_name"
-                     transfer-ownership="none"
-                     allow-none="1">
-            <doc xml:whitespace="preserve">the name of the target state, or %NULL</doc>
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="duration" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the duration of the transition, in milliseconds</doc>
-            <type name="guint" c:type="guint"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_key"
-              c:identifier="clutter_state_set_key"
-              version="1.4">
-        <doc xml:whitespace="preserve">Sets one specific end key for a state_name, object, property_name
-combination.
-chaining of multiple calls</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the #ClutterState instance, allowing</doc>
-          <type name="State" c:type="ClutterState*"/>
-        </return-value>
-        <parameters>
-          <parameter name="source_state_name" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the source transition to specify transition for or NULL to specify the default fallback when a more specific source_state doesn't exist.</doc>
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="target_state_name" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the name of the transition to set a key value for.</doc>
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="object" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the #GObject to set a key for</doc>
-            <type name="GObject.Object" c:type="GObject*"/>
-          </parameter>
-          <parameter name="property_name" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the property to set a key for</doc>
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="mode" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the id of the alpha function to use</doc>
-            <type name="guint" c:type="guint"/>
-          </parameter>
-          <parameter name="value" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the value for property_name of object in state_name</doc>
-            <type name="GObject.Value" c:type="GValue*"/>
-          </parameter>
-          <parameter name="pre_delay" transfer-ownership="none">
-            <doc xml:whitespace="preserve">relative time of the transition to be idle in the beginning of the transition</doc>
-            <type name="gdouble" c:type="gdouble"/>
-          </parameter>
-          <parameter name="post_delay" transfer-ownership="none">
-            <doc xml:whitespace="preserve">relative time of the transition to be idle in the end of the transition</doc>
-            <type name="gdouble" c:type="gdouble"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_state"
-              c:identifier="clutter_state_set_state"
-              version="1.4">
-        <doc xml:whitespace="preserve">Change the current state of #ClutterState to @target_state_name
-The state will animate during its transition, see
-#clutter_state_warp_to_state for animation-free state switching.
-state transition. The returned timeline is owned by the #ClutterState
-and it should not be unreferenced</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the #ClutterTimeline that drives the</doc>
-          <type name="Timeline" c:type="ClutterTimeline*"/>
-        </return-value>
-        <parameters>
-          <parameter name="target_state_name" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the state to transition to</doc>
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="warp_to_state"
-              c:identifier="clutter_state_warp_to_state"
-              version="1.4">
-        <doc xml:whitespace="preserve">Change the current state of #ClutterState to @target_state_name
-Change to the specified target state immediately with no animation.
-state transition. The returned timeline is owned by the #ClutterState
-and it should not be unreferenced</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the #ClutterTimeline that drives the</doc>
-          <type name="Timeline" c:type="ClutterTimeline*"/>
-        </return-value>
-        <parameters>
-          <parameter name="target_state_name" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the state to transition to</doc>
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <property name="duration" writable="1" transfer-ownership="none">
-        <doc xml:whitespace="preserve">Default duration used if an duration has not been specified for a specific
-source/target state pair. The values is in milliseconds.</doc>
-        <type name="guint"/>
-      </property>
-      <property name="state" writable="1" transfer-ownership="none">
-        <doc xml:whitespace="preserve">The currently set target state, setting it causes the
-state machine to transition to the new state, use
-clutter_state_change() with a final FALSE argument to
-change state without a transition.</doc>
-        <type name="utf8"/>
-      </property>
-      <field name="parent">
-        <type name="GObject.Object" c:type="GObject"/>
-      </field>
-      <field name="priv">
-        <type name="StatePrivate" c:type="ClutterStatePrivate*"/>
-      </field>
-      <glib:signal name="completed" version="1.4">
-        <doc xml:whitespace="preserve">The ::completed signal is emitted when a #ClutterState reaches
-the target state specified by clutter_state_change()</doc>
-        <return-value transfer-ownership="none">
-          <type name="none"/>
-        </return-value>
-      </glib:signal>
-    </class>
-    <record name="StateClass"
-            c:type="ClutterStateClass"
-            glib:is-gtype-struct-for="State"
-            version="1.4">
-      <doc xml:whitespace="preserve">The &lt;structname&gt;ClutterStateClass&lt;/structname&gt; structure contains
-only private data</doc>
-      <field name="parent_class">
-        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
-      </field>
-      <field name="completed">
-        <callback name="completed">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="state" transfer-ownership="none">
-              <type name="State" c:type="ClutterState*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="_padding_dummy">
-        <array zero-terminated="0" c:type="gpointer" fixed-size="8">
-          <type name="gpointer" c:type="gpointer"/>
-        </array>
-      </field>
-    </record>
-    <record name="StateKey"
-            c:type="ClutterStateKey"
-            version="1.4"
-            glib:type-name="ClutterStateKey"
-            glib:get-type="clutter_state_key_get_type"
-            c:symbol-prefix="state_key">
-      <doc xml:whitespace="preserve">&lt;structname&gt;ClutterStateKey&lt;/structname&gt; is an opaque structure whose
-members cannot be accessed directly</doc>
-      <method name="get_mode"
-              c:identifier="clutter_state_key_get_mode"
-              version="1.4">
-        <doc xml:whitespace="preserve">Retrieves the easing mode used for @state_key.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the mode of a #ClutterStateKey</doc>
-          <type name="gulong" c:type="gulong"/>
-        </return-value>
-      </method>
-      <method name="get_object"
-              c:identifier="clutter_state_key_get_object"
-              version="1.4">
-        <doc xml:whitespace="preserve">Retrieves the object instance this #ClutterStateKey applies to.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the object this state key applies to.</doc>
-          <type name="GObject.Object" c:type="GObject*"/>
-        </return-value>
-      </method>
-      <method name="get_post_delay"
-              c:identifier="clutter_state_key_get_post_delay"
-              version="1.4">
-        <doc xml:whitespace="preserve">Retrieves the duration of the pause after transitioning is complete
-as a fraction of the total transition time.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the post delay, used after doing the transition.</doc>
-          <type name="gdouble" c:type="gdouble"/>
-        </return-value>
-      </method>
-      <method name="get_pre_delay"
-              c:identifier="clutter_state_key_get_pre_delay"
-              version="1.4">
-        <doc xml:whitespace="preserve">Retrieves the pause before transitioning starts as a fraction of
-the total transition time.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the pre delay used before starting the transition.</doc>
-          <type name="gdouble" c:type="gdouble"/>
-        </return-value>
-      </method>
-      <method name="get_property_name"
-              c:identifier="clutter_state_key_get_property_name"
-              version="1.4">
-        <doc xml:whitespace="preserve">Retrieves the name of the property this #ClutterStateKey applies to
-by the #ClutterStateKey and should never be modified or freed</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the name of the property. The returned string is owned</doc>
-          <type name="utf8" c:type="gchar*"/>
-        </return-value>
-      </method>
-      <method name="get_property_type"
-              c:identifier="clutter_state_key_get_property_type"
-              version="1.4">
-        <doc xml:whitespace="preserve">Retrieves the #GType of the property a key applies to
-You can use this type to initialize the #GValue to pass to
-clutter_state_key_get_value()</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the #GType of the property</doc>
-          <type name="GType" c:type="GType"/>
-        </return-value>
-      </method>
-      <method name="get_source_state_name"
-              c:identifier="clutter_state_key_get_source_state_name"
-              version="1.4">
-        <doc xml:whitespace="preserve">Retrieves the name of the source state of the @state_key
-if this is the generic state key for the given property when
-transitioning to the target state. The returned string is owned
-by the #ClutterStateKey and should never be modified or freed</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the name of the source state for this key, or %NULL</doc>
-          <type name="utf8" c:type="gchar*"/>
-        </return-value>
-      </method>
-      <method name="get_target_state_name"
-              c:identifier="clutter_state_key_get_target_state_name"
-              version="1.4">
-        <doc xml:whitespace="preserve">Get the name of the source state this #ClutterStateKey contains,
-or NULL if this is the generic state key for the given property
-when transitioning to the target state.
-the key is generic</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the name of the source state for this key, or NULL if</doc>
-          <type name="utf8" c:type="gchar*"/>
-        </return-value>
-      </method>
-      <method name="get_value"
-              c:identifier="clutter_state_key_get_value"
-              version="1.4">
-        <doc xml:whitespace="preserve">Retrieves a copy of the value for a #ClutterStateKey.
-The #GValue needs to be already initialized for the value type
-of the property or to a type that allow transformation from the value
-type of the key.
-Use g_value_unset() when done.
-and %FALSE otherwise</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">%TRUE if the value was successfully retrieved,</doc>
-          <type name="gboolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="value" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #GValue initialized with the correct type for the @state_key</doc>
-            <type name="GObject.Value" c:type="GValue*"/>
-          </parameter>
-        </parameters>
-      </method>
-    </record>
-    <record name="StatePrivate" c:type="ClutterStatePrivate" disguised="1">
-    </record>
-    <constant name="StickyKeys_Enable" value="65141">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Stop" value="269025064">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Subtitle" value="269025178">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Super_L" value="65515">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Super_R" value="65516">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Support" value="269025150">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Suspend" value="269025191">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Switch_VT_1" value="269024769">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Switch_VT_10" value="269024778">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Switch_VT_11" value="269024779">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Switch_VT_12" value="269024780">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Switch_VT_2" value="269024770">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Switch_VT_3" value="269024771">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Switch_VT_4" value="269024772">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Switch_VT_5" value="269024773">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Switch_VT_6" value="269024774">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Switch_VT_7" value="269024775">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Switch_VT_8" value="269024776">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Switch_VT_9" value="269024777">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Sys_Req" value="65301">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="T" value="84">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="THORN" value="222">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Tab" value="65289">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <enumeration name="TableAlignment"
-                 version="1.4"
-                 glib:type-name="ClutterTableAlignment"
-                 glib:get-type="clutter_table_alignment_get_type"
-                 c:type="ClutterTableAlignment">
-      <doc xml:whitespace="preserve">The alignment policies available on each axis of the #ClutterTableLayout</doc>
-      <member name="start"
-              value="0"
-              c:identifier="CLUTTER_TABLE_ALIGNMENT_START"
-              glib:nick="start"/>
-      <member name="center"
-              value="1"
-              c:identifier="CLUTTER_TABLE_ALIGNMENT_CENTER"
-              glib:nick="center"/>
-      <member name="end"
-              value="2"
-              c:identifier="CLUTTER_TABLE_ALIGNMENT_END"
-              glib:nick="end"/>
-    </enumeration>
-    <class name="TableLayout"
-           c:symbol-prefix="table_layout"
-           c:type="ClutterTableLayout"
-           version="1.4"
-           parent="LayoutManager"
-           glib:type-name="ClutterTableLayout"
-           glib:get-type="clutter_table_layout_get_type"
-           glib:type-struct="TableLayoutClass">
-      <doc xml:whitespace="preserve">The #ClutterTableLayout structure contains only private data
-and should be accessed using the provided API</doc>
-      <constructor name="new"
-                   c:identifier="clutter_table_layout_new"
-                   version="1.4">
-        <doc xml:whitespace="preserve">Creates a new #ClutterTableLayout layout manager</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the newly created #ClutterTableLayout</doc>
-          <type name="LayoutManager" c:type="ClutterLayoutManager*"/>
-        </return-value>
-      </constructor>
-      <method name="get_alignment"
-              c:identifier="clutter_table_layout_get_alignment"
-              version="1.4">
-        <doc xml:whitespace="preserve">Retrieves the horizontal and vertical alignment policies for @actor
-as set using clutter_table_layout_pack() or
-clutter_table_layout_set_alignment().</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="actor" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #ClutterActor child of @layout</doc>
-            <type name="Actor" c:type="ClutterActor*"/>
-          </parameter>
-          <parameter name="x_align"
-                     direction="out"
-                     caller-allocates="1"
-                     transfer-ownership="none">
-            <doc xml:whitespace="preserve">return location for the horizontal alignment policy</doc>
-            <type name="TableAlignment" c:type="ClutterTableAlignment*"/>
-          </parameter>
-          <parameter name="y_align"
-                     direction="out"
-                     caller-allocates="1"
-                     transfer-ownership="none">
-            <doc xml:whitespace="preserve">return location for the vertical alignment policy</doc>
-            <type name="TableAlignment" c:type="ClutterTableAlignment*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_column_count"
-              c:identifier="clutter_table_layout_get_column_count"
-              version="1.4">
-        <doc xml:whitespace="preserve">Retrieve the current number of columns in @layout</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the number of columns</doc>
-          <type name="gint" c:type="gint"/>
-        </return-value>
-      </method>
-      <method name="get_column_spacing"
-              c:identifier="clutter_table_layout_get_column_spacing"
-              version="1.4">
-        <doc xml:whitespace="preserve">Retrieves the spacing set using clutter_table_layout_set_column_spacing()</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the spacing between columns of the #ClutterTableLayout</doc>
-          <type name="guint" c:type="guint"/>
-        </return-value>
-      </method>
-      <method name="get_easing_duration"
-              c:identifier="clutter_table_layout_get_easing_duration"
-              version="1.4">
-        <doc xml:whitespace="preserve">Retrieves the duration set using clutter_table_layout_set_easing_duration()</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the duration of the animations, in milliseconds</doc>
-          <type name="guint" c:type="guint"/>
-        </return-value>
-      </method>
-      <method name="get_easing_mode"
-              c:identifier="clutter_table_layout_get_easing_mode"
-              version="1.4">
-        <doc xml:whitespace="preserve">Retrieves the easing mode set using clutter_table_layout_set_easing_mode()</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">an easing mode</doc>
-          <type name="gulong" c:type="gulong"/>
-        </return-value>
-      </method>
-      <method name="get_expand"
-              c:identifier="clutter_table_layout_get_expand"
-              version="1.4">
-        <doc xml:whitespace="preserve">Retrieves the horizontal and vertical expand policies for @actor
-as set using clutter_table_layout_pack() or clutter_table_layout_set_expand()</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="actor" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #ClutterActor child of @layout</doc>
-            <type name="Actor" c:type="ClutterActor*"/>
-          </parameter>
-          <parameter name="x_expand"
-                     direction="out"
-                     caller-allocates="0"
-                     transfer-ownership="full">
-            <doc xml:whitespace="preserve">return location for the horizontal expand policy</doc>
-            <type name="gboolean" c:type="gboolean*"/>
-          </parameter>
-          <parameter name="y_expand"
-                     direction="out"
-                     caller-allocates="0"
-                     transfer-ownership="full">
-            <doc xml:whitespace="preserve">return location for the vertical expand policy</doc>
-            <type name="gboolean" c:type="gboolean*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_fill"
-              c:identifier="clutter_table_layout_get_fill"
-              version="1.4">
-        <doc xml:whitespace="preserve">Retrieves the horizontal and vertical fill policies for @actor
-as set using clutter_table_layout_pack() or clutter_table_layout_set_fill()</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="actor" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #ClutterActor child of @layout</doc>
-            <type name="Actor" c:type="ClutterActor*"/>
-          </parameter>
-          <parameter name="x_fill"
-                     direction="out"
-                     caller-allocates="0"
-                     transfer-ownership="full">
-            <doc xml:whitespace="preserve">return location for the horizontal fill policy</doc>
-            <type name="gboolean" c:type="gboolean*"/>
-          </parameter>
-          <parameter name="y_fill"
-                     direction="out"
-                     caller-allocates="0"
-                     transfer-ownership="full">
-            <doc xml:whitespace="preserve">return location for the vertical fill policy</doc>
-            <type name="gboolean" c:type="gboolean*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_row_count"
-              c:identifier="clutter_table_layout_get_row_count"
-              version="1.4">
-        <doc xml:whitespace="preserve">Retrieve the current number rows in the @layout</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the number of rows</doc>
-          <type name="gint" c:type="gint"/>
-        </return-value>
-      </method>
-      <method name="get_row_spacing"
-              c:identifier="clutter_table_layout_get_row_spacing"
-              version="1.4">
-        <doc xml:whitespace="preserve">Retrieves the spacing set using clutter_table_layout_set_row_spacing()</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the spacing between rows of the #ClutterTableLayout</doc>
-          <type name="guint" c:type="guint"/>
-        </return-value>
-      </method>
-      <method name="get_span"
-              c:identifier="clutter_table_layout_get_span"
-              version="1.4">
-        <doc xml:whitespace="preserve">Retrieves the row and column span for @actor as set using
-clutter_table_layout_pack() or clutter_table_layout_set_span()</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="actor" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #ClutterActor child of @layout</doc>
-            <type name="Actor" c:type="ClutterActor*"/>
-          </parameter>
-          <parameter name="column_span"
-                     direction="out"
-                     caller-allocates="0"
-                     transfer-ownership="full">
-            <doc xml:whitespace="preserve">return location for the col span</doc>
-            <type name="gint" c:type="gint*"/>
-          </parameter>
-          <parameter name="row_span"
-                     direction="out"
-                     caller-allocates="0"
-                     transfer-ownership="full">
-            <doc xml:whitespace="preserve">return location for the row span</doc>
-            <type name="gint" c:type="gint*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_use_animations"
-              c:identifier="clutter_table_layout_get_use_animations"
-              version="1.4">
-        <doc xml:whitespace="preserve">Retrieves whether @layout should animate changes in the layout properties
-Since clutter_table_layout_set_use_animations()</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">%TRUE if the animations should be used, %FALSE otherwise</doc>
-          <type name="gboolean" c:type="gboolean"/>
-        </return-value>
-      </method>
-      <method name="pack"
-              c:identifier="clutter_table_layout_pack"
-              version="1.4">
-        <doc xml:whitespace="preserve">Packs @actor inside the #ClutterContainer associated to @layout
-at the given row and column.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="actor" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #ClutterActor</doc>
-            <type name="Actor" c:type="ClutterActor*"/>
-          </parameter>
-          <parameter name="column" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the column the @actor should be put, or -1 to append</doc>
-            <type name="gint" c:type="gint"/>
-          </parameter>
-          <parameter name="row" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the row the @actor should be put, or -1 to append</doc>
-            <type name="gint" c:type="gint"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_alignment"
-              c:identifier="clutter_table_layout_set_alignment"
-              version="1.4">
-        <doc xml:whitespace="preserve">Sets the horizontal and vertical alignment policies for @actor
-inside @layout</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="actor" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #ClutterActor child of @layout</doc>
-            <type name="Actor" c:type="ClutterActor*"/>
-          </parameter>
-          <parameter name="x_align" transfer-ownership="none">
-            <doc xml:whitespace="preserve">Horizontal alignment policy for @actor</doc>
-            <type name="TableAlignment" c:type="ClutterTableAlignment"/>
-          </parameter>
-          <parameter name="y_align" transfer-ownership="none">
-            <doc xml:whitespace="preserve">Vertical alignment policy for @actor</doc>
-            <type name="TableAlignment" c:type="ClutterTableAlignment"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_column_spacing"
-              c:identifier="clutter_table_layout_set_column_spacing"
-              version="1.4">
-        <doc xml:whitespace="preserve">Sets the spacing between columns of @layout</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="spacing" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the spacing between columns of the layout, in pixels</doc>
-            <type name="guint" c:type="guint"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_easing_duration"
-              c:identifier="clutter_table_layout_set_easing_duration"
-              version="1.4">
-        <doc xml:whitespace="preserve">Sets the duration of the animations used by @layout when animating changes
-in the layout properties
-Use clutter_table_layout_set_use_animations() to enable and disable the
-animations</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="msecs" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the duration of the animations, in milliseconds</doc>
-            <type name="guint" c:type="guint"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_easing_mode"
-              c:identifier="clutter_table_layout_set_easing_mode"
-              version="1.4">
-        <doc xml:whitespace="preserve">Sets the easing mode to be used by @layout when animating changes in layout
-properties
-Use clutter_table_layout_set_use_animations() to enable and disable the
-animations</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="mode" transfer-ownership="none">
-            <doc xml:whitespace="preserve">an easing mode, either from #ClutterAnimationMode or a logical id from clutter_alpha_register_func()</doc>
-            <type name="gulong" c:type="gulong"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_expand"
-              c:identifier="clutter_table_layout_set_expand"
-              version="1.4">
-        <doc xml:whitespace="preserve">Sets the horizontal and vertical expand policies for @actor
-inside @layout</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="actor" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #ClutterActor child of @layout</doc>
-            <type name="Actor" c:type="ClutterActor*"/>
-          </parameter>
-          <parameter name="x_expand" transfer-ownership="none">
-            <doc xml:whitespace="preserve">whether @actor should allocate extra space horizontally</doc>
-            <type name="gboolean" c:type="gboolean"/>
-          </parameter>
-          <parameter name="y_expand" transfer-ownership="none">
-            <doc xml:whitespace="preserve">whether @actor should allocate extra space vertically</doc>
-            <type name="gboolean" c:type="gboolean"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_fill"
-              c:identifier="clutter_table_layout_set_fill"
-              version="1.4">
-        <doc xml:whitespace="preserve">Sets the horizontal and vertical fill policies for @actor
-inside @layout</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="actor" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #ClutterActor child of @layout</doc>
-            <type name="Actor" c:type="ClutterActor*"/>
-          </parameter>
-          <parameter name="x_fill" transfer-ownership="none">
-            <doc xml:whitespace="preserve">whether @actor should fill horizontally the allocated space</doc>
-            <type name="gboolean" c:type="gboolean"/>
-          </parameter>
-          <parameter name="y_fill" transfer-ownership="none">
-            <doc xml:whitespace="preserve">whether @actor should fill vertically the allocated space</doc>
-            <type name="gboolean" c:type="gboolean"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_row_spacing"
-              c:identifier="clutter_table_layout_set_row_spacing"
-              version="1.4">
-        <doc xml:whitespace="preserve">Sets the spacing between rows of @layout</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="spacing" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the spacing between rows of the layout, in pixels</doc>
-            <type name="guint" c:type="guint"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_span"
-              c:identifier="clutter_table_layout_set_span"
-              version="1.4">
-        <doc xml:whitespace="preserve">Sets the row and column span for @actor
-inside @layout</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="actor" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #ClutterActor child of @layout</doc>
-            <type name="Actor" c:type="ClutterActor*"/>
-          </parameter>
-          <parameter name="column_span" transfer-ownership="none">
-            <doc xml:whitespace="preserve">Column span for @actor</doc>
-            <type name="gint" c:type="gint"/>
-          </parameter>
-          <parameter name="row_span" transfer-ownership="none">
-            <doc xml:whitespace="preserve">Row span for @actor</doc>
-            <type name="gint" c:type="gint"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_use_animations"
-              c:identifier="clutter_table_layout_set_use_animations"
-              version="1.4">
-        <doc xml:whitespace="preserve">Sets whether @layout should animate changes in the layout properties
-The duration of the animations is controlled by
-clutter_table_layout_set_easing_duration(); the easing mode to be used
-by the animations is controlled by clutter_table_layout_set_easing_mode()</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="animate" transfer-ownership="none">
-            <doc xml:whitespace="preserve">%TRUE if the @layout should use animations</doc>
-            <type name="gboolean" c:type="gboolean"/>
-          </parameter>
-        </parameters>
-      </method>
-      <property name="column-spacing"
-                version="1.4"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">The spacing between columns of the #ClutterTableLayout, in pixels</doc>
-        <type name="guint"/>
-      </property>
-      <property name="easing-duration"
-                version="1.4"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">The duration of the animations, in case #ClutterTableLayout:use-animations
-is set to %TRUE
-The duration is expressed in milliseconds</doc>
-        <type name="guint"/>
-      </property>
-      <property name="easing-mode"
-                version="1.4"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">The easing mode for the animations, in case
-#ClutterTableLayout:use-animations is set to %TRUE
-either be a value from the #ClutterAnimationMode enumeration, like
-%CLUTTER_EASE_OUT_CUBIC, or a logical id as returned by
-clutter_alpha_register_func()
-The default value is %CLUTTER_EASE_OUT_CUBIC</doc>
-        <type name="gulong"/>
-      </property>
-      <property name="row-spacing"
-                version="1.4"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">The spacing between rows of the #ClutterTableLayout, in pixels</doc>
-        <type name="guint"/>
-      </property>
-      <property name="use-animations"
-                version="1.4"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">Whether the #ClutterTableLayout should animate changes in the
-layout properties</doc>
-        <type name="gboolean"/>
-      </property>
-      <field name="parent_instance">
-        <type name="LayoutManager" c:type="ClutterLayoutManager"/>
-      </field>
-      <field name="priv">
-        <type name="TableLayoutPrivate" c:type="ClutterTableLayoutPrivate*"/>
-      </field>
-    </class>
-    <record name="TableLayoutClass"
-            c:type="ClutterTableLayoutClass"
-            glib:is-gtype-struct-for="TableLayout"
-            version="1.4">
-      <doc xml:whitespace="preserve">The #ClutterTableLayoutClass structure contains only private
-data and should be accessed using the provided API</doc>
-      <field name="parent_class">
-        <type name="LayoutManagerClass" c:type="ClutterLayoutManagerClass"/>
-      </field>
-    </record>
-    <record name="TableLayoutPrivate"
-            c:type="ClutterTableLayoutPrivate"
-            disguised="1">
-    </record>
-    <constant name="Tabovedot" value="16785002">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="TaskPane" value="269025151">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Tcaron" value="427">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Tcedilla" value="478">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Terminal" value="269025152">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Terminate_Server" value="65237">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <class name="Text"
-           c:symbol-prefix="text"
-           c:type="ClutterText"
-           version="1.0"
-           parent="Actor"
-           glib:type-name="ClutterText"
-           glib:get-type="clutter_text_get_type"
-           glib:type-struct="TextClass">
-      <doc xml:whitespace="preserve">The #ClutterText struct contains only private data.</doc>
-      <implements name="Atk.ImplementorIface"/>
-      <implements name="Animatable"/>
-      <implements name="Scriptable"/>
-      <constructor name="new" c:identifier="clutter_text_new" version="1.0">
-        <doc xml:whitespace="preserve">Creates a new #ClutterText actor. This actor can be used to
-display and edit text.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the newly created #ClutterText actor</doc>
-          <type name="Actor" c:type="ClutterActor*"/>
-        </return-value>
-      </constructor>
-      <constructor name="new_full"
-                   c:identifier="clutter_text_new_full"
-                   version="1.0">
-        <doc xml:whitespace="preserve">Creates a new #ClutterText actor, using @font_name as the font
-description; @text will be used to set the contents of the actor;
-and @color will be used as the color to render @text.
-This function is equivalent to calling clutter_text_new(),
-clutter_text_set_font_name(), clutter_text_set_text() and
-clutter_text_set_color().</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the newly created #ClutterText actor</doc>
-          <type name="Actor" c:type="ClutterActor*"/>
-        </return-value>
-        <parameters>
-          <parameter name="font_name" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a string with a font description</doc>
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="text" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the contents of the actor</doc>
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="color" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the color to be used to render @text</doc>
-            <type name="Color" c:type="ClutterColor*"/>
-          </parameter>
-        </parameters>
-      </constructor>
-      <constructor name="new_with_text"
-                   c:identifier="clutter_text_new_with_text"
-                   version="1.0">
-        <doc xml:whitespace="preserve">Creates a new #ClutterText actor, using @font_name as the font
-description; @text will be used to set the contents of the actor.
-This function is equivalent to calling clutter_text_new(),
-clutter_text_set_font_name(), and clutter_text_set_text().</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the newly created #ClutterText actor</doc>
-          <type name="Actor" c:type="ClutterActor*"/>
-        </return-value>
-        <parameters>
-          <parameter name="font_name" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a string with a font description</doc>
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="text" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the contents of the actor</doc>
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </constructor>
-      <method name="activate"
-              c:identifier="clutter_text_activate"
-              version="1.0">
-        <doc xml:whitespace="preserve">Emits the #ClutterText::activate signal, if @self has been set
-as activatable using clutter_text_set_activatable().
-This function can be used to emit the ::activate signal inside
-a #ClutterActor::captured-event or #ClutterActor::key-press-event
-signal handlers before the default signal handler for the
-#ClutterText is invoked.
-and %FALSE otherwise</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">%TRUE if the ::activate signal has been emitted,</doc>
-          <type name="gboolean" c:type="gboolean"/>
-        </return-value>
-      </method>
-      <method name="delete_chars"
-              c:identifier="clutter_text_delete_chars"
-              version="1.0">
-        <doc xml:whitespace="preserve">Deletes @n_chars inside a #ClutterText actor, starting from the
-current cursor position.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="n_chars" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the number of characters to delete</doc>
-            <type name="guint" c:type="guint"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="delete_selection"
-              c:identifier="clutter_text_delete_selection"
-              version="1.0">
-        <doc xml:whitespace="preserve">Deletes the currently selected text
-This function is only useful in subclasses of #ClutterText
-is empty, and %FALSE otherwise</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">%TRUE if text was deleted or if the text actor</doc>
-          <type name="gboolean" c:type="gboolean"/>
-        </return-value>
-      </method>
-      <method name="delete_text"
-              c:identifier="clutter_text_delete_text"
-              version="1.0">
-        <doc xml:whitespace="preserve">Deletes the text inside a #ClutterText actor between @start_pos
-and @end_pos.
-The starting and ending positions are expressed in characters,
-not in bytes.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="start_pos" transfer-ownership="none">
-            <doc xml:whitespace="preserve">starting position</doc>
-            <type name="glong" c:type="gssize"/>
-          </parameter>
-          <parameter name="end_pos" transfer-ownership="none">
-            <doc xml:whitespace="preserve">ending position</doc>
-            <type name="glong" c:type="gssize"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_activatable"
-              c:identifier="clutter_text_get_activatable"
-              version="1.0">
-        <doc xml:whitespace="preserve">Retrieves whether a #ClutterText is activatable or not.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">%TRUE if the actor is activatable</doc>
-          <type name="gboolean" c:type="gboolean"/>
-        </return-value>
-      </method>
-      <method name="get_attributes"
-              c:identifier="clutter_text_get_attributes"
-              version="1.0">
-        <doc xml:whitespace="preserve">Gets the attribute list that was set on the #ClutterText actor
-clutter_text_set_attributes(), if any.
-returned value is owned by the #ClutterText and should not be unreferenced.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the attribute list, or %NULL if none was set. The</doc>
-          <type name="Pango.AttrList" c:type="PangoAttrList*"/>
-        </return-value>
-      </method>
-      <method name="get_chars"
-              c:identifier="clutter_text_get_chars"
-              version="1.0">
-        <doc xml:whitespace="preserve">Retrieves the contents of the #ClutterText actor between
-The positions are specified in characters, not in bytes.
-the text actor between the specified positions. Use g_free()
-to free the resources when done</doc>
-        <return-value transfer-ownership="full">
-          <doc xml:whitespace="preserve">a newly allocated string with the contents of</doc>
-          <type name="utf8" c:type="gchar*"/>
-        </return-value>
-        <parameters>
-          <parameter name="start_pos" transfer-ownership="none">
-            <doc xml:whitespace="preserve">start of text, in characters</doc>
-            <type name="glong" c:type="gssize"/>
-          </parameter>
-          <parameter name="end_pos" transfer-ownership="none">
-            <doc xml:whitespace="preserve">end of text, in characters</doc>
-            <type name="glong" c:type="gssize"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_color"
-              c:identifier="clutter_text_get_color"
-              version="1.0">
-        <doc xml:whitespace="preserve">Retrieves the text color as set by clutter_text_set_color().</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="color" transfer-ownership="none">
-            <doc xml:whitespace="preserve">return location for a #ClutterColor</doc>
-            <type name="Color" c:type="ClutterColor*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_cursor_color"
-              c:identifier="clutter_text_get_cursor_color"
-              version="1.0">
-        <doc xml:whitespace="preserve">Retrieves the color of the cursor of a #ClutterText actor.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="color" transfer-ownership="none">
-            <doc xml:whitespace="preserve">return location for a #ClutterColor</doc>
-            <type name="Color" c:type="ClutterColor*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_cursor_position"
-              c:identifier="clutter_text_get_cursor_position"
-              version="1.0">
-        <doc xml:whitespace="preserve">Retrieves the cursor position.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the cursor position, in characters</doc>
-          <type name="gint" c:type="gint"/>
-        </return-value>
-      </method>
-      <method name="get_cursor_size"
-              c:identifier="clutter_text_get_cursor_size"
-              version="1.0">
-        <doc xml:whitespace="preserve">Retrieves the size of the cursor of a #ClutterText actor.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the size of the cursor, in pixels</doc>
-          <type name="guint" c:type="guint"/>
-        </return-value>
-      </method>
-      <method name="get_cursor_visible"
-              c:identifier="clutter_text_get_cursor_visible"
-              version="1.0">
-        <doc xml:whitespace="preserve">Retrieves whether the cursor of a #ClutterText actor is visible.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">%TRUE if the cursor is visible</doc>
-          <type name="gboolean" c:type="gboolean"/>
-        </return-value>
-      </method>
-      <method name="get_editable"
-              c:identifier="clutter_text_get_editable"
-              version="1.0">
-        <doc xml:whitespace="preserve">Retrieves whether a #ClutterText is editable or not.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">%TRUE if the actor is editable</doc>
-          <type name="gboolean" c:type="gboolean"/>
-        </return-value>
-      </method>
-      <method name="get_ellipsize"
-              c:identifier="clutter_text_get_ellipsize"
-              version="1.0">
-        <doc xml:whitespace="preserve">Returns the ellipsizing position of a #ClutterText actor, as
-set by clutter_text_set_ellipsize().</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">#PangoEllipsizeMode</doc>
-          <type name="Pango.EllipsizeMode" c:type="PangoEllipsizeMode"/>
-        </return-value>
-      </method>
-      <method name="get_font_description"
-              c:identifier="clutter_text_get_font_description"
-              version="1.2">
-        <doc xml:whitespace="preserve">Retrieves the #PangoFontDescription used by @self
-by the #ClutterText actor and it should not be modified or freed</doc>
-        <return-value transfer-ownership="full">
-          <doc xml:whitespace="preserve">a #PangoFontDescription. The returned value is owned</doc>
-          <type name="Pango.FontDescription" c:type="PangoFontDescription*"/>
-        </return-value>
-      </method>
-      <method name="get_font_name"
-              c:identifier="clutter_text_get_font_name"
-              version="1.0">
-        <doc xml:whitespace="preserve">Retrieves the font name as set by clutter_text_set_font_name().
-string is owned by the #ClutterText actor and should not be
-modified or freed</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">a string containing the font name. The returned</doc>
-          <type name="utf8" c:type="gchar*"/>
-        </return-value>
-      </method>
-      <method name="get_justify"
-              c:identifier="clutter_text_get_justify"
-              version="0.6">
-        <doc xml:whitespace="preserve">Retrieves whether the #ClutterText actor should justify its contents
-on both margins.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">%TRUE if the text should be justified</doc>
-          <type name="gboolean" c:type="gboolean"/>
-        </return-value>
-      </method>
-      <method name="get_layout"
-              c:identifier="clutter_text_get_layout"
-              version="1.0">
-        <doc xml:whitespace="preserve">Retrieves the current #PangoLayout used by a #ClutterText actor.
-the #ClutterText actor and should not be modified or freed</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">a #PangoLayout. The returned object is owned by</doc>
-          <type name="Pango.Layout" c:type="PangoLayout*"/>
-        </return-value>
-      </method>
-      <method name="get_line_alignment"
-              c:identifier="clutter_text_get_line_alignment"
-              version="1.0">
-        <doc xml:whitespace="preserve">Retrieves the alignment of a #ClutterText, as set by
-clutter_text_set_line_alignment().</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">a #PangoAlignment</doc>
-          <type name="Pango.Alignment" c:type="PangoAlignment"/>
-        </return-value>
-      </method>
-      <method name="get_line_wrap"
-              c:identifier="clutter_text_get_line_wrap"
-              version="1.0">
-        <doc xml:whitespace="preserve">Retrieves the value set using clutter_text_set_line_wrap().
-its contents</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">%TRUE if the #ClutterText actor should wrap</doc>
-          <type name="gboolean" c:type="gboolean"/>
-        </return-value>
-      </method>
-      <method name="get_line_wrap_mode"
-              c:identifier="clutter_text_get_line_wrap_mode"
-              version="1.0">
-        <doc xml:whitespace="preserve">Retrieves the line wrap mode used by the #ClutterText actor.
-See clutter_text_set_line_wrap_mode ().</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the wrap mode used by the #ClutterText</doc>
-          <type name="Pango.WrapMode" c:type="PangoWrapMode"/>
-        </return-value>
-      </method>
-      <method name="get_max_length"
-              c:identifier="clutter_text_get_max_length"
-              version="1.0">
-        <doc xml:whitespace="preserve">Gets the maximum length of text that can be set into a text actor.
-See clutter_text_set_max_length().</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the maximum number of characters.</doc>
-          <type name="gint" c:type="gint"/>
-        </return-value>
-      </method>
-      <method name="get_password_char"
-              c:identifier="clutter_text_get_password_char"
-              version="1.0"
-              introspectable="0">
-        <doc xml:whitespace="preserve">Retrieves the character to use in place of the actual text
-as set by clutter_text_set_password_char().
-character is not set</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">a Unicode character or 0 if the password</doc>
-          <type name="gunichar" c:type="gunichar"/>
-        </return-value>
-      </method>
-      <method name="get_selectable"
-              c:identifier="clutter_text_get_selectable"
-              version="1.0">
-        <doc xml:whitespace="preserve">Retrieves whether a #ClutterText is selectable or not.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">%TRUE if the actor is selectable</doc>
-          <type name="gboolean" c:type="gboolean"/>
-        </return-value>
-      </method>
-      <method name="get_selection"
-              c:identifier="clutter_text_get_selection"
-              version="1.0">
-        <doc xml:whitespace="preserve">Retrieves the currently selected text.
-selected text, or %NULL. Use g_free() to free the returned
-string.</doc>
-        <return-value transfer-ownership="full">
-          <doc xml:whitespace="preserve">a newly allocated string containing the currently</doc>
-          <type name="utf8" c:type="gchar*"/>
-        </return-value>
-      </method>
-      <method name="get_selection_bound"
-              c:identifier="clutter_text_get_selection_bound"
-              version="1.0">
-        <doc xml:whitespace="preserve">Retrieves the other end of the selection of a #ClutterText actor,
-in characters from the current cursor position.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the position of the other end of the selection</doc>
-          <type name="gint" c:type="gint"/>
-        </return-value>
-      </method>
-      <method name="get_selection_color"
-              c:identifier="clutter_text_get_selection_color"
-              version="1.0">
-        <doc xml:whitespace="preserve">Retrieves the color of the selection of a #ClutterText actor.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="color" transfer-ownership="none">
-            <doc xml:whitespace="preserve">return location for a #ClutterColor</doc>
-            <type name="Color" c:type="ClutterColor*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_single_line_mode"
-              c:identifier="clutter_text_get_single_line_mode"
-              version="1.0">
-        <doc xml:whitespace="preserve">Retrieves whether the #ClutterText actor is in single line mode.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">%TRUE if the #ClutterText actor is in single line mode</doc>
-          <type name="gboolean" c:type="gboolean"/>
-        </return-value>
-      </method>
-      <method name="get_text"
-              c:identifier="clutter_text_get_text"
-              version="1.0">
-        <doc xml:whitespace="preserve">Retrieves a pointer to the current contents of a #ClutterText
-actor.
-If you need a copy of the contents for manipulating, either
-use g_strdup() on the returned string, or use:
-|[
-copy = clutter_text_get_chars (text, 0, -1);
-]|
-Which will return a newly allocated string.
-is owned by the #ClutterText actor and should never be
-modified or freed</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the contents of the actor. The returned string</doc>
-          <type name="utf8" c:type="gchar*"/>
-        </return-value>
-      </method>
-      <method name="get_use_markup"
-              c:identifier="clutter_text_get_use_markup"
-              version="1.0">
-        <doc xml:whitespace="preserve">Retrieves whether the contents of the #ClutterText actor should be
-parsed for the Pango text markup.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">%TRUE if the contents will be parsed for markup</doc>
-          <type name="gboolean" c:type="gboolean"/>
-        </return-value>
-      </method>
-      <method name="insert_text"
-              c:identifier="clutter_text_insert_text"
-              version="1.0">
-        <doc xml:whitespace="preserve">Inserts @text into a #ClutterActor at the given position.
-If @position is a negative number, the text will be appended
-at the end of the current contents of the #ClutterText.
-The position is expressed in characters, not in bytes.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="text" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the text to be inserted</doc>
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="position" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the position of the insertion, or -1</doc>
-            <type name="glong" c:type="gssize"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="insert_unichar"
-              c:identifier="clutter_text_insert_unichar"
-              version="1.0"
-              introspectable="0">
-        <doc xml:whitespace="preserve">Inserts @wc at the current cursor position of a
-#ClutterText actor.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="wc" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a Unicode character</doc>
-            <type name="gunichar" c:type="gunichar"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="position_to_coords"
-              c:identifier="clutter_text_position_to_coords"
-              version="1.0">
-        <doc xml:whitespace="preserve">Retrieves the coordinates of the given @position.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">%TRUE if the conversion was successful</doc>
-          <type name="gboolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="position" transfer-ownership="none">
-            <doc xml:whitespace="preserve">position in characters</doc>
-            <type name="gint" c:type="gint"/>
-          </parameter>
-          <parameter name="x"
-                     direction="out"
-                     caller-allocates="0"
-                     transfer-ownership="full">
-            <doc xml:whitespace="preserve">return location for the X coordinate, or %NULL</doc>
-            <type name="gfloat" c:type="gfloat*"/>
-          </parameter>
-          <parameter name="y"
-                     direction="out"
-                     caller-allocates="0"
-                     transfer-ownership="full">
-            <doc xml:whitespace="preserve">return location for the Y coordinate, or %NULL</doc>
-            <type name="gfloat" c:type="gfloat*"/>
-          </parameter>
-          <parameter name="line_height"
-                     direction="out"
-                     caller-allocates="0"
-                     transfer-ownership="full">
-            <doc xml:whitespace="preserve">return location for the line height, or %NULL</doc>
-            <type name="gfloat" c:type="gfloat*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_activatable"
-              c:identifier="clutter_text_set_activatable"
-              version="1.0">
-        <doc xml:whitespace="preserve">Sets whether a #ClutterText actor should be activatable.
-An activatable #ClutterText actor will emit the #ClutterText::activate
-signal whenever the 'Enter' (or 'Return') key is pressed; if it is not
-activatable, a new line will be appended to the current content.
-An activatable #ClutterText must also be set as editable using
-clutter_text_set_editable().</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="activatable" transfer-ownership="none">
-            <doc xml:whitespace="preserve">whether the #ClutterText actor should be activatable</doc>
-            <type name="gboolean" c:type="gboolean"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_attributes"
-              c:identifier="clutter_text_set_attributes"
-              version="1.0">
-        <doc xml:whitespace="preserve">Sets the attributes list that are going to be applied to the
-#ClutterText contents.
-The #ClutterText actor will take a reference on the #PangoAttrList
-passed to this function.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="attrs" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #PangoAttrList or %NULL to unset the attributes</doc>
-            <type name="Pango.AttrList" c:type="PangoAttrList*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_color"
-              c:identifier="clutter_text_set_color"
-              version="1.0">
-        <doc xml:whitespace="preserve">Sets the color of the contents of a #ClutterText actor.
-The overall opacity of the #ClutterText actor will be the
-result of the alpha value of @color and the composited
-opacity of the actor itself on the scenegraph, as returned
-by clutter_actor_get_paint_opacity().</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="color" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #ClutterColor</doc>
-            <type name="Color" c:type="ClutterColor*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_cursor_color"
-              c:identifier="clutter_text_set_cursor_color"
-              version="1.0">
-        <doc xml:whitespace="preserve">Sets the color of the cursor of a #ClutterText actor.
-If @color is %NULL, the cursor color will be the same as the
-text color.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="color" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the color of the cursor, or %NULL to unset it</doc>
-            <type name="Color" c:type="ClutterColor*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_cursor_position"
-              c:identifier="clutter_text_set_cursor_position"
-              version="1.0">
-        <doc xml:whitespace="preserve">Sets the cursor of a #ClutterText actor at @position.
-The position is expressed in characters, not in bytes.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="position" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the new cursor position, in characters</doc>
-            <type name="gint" c:type="gint"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_cursor_size"
-              c:identifier="clutter_text_set_cursor_size"
-              version="1.0">
-        <doc xml:whitespace="preserve">Sets the size of the cursor of a #ClutterText. The cursor
-will only be visible if the #ClutterText:cursor-visible property
-is set to %TRUE.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="size" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the size of the cursor, in pixels, or -1 to use the default value</doc>
-            <type name="gint" c:type="gint"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_cursor_visible"
-              c:identifier="clutter_text_set_cursor_visible"
-              version="1.0">
-        <doc xml:whitespace="preserve">Sets whether the cursor of a #ClutterText actor should be
-visible or not.
-The color of the cursor will be the same as the text color
-unless clutter_text_set_cursor_color() has been called.
-The size of the cursor can be set using clutter_text_set_cursor_size().
-The position of the cursor can be changed programmatically using
-clutter_text_set_cursor_position().</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="cursor_visible" transfer-ownership="none">
-            <doc xml:whitespace="preserve">whether the cursor should be visible</doc>
-            <type name="gboolean" c:type="gboolean"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_editable"
-              c:identifier="clutter_text_set_editable"
-              version="1.0">
-        <doc xml:whitespace="preserve">Sets whether the #ClutterText actor should be editable.
-An editable #ClutterText with key focus set using
-clutter_actor_grab_key_focus() or clutter_stage_take_key_focus()
-will receive key events and will update its contents accordingly.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="editable" transfer-ownership="none">
-            <doc xml:whitespace="preserve">whether the #ClutterText should be editable</doc>
-            <type name="gboolean" c:type="gboolean"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_ellipsize"
-              c:identifier="clutter_text_set_ellipsize"
-              version="1.0">
-        <doc xml:whitespace="preserve">text if there is not enough space to render the entire contents
-of a #ClutterText actor</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="mode" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #PangoEllipsizeMode</doc>
-            <type name="Pango.EllipsizeMode" c:type="PangoEllipsizeMode"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_font_description"
-              c:identifier="clutter_text_set_font_description"
-              version="1.2">
-        <doc xml:whitespace="preserve">Sets @font_desc as the font description for a #ClutterText
-The #PangoFontDescription is copied by the #ClutterText actor
-so you can safely call pango_font_description_free() on it after
-calling this function.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="font_desc" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #PangoFontDescription</doc>
-            <type name="Pango.FontDescription" c:type="PangoFontDescription*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_font_name"
-              c:identifier="clutter_text_set_font_name"
-              version="1.0">
-        <doc xml:whitespace="preserve">Sets the font used by a #ClutterText. The @font_name string
-must either be %NULL, which means that the font name from the
-default #ClutterBackend will be used; or be something that can
-be parsed by the pango_font_description_from_string() function,
-like:
-|[
-clutter_text_set_font_name (text, "Sans 10pt");
-clutter_text_set_font_name (text, "Serif 16px");
-clutter_text_set_font_name (text, "Helvetica 10");
-]|</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="font_name" transfer-ownership="none" allow-none="1">
-            <doc xml:whitespace="preserve">a font name, or %NULL to set the default font name</doc>
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_justify"
-              c:identifier="clutter_text_set_justify"
-              version="1.0">
-        <doc xml:whitespace="preserve">Sets whether the text of the #ClutterText actor should be justified
-on both margins. This setting is ignored if Clutter is compiled
-against Pango &amp;lt; 1.18.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="justify" transfer-ownership="none">
-            <doc xml:whitespace="preserve">whether the text should be justified</doc>
-            <type name="gboolean" c:type="gboolean"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_line_alignment"
-              c:identifier="clutter_text_set_line_alignment"
-              version="1.0">
-        <doc xml:whitespace="preserve">Sets the way that the lines of a wrapped label are aligned with
-respect to each other. This does not affect the overall alignment
-of the label within its allocated or specified width.
-To align a #ClutterText actor you should add it to a container
-that supports alignment, or use the anchor point.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="alignment" transfer-ownership="none">
-            <doc xml:whitespace="preserve">A #PangoAlignment</doc>
-            <type name="Pango.Alignment" c:type="PangoAlignment"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_line_wrap"
-              c:identifier="clutter_text_set_line_wrap"
-              version="1.0">
-        <doc xml:whitespace="preserve">Sets whether the contents of a #ClutterText actor should wrap,
-if they don't fit the size assigned to the actor.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="line_wrap" transfer-ownership="none">
-            <doc xml:whitespace="preserve">whether the contents should wrap</doc>
-            <type name="gboolean" c:type="gboolean"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_line_wrap_mode"
-              c:identifier="clutter_text_set_line_wrap_mode"
-              version="1.0">
-        <doc xml:whitespace="preserve">If line wrapping is enabled (see clutter_text_set_line_wrap()) this
-function controls how the line wrapping is performed. The default is
-%PANGO_WRAP_WORD which means wrap on word boundaries.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="wrap_mode" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the line wrapping mode</doc>
-            <type name="Pango.WrapMode" c:type="PangoWrapMode"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_markup"
-              c:identifier="clutter_text_set_markup"
-              version="1.0">
-        <doc xml:whitespace="preserve">Sets @markup as the contents of a #ClutterText.
-This is a convenience function for setting a string containing
-Pango markup, and it is logically equivalent to:
-|[
-clutter_text_set_text (CLUTTER_TEXT (actor), markup);
-clutter_text_set_use_markup (CLUTTER_TEXT (actor), TRUE);
-]|</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="markup" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a string containing Pango markup. Passing %NULL is the same as passing "" (the empty string)</doc>
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_max_length"
-              c:identifier="clutter_text_set_max_length"
-              version="1.0">
-        <doc xml:whitespace="preserve">Sets the maximum allowed length of the contents of the actor. If the
-current contents are longer than the given length, then they will be
-truncated to fit.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="max" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the maximum number of characters allowed in the text actor; 0 to disable or -1 to set the length of the current string</doc>
-            <type name="gint" c:type="gint"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_password_char"
-              c:identifier="clutter_text_set_password_char"
-              version="1.0"
-              introspectable="0">
-        <doc xml:whitespace="preserve">Sets the character to use in place of the actual text in a
-password text actor.
-If @wc is 0 the text will be displayed as it is entered in the
-#ClutterText actor.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="wc" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a Unicode character, or 0 to unset the password character</doc>
-            <type name="gunichar" c:type="gunichar"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_preedit_string"
-              c:identifier="clutter_text_set_preedit_string"
-              version="1.2">
-        <doc xml:whitespace="preserve">Sets, or unsets, the pre-edit string. This function is useful
-for input methods to display a string (with eventual specific
-Pango attributes) before it is entered inside the #ClutterText
-buffer.
-The preedit string and attributes are ignored if the #ClutterText
-actor is not editable.
-This function should not be used by applications</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="preedit_str"
-                     transfer-ownership="none"
-                     allow-none="1">
-            <doc xml:whitespace="preserve">the pre-edit string, or %NULL to unset it</doc>
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="preedit_attrs"
-                     transfer-ownership="none"
-                     allow-none="1">
-            <doc xml:whitespace="preserve">the pre-edit string attributes</doc>
-            <type name="Pango.AttrList" c:type="PangoAttrList*"/>
-          </parameter>
-          <parameter name="cursor_pos" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the cursor position for the pre-edit string</doc>
-            <type name="guint" c:type="guint"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_selectable"
-              c:identifier="clutter_text_set_selectable"
-              version="1.0">
-        <doc xml:whitespace="preserve">Sets whether a #ClutterText actor should be selectable.
-A selectable #ClutterText will allow selecting its contents using
-the pointer or the keyboard.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="selectable" transfer-ownership="none">
-            <doc xml:whitespace="preserve">whether the #ClutterText actor should be selectable</doc>
-            <type name="gboolean" c:type="gboolean"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_selection"
-              c:identifier="clutter_text_set_selection"
-              version="1.0">
-        <doc xml:whitespace="preserve">Selects the region of text between @start_pos and @end_pos.
-This function changes the position of the cursor to match</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="start_pos" transfer-ownership="none">
-            <doc xml:whitespace="preserve">start of the selection, in characters</doc>
-            <type name="glong" c:type="gssize"/>
-          </parameter>
-          <parameter name="end_pos" transfer-ownership="none">
-            <doc xml:whitespace="preserve">end of the selection, in characters</doc>
-            <type name="glong" c:type="gssize"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_selection_bound"
-              c:identifier="clutter_text_set_selection_bound"
-              version="1.0">
-        <doc xml:whitespace="preserve">Sets the other end of the selection, starting from the current
-cursor position.
-If @selection_bound is -1, the selection unset.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="selection_bound" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the position of the end of the selection, in characters</doc>
-            <type name="gint" c:type="gint"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_selection_color"
-              c:identifier="clutter_text_set_selection_color"
-              version="1.0">
-        <doc xml:whitespace="preserve">Sets the color of the selection of a #ClutterText actor.
-If @color is %NULL, the selection color will be the same as the
-cursor color, or if no cursor color is set either then it will be
-the same as the text color.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="color" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the color of the selection, or %NULL to unset it</doc>
-            <type name="Color" c:type="ClutterColor*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_single_line_mode"
-              c:identifier="clutter_text_set_single_line_mode"
-              version="1.0">
-        <doc xml:whitespace="preserve">Sets whether a #ClutterText actor should be in single line mode
-or not. Only editable #ClutterText&lt;!-- --&gt;s can be in single line
-mode.
-A text actor in single line mode will not wrap text and will clip
-the the visible area to the predefined size. The contents of the
-text actor will scroll to display the end of the text if its length
-is bigger than the allocated width.
-When setting the single line mode the #ClutterText:activatable
-property is also set as a side effect. Instead of entering a new
-line character, the text actor will emit the #ClutterText::activate
-signal.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="single_line" transfer-ownership="none">
-            <doc xml:whitespace="preserve">whether to enable single line mode</doc>
-            <type name="gboolean" c:type="gboolean"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_text"
-              c:identifier="clutter_text_set_text"
-              version="1.0">
-        <doc xml:whitespace="preserve">Sets the contents of a #ClutterText actor.
-If the #ClutterText:use-markup property was set to %TRUE it
-will be reset to %FALSE as a side effect. If you want to
-maintain the #ClutterText:use-markup you should use the
-clutter_text_set_markup() function instead</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="text" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the text to set. Passing %NULL is the same as passing "" (the empty string)</doc>
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_use_markup"
-              c:identifier="clutter_text_set_use_markup"
-              version="1.0">
-        <doc xml:whitespace="preserve">Sets whether the contents of the #ClutterText actor contains markup
-in &lt;link linkend="PangoMarkupFormat"&gt;Pango's text markup language&lt;/link&gt;.
-Setting #ClutterText:use-markup on an editable #ClutterText will
-not have any effect except hiding the markup.
-See also #ClutterText:use-markup.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="setting" transfer-ownership="none">
-            <doc xml:whitespace="preserve">%TRUE if the text should be parsed for markup.</doc>
-            <type name="gboolean" c:type="gboolean"/>
-          </parameter>
-        </parameters>
-      </method>
-      <property name="activatable"
-                version="1.0"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">Toggles whether return invokes the activate signal or not.</doc>
-        <type name="gboolean"/>
-      </property>
-      <property name="attributes"
-                version="1.0"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">A list of #PangoStyleAttribute&lt;!-- --&gt;s to be applied to the
-contents of the #ClutterText actor.</doc>
-        <type name="Pango.AttrList"/>
-      </property>
-      <property name="color"
-                version="1.0"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">The color used to render the text.</doc>
-        <type name="Color"/>
-      </property>
-      <property name="cursor-color"
-                version="1.0"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">The color of the cursor.</doc>
-        <type name="Color"/>
-      </property>
-      <property name="cursor-color-set"
-                version="1.0"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">Will be set to %TRUE if #ClutterText:cursor-color has been set.</doc>
-        <type name="gboolean"/>
-      </property>
-      <property name="cursor-size"
-                version="1.0"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">The size of the cursor, in pixels. If set to -1 the size used will
-be the default cursor size of 2 pixels.</doc>
-        <type name="gint"/>
-      </property>
-      <property name="cursor-visible"
-                version="1.0"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">Whether the input cursor is visible or not, it will only be visible
-if both #ClutterText:cursor-visible and #ClutterText:editable are
-set to %TRUE.</doc>
-        <type name="gboolean"/>
-      </property>
-      <property name="editable"
-                version="1.0"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">Whether key events delivered to the actor causes editing.</doc>
-        <type name="gboolean"/>
-      </property>
-      <property name="ellipsize"
-                version="1.0"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">The preferred place to ellipsize the contents of the #ClutterText actor</doc>
-        <type name="Pango.EllipsizeMode"/>
-      </property>
-      <property name="font-description"
-                version="1.2"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">The #PangoFontDescription that should be used by the #ClutterText
-If you have a string describing the font then you should look at
-#ClutterText:font-name instead</doc>
-        <type name="Pango.FontDescription"/>
-      </property>
-      <property name="font-name"
-                version="1.0"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">The font to be used by the #ClutterText, as a string
-that can be parsed by pango_font_description_from_string().
-If set to %NULL, the default system font will be used instead.</doc>
-        <type name="utf8"/>
-      </property>
-      <property name="justify"
-                version="1.0"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">Whether the contents of the #ClutterText should be justified
-on both margins.</doc>
-        <type name="gboolean"/>
-      </property>
-      <property name="line-alignment"
-                version="1.0"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">The preferred alignment for the text. This property controls
-the alignment of multi-line paragraphs.</doc>
-        <type name="Pango.Alignment"/>
-      </property>
-      <property name="line-wrap"
-                version="1.0"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">Whether to wrap the lines of #ClutterText:text if the contents
-exceed the available allocation. The wrapping strategy is
-controlled by the #ClutterText:line-wrap-mode property.</doc>
-        <type name="gboolean"/>
-      </property>
-      <property name="line-wrap-mode"
-                version="1.0"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">If #ClutterText:line-wrap is set to %TRUE, this property will
-control how the text is wrapped.</doc>
-        <type name="Pango.WrapMode"/>
-      </property>
-      <property name="max-length"
-                version="1.0"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">The maximum length of the contents of the #ClutterText actor.</doc>
-        <type name="gint"/>
-      </property>
-      <property name="password-char"
-                version="1.0"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">If non-zero, the character that should be used in place of
-the actual text in a password text actor.</doc>
-        <type name="guint"/>
-      </property>
-      <property name="position"
-                version="1.0"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">The current input cursor position. -1 is taken to be the end of the text</doc>
-        <type name="gint"/>
-      </property>
-      <property name="selectable"
-                version="1.0"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">Whether it is possible to select text, either using the pointer
-or the keyboard.</doc>
-        <type name="gboolean"/>
-      </property>
-      <property name="selection-bound"
-                version="1.0"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">The current input cursor position. -1 is taken to be the end of the text</doc>
-        <type name="gint"/>
-      </property>
-      <property name="selection-color"
-                version="1.0"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">The color of the selection.</doc>
-        <type name="Color"/>
-      </property>
-      <property name="selection-color-set"
-                version="1.0"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">Will be set to %TRUE if #ClutterText:selection-color has been set.</doc>
-        <type name="gboolean"/>
-      </property>
-      <property name="single-line-mode"
-                version="1.0"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">Whether the #ClutterText actor should be in single line mode
-or not. A single line #ClutterText actor will only contain a
-single line of text, scrolling it in case its length is bigger
-than the allocated size.
-Setting this property will also set the #ClutterText:activatable
-property as a side-effect.
-The #ClutterText:single-line-mode property is used only if the
-#ClutterText:editable property is set to %TRUE.</doc>
-        <type name="gboolean"/>
-      </property>
-      <property name="text"
-                version="1.0"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">The text to render inside the actor.</doc>
-        <type name="utf8"/>
-      </property>
-      <property name="use-markup"
-                version="1.0"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">Whether the text includes Pango markup.
-For more informations about the Pango markup format, see
-pango_layout_set_markup() in the Pango documentation.
-&lt;note&gt;It is not possible to round-trip this property between
-%TRUE and %FALSE. Once a string with markup has been set on
-a #ClutterText actor with :use-markup set to %TRUE, the markup
-is stripped from the string.&lt;/note&gt;</doc>
-        <type name="gboolean"/>
-      </property>
-      <field name="parent_instance">
-        <type name="Actor" c:type="ClutterActor"/>
-      </field>
-      <field name="priv">
-        <type name="TextPrivate" c:type="ClutterTextPrivate*"/>
-      </field>
-      <glib:signal name="activate">
-        <return-value transfer-ownership="none">
-          <type name="none"/>
-        </return-value>
-      </glib:signal>
-      <glib:signal name="cursor-event" version="1.0">
-        <doc xml:whitespace="preserve">The ::cursor-event signal is emitted whenever the cursor position
-changes inside a #ClutterText actor. Inside @geometry it is stored
-the current position and size of the cursor, relative to the actor
-itself.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none"/>
-        </return-value>
-        <parameters>
-          <parameter name="object" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the coordinates of the cursor</doc>
-            <type name="Geometry"/>
-          </parameter>
-        </parameters>
-      </glib:signal>
-      <glib:signal name="delete-text" version="1.2">
-        <doc xml:whitespace="preserve">This signal is emitted when text is deleted from the actor by
-the user. It is emitted before @self text changes.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none"/>
-        </return-value>
-        <parameters>
-          <parameter name="object" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the starting position</doc>
-            <type name="gint"/>
-          </parameter>
-          <parameter name="p0" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the end position</doc>
-            <type name="gint"/>
-          </parameter>
-        </parameters>
-      </glib:signal>
-      <glib:signal name="insert-text" version="1.2">
-        <doc xml:whitespace="preserve">This signal is emitted when text is inserted into the actor by
-the user. It is emitted before @self text changes.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none"/>
-        </return-value>
-        <parameters>
-          <parameter name="object" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the new text to insert</doc>
-            <type name="utf8"/>
-          </parameter>
-          <parameter name="p0" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the length of the new text, in bytes, or -1 if new_text is nul-terminated</doc>
-            <type name="gint"/>
-          </parameter>
-          <parameter name="p1" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the position, in characters, at which to insert the new text. this is an in-out parameter.  After the signal emission is finished, it should point after the newly inserted text.</doc>
-            <type name="gpointer"/>
-          </parameter>
-        </parameters>
-      </glib:signal>
-      <glib:signal name="text-changed" version="1.0">
-        <doc xml:whitespace="preserve">The ::text-changed signal is emitted after @actor's text changes</doc>
-        <return-value transfer-ownership="none">
-          <type name="none"/>
-        </return-value>
-      </glib:signal>
-    </class>
-    <record name="TextClass"
-            c:type="ClutterTextClass"
-            glib:is-gtype-struct-for="Text"
-            version="1.0">
-      <doc xml:whitespace="preserve">The #ClutterTextClass struct contains only private data.</doc>
-      <field name="parent_class">
-        <type name="ActorClass" c:type="ClutterActorClass"/>
-      </field>
-      <field name="text_changed">
-        <callback name="text_changed">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="self" transfer-ownership="none">
-              <type name="Text" c:type="ClutterText*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="activate">
-        <callback name="activate">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="self" transfer-ownership="none">
-              <type name="Text" c:type="ClutterText*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="cursor_event">
-        <callback name="cursor_event">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="self" transfer-ownership="none">
-              <type name="Text" c:type="ClutterText*"/>
-            </parameter>
-            <parameter name="geometry" transfer-ownership="none">
-              <type name="Geometry" c:type="ClutterGeometry*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="_clutter_reserved1" introspectable="0">
-        <callback name="_clutter_reserved1">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-      <field name="_clutter_reserved2" introspectable="0">
-        <callback name="_clutter_reserved2">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-      <field name="_clutter_reserved3" introspectable="0">
-        <callback name="_clutter_reserved3">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-      <field name="_clutter_reserved4" introspectable="0">
-        <callback name="_clutter_reserved4">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-      <field name="_clutter_reserved5" introspectable="0">
-        <callback name="_clutter_reserved5">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-      <field name="_clutter_reserved6" introspectable="0">
-        <callback name="_clutter_reserved6">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-      <field name="_clutter_reserved7" introspectable="0">
-        <callback name="_clutter_reserved7">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-      <field name="_clutter_reserved8" introspectable="0">
-        <callback name="_clutter_reserved8">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-    </record>
-    <enumeration name="TextDirection"
-                 version="1.2"
-                 glib:type-name="ClutterTextDirection"
-                 glib:get-type="clutter_text_direction_get_type"
-                 c:type="ClutterTextDirection">
-      <doc xml:whitespace="preserve">The text direction to be used by #ClutterActor&lt;!-- --&gt;s</doc>
-      <member name="default"
-              value="0"
-              c:identifier="CLUTTER_TEXT_DIRECTION_DEFAULT"
-              glib:nick="default"/>
-      <member name="ltr"
-              value="1"
-              c:identifier="CLUTTER_TEXT_DIRECTION_LTR"
-              glib:nick="ltr"/>
-      <member name="rtl"
-              value="2"
-              c:identifier="CLUTTER_TEXT_DIRECTION_RTL"
-              glib:nick="rtl"/>
-    </enumeration>
-    <record name="TextPrivate" c:type="ClutterTextPrivate" disguised="1">
-    </record>
-    <class name="Texture"
-           c:symbol-prefix="texture"
-           c:type="ClutterTexture"
-           version="0.1"
-           parent="Actor"
-           glib:type-name="ClutterTexture"
-           glib:get-type="clutter_texture_get_type"
-           glib:type-struct="TextureClass">
-      <doc xml:whitespace="preserve">The #ClutterTexture structure contains only private data
-and should be accessed using the provided API</doc>
-      <implements name="Atk.ImplementorIface"/>
-      <implements name="Animatable"/>
-      <implements name="Scriptable"/>
-      <constructor name="new" c:identifier="clutter_texture_new">
-        <doc xml:whitespace="preserve">Creates a new empty #ClutterTexture object.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">A newly created #ClutterTexture object.</doc>
-          <type name="Actor" c:type="ClutterActor*"/>
-        </return-value>
-      </constructor>
-      <constructor name="new_from_actor"
-                   c:identifier="clutter_texture_new_from_actor"
-                   version="0.6">
-        <doc xml:whitespace="preserve">Creates a new #ClutterTexture object with its source a prexisting
-actor (and associated children). The textures content will contain
-'live' redirected output of the actors scene.
-Note this function is intented as a utility call for uniformly applying
-shaders to groups and other potential visual effects. It requires that
-the %CLUTTER_FEATURE_OFFSCREEN feature is supported by the current backend
-and the target system.
-Some tips on usage:
-&lt;itemizedlist&gt;
-&lt;listitem&gt;
-&lt;para&gt;The source actor must be made visible (i.e by calling
-#clutter_actor_show).&lt;/para&gt;
-&lt;/listitem&gt;
-&lt;listitem&gt;
-&lt;para&gt;The source actor must have a parent in order for it to be
-allocated a size from the layouting mechanism. If the source
-actor does not have a parent when this function is called then
-the ClutterTexture will adopt it and allocate it at its
-preferred size. Using this you can clone an actor that is
-otherwise not displayed. Because of this feature if you do
-intend to display the source actor then you must make sure that
-the actor is parented before calling
-clutter_texture_new_from_actor() or that you unparent it before
-adding it to a container.&lt;/para&gt;
-&lt;/listitem&gt;
-&lt;listitem&gt;
-&lt;para&gt;When getting the image for the clone texture, Clutter
-will attempt to render the source actor exactly as it would
-appear if it was rendered on screen. The source actor's parent
-transformations are taken into account. Therefore if your
-source actor is rotated along the X or Y axes so that it has
-some depth, the texture will appear differently depending on
-the on-screen location of the source actor. While painting the
-source actor, Clutter will set up a temporary asymmetric
-perspective matrix as the projection matrix so that the source
-actor will be projected as if a small section of the screen was
-being viewed. Before version 0.8.2, an orthogonal identity
-projection was used which meant that the source actor would be
-clipped if any part of it was not on the zero Z-plane.&lt;/para&gt;
-&lt;/listitem&gt;
-&lt;listitem&gt;
-&lt;para&gt;Avoid reparenting the source with the created texture.&lt;/para&gt;
-&lt;/listitem&gt;
-&lt;listitem&gt;
-&lt;para&gt;A group can be padded with a transparent rectangle as to
-provide a border to contents for shader output (blurring text
-for example).&lt;/para&gt;
-&lt;/listitem&gt;
-&lt;listitem&gt;
-&lt;para&gt;The texture will automatically resize to contain a further
-transformed source. However, this involves overhead and can be
-avoided by placing the source actor in a bounding group
-sized large enough to contain any child tranformations.&lt;/para&gt;
-&lt;/listitem&gt;
-&lt;listitem&gt;
-&lt;para&gt;Uploading pixel data to the texture (e.g by using
-clutter_actor_set_from_file()) will destroy the offscreen texture data
-and end redirection.&lt;/para&gt;
-&lt;/listitem&gt;
-&lt;listitem&gt;
-&lt;para&gt;cogl_texture_get_data() with the handle returned by
-clutter_texture_get_cogl_texture() can be used to read the
-offscreen texture pixels into a pixbuf.&lt;/para&gt;
-&lt;/listitem&gt;
-&lt;/itemizedlist&gt;</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">A newly created #ClutterTexture object, or %NULL on failure.</doc>
-          <type name="Actor" c:type="ClutterActor*"/>
-        </return-value>
-        <parameters>
-          <parameter name="actor" transfer-ownership="none">
-            <doc xml:whitespace="preserve">A source #ClutterActor</doc>
-            <type name="Actor" c:type="ClutterActor*"/>
-          </parameter>
-        </parameters>
-      </constructor>
-      <constructor name="new_from_file"
-                   c:identifier="clutter_texture_new_from_file"
-                   version="0.8"
-                   throws="1">
-        <doc xml:whitespace="preserve">Creates a new ClutterTexture actor to display the image contained a
-file. If the image failed to load then NULL is returned and @error
-is set.
-error.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">A newly created #ClutterTexture object or NULL on</doc>
-          <type name="Actor" c:type="ClutterActor*"/>
-        </return-value>
-        <parameters>
-          <parameter name="filename" transfer-ownership="none">
-            <doc xml:whitespace="preserve">The name of an image file to load.</doc>
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </constructor>
-      <method name="get_base_size"
-              c:identifier="clutter_texture_get_base_size">
-        <doc xml:whitespace="preserve">Gets the size in pixels of the untransformed underlying image</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="width"
-                     direction="out"
-                     caller-allocates="0"
-                     transfer-ownership="full">
-            <doc xml:whitespace="preserve">return location for the width, or %NULL</doc>
-            <type name="gint" c:type="gint*"/>
-          </parameter>
-          <parameter name="height"
-                     direction="out"
-                     caller-allocates="0"
-                     transfer-ownership="full">
-            <doc xml:whitespace="preserve">return location for the height, or %NULL</doc>
-            <type name="gint" c:type="gint*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_cogl_material"
-              c:identifier="clutter_texture_get_cogl_material"
-              version="1.0">
-        <doc xml:whitespace="preserve">Returns a handle to the underlying COGL material used for drawing
-the actor.
-material is owned by the #ClutterTexture and it should not be
-unreferenced</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">a handle for a #CoglMaterial. The</doc>
-          <type name="Cogl.Handle" c:type="CoglHandle"/>
-        </return-value>
-      </method>
-      <method name="get_cogl_texture"
-              c:identifier="clutter_texture_get_cogl_texture"
-              version="0.8">
-        <doc xml:whitespace="preserve">Retrieves the handle to the underlying COGL texture used for drawing
-the actor. No extra reference is taken so if you need to keep the
-handle then you should call cogl_handle_ref() on it.
-The texture handle returned is the first layer of the material
-handle used by the #ClutterTexture. If you need to access the other
-layers you should use clutter_texture_get_cogl_material() instead
-and use the #CoglMaterial API.
-handle is owned by the #ClutterTexture and it should not be unreferenced</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">a #CoglHandle for the texture. The returned</doc>
-          <type name="Cogl.Handle" c:type="CoglHandle"/>
-        </return-value>
-      </method>
-      <method name="get_filter_quality"
-              c:identifier="clutter_texture_get_filter_quality">
-        <return-value transfer-ownership="none">
-          <type name="TextureQuality" c:type="ClutterTextureQuality"/>
-        </return-value>
-      </method>
-      <method name="get_keep_aspect_ratio"
-              c:identifier="clutter_texture_get_keep_aspect_ratio"
-              version="1.0">
-        <doc xml:whitespace="preserve">Retrieves the value set using clutter_texture_set_keep_aspect_ratio()
-aspect ratio of the underlying image</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">%TRUE if the #ClutterTexture should maintain the</doc>
-          <type name="gboolean" c:type="gboolean"/>
-        </return-value>
-      </method>
-      <method name="get_load_async"
-              c:identifier="clutter_texture_get_load_async"
-              version="1.0">
-        <doc xml:whitespace="preserve">Retrieves the value set using clutter_texture_set_load_async()
-disk asynchronously</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">%TRUE if the #ClutterTexture should load the data from</doc>
-          <type name="gboolean" c:type="gboolean"/>
-        </return-value>
-      </method>
-      <method name="get_load_data_async"
-              c:identifier="clutter_texture_get_load_data_async"
-              version="1.0">
-        <doc xml:whitespace="preserve">Retrieves the value set by clutter_texture_set_load_data_async()
-data from a file asynchronously</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">%TRUE if the #ClutterTexture should load the image</doc>
-          <type name="gboolean" c:type="gboolean"/>
-        </return-value>
-      </method>
-      <method name="get_max_tile_waste"
-              c:identifier="clutter_texture_get_max_tile_waste">
-        <return-value transfer-ownership="none">
-          <type name="gint" c:type="gint"/>
-        </return-value>
-      </method>
-      <method name="get_pick_with_alpha"
-              c:identifier="clutter_texture_get_pick_with_alpha"
-              version="1.4">
-        <doc xml:whitespace="preserve">Retrieves the value set by clutter_texture_set_load_data_async()
-using the alpha channel when picking.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">%TRUE if the #ClutterTexture should define its shape</doc>
-          <type name="gboolean" c:type="gboolean"/>
-        </return-value>
-      </method>
-      <method name="get_pixel_format"
-              c:identifier="clutter_texture_get_pixel_format"
-              version="1.0">
-        <doc xml:whitespace="preserve">Retrieves the pixel format used by @texture. This is
-equivalent to:
-|[
-handle = clutter_texture_get_pixel_format (texture);
-if (handle != COGL_INVALID_HANDLE)
-format = cogl_texture_get_format (handle);
-]|</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">a #CoglPixelFormat value</doc>
-          <type name="Cogl.PixelFormat" c:type="CoglPixelFormat"/>
-        </return-value>
-      </method>
-      <method name="get_repeat"
-              c:identifier="clutter_texture_get_repeat"
-              version="1.0">
-        <doc xml:whitespace="preserve">Retrieves the horizontal and vertical repeat values set
-using clutter_texture_set_repeat()</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="repeat_x"
-                     direction="out"
-                     caller-allocates="0"
-                     transfer-ownership="full">
-            <doc xml:whitespace="preserve">return location for the horizontal repeat</doc>
-            <type name="gboolean" c:type="gboolean*"/>
-          </parameter>
-          <parameter name="repeat_y"
-                     direction="out"
-                     caller-allocates="0"
-                     transfer-ownership="full">
-            <doc xml:whitespace="preserve">return location for the vertical repeat</doc>
-            <type name="gboolean" c:type="gboolean*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_sync_size"
-              c:identifier="clutter_texture_get_sync_size"
-              version="1.0">
-        <doc xml:whitespace="preserve">Retrieves the value set with clutter_texture_set_sync_size()
-preferred size of the underlying image data</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">%TRUE if the #ClutterTexture should have the same</doc>
-          <type name="gboolean" c:type="gboolean"/>
-        </return-value>
-      </method>
-      <method name="set_area_from_rgb_data"
-              c:identifier="clutter_texture_set_area_from_rgb_data"
-              version="0.6"
-              throws="1">
-        <doc xml:whitespace="preserve">Updates a sub-region of the pixel data in a #ClutterTexture.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">%TRUE on success, %FALSE on failure.</doc>
-          <type name="gboolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="data" transfer-ownership="none">
-            <doc xml:whitespace="preserve">Image data in RGB type colorspace.</doc>
-            <type name="guint8" c:type="guchar*"/>
-          </parameter>
-          <parameter name="has_alpha" transfer-ownership="none">
-            <doc xml:whitespace="preserve">Set to TRUE if image data has an alpha channel.</doc>
-            <type name="gboolean" c:type="gboolean"/>
-          </parameter>
-          <parameter name="x" transfer-ownership="none">
-            <doc xml:whitespace="preserve">X coordinate of upper left corner of region to update.</doc>
-            <type name="gint" c:type="gint"/>
-          </parameter>
-          <parameter name="y" transfer-ownership="none">
-            <doc xml:whitespace="preserve">Y coordinate of upper left corner of region to update.</doc>
-            <type name="gint" c:type="gint"/>
-          </parameter>
-          <parameter name="width" transfer-ownership="none">
-            <doc xml:whitespace="preserve">Width in pixels of region to update.</doc>
-            <type name="gint" c:type="gint"/>
-          </parameter>
-          <parameter name="height" transfer-ownership="none">
-            <doc xml:whitespace="preserve">Height in pixels of region to update.</doc>
-            <type name="gint" c:type="gint"/>
-          </parameter>
-          <parameter name="rowstride" transfer-ownership="none">
-            <doc xml:whitespace="preserve">Distance in bytes between row starts on source buffer.</doc>
-            <type name="gint" c:type="gint"/>
-          </parameter>
-          <parameter name="bpp" transfer-ownership="none">
-            <doc xml:whitespace="preserve">bytes per pixel (Currently only 3 and 4 supported, depending on @has_alpha)</doc>
-            <type name="gint" c:type="gint"/>
-          </parameter>
-          <parameter name="flags" transfer-ownership="none">
-            <doc xml:whitespace="preserve">#ClutterTextureFlags</doc>
-            <type name="TextureFlags" c:type="ClutterTextureFlags"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_cogl_material"
-              c:identifier="clutter_texture_set_cogl_material"
-              version="0.8">
-        <doc xml:whitespace="preserve">Replaces the underlying Cogl material drawn by this actor with
-handle is no longer needed it should be deref'd with
-cogl_handle_unref. Texture data is attached to the material so
-calling this function also replaces the Cogl
-texture. #ClutterTexture requires that the material have a texture
-layer so you should set one on the material before calling this
-function.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="cogl_material" transfer-ownership="none">
-            <doc xml:whitespace="preserve">A CoglHandle for a material</doc>
-            <type name="Cogl.Handle" c:type="CoglHandle"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_cogl_texture"
-              c:identifier="clutter_texture_set_cogl_texture">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="cogl_tex" transfer-ownership="none">
-            <type name="Cogl.Handle" c:type="CoglHandle"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_filter_quality"
-              c:identifier="clutter_texture_set_filter_quality"
-              version="0.8">
-        <doc xml:whitespace="preserve">Sets the filter quality when scaling a texture. The quality is an
-enumeration currently the following values are supported:
-%CLUTTER_TEXTURE_QUALITY_LOW which is fast but only uses nearest neighbour
-interpolation. %CLUTTER_TEXTURE_QUALITY_MEDIUM which is computationally a
-bit more expensive (bilinear interpolation), and
-%CLUTTER_TEXTURE_QUALITY_HIGH which uses extra texture memory resources to
-improve scaled down rendering as well (by using mipmaps). The default value
-is %CLUTTER_TEXTURE_QUALITY_MEDIUM.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="filter_quality" transfer-ownership="none">
-            <doc xml:whitespace="preserve">new filter quality value</doc>
-            <type name="TextureQuality" c:type="ClutterTextureQuality"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_from_file"
-              c:identifier="clutter_texture_set_from_file"
-              version="0.8"
-              throws="1">
-        <doc xml:whitespace="preserve">Sets the #ClutterTexture image data from an image file. In case of
-failure, %FALSE is returned and @error is set.
-If #ClutterTexture:load-async is set to %TRUE, this function
-will return as soon as possible, and the actual image loading
-from disk will be performed asynchronously. #ClutterTexture::size-change
-will be emitten when the size of the texture is available and
-#ClutterTexture::load-finished will be emitted when the image has been
-loaded or if an error occurred.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">%TRUE if the image was successfully loaded and set</doc>
-          <type name="gboolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="filename" transfer-ownership="none">
-            <doc xml:whitespace="preserve">The filename of the image in GLib file name encoding</doc>
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_from_rgb_data"
-              c:identifier="clutter_texture_set_from_rgb_data"
-              version="0.4."
-              throws="1">
-        <doc xml:whitespace="preserve">Sets #ClutterTexture image data.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">%TRUE on success, %FALSE on failure.</doc>
-          <type name="gboolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="data" transfer-ownership="none">
-            <doc xml:whitespace="preserve">Image data in RGBA type colorspace.</doc>
-            <type name="guint8" c:type="guchar*"/>
-          </parameter>
-          <parameter name="has_alpha" transfer-ownership="none">
-            <doc xml:whitespace="preserve">Set to TRUE if image data has an alpha channel.</doc>
-            <type name="gboolean" c:type="gboolean"/>
-          </parameter>
-          <parameter name="width" transfer-ownership="none">
-            <doc xml:whitespace="preserve">Width in pixels of image data.</doc>
-            <type name="gint" c:type="gint"/>
-          </parameter>
-          <parameter name="height" transfer-ownership="none">
-            <doc xml:whitespace="preserve">Height in pixels of image data</doc>
-            <type name="gint" c:type="gint"/>
-          </parameter>
-          <parameter name="rowstride" transfer-ownership="none">
-            <doc xml:whitespace="preserve">Distance in bytes between row starts.</doc>
-            <type name="gint" c:type="gint"/>
-          </parameter>
-          <parameter name="bpp" transfer-ownership="none">
-            <doc xml:whitespace="preserve">bytes per pixel (Currently only 3 and 4 supported, depending on @has_alpha)</doc>
-            <type name="gint" c:type="gint"/>
-          </parameter>
-          <parameter name="flags" transfer-ownership="none">
-            <doc xml:whitespace="preserve">#ClutterTextureFlags</doc>
-            <type name="TextureFlags" c:type="ClutterTextureFlags"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_from_yuv_data"
-              c:identifier="clutter_texture_set_from_yuv_data"
-              version="0.4"
-              throws="1">
-        <doc xml:whitespace="preserve">Sets a #ClutterTexture from YUV image data. If an error occurred,
-%FALSE is returned and @error is set.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">%TRUE if the texture was successfully updated</doc>
-          <type name="gboolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="data" transfer-ownership="none">
-            <doc xml:whitespace="preserve">Image data in YUV type colorspace.</doc>
-            <type name="guint8" c:type="guchar*"/>
-          </parameter>
-          <parameter name="width" transfer-ownership="none">
-            <doc xml:whitespace="preserve">Width in pixels of image data.</doc>
-            <type name="gint" c:type="gint"/>
-          </parameter>
-          <parameter name="height" transfer-ownership="none">
-            <doc xml:whitespace="preserve">Height in pixels of image data</doc>
-            <type name="gint" c:type="gint"/>
-          </parameter>
-          <parameter name="flags" transfer-ownership="none">
-            <doc xml:whitespace="preserve">#ClutterTextureFlags</doc>
-            <type name="TextureFlags" c:type="ClutterTextureFlags"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_keep_aspect_ratio"
-              c:identifier="clutter_texture_set_keep_aspect_ratio"
-              version="1.0">
-        <doc xml:whitespace="preserve">Sets whether @texture should have a preferred size maintaining
-the aspect ratio of the underlying image</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="keep_aspect" transfer-ownership="none">
-            <doc xml:whitespace="preserve">%TRUE to maintain aspect ratio</doc>
-            <type name="gboolean" c:type="gboolean"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_load_async"
-              c:identifier="clutter_texture_set_load_async"
-              version="1.0">
-        <doc xml:whitespace="preserve">Sets whether @texture should use a worker thread to load the data
-from disk asynchronously. Setting @load_async to %TRUE will make
-clutter_texture_set_from_file() return immediately.
-See the #ClutterTexture:load-async property documentation, and
-clutter_texture_set_load_data_async().</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="load_async" transfer-ownership="none">
-            <doc xml:whitespace="preserve">%TRUE if the texture should asynchronously load data from a filename</doc>
-            <type name="gboolean" c:type="gboolean"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_load_data_async"
-              c:identifier="clutter_texture_set_load_data_async"
-              version="1.0">
-        <doc xml:whitespace="preserve">Sets whether @texture should use a worker thread to load the data
-from disk asynchronously. Setting @load_async to %TRUE will make
-clutter_texture_set_from_file() block until the #ClutterTexture has
-determined the width and height of the image data.
-See the #ClutterTexture:load-async property documentation, and
-clutter_texture_set_load_async().</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="load_async" transfer-ownership="none">
-            <doc xml:whitespace="preserve">%TRUE if the texture should asynchronously load data from a filename</doc>
-            <type name="gboolean" c:type="gboolean"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_pick_with_alpha"
-              c:identifier="clutter_texture_set_pick_with_alpha"
-              version="1.4">
-        <doc xml:whitespace="preserve">Sets whether @texture should have it's shape defined by the alpha
-channel when picking.
-Be aware that this is a bit more costly than the default picking
-due to the texture lookup, extra test against the alpha value and
-the fact that it will also interrupt the batching of geometry done
-internally.
-Also there is currently no control over the threshold used to
-determine what value of alpha is considered pickable, and so only
-fully opaque parts of the texture will react to picking.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="pick_with_alpha" transfer-ownership="none">
-            <doc xml:whitespace="preserve">%TRUE if the alpha channel should affect the picking shape</doc>
-            <type name="gboolean" c:type="gboolean"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_repeat"
-              c:identifier="clutter_texture_set_repeat"
-              version="1.0">
-        <doc xml:whitespace="preserve">Sets whether the @texture should repeat horizontally or
-vertically when the actor size is bigger than the image size</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="repeat_x" transfer-ownership="none">
-            <doc xml:whitespace="preserve">%TRUE if the texture should repeat horizontally</doc>
-            <type name="gboolean" c:type="gboolean"/>
-          </parameter>
-          <parameter name="repeat_y" transfer-ownership="none">
-            <doc xml:whitespace="preserve">%TRUE if the texture should repeat vertically</doc>
-            <type name="gboolean" c:type="gboolean"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_sync_size"
-              c:identifier="clutter_texture_set_sync_size"
-              version="1.0">
-        <doc xml:whitespace="preserve">Sets whether @texture should have the same preferred size as the
-underlying image data.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="sync_size" transfer-ownership="none">
-            <doc xml:whitespace="preserve">%TRUE if the texture should have the same size of the underlying image data</doc>
-            <type name="gboolean" c:type="gboolean"/>
-          </parameter>
-        </parameters>
-      </method>
-      <property name="cogl-material"
-                introspectable="0"
-                writable="1"
-                transfer-ownership="none">
-        <type/>
-      </property>
-      <property name="cogl-texture"
-                introspectable="0"
-                writable="1"
-                transfer-ownership="none">
-        <type/>
-      </property>
-      <property name="disable-slicing"
-                writable="1"
-                construct-only="1"
-                transfer-ownership="none">
-        <type name="gboolean"/>
-      </property>
-      <property name="filename" writable="1" transfer-ownership="none">
-        <doc xml:whitespace="preserve">The path of the file containing the image data to be displayed by
-the texture.
-This property is unset when using the clutter_texture_set_from_*_data()
-family of functions.</doc>
-        <type name="utf8"/>
-      </property>
-      <property name="filter-quality"
-                writable="1"
-                construct="1"
-                transfer-ownership="none">
-        <type name="TextureQuality"/>
-      </property>
-      <property name="keep-aspect-ratio"
-                writable="1"
-                transfer-ownership="none">
-        <type name="gboolean"/>
-      </property>
-      <property name="load-async"
-                version="1.0"
-                readable="0"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">Tries to load a texture from a filename by using a local thread to perform
-the read operations. The initially created texture has dimensions 0x0 when
-the true size becomes available the #ClutterTexture::size-change signal is
-emitted and when the image has completed loading the
-#ClutterTexture::load-finished signal is emitted.
-Threading is only enabled if g_thread_init() has been called prior to
-clutter_init(), otherwise #ClutterTexture will use the main loop to load
-the image.
-The upload of the texture data on the GL pipeline is not asynchronous, as
-it must be performed from within the same thread that called
-clutter_main().</doc>
-        <type name="gboolean"/>
-      </property>
-      <property name="load-data-async"
-                version="1.0"
-                readable="0"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">Like #ClutterTexture:load-async but loads the width and height
-synchronously causing some blocking.</doc>
-        <type name="gboolean"/>
-      </property>
-      <property name="pick-with-alpha" writable="1" transfer-ownership="none">
-        <type name="gboolean"/>
-      </property>
-      <property name="pixel-format" transfer-ownership="none">
-        <type name="Cogl.PixelFormat"/>
-      </property>
-      <property name="repeat-x" writable="1" transfer-ownership="none">
-        <type name="gboolean"/>
-      </property>
-      <property name="repeat-y" writable="1" transfer-ownership="none">
-        <type name="gboolean"/>
-      </property>
-      <property name="sync-size" writable="1" transfer-ownership="none">
-        <type name="gboolean"/>
-      </property>
-      <property name="tile-waste" transfer-ownership="none">
-        <type name="gint"/>
-      </property>
-      <field name="parent">
-        <type name="Actor" c:type="ClutterActor"/>
-      </field>
-      <field name="priv">
-        <type name="TexturePrivate" c:type="ClutterTexturePrivate*"/>
-      </field>
-      <glib:signal name="load-finished" version="1.0">
-        <doc xml:whitespace="preserve">The ::load-finished signal is emitted when a texture load has
-completed. If there was an error during loading, @error will
-be set, otherwise it will be %NULL</doc>
-        <return-value transfer-ownership="none">
-          <type name="none"/>
-        </return-value>
-        <parameters>
-          <parameter name="object" transfer-ownership="none">
-            <doc xml:whitespace="preserve">A set error, or %NULL</doc>
-            <type name="gpointer"/>
-          </parameter>
-        </parameters>
-      </glib:signal>
-      <glib:signal name="pixbuf-change">
-        <doc xml:whitespace="preserve">The ::pixbuf-change signal is emitted each time the pixbuf
-used by @texture changes.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none"/>
-        </return-value>
-      </glib:signal>
-      <glib:signal name="size-change">
-        <doc xml:whitespace="preserve">The ::size-change signal is emitted each time the size of the
-pixbuf used by @texture changes.  The new size is given as
-argument to the callback.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none"/>
-        </return-value>
-        <parameters>
-          <parameter name="object" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the width of the new texture</doc>
-            <type name="gint"/>
-          </parameter>
-          <parameter name="p0" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the height of the new texture</doc>
-            <type name="gint"/>
-          </parameter>
-        </parameters>
-      </glib:signal>
-    </class>
-    <record name="TextureClass"
-            c:type="ClutterTextureClass"
-            glib:is-gtype-struct-for="Texture"
-            version="0.1">
-      <doc xml:whitespace="preserve">The #ClutterTextureClass structure contains only private data</doc>
-      <field name="parent_class">
-        <type name="ActorClass" c:type="ClutterActorClass"/>
-      </field>
-      <field name="size_change">
-        <callback name="size_change">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="texture" transfer-ownership="none">
-              <type name="Texture" c:type="ClutterTexture*"/>
-            </parameter>
-            <parameter name="width" transfer-ownership="none">
-              <type name="gint" c:type="gint"/>
-            </parameter>
-            <parameter name="height" transfer-ownership="none">
-              <type name="gint" c:type="gint"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="pixbuf_change">
-        <callback name="pixbuf_change">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="texture" transfer-ownership="none">
-              <type name="Texture" c:type="ClutterTexture*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="load_finished">
-        <callback name="load_finished">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="texture" transfer-ownership="none">
-              <type name="Texture" c:type="ClutterTexture*"/>
-            </parameter>
-            <parameter name="error" transfer-ownership="none">
-              <type name="GLib.Error" c:type="GError*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="_clutter_texture1" introspectable="0">
-        <callback name="_clutter_texture1">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-      <field name="_clutter_texture2" introspectable="0">
-        <callback name="_clutter_texture2">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-      <field name="_clutter_texture3" introspectable="0">
-        <callback name="_clutter_texture3">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-      <field name="_clutter_texture4" introspectable="0">
-        <callback name="_clutter_texture4">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-      <field name="_clutter_texture5" introspectable="0">
-        <callback name="_clutter_texture5">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-    </record>
-    <enumeration name="TextureError"
-                 version="0.4"
-                 glib:type-name="ClutterTextureError"
-                 glib:get-type="clutter_texture_error_get_type"
-                 c:type="ClutterTextureError"
-                 glib:error-quark="clutter_texture_error_quark">
-      <doc xml:whitespace="preserve">Error enumeration for #ClutterTexture</doc>
-      <member name="out_of_memory"
-              value="0"
-              c:identifier="CLUTTER_TEXTURE_ERROR_OUT_OF_MEMORY"
-              glib:nick="out-of-memory"/>
-      <member name="no_yuv"
-              value="1"
-              c:identifier="CLUTTER_TEXTURE_ERROR_NO_YUV"
-              glib:nick="no-yuv"/>
-      <member name="bad_format"
-              value="2"
-              c:identifier="CLUTTER_TEXTURE_ERROR_BAD_FORMAT"
-              glib:nick="bad-format"/>
-    </enumeration>
-    <bitfield name="TextureFlags"
-              version="0.4"
-              glib:type-name="ClutterTextureFlags"
-              glib:get-type="clutter_texture_flags_get_type"
-              c:type="ClutterTextureFlags">
-      <doc xml:whitespace="preserve">Flags for clutter_texture_set_from_rgb_data() and
-clutter_texture_set_from_yuv_data().</doc>
-      <member name="none"
-              value="0"
-              c:identifier="CLUTTER_TEXTURE_NONE"
-              glib:nick="none"/>
-      <member name="rgb_flag_bgr"
-              value="2"
-              c:identifier="CLUTTER_TEXTURE_RGB_FLAG_BGR"
-              glib:nick="rgb-flag-bgr"/>
-      <member name="rgb_flag_premult"
-              value="4"
-              c:identifier="CLUTTER_TEXTURE_RGB_FLAG_PREMULT"
-              glib:nick="rgb-flag-premult"/>
-      <member name="yuv_flag_yuv2"
-              value="8"
-              c:identifier="CLUTTER_TEXTURE_YUV_FLAG_YUV2"
-              glib:nick="yuv-flag-yuv2"/>
-    </bitfield>
-    <record name="TexturePrivate" c:type="ClutterTexturePrivate" disguised="1">
-    </record>
-    <enumeration name="TextureQuality"
-                 version="0.8"
-                 glib:type-name="ClutterTextureQuality"
-                 glib:get-type="clutter_texture_quality_get_type"
-                 c:type="ClutterTextureQuality">
-      <doc xml:whitespace="preserve">Enumaration controlling the texture quality.</doc>
-      <member name="low"
-              value="0"
-              c:identifier="CLUTTER_TEXTURE_QUALITY_LOW"
-              glib:nick="low"/>
-      <member name="medium"
-              value="1"
-              c:identifier="CLUTTER_TEXTURE_QUALITY_MEDIUM"
-              glib:nick="medium"/>
-      <member name="high"
-              value="2"
-              c:identifier="CLUTTER_TEXTURE_QUALITY_HIGH"
-              glib:nick="high"/>
-    </enumeration>
-    <constant name="Thai_baht" value="3551">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Thai_bobaimai" value="3514">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Thai_chochan" value="3496">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Thai_chochang" value="3498">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Thai_choching" value="3497">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Thai_chochoe" value="3500">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Thai_dochada" value="3502">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Thai_dodek" value="3508">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Thai_fofa" value="3517">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Thai_fofan" value="3519">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Thai_hohip" value="3531">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Thai_honokhuk" value="3534">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Thai_khokhai" value="3490">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Thai_khokhon" value="3493">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Thai_khokhuat" value="3491">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Thai_khokhwai" value="3492">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Thai_khorakhang" value="3494">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Thai_kokai" value="3489">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Thai_lakkhangyao" value="3557">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Thai_lekchet" value="3575">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Thai_lekha" value="3573">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Thai_lekhok" value="3574">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Thai_lekkao" value="3577">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Thai_leknung" value="3569">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Thai_lekpaet" value="3576">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Thai_leksam" value="3571">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Thai_leksi" value="3572">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Thai_leksong" value="3570">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Thai_leksun" value="3568">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Thai_lochula" value="3532">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Thai_loling" value="3525">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Thai_lu" value="3526">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Thai_maichattawa" value="3563">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Thai_maiek" value="3560">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Thai_maihanakat" value="3537">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Thai_maihanakat_maitho" value="3550">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Thai_maitaikhu" value="3559">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Thai_maitho" value="3561">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Thai_maitri" value="3562">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Thai_maiyamok" value="3558">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Thai_moma" value="3521">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Thai_ngongu" value="3495">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Thai_nikhahit" value="3565">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Thai_nonen" value="3507">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Thai_nonu" value="3513">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Thai_oang" value="3533">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Thai_paiyannoi" value="3535">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Thai_phinthu" value="3546">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Thai_phophan" value="3518">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Thai_phophung" value="3516">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Thai_phosamphao" value="3520">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Thai_popla" value="3515">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Thai_rorua" value="3523">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Thai_ru" value="3524">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Thai_saraa" value="3536">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Thai_saraaa" value="3538">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Thai_saraae" value="3553">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Thai_saraaimaimalai" value="3556">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Thai_saraaimaimuan" value="3555">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Thai_saraam" value="3539">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Thai_sarae" value="3552">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Thai_sarai" value="3540">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Thai_saraii" value="3541">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Thai_sarao" value="3554">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Thai_sarau" value="3544">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Thai_saraue" value="3542">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Thai_sarauee" value="3543">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Thai_sarauu" value="3545">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Thai_sorusi" value="3529">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Thai_sosala" value="3528">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Thai_soso" value="3499">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Thai_sosua" value="3530">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Thai_thanthakhat" value="3564">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Thai_thonangmontho" value="3505">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Thai_thophuthao" value="3506">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Thai_thothahan" value="3511">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Thai_thothan" value="3504">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Thai_thothong" value="3512">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Thai_thothung" value="3510">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Thai_topatak" value="3503">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Thai_totao" value="3509">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Thai_wowaen" value="3527">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Thai_yoyak" value="3522">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Thai_yoying" value="3501">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Thorn" value="222">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Time" value="269025183">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <class name="Timeline"
-           c:symbol-prefix="timeline"
-           c:type="ClutterTimeline"
-           version="0.2"
-           parent="GObject.Object"
-           glib:type-name="ClutterTimeline"
-           glib:get-type="clutter_timeline_get_type"
-           glib:type-struct="TimelineClass">
-      <doc xml:whitespace="preserve">The #ClutterTimeline structure contains only private data
-and should be accessed using the provided API</doc>
-      <constructor name="new"
-                   c:identifier="clutter_timeline_new"
-                   version="0.6">
-        <doc xml:whitespace="preserve">Creates a new #ClutterTimeline with a duration of @msecs.
-g_object_unref() when done using it</doc>
-        <return-value transfer-ownership="full">
-          <doc xml:whitespace="preserve">the newly created #ClutterTimeline instance. Use</doc>
-          <type name="Timeline" c:type="ClutterTimeline*"/>
-        </return-value>
-        <parameters>
-          <parameter name="msecs" transfer-ownership="none">
-            <doc xml:whitespace="preserve">Duration of the timeline in milliseconds</doc>
-            <type name="guint" c:type="guint"/>
-          </parameter>
-        </parameters>
-      </constructor>
-      <method name="add_marker_at_time"
-              c:identifier="clutter_timeline_add_marker_at_time"
-              version="0.8">
-        <doc xml:whitespace="preserve">Adds a named marker that will be hit when the timeline has been
-running for @msecs milliseconds. Markers are unique string
-identifiers for a given time. Once @timeline reaches
-attached to that time.
-A marker can be removed with clutter_timeline_remove_marker(). The
-timeline can be advanced to a marker using
-clutter_timeline_advance_to_marker().</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="marker_name" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the unique name for this marker</doc>
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="msecs" transfer-ownership="none">
-            <doc xml:whitespace="preserve">position of the marker in milliseconds</doc>
-            <type name="guint" c:type="guint"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="advance" c:identifier="clutter_timeline_advance">
-        <doc xml:whitespace="preserve">Advance timeline to the requested point. The point is given as a
-time in milliseconds since the timeline started.
-&lt;note&gt;&lt;para&gt;The @timeline will not emit the #ClutterTimeline::new-frame
-signal for the given time. The first ::new-frame signal after the call to
-clutter_timeline_advance() will be emit the skipped markers.
-&lt;/para&gt;&lt;/note&gt;</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="msecs" transfer-ownership="none">
-            <doc xml:whitespace="preserve">Time to advance to</doc>
-            <type name="guint" c:type="guint"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="advance_to_marker"
-              c:identifier="clutter_timeline_advance_to_marker"
-              version="0.8">
-        <doc xml:whitespace="preserve">Advances @timeline to the time of the given @marker_name.
-&lt;note&gt;&lt;para&gt;Like clutter_timeline_advance(), this function will not
-emit the #ClutterTimeline::new-frame for the time where @marker_name
-is set, nor it will emit #ClutterTimeline::marker-reached for</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="marker_name" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the name of the marker</doc>
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="clone" c:identifier="clutter_timeline_clone" version="0.4">
-        <doc xml:whitespace="preserve">Create a new #ClutterTimeline instance which has property values
-matching that of supplied timeline. The cloned timeline will not
-be started and will not be positioned to the current position of
-from @timeline</doc>
-        <return-value transfer-ownership="full">
-          <doc xml:whitespace="preserve">a new #ClutterTimeline, cloned</doc>
-          <type name="Timeline" c:type="ClutterTimeline*"/>
-        </return-value>
-      </method>
-      <method name="do_tick" c:identifier="clutter_timeline_do_tick">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="tick_time" transfer-ownership="none">
-            <type name="GLib.TimeVal" c:type="GTimeVal*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_delay"
-              c:identifier="clutter_timeline_get_delay"
-              version="0.4">
-        <doc xml:whitespace="preserve">Retrieves the delay set using clutter_timeline_set_delay().</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the delay in milliseconds.</doc>
-          <type name="guint" c:type="guint"/>
-        </return-value>
-      </method>
-      <method name="get_delta"
-              c:identifier="clutter_timeline_get_delta"
-              version="0.6">
-        <doc xml:whitespace="preserve">Retrieves the amount of time elapsed since the last
-ClutterTimeline::new-frame signal.
-This function is only useful inside handlers for the ::new-frame
-signal, and its behaviour is undefined if the timeline is not
-playing.
-last frame</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the amount of time in milliseconds elapsed since the</doc>
-          <type name="guint" c:type="guint"/>
-        </return-value>
-      </method>
-      <method name="get_direction"
-              c:identifier="clutter_timeline_get_direction"
-              version="0.6">
-        <doc xml:whitespace="preserve">Retrieves the direction of the timeline set with
-clutter_timeline_set_direction().</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the direction of the timeline</doc>
-          <type name="TimelineDirection" c:type="ClutterTimelineDirection"/>
-        </return-value>
-      </method>
-      <method name="get_duration"
-              c:identifier="clutter_timeline_get_duration"
-              version="0.6">
-        <doc xml:whitespace="preserve">Retrieves the duration of a #ClutterTimeline in milliseconds.
-See clutter_timeline_set_duration().</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the duration of the timeline, in milliseconds.</doc>
-          <type name="guint" c:type="guint"/>
-        </return-value>
-      </method>
-      <method name="get_elapsed_time"
-              c:identifier="clutter_timeline_get_elapsed_time">
-        <doc xml:whitespace="preserve">Request the current time position of the timeline.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">current elapsed time in milliseconds.</doc>
-          <type name="guint" c:type="guint"/>
-        </return-value>
-      </method>
-      <method name="get_loop" c:identifier="clutter_timeline_get_loop">
-        <doc xml:whitespace="preserve">Gets whether @timeline is looping</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">%TRUE if the timeline is looping</doc>
-          <type name="gboolean" c:type="gboolean"/>
-        </return-value>
-      </method>
-      <method name="get_progress"
-              c:identifier="clutter_timeline_get_progress"
-              version="0.6">
-        <doc xml:whitespace="preserve">The position of the timeline in a [0, 1] interval.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the position of the timeline.</doc>
-          <type name="gdouble" c:type="gdouble"/>
-        </return-value>
-      </method>
-      <method name="has_marker"
-              c:identifier="clutter_timeline_has_marker"
-              version="0.8">
-        <doc xml:whitespace="preserve">Checks whether @timeline has a marker set with the given name.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">%TRUE if the marker was found</doc>
-          <type name="gboolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="marker_name" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the name of the marker</doc>
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="is_playing" c:identifier="clutter_timeline_is_playing">
-        <doc xml:whitespace="preserve">Queries state of a #ClutterTimeline.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">%TRUE if timeline is currently playing</doc>
-          <type name="gboolean" c:type="gboolean"/>
-        </return-value>
-      </method>
-      <method name="list_markers"
-              c:identifier="clutter_timeline_list_markers"
-              version="0.8">
-        <doc xml:whitespace="preserve">Retrieves the list of markers at time @msecs. If @frame_num is a
-negative integer, all the markers attached to @timeline will be
-returned.
-a newly allocated, %NULL terminated string array containing the names
-of the markers. Use g_strfreev() when done.</doc>
-        <return-value transfer-ownership="full">
-          <array length="1" c:type="gchar**">
-            <type name="utf8"/>
-          </array>
-        </return-value>
-        <parameters>
-          <parameter name="msecs" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the time to check, or -1</doc>
-            <type name="gint" c:type="gint"/>
-          </parameter>
-          <parameter name="n_markers"
-                     direction="out"
-                     caller-allocates="0"
-                     transfer-ownership="full">
-            <doc xml:whitespace="preserve">the number of markers returned</doc>
-            <type name="gulong" c:type="gsize*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="pause" c:identifier="clutter_timeline_pause">
-        <doc xml:whitespace="preserve">Pauses the #ClutterTimeline on current frame</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </method>
-      <method name="remove_marker"
-              c:identifier="clutter_timeline_remove_marker"
-              version="0.8">
-        <doc xml:whitespace="preserve">Removes @marker_name, if found, from @timeline.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="marker_name" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the name of the marker to remove</doc>
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="rewind" c:identifier="clutter_timeline_rewind">
-        <doc xml:whitespace="preserve">Rewinds #ClutterTimeline to the first frame if its direction is
-%CLUTTER_TIMELINE_FORWARD and the last frame if it is
-%CLUTTER_TIMELINE_BACKWARD.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </method>
-      <method name="set_delay"
-              c:identifier="clutter_timeline_set_delay"
-              version="0.4">
-        <doc xml:whitespace="preserve">Sets the delay, in milliseconds, before @timeline should start.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="msecs" transfer-ownership="none">
-            <doc xml:whitespace="preserve">delay in milliseconds</doc>
-            <type name="guint" c:type="guint"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_direction"
-              c:identifier="clutter_timeline_set_direction"
-              version="0.6">
-        <doc xml:whitespace="preserve">Sets the direction of @timeline, either %CLUTTER_TIMELINE_FORWARD or
-%CLUTTER_TIMELINE_BACKWARD.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="direction" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the direction of the timeline</doc>
-            <type name="TimelineDirection" c:type="ClutterTimelineDirection"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_duration"
-              c:identifier="clutter_timeline_set_duration"
-              version="0.6">
-        <doc xml:whitespace="preserve">Sets the duration of the timeline, in milliseconds. The speed
-of the timeline depends on the ClutterTimeline:fps setting.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="msecs" transfer-ownership="none">
-            <doc xml:whitespace="preserve">duration of the timeline in milliseconds</doc>
-            <type name="guint" c:type="guint"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_loop" c:identifier="clutter_timeline_set_loop">
-        <doc xml:whitespace="preserve">Sets whether @timeline should loop.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="loop" transfer-ownership="none">
-            <doc xml:whitespace="preserve">%TRUE for enable looping</doc>
-            <type name="gboolean" c:type="gboolean"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="skip" c:identifier="clutter_timeline_skip">
-        <doc xml:whitespace="preserve">Advance timeline by the requested time in milliseconds</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="msecs" transfer-ownership="none">
-            <doc xml:whitespace="preserve">Amount of time to skip</doc>
-            <type name="guint" c:type="guint"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="start" c:identifier="clutter_timeline_start">
-        <doc xml:whitespace="preserve">Starts the #ClutterTimeline playing.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </method>
-      <method name="stop" c:identifier="clutter_timeline_stop">
-        <doc xml:whitespace="preserve">Stops the #ClutterTimeline and moves to frame 0</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </method>
-      <property name="delay"
-                version="0.4"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">A delay, in milliseconds, that should be observed by the
-timeline before actually starting.</doc>
-        <type name="guint"/>
-      </property>
-      <property name="direction"
-                version="0.6"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">The direction of the timeline, either %CLUTTER_TIMELINE_FORWARD or
-%CLUTTER_TIMELINE_BACKWARD.</doc>
-        <type name="TimelineDirection"/>
-      </property>
-      <property name="duration"
-                version="0.6"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">Duration of the timeline in milliseconds, depending on the
-ClutterTimeline:fps value.</doc>
-        <type name="guint"/>
-      </property>
-      <property name="loop" writable="1" transfer-ownership="none">
-        <doc xml:whitespace="preserve">Whether the timeline should automatically rewind and restart.</doc>
-        <type name="gboolean"/>
-      </property>
-      <field name="parent">
-        <type name="GObject.Object" c:type="GObject"/>
-      </field>
-      <field name="priv">
-        <type name="TimelinePrivate" c:type="ClutterTimelinePrivate*"/>
-      </field>
-      <glib:signal name="completed">
-        <doc xml:whitespace="preserve">The ::completed signal is emitted when the timeline reaches the
-number of frames specified by the ClutterTimeline:num-frames property.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none"/>
-        </return-value>
-      </glib:signal>
-      <glib:signal name="marker-reached" version="0.8">
-        <doc xml:whitespace="preserve">The ::marker-reached signal is emitted each time a timeline
-reaches a marker set with
-clutter_timeline_add_marker_at_time(). This signal is detailed
-with the name of the marker as well, so it is possible to connect
-a callback to the ::marker-reached signal for a specific marker
-with:
-&lt;informalexample&gt;&lt;programlisting&gt;
-clutter_timeline_add_marker_at_time (timeline, "foo", 500);
-clutter_timeline_add_marker_at_time (timeline, "bar", 750);
-g_signal_connect (timeline, "marker-reached",
-G_CALLBACK (each_marker_reached), NULL);
-g_signal_connect (timeline, "marker-reached::foo",
-G_CALLBACK (foo_marker_reached), NULL);
-g_signal_connect (timeline, "marker-reached::bar",
-G_CALLBACK (bar_marker_reached), NULL);
-&lt;/programlisting&gt;&lt;/informalexample&gt;
-In the example, the first callback will be invoked for both
-the "foo" and "bar" marker, while the second and third callbacks
-will be invoked for the "foo" or "bar" markers, respectively.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none"/>
-        </return-value>
-        <parameters>
-          <parameter name="object" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the name of the marker reached</doc>
-            <type name="utf8"/>
-          </parameter>
-          <parameter name="p0" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the elapsed time</doc>
-            <type name="gint"/>
-          </parameter>
-        </parameters>
-      </glib:signal>
-      <glib:signal name="new-frame">
-        <doc xml:whitespace="preserve">The ::new-frame signal is emitted for each timeline running
-timeline before a new frame is drawn to give animations a chance
-to update the scene.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none"/>
-        </return-value>
-        <parameters>
-          <parameter name="object" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the elapsed time between 0 and duration</doc>
-            <type name="gint"/>
-          </parameter>
-        </parameters>
-      </glib:signal>
-      <glib:signal name="paused">
-        <doc xml:whitespace="preserve">The ::paused signal is emitted when clutter_timeline_pause() is invoked.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none"/>
-        </return-value>
-      </glib:signal>
-      <glib:signal name="started">
-        <doc xml:whitespace="preserve">The ::started signal is emitted when the timeline starts its run.
-This might be as soon as clutter_timeline_start() is invoked or
-after the delay set in the ClutterTimeline:delay property has
-expired.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none"/>
-        </return-value>
-      </glib:signal>
-    </class>
-    <record name="TimelineClass"
-            c:type="ClutterTimelineClass"
-            glib:is-gtype-struct-for="Timeline"
-            version="0.2">
-      <doc xml:whitespace="preserve">The #ClutterTimelineClass structure contains only private data</doc>
-      <field name="parent_class">
-        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
-      </field>
-      <field name="started">
-        <callback name="started">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="timeline" transfer-ownership="none">
-              <type name="Timeline" c:type="ClutterTimeline*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="completed">
-        <callback name="completed">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="timeline" transfer-ownership="none">
-              <type name="Timeline" c:type="ClutterTimeline*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="paused">
-        <callback name="paused">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="timeline" transfer-ownership="none">
-              <type name="Timeline" c:type="ClutterTimeline*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="new_frame">
-        <callback name="new_frame">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="timeline" transfer-ownership="none">
-              <type name="Timeline" c:type="ClutterTimeline*"/>
-            </parameter>
-            <parameter name="frame_num" transfer-ownership="none">
-              <type name="gint" c:type="gint"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="marker_reached">
-        <callback name="marker_reached">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="timeline" transfer-ownership="none">
-              <type name="Timeline" c:type="ClutterTimeline*"/>
-            </parameter>
-            <parameter name="marker_name" transfer-ownership="none">
-              <type name="utf8" c:type="gchar*"/>
-            </parameter>
-            <parameter name="frame_num" transfer-ownership="none">
-              <type name="gint" c:type="gint"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="_clutter_timeline_1" introspectable="0">
-        <callback name="_clutter_timeline_1">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-      <field name="_clutter_timeline_2" introspectable="0">
-        <callback name="_clutter_timeline_2">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-      <field name="_clutter_timeline_3" introspectable="0">
-        <callback name="_clutter_timeline_3">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-      <field name="_clutter_timeline_4" introspectable="0">
-        <callback name="_clutter_timeline_4">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-      <field name="_clutter_timeline_5" introspectable="0">
-        <callback name="_clutter_timeline_5">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-    </record>
-    <enumeration name="TimelineDirection"
-                 version="0.6"
-                 glib:type-name="ClutterTimelineDirection"
-                 glib:get-type="clutter_timeline_direction_get_type"
-                 c:type="ClutterTimelineDirection">
-      <doc xml:whitespace="preserve">The direction of a #ClutterTimeline</doc>
-      <member name="forward"
-              value="0"
-              c:identifier="CLUTTER_TIMELINE_FORWARD"
-              glib:nick="forward"/>
-      <member name="backward"
-              value="1"
-              c:identifier="CLUTTER_TIMELINE_BACKWARD"
-              glib:nick="backward"/>
-    </enumeration>
-    <record name="TimelinePrivate"
-            c:type="ClutterTimelinePrivate"
-            disguised="1">
-    </record>
-    <record name="TimeoutPool"
-            c:type="ClutterTimeoutPool"
-            disguised="1"
-            version="0.6"
-            introspectable="0">
-      <doc xml:whitespace="preserve">&lt;structname&gt;ClutterTimeoutPool&lt;/structname&gt; is an opaque structure
-whose members cannot be directly accessed.</doc>
-      <method name="add" c:identifier="clutter_timeout_pool_add" version="0.4">
-        <doc xml:whitespace="preserve">Sets a function to be called at regular intervals, and puts it inside
-the @pool. The function is repeatedly called until it returns %FALSE,
-at which point the timeout is automatically destroyed and the function
-won't be called again. If @notify is not %NULL, the @notify function
-will be called. The first call to @func will be at the end of @interval.
-Since Clutter 0.8 this will try to compensate for delays. For
-example, if @func takes half the interval time to execute then the
-function will be called again half the interval time after it
-finished. Before version 0.8 it would not fire until a full
-interval after the function completes so the delay between calls
-would be @interval * 1.5. This function does not however try to
-invoke the function multiple times to catch up missing frames if
-Use clutter_timeout_pool_remove() to stop the timeout.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the ID (greater than 0) of the timeout inside the pool.</doc>
-          <type name="guint" c:type="guint"/>
-        </return-value>
-        <parameters>
-          <parameter name="fps" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the time between calls to the function, in frames per second</doc>
-            <type name="guint" c:type="guint"/>
-          </parameter>
-          <parameter name="func"
-                     transfer-ownership="none"
-                     scope="notified"
-                     closure="2"
-                     destroy="3">
-            <doc xml:whitespace="preserve">function to call</doc>
-            <type name="GLib.SourceFunc" c:type="GSourceFunc"/>
-          </parameter>
-          <parameter name="data" transfer-ownership="none">
-            <doc xml:whitespace="preserve">data to pass to the function, or %NULL</doc>
-            <type name="gpointer" c:type="gpointer"/>
-          </parameter>
-          <parameter name="notify" transfer-ownership="none" scope="async">
-            <doc xml:whitespace="preserve">function to call when the timeout is removed, or %NULL</doc>
-            <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="remove"
-              c:identifier="clutter_timeout_pool_remove"
-              version="0.4">
-        <doc xml:whitespace="preserve">Removes a timeout function with @id from the timeout pool. The id
-is the same returned when adding a function to the timeout pool with
-clutter_timeout_pool_add().</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="id" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the id of the timeout to remove</doc>
-            <type name="guint" c:type="guint"/>
-          </parameter>
-        </parameters>
-      </method>
-    </record>
-    <constant name="ToDoList" value="269025055">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Tools" value="269025153">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="TopMenu" value="269025186">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="TouchpadToggle" value="269025193">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Touroku" value="65323">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Travel" value="269025154">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Tslash" value="940">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="U" value="85">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="UWB" value="269025174">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Uacute" value="218">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Ubelowdot" value="16785124">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Ubreve" value="733">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Ucircumflex" value="219">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Udiaeresis" value="220">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Udoubleacute" value="475">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Ugrave" value="217">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Uhook" value="16785126">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Uhorn" value="16777647">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Uhornacute" value="16785128">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Uhornbelowdot" value="16785136">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Uhorngrave" value="16785130">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Uhornhook" value="16785132">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Uhorntilde" value="16785134">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Ukrainian_GHE_WITH_UPTURN" value="1725">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Ukrainian_I" value="1718">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Ukrainian_IE" value="1716">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Ukrainian_YI" value="1719">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Ukrainian_ghe_with_upturn" value="1709">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Ukrainian_i" value="1702">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Ukrainian_ie" value="1700">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Ukrainian_yi" value="1703">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Ukranian_I" value="1718">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Ukranian_JE" value="1716">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Ukranian_YI" value="1719">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Ukranian_i" value="1702">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Ukranian_je" value="1700">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Ukranian_yi" value="1703">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Umacron" value="990">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Undo" value="65381">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Ungrab" value="269024800">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <enumeration name="UnitType"
-                 version="1.0"
-                 glib:type-name="ClutterUnitType"
-                 glib:get-type="clutter_unit_type_get_type"
-                 c:type="ClutterUnitType">
-      <doc xml:whitespace="preserve">The type of unit in which a value is expressed
-This enumeration might be expanded at later date</doc>
-      <member name="pixel"
-              value="0"
-              c:identifier="CLUTTER_UNIT_PIXEL"
-              glib:nick="pixel"/>
-      <member name="em"
-              value="1"
-              c:identifier="CLUTTER_UNIT_EM"
-              glib:nick="em"/>
-      <member name="mm"
-              value="2"
-              c:identifier="CLUTTER_UNIT_MM"
-              glib:nick="mm"/>
-      <member name="point"
-              value="3"
-              c:identifier="CLUTTER_UNIT_POINT"
-              glib:nick="point"/>
-      <member name="cm"
-              value="4"
-              c:identifier="CLUTTER_UNIT_CM"
-              glib:nick="cm"/>
-    </enumeration>
-    <record name="Units"
-            c:type="ClutterUnits"
-            version="1.0"
-            glib:type-name="ClutterUnits"
-            glib:get-type="clutter_units_get_type"
-            c:symbol-prefix="units">
-      <doc xml:whitespace="preserve">An opaque structure, to be used to store sizing and positioning
-values along with their unit.</doc>
-      <field name="unit_type" writable="1">
-        <type name="UnitType" c:type="ClutterUnitType"/>
-      </field>
-      <field name="value" writable="1">
-        <type name="gfloat" c:type="gfloat"/>
-      </field>
-      <field name="pixels" writable="1">
-        <type name="gfloat" c:type="gfloat"/>
-      </field>
-      <field name="pixels_set" writable="1">
-        <type name="guint" c:type="guint"/>
-      </field>
-      <field name="serial" writable="1">
-        <type name="gint32" c:type="gint32"/>
-      </field>
-      <field name="__padding_1" writable="1">
-        <type name="gint32" c:type="gint32"/>
-      </field>
-      <field name="__padding_2" writable="1">
-        <type name="gint64" c:type="gint64"/>
-      </field>
-      <method name="copy" c:identifier="clutter_units_copy" version="1.0">
-        <doc xml:whitespace="preserve">Copies @units
-#ClutterUnits structure. Use clutter_units_free() to free
-the allocated resources</doc>
-        <return-value transfer-ownership="full">
-          <doc xml:whitespace="preserve">the newly created copy of a</doc>
-          <type name="Units" c:type="ClutterUnits*"/>
-        </return-value>
-      </method>
-      <method name="free" c:identifier="clutter_units_free" version="1.0">
-        <doc xml:whitespace="preserve">Frees the resources allocated by @units
-You should only call this function on a #ClutterUnits
-created using clutter_units_copy()</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </method>
-      <method name="from_cm"
-              c:identifier="clutter_units_from_cm"
-              version="1.2">
-        <doc xml:whitespace="preserve">Stores a value in centimeters inside @units</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="cm" transfer-ownership="none">
-            <doc xml:whitespace="preserve">centimeters</doc>
-            <type name="gfloat" c:type="gfloat"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="from_em"
-              c:identifier="clutter_units_from_em"
-              version="1.0">
-        <doc xml:whitespace="preserve">Stores a value in em inside @units, using the default font
-name as returned by clutter_backend_get_font_name()</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="em" transfer-ownership="none">
-            <doc xml:whitespace="preserve">em</doc>
-            <type name="gfloat" c:type="gfloat"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="from_em_for_font"
-              c:identifier="clutter_units_from_em_for_font"
-              version="1.0">
-        <doc xml:whitespace="preserve">Stores a value in em inside @units using @font_name</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="font_name" transfer-ownership="none" allow-none="1">
-            <doc xml:whitespace="preserve">the font name and size</doc>
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="em" transfer-ownership="none">
-            <doc xml:whitespace="preserve">em</doc>
-            <type name="gfloat" c:type="gfloat"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="from_mm"
-              c:identifier="clutter_units_from_mm"
-              version="1.0">
-        <doc xml:whitespace="preserve">Stores a value in millimiters inside @units</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="mm" transfer-ownership="none">
-            <doc xml:whitespace="preserve">millimeters</doc>
-            <type name="gfloat" c:type="gfloat"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="from_pixels"
-              c:identifier="clutter_units_from_pixels"
-              version="1.0">
-        <doc xml:whitespace="preserve">Stores a value in pixels inside @units</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="px" transfer-ownership="none">
-            <doc xml:whitespace="preserve">pixels</doc>
-            <type name="gint" c:type="gint"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="from_pt"
-              c:identifier="clutter_units_from_pt"
-              version="1.0">
-        <doc xml:whitespace="preserve">Stores a value in typographic points inside @units</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="pt" transfer-ownership="none">
-            <doc xml:whitespace="preserve">typographic points</doc>
-            <type name="gfloat" c:type="gfloat"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="from_string"
-              c:identifier="clutter_units_from_string"
-              version="1.0">
-        <doc xml:whitespace="preserve">Parses a value and updates @units with it
-A #ClutterUnits expressed in string should match:
-|[
-| digit* sep digit+
-]|
-For instance, these are valid strings:
-|[
-10 px
-5.1 em
-24 pt
-12.6 mm
-.3 cm
-]|
-While these are not:
-|[
-42 cats
-omg!1!ponies
-]|
-&lt;note&gt;&lt;para&gt;If no unit is specified, pixels are assumed.&lt;/para&gt;&lt;/note&gt;
-and %FALSE otherwise</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">%TRUE if the string was successfully parsed,</doc>
-          <type name="gboolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="str" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the string to convert</doc>
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_unit_type"
-              c:identifier="clutter_units_get_unit_type"
-              version="1.0">
-        <doc xml:whitespace="preserve">Retrieves the unit type of the value stored inside @units</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">a unit type</doc>
-          <type name="UnitType" c:type="ClutterUnitType"/>
-        </return-value>
-      </method>
-      <method name="get_unit_value"
-              c:identifier="clutter_units_get_unit_value"
-              version="1.0">
-        <doc xml:whitespace="preserve">Retrieves the value stored inside @units</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the value stored inside a #ClutterUnits</doc>
-          <type name="gfloat" c:type="gfloat"/>
-        </return-value>
-      </method>
-      <method name="to_pixels"
-              c:identifier="clutter_units_to_pixels"
-              version="1.0">
-        <doc xml:whitespace="preserve">Converts a value in #ClutterUnits to pixels</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the value in pixels</doc>
-          <type name="gfloat" c:type="gfloat"/>
-        </return-value>
-      </method>
-      <method name="to_string"
-              c:identifier="clutter_units_to_string"
-              version="1.0">
-        <doc xml:whitespace="preserve">Converts @units into a string
-See clutter_units_from_string() for the units syntax and for
-examples of output
-&lt;note&gt;Fractional values are truncated to the second decimal
-position for em, mm and cm, and to the first decimal position for
-typographic points. Pixels are integers.&lt;/note&gt;
-#ClutterUnits value. Use g_free() to free the string</doc>
-        <return-value transfer-ownership="full">
-          <doc xml:whitespace="preserve">a newly allocated string containing the encoded</doc>
-          <type name="utf8" c:type="gchar*"/>
-        </return-value>
-      </method>
-    </record>
-    <constant name="Uogonek" value="985">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Up" value="65362">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Uring" value="473">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="User1KB" value="269025157">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="User2KB" value="269025158">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="UserPB" value="269025156">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Utilde" value="989">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="V" value="86">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="VERSION" value="1.400000">
-      <type name="gdouble" c:type="gdouble"/>
-    </constant>
-    <constant name="VERSION_HEX" value="0">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="VERSION_S" value="1.4.0">
-      <type name="utf8" c:type="gchar*"/>
-    </constant>
-    <constant name="VendorHome" value="269025076">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <record name="Vertex"
-            c:type="ClutterVertex"
-            version="0.4"
-            glib:type-name="ClutterVertex"
-            glib:get-type="clutter_vertex_get_type"
-            c:symbol-prefix="vertex">
-      <doc xml:whitespace="preserve">Vertex of an actor in 3D space, expressed in pixels</doc>
-      <field name="x" writable="1">
-        <type name="gfloat" c:type="gfloat"/>
-      </field>
-      <field name="y" writable="1">
-        <type name="gfloat" c:type="gfloat"/>
-      </field>
-      <field name="z" writable="1">
-        <type name="gfloat" c:type="gfloat"/>
-      </field>
-      <constructor name="new" c:identifier="clutter_vertex_new" version="1.0">
-        <doc xml:whitespace="preserve">Creates a new #ClutterVertex for the point in 3D space
-identified by the 3 coordinates @x, @y, @z
-clutter_vertex_free() to free the resources</doc>
-        <return-value transfer-ownership="full">
-          <doc xml:whitespace="preserve">the newly allocate #ClutterVertex. Use</doc>
-          <type name="Vertex" c:type="ClutterVertex*"/>
-        </return-value>
-        <parameters>
-          <parameter name="x" transfer-ownership="none">
-            <doc xml:whitespace="preserve">X coordinate</doc>
-            <type name="gfloat" c:type="gfloat"/>
-          </parameter>
-          <parameter name="y" transfer-ownership="none">
-            <doc xml:whitespace="preserve">Y coordinate</doc>
-            <type name="gfloat" c:type="gfloat"/>
-          </parameter>
-          <parameter name="z" transfer-ownership="none">
-            <doc xml:whitespace="preserve">Z coordinate</doc>
-            <type name="gfloat" c:type="gfloat"/>
-          </parameter>
-        </parameters>
-      </constructor>
-      <method name="copy" c:identifier="clutter_vertex_copy" version="1.0">
-        <doc xml:whitespace="preserve">Copies @vertex
-clutter_vertex_free() to free the allocated resources</doc>
-        <return-value transfer-ownership="full">
-          <doc xml:whitespace="preserve">a newly allocated copy of #ClutterVertex. Use</doc>
-          <type name="Vertex" c:type="ClutterVertex*"/>
-        </return-value>
-      </method>
-      <method name="equal" c:identifier="clutter_vertex_equal" version="1.0">
-        <doc xml:whitespace="preserve">Compares @vertex_a and @vertex_b for equality</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">%TRUE if the passed #ClutterVertex are equal</doc>
-          <type name="gboolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="vertex_b" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #ClutterVertex</doc>
-            <type name="Vertex" c:type="ClutterVertex*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="free" c:identifier="clutter_vertex_free" version="1.0">
-        <doc xml:whitespace="preserve">Frees a #ClutterVertex allocated using clutter_vertex_copy()</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </method>
-    </record>
-    <constant name="Video" value="269025159">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="View" value="269025185">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="VoidSymbol" value="16777215">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="W" value="87">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="WLAN" value="269025173">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="WWW" value="269025070">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Wacute" value="16785026">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="WakeUp" value="269025067">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Wcircumflex" value="16777588">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Wdiaeresis" value="16785028">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="WebCam" value="269025167">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Wgrave" value="16785024">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="WheelButton" value="269025160">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="WindowClear" value="269025109">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="WonSign" value="16785577">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Word" value="269025161">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="X" value="88">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Xabovedot" value="16785034">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Xfer" value="269025162">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Y" value="89">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Yacute" value="221">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Ybelowdot" value="16785140">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Ycircumflex" value="16777590">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Ydiaeresis" value="5054">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Yellow" value="269025189">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Ygrave" value="16785138">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Yhook" value="16785142">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Ytilde" value="16785144">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Z" value="90">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Zabovedot" value="431">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Zacute" value="428">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Zcaron" value="430">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Zen_Koho" value="65341">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Zenkaku" value="65320">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Zenkaku_Hankaku" value="65322">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="ZoomIn" value="269025163">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="ZoomOut" value="269025164">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="Zstroke" value="16777653">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="a" value="97">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="aacute" value="225">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="abelowdot" value="16785057">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="abovedot" value="511">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="abreve" value="483">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="abreveacute" value="16785071">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="abrevebelowdot" value="16785079">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="abrevegrave" value="16785073">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="abrevehook" value="16785075">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="abrevetilde" value="16785077">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="acircumflex" value="226">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="acircumflexacute" value="16785061">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="acircumflexbelowdot" value="16785069">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="acircumflexgrave" value="16785063">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="acircumflexhook" value="16785065">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="acircumflextilde" value="16785067">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="acute" value="180">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="adiaeresis" value="228">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="ae" value="230">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="agrave" value="224">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="ahook" value="16785059">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="amacron" value="992">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="ampersand" value="38">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="aogonek" value="433">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="apostrophe" value="39">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="approxeq" value="16785992">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="approximate" value="2248">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="aring" value="229">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="asciicircum" value="94">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="asciitilde" value="126">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="asterisk" value="42">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="at" value="64">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="atilde" value="227">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="b" value="98">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="babovedot" value="16784899">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="backslash" value="92">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="ballotcross" value="2804">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="bar" value="124">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <function name="base_init" c:identifier="clutter_base_init">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-    </function>
-    <constant name="because" value="16785973">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="blank" value="2527">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="botintegral" value="2213">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="botleftparens" value="2220">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="botleftsqbracket" value="2216">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="botleftsummation" value="2226">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="botrightparens" value="2222">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="botrightsqbracket" value="2218">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="botrightsummation" value="2230">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="bott" value="2550">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="botvertsummationconnector" value="2228">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braceleft" value="123">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braceright" value="125">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="bracketleft" value="91">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="bracketright" value="93">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_blank" value="16787456">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dot_1" value="65521">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dot_10" value="65530">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dot_2" value="65522">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dot_3" value="65523">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dot_4" value="65524">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dot_5" value="65525">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dot_6" value="65526">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dot_7" value="65527">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dot_8" value="65528">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dot_9" value="65529">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_1" value="16787457">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_12" value="16787459">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_123" value="16787463">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_1234" value="16787471">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_12345" value="16787487">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_123456" value="16787519">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_1234567" value="16787583">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_12345678" value="16787711">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_1234568" value="16787647">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_123457" value="16787551">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_1234578" value="16787679">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_123458" value="16787615">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_12346" value="16787503">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_123467" value="16787567">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_1234678" value="16787695">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_123468" value="16787631">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_12347" value="16787535">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_123478" value="16787663">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_12348" value="16787599">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_1235" value="16787479">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_12356" value="16787511">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_123567" value="16787575">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_1235678" value="16787703">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_123568" value="16787639">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_12357" value="16787543">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_123578" value="16787671">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_12358" value="16787607">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_1236" value="16787495">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_12367" value="16787559">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_123678" value="16787687">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_12368" value="16787623">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_1237" value="16787527">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_12378" value="16787655">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_1238" value="16787591">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_124" value="16787467">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_1245" value="16787483">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_12456" value="16787515">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_124567" value="16787579">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_1245678" value="16787707">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_124568" value="16787643">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_12457" value="16787547">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_124578" value="16787675">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_12458" value="16787611">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_1246" value="16787499">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_12467" value="16787563">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_124678" value="16787691">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_12468" value="16787627">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_1247" value="16787531">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_12478" value="16787659">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_1248" value="16787595">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_125" value="16787475">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_1256" value="16787507">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_12567" value="16787571">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_125678" value="16787699">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_12568" value="16787635">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_1257" value="16787539">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_12578" value="16787667">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_1258" value="16787603">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_126" value="16787491">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_1267" value="16787555">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_12678" value="16787683">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_1268" value="16787619">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_127" value="16787523">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_1278" value="16787651">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_128" value="16787587">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_13" value="16787461">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_134" value="16787469">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_1345" value="16787485">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_13456" value="16787517">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_134567" value="16787581">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_1345678" value="16787709">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_134568" value="16787645">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_13457" value="16787549">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_134578" value="16787677">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_13458" value="16787613">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_1346" value="16787501">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_13467" value="16787565">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_134678" value="16787693">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_13468" value="16787629">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_1347" value="16787533">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_13478" value="16787661">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_1348" value="16787597">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_135" value="16787477">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_1356" value="16787509">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_13567" value="16787573">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_135678" value="16787701">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_13568" value="16787637">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_1357" value="16787541">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_13578" value="16787669">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_1358" value="16787605">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_136" value="16787493">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_1367" value="16787557">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_13678" value="16787685">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_1368" value="16787621">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_137" value="16787525">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_1378" value="16787653">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_138" value="16787589">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_14" value="16787465">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_145" value="16787481">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_1456" value="16787513">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_14567" value="16787577">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_145678" value="16787705">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_14568" value="16787641">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_1457" value="16787545">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_14578" value="16787673">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_1458" value="16787609">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_146" value="16787497">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_1467" value="16787561">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_14678" value="16787689">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_1468" value="16787625">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_147" value="16787529">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_1478" value="16787657">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_148" value="16787593">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_15" value="16787473">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_156" value="16787505">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_1567" value="16787569">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_15678" value="16787697">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_1568" value="16787633">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_157" value="16787537">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_1578" value="16787665">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_158" value="16787601">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_16" value="16787489">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_167" value="16787553">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_1678" value="16787681">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_168" value="16787617">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_17" value="16787521">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_178" value="16787649">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_18" value="16787585">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_2" value="16787458">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_23" value="16787462">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_234" value="16787470">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_2345" value="16787486">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_23456" value="16787518">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_234567" value="16787582">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_2345678" value="16787710">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_234568" value="16787646">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_23457" value="16787550">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_234578" value="16787678">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_23458" value="16787614">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_2346" value="16787502">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_23467" value="16787566">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_234678" value="16787694">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_23468" value="16787630">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_2347" value="16787534">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_23478" value="16787662">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_2348" value="16787598">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_235" value="16787478">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_2356" value="16787510">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_23567" value="16787574">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_235678" value="16787702">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_23568" value="16787638">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_2357" value="16787542">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_23578" value="16787670">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_2358" value="16787606">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_236" value="16787494">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_2367" value="16787558">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_23678" value="16787686">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_2368" value="16787622">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_237" value="16787526">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_2378" value="16787654">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_238" value="16787590">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_24" value="16787466">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_245" value="16787482">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_2456" value="16787514">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_24567" value="16787578">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_245678" value="16787706">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_24568" value="16787642">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_2457" value="16787546">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_24578" value="16787674">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_2458" value="16787610">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_246" value="16787498">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_2467" value="16787562">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_24678" value="16787690">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_2468" value="16787626">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_247" value="16787530">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_2478" value="16787658">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_248" value="16787594">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_25" value="16787474">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_256" value="16787506">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_2567" value="16787570">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_25678" value="16787698">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_2568" value="16787634">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_257" value="16787538">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_2578" value="16787666">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_258" value="16787602">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_26" value="16787490">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_267" value="16787554">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_2678" value="16787682">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_268" value="16787618">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_27" value="16787522">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_278" value="16787650">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_28" value="16787586">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_3" value="16787460">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_34" value="16787468">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_345" value="16787484">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_3456" value="16787516">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_34567" value="16787580">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_345678" value="16787708">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_34568" value="16787644">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_3457" value="16787548">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_34578" value="16787676">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_3458" value="16787612">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_346" value="16787500">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_3467" value="16787564">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_34678" value="16787692">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_3468" value="16787628">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_347" value="16787532">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_3478" value="16787660">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_348" value="16787596">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_35" value="16787476">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_356" value="16787508">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_3567" value="16787572">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_35678" value="16787700">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_3568" value="16787636">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_357" value="16787540">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_3578" value="16787668">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_358" value="16787604">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_36" value="16787492">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_367" value="16787556">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_3678" value="16787684">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_368" value="16787620">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_37" value="16787524">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_378" value="16787652">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_38" value="16787588">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_4" value="16787464">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_45" value="16787480">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_456" value="16787512">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_4567" value="16787576">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_45678" value="16787704">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_4568" value="16787640">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_457" value="16787544">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_4578" value="16787672">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_458" value="16787608">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_46" value="16787496">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_467" value="16787560">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_4678" value="16787688">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_468" value="16787624">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_47" value="16787528">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_478" value="16787656">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_48" value="16787592">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_5" value="16787472">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_56" value="16787504">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_567" value="16787568">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_5678" value="16787696">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_568" value="16787632">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_57" value="16787536">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_578" value="16787664">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_58" value="16787600">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_6" value="16787488">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_67" value="16787552">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_678" value="16787680">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_68" value="16787616">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_7" value="16787520">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_78" value="16787648">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="braille_dots_8" value="16787584">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="breve" value="418">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="brokenbar" value="166">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="c" value="99">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="cabovedot" value="741">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="cacute" value="486">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <function name="cairo_set_source_color"
-              c:identifier="clutter_cairo_set_source_color"
-              version="1.0">
-      <doc xml:whitespace="preserve">Utility function for setting the source color of @cr using
-a #ClutterColor.</doc>
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="cr" transfer-ownership="none">
-          <doc xml:whitespace="preserve">a Cairo context</doc>
-          <type name="cairo.Context" c:type="cairo_t*"/>
-        </parameter>
-        <parameter name="color" transfer-ownership="none">
-          <doc xml:whitespace="preserve">a #ClutterColor</doc>
-          <type name="Color" c:type="ClutterColor*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <constant name="careof" value="2744">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="caret" value="2812">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="caron" value="439">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="ccaron" value="488">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="ccedilla" value="231">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="ccircumflex" value="742">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="cedilla" value="184">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="cent" value="162">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <function name="check_version"
-              c:identifier="clutter_check_version"
-              version="1.2">
-      <doc xml:whitespace="preserve">Run-time version check, to check the version the Clutter library
-that an application is currently linked against
-This is the run-time equivalent of the compile-time %CLUTTER_CHECK_VERSION
-pre-processor macro
-greater than (@major, @minor, @micro), and %FALSE otherwise</doc>
-      <return-value transfer-ownership="none">
-        <doc xml:whitespace="preserve">%TRUE if the version of the Clutter library is</doc>
-        <type name="gboolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="major" transfer-ownership="none">
-          <doc xml:whitespace="preserve">major version, like 1 in 1.2.3</doc>
-          <type name="guint" c:type="guint"/>
-        </parameter>
-        <parameter name="minor" transfer-ownership="none">
-          <doc xml:whitespace="preserve">minor version, like 2 in 1.2.3</doc>
-          <type name="guint" c:type="guint"/>
-        </parameter>
-        <parameter name="micro" transfer-ownership="none">
-          <doc xml:whitespace="preserve">micro version, like 3 in 1.2.3</doc>
-          <type name="guint" c:type="guint"/>
-        </parameter>
-      </parameters>
-    </function>
-    <constant name="checkerboard" value="2529">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="checkmark" value="2803">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="circle" value="3023">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <function name="clear_glyph_cache"
-              c:identifier="clutter_clear_glyph_cache"
-              version="0.8">
-      <doc xml:whitespace="preserve">Clears the internal cache of glyphs used by the Pango
-renderer. This will free up some memory and GL texture
-resources. The cache will be automatically refilled as more text is
-drawn.</doc>
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-    </function>
-    <constant name="club" value="2796">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="colon" value="58">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <function name="color_equal"
-              c:identifier="clutter_color_equal"
-              version="0.2">
-      <doc xml:whitespace="preserve">Compares two #ClutterColor&lt;!-- --&gt;s and checks if they are the same.
-This function can be passed to g_hash_table_new() as the @key_equal_func
-parameter, when using #ClutterColor&lt;!-- --&gt;s as keys in a #GHashTable.</doc>
-      <return-value transfer-ownership="none">
-        <doc xml:whitespace="preserve">%TRUE if the two colors are the same.</doc>
-        <type name="gboolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="v1" transfer-ownership="none">
-          <doc xml:whitespace="preserve">a #ClutterColor</doc>
-          <type name="gpointer" c:type="gconstpointer"/>
-        </parameter>
-        <parameter name="v2" transfer-ownership="none">
-          <doc xml:whitespace="preserve">a #ClutterColor</doc>
-          <type name="gpointer" c:type="gconstpointer"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="color_hash"
-              c:identifier="clutter_color_hash"
-              version="1.0">
-      <doc xml:whitespace="preserve">Converts a #ClutterColor to a hash value.
-This function can be passed to g_hash_table_new() as the @hash_func
-parameter, when using #ClutterColor&lt;!-- --&gt;s as keys in a #GHashTable.</doc>
-      <return-value transfer-ownership="none">
-        <doc xml:whitespace="preserve">a hash value corresponding to the color</doc>
-        <type name="guint" c:type="guint"/>
-      </return-value>
-      <parameters>
-        <parameter name="v" transfer-ownership="none">
-          <doc xml:whitespace="preserve">a #ClutterColor</doc>
-          <type name="gpointer" c:type="gconstpointer"/>
-        </parameter>
-      </parameters>
-    </function>
-    <constant name="comma" value="44">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <function name="container_class_find_child_property"
-              c:identifier="clutter_container_class_find_child_property"
-              version="0.8">
-      <doc xml:whitespace="preserve">Looks up the #GParamSpec for a child property of @klass.
-if no such property exist.</doc>
-      <return-value transfer-ownership="none">
-        <doc xml:whitespace="preserve">The #GParamSpec for the property or %NULL</doc>
-        <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
-      </return-value>
-      <parameters>
-        <parameter name="klass" transfer-ownership="none">
-          <doc xml:whitespace="preserve">a #GObjectClass implementing the #ClutterContainer interface.</doc>
-          <type name="GObject.ObjectClass" c:type="GObjectClass*"/>
-        </parameter>
-        <parameter name="property_name" transfer-ownership="none">
-          <doc xml:whitespace="preserve">a property name.</doc>
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="container_class_list_child_properties"
-              c:identifier="clutter_container_class_list_child_properties"
-              version="0.8">
-      <doc xml:whitespace="preserve">Returns an array of #GParamSpec for all child properties.
-of #GParamSpec&lt;!-- --&gt;s which should be freed after use.</doc>
-      <return-value transfer-ownership="full">
-        <doc xml:whitespace="preserve">an array</doc>
-        <array length="1" c:type="GParamSpec**">
-          <type name="GObject.ParamSpec"/>
-        </array>
-      </return-value>
-      <parameters>
-        <parameter name="klass" transfer-ownership="none">
-          <doc xml:whitespace="preserve">a #GObjectClass implementing the #ClutterContainer interface.</doc>
-          <type name="GObject.ObjectClass" c:type="GObjectClass*"/>
-        </parameter>
-        <parameter name="n_properties"
-                   direction="out"
-                   caller-allocates="0"
-                   transfer-ownership="full">
-          <doc xml:whitespace="preserve">return location for length of returned array.</doc>
-          <type name="guint" c:type="guint*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <constant name="containsas" value="16785931">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="copyright" value="169">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="cr" value="2532">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="crossinglines" value="2542">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="cuberoot" value="16785947">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="currency" value="164">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="cursor" value="2815">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="d" value="100">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="dabovedot" value="16784907">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="dagger" value="2801">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="dcaron" value="495">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="dead_A" value="65153">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="dead_E" value="65155">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="dead_I" value="65157">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="dead_O" value="65159">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="dead_U" value="65161">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="dead_a" value="65152">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="dead_abovecomma" value="65124">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="dead_abovedot" value="65110">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="dead_abovereversedcomma" value="65125">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="dead_abovering" value="65112">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="dead_acute" value="65105">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="dead_belowbreve" value="65131">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="dead_belowcircumflex" value="65129">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="dead_belowcomma" value="65134">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="dead_belowdiaeresis" value="65132">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="dead_belowdot" value="65120">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="dead_belowmacron" value="65128">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="dead_belowring" value="65127">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="dead_belowtilde" value="65130">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="dead_breve" value="65109">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="dead_capital_schwa" value="65163">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="dead_caron" value="65114">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="dead_cedilla" value="65115">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="dead_circumflex" value="65106">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="dead_currency" value="65135">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="dead_dasia" value="65125">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="dead_diaeresis" value="65111">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="dead_doubleacute" value="65113">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="dead_doublegrave" value="65126">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="dead_e" value="65154">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="dead_grave" value="65104">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="dead_hook" value="65121">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="dead_horn" value="65122">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="dead_i" value="65156">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="dead_invertedbreve" value="65133">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="dead_iota" value="65117">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="dead_macron" value="65108">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="dead_o" value="65158">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="dead_ogonek" value="65116">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="dead_perispomeni" value="65107">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="dead_psili" value="65124">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="dead_semivoiced_sound" value="65119">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="dead_small_schwa" value="65162">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="dead_stroke" value="65123">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="dead_tilde" value="65107">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="dead_u" value="65160">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="dead_voiced_sound" value="65118">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="decimalpoint" value="2749">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="degree" value="176">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="diaeresis" value="168">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="diamond" value="2797">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="digitspace" value="2725">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="dintegral" value="16785964">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="division" value="247">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <function name="do_event" c:identifier="clutter_do_event">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="event" transfer-ownership="none">
-          <type name="Event" c:type="ClutterEvent*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <constant name="dollar" value="36">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="doubbaselinedot" value="2735">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="doubleacute" value="445">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="doubledagger" value="2802">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="doublelowquotemark" value="2814">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="downarrow" value="2302">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="downcaret" value="2984">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="downshoe" value="3030">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="downstile" value="3012">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="downtack" value="3010">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="dstroke" value="496">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="e" value="101">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="eabovedot" value="1004">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="eacute" value="233">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="ebelowdot" value="16785081">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="ecaron" value="492">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="ecircumflex" value="234">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="ecircumflexacute" value="16785087">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="ecircumflexbelowdot" value="16785095">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="ecircumflexgrave" value="16785089">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="ecircumflexhook" value="16785091">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="ecircumflextilde" value="16785093">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="ediaeresis" value="235">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="egrave" value="232">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="ehook" value="16785083">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="eightsubscript" value="16785544">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="eightsuperior" value="16785528">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="elementof" value="16785928">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="ellipsis" value="2734">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="em3space" value="2723">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="em4space" value="2724">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="emacron" value="954">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="emdash" value="2729">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="emfilledcircle" value="2782">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="emfilledrect" value="2783">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="emopencircle" value="2766">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="emopenrectangle" value="2767">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="emptyset" value="16785925">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="emspace" value="2721">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="endash" value="2730">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="enfilledcircbullet" value="2790">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="enfilledsqbullet" value="2791">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="eng" value="959">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="enopencircbullet" value="2784">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="enopensquarebullet" value="2785">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="enspace" value="2722">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="eogonek" value="490">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="equal" value="61">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="eth" value="240">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="etilde" value="16785085">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <function name="event_get" c:identifier="clutter_event_get" version="0.4">
-      <doc xml:whitespace="preserve">Pops an event off the event queue. Applications should not need to call 
-this.</doc>
-      <return-value transfer-ownership="full">
-        <doc xml:whitespace="preserve">A #ClutterEvent or NULL if queue empty</doc>
-        <type name="Event" c:type="ClutterEvent*"/>
-      </return-value>
-    </function>
-    <function name="event_peek"
-              c:identifier="clutter_event_peek"
-              version="0.4">
-      <doc xml:whitespace="preserve">Returns a pointer to the first event from the event queue but 
-does not remove it.</doc>
-      <return-value transfer-ownership="none">
-        <doc xml:whitespace="preserve">A #ClutterEvent or NULL if queue empty.</doc>
-        <type name="Event" c:type="ClutterEvent*"/>
-      </return-value>
-    </function>
-    <function name="events_pending"
-              c:identifier="clutter_events_pending"
-              version="0.4">
-      <doc xml:whitespace="preserve">Checks if events are pending in the event queue.</doc>
-      <return-value transfer-ownership="none">
-        <doc xml:whitespace="preserve">TRUE if there are pending events, FALSE otherwise.</doc>
-        <type name="gboolean" c:type="gboolean"/>
-      </return-value>
-    </function>
-    <constant name="exclam" value="33">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="exclamdown" value="161">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="f" value="102">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="fabovedot" value="16784927">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <function name="feature_available"
-              c:identifier="clutter_feature_available"
-              version="0.1.1">
-      <doc xml:whitespace="preserve">Checks whether @feature is available.  @feature can be a logical
-OR of #ClutterFeatureFlags.</doc>
-      <return-value transfer-ownership="none">
-        <doc xml:whitespace="preserve">%TRUE if a feature is available</doc>
-        <type name="gboolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="feature" transfer-ownership="none">
-          <doc xml:whitespace="preserve">a #ClutterFeatureFlags</doc>
-          <type name="FeatureFlags" c:type="ClutterFeatureFlags"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="feature_get_all"
-              c:identifier="clutter_feature_get_all"
-              version="0.1.1">
-      <doc xml:whitespace="preserve">Returns all the supported features.</doc>
-      <return-value transfer-ownership="none">
-        <doc xml:whitespace="preserve">a logical OR of all the supported features.</doc>
-        <type name="FeatureFlags" c:type="ClutterFeatureFlags"/>
-      </return-value>
-    </function>
-    <constant name="femalesymbol" value="2808">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="ff" value="2531">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="figdash" value="2747">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="filledlefttribullet" value="2780">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="filledrectbullet" value="2779">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="filledrighttribullet" value="2781">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="filledtribulletdown" value="2793">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="filledtribulletup" value="2792">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="fiveeighths" value="2757">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="fivesixths" value="2743">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="fivesubscript" value="16785541">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="fivesuperior" value="16785525">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="fourfifths" value="2741">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="foursubscript" value="16785540">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="foursuperior" value="16785524">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="fourthroot" value="16785948">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <function name="frame_source_add"
-              c:identifier="clutter_frame_source_add"
-              shadowed-by="frame_source_add_full"
-              version="0.8"
-              introspectable="0">
-      <doc xml:whitespace="preserve">Simple wrapper around clutter_frame_source_add_full().</doc>
-      <return-value transfer-ownership="none">
-        <doc xml:whitespace="preserve">the ID (greater than 0) of the event source.</doc>
-        <type name="guint" c:type="guint"/>
-      </return-value>
-      <parameters>
-        <parameter name="fps" transfer-ownership="none">
-          <doc xml:whitespace="preserve">the number of times per second to call the function</doc>
-          <type name="guint" c:type="guint"/>
-        </parameter>
-        <parameter name="func" transfer-ownership="none" closure="2">
-          <doc xml:whitespace="preserve">function to call</doc>
-          <type name="GLib.SourceFunc" c:type="GSourceFunc"/>
-        </parameter>
-        <parameter name="data" transfer-ownership="none">
-          <doc xml:whitespace="preserve">data to pass to the function</doc>
-          <type name="gpointer" c:type="gpointer"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="frame_source_add_full"
-              c:identifier="clutter_frame_source_add_full"
-              shadows="frame_source_add"
-              version="0.8">
-      <doc xml:whitespace="preserve">Sets a function to be called at regular intervals with the given
-priority.  The function is called repeatedly until it returns
-%FALSE, at which point the timeout is automatically destroyed and
-the function will not be called again.  The @notify function is
-called when the timeout is destroyed.  The first call to the
-function will be at the end of the first @interval.
-This function is similar to g_timeout_add_full() except that it
-will try to compensate for delays. For example, if @func takes half
-the interval time to execute then the function will be called again
-half the interval time after it finished. In contrast
-g_timeout_add_full() would not fire until a full interval after the
-function completes so the delay between calls would be 1.0 / @fps *
-1.5. This function does not however try to invoke the function
-multiple times to catch up missing frames if @func takes more than</doc>
-      <return-value transfer-ownership="none">
-        <doc xml:whitespace="preserve">the ID (greater than 0) of the event source.</doc>
-        <type name="guint" c:type="guint"/>
-      </return-value>
-      <parameters>
-        <parameter name="priority" transfer-ownership="none">
-          <doc xml:whitespace="preserve">the priority of the frame source. Typically this will be in the range between %G_PRIORITY_DEFAULT and %G_PRIORITY_HIGH.</doc>
-          <type name="gint" c:type="gint"/>
-        </parameter>
-        <parameter name="fps" transfer-ownership="none">
-          <doc xml:whitespace="preserve">the number of times per second to call the function</doc>
-          <type name="guint" c:type="guint"/>
-        </parameter>
-        <parameter name="func"
-                   transfer-ownership="none"
-                   scope="notified"
-                   closure="3"
-                   destroy="4">
-          <doc xml:whitespace="preserve">function to call</doc>
-          <type name="GLib.SourceFunc" c:type="GSourceFunc"/>
-        </parameter>
-        <parameter name="data" transfer-ownership="none">
-          <doc xml:whitespace="preserve">data to pass to the function</doc>
-          <type name="gpointer" c:type="gpointer"/>
-        </parameter>
-        <parameter name="notify" transfer-ownership="none" scope="async">
-          <doc xml:whitespace="preserve">function to call when the timeout source is removed</doc>
-          <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
-        </parameter>
-      </parameters>
-    </function>
-    <constant name="function" value="2294">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="g" value="103">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="gabovedot" value="757">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="gbreve" value="699">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="gcaron" value="16777703">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="gcedilla" value="955">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="gcircumflex" value="760">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <function name="get_accessibility_enabled"
-              c:identifier="clutter_get_accessibility_enabled"
-              version="1.4">
-      <doc xml:whitespace="preserve">Returns whether Clutter has accessibility support enabled.  As
-least, a value of TRUE means that there are a proper AtkUtil
-implementation available</doc>
-      <return-value transfer-ownership="none">
-        <doc xml:whitespace="preserve">%TRUE if Clutter has accessibility support enabled</doc>
-        <type name="gboolean" c:type="gboolean"/>
-      </return-value>
-    </function>
-    <function name="get_actor_by_gid"
-              c:identifier="clutter_get_actor_by_gid"
-              version="0.6">
-      <doc xml:whitespace="preserve">Retrieves the #ClutterActor with @id.
-The returned actor does not have its reference count increased.</doc>
-      <return-value transfer-ownership="none">
-        <doc xml:whitespace="preserve">the actor with the passed id or %NULL.</doc>
-        <type name="Actor" c:type="ClutterActor*"/>
-      </return-value>
-      <parameters>
-        <parameter name="id" transfer-ownership="none">
-          <doc xml:whitespace="preserve">a #ClutterActor ID.</doc>
-          <type name="guint32" c:type="guint32"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="get_current_event"
-              c:identifier="clutter_get_current_event"
-              version="1.2">
-      <doc xml:whitespace="preserve">If an event is currently being processed, return that event.
-This function is intended to be used to access event state
-that might not be exposed by higher-level widgets.  For
-example, to get the key modifier state from a Button 'clicked'
-event.</doc>
-      <return-value transfer-ownership="none">
-        <doc xml:whitespace="preserve">The current ClutterEvent, or %NULL if none</doc>
-        <type name="Event" c:type="ClutterEvent*"/>
-      </return-value>
-    </function>
-    <function name="get_current_event_time"
-              c:identifier="clutter_get_current_event_time"
-              version="1.0">
-      <doc xml:whitespace="preserve">Retrieves the timestamp of the last event, if there is an
-event or if the event has a timestamp.</doc>
-      <return-value transfer-ownership="none">
-        <doc xml:whitespace="preserve">the event timestamp, or %CLUTTER_CURRENT_TIME</doc>
-        <type name="guint32" c:type="guint32"/>
-      </return-value>
-    </function>
-    <function name="get_debug_enabled"
-              c:identifier="clutter_get_debug_enabled">
-      <doc xml:whitespace="preserve">Check if clutter has debugging turned on.</doc>
-      <return-value transfer-ownership="none">
-        <doc xml:whitespace="preserve">TRUE if debugging is turned on, FALSE otherwise.</doc>
-        <type name="gboolean" c:type="gboolean"/>
-      </return-value>
-    </function>
-    <function name="get_default_backend"
-              c:identifier="clutter_get_default_backend"
-              version="0.4">
-      <doc xml:whitespace="preserve">Retrieves the default #ClutterBackend used by Clutter. The
-#ClutterBackend holds backend-specific configuration options.
-not ref or unref the returned object. Applications should rarely
-need to use this.</doc>
-      <return-value transfer-ownership="none">
-        <doc xml:whitespace="preserve">the default backend. You should</doc>
-        <type name="Backend" c:type="ClutterBackend*"/>
-      </return-value>
-    </function>
-    <function name="get_default_frame_rate"
-              c:identifier="clutter_get_default_frame_rate"
-              version="0.6">
-      <doc xml:whitespace="preserve">Retrieves the default frame rate. See clutter_set_default_frame_rate().</doc>
-      <return-value transfer-ownership="none">
-        <doc xml:whitespace="preserve">the default frame rate</doc>
-        <type name="guint" c:type="guint"/>
-      </return-value>
-    </function>
-    <function name="get_default_text_direction"
-              c:identifier="clutter_get_default_text_direction"
-              version="1.2">
-      <doc xml:whitespace="preserve">Retrieves the default direction for the text. The text direction is
-determined by the locale and/or by the %CLUTTER_TEXT_DIRECTION environment
-variable
-The default text direction can be overridden on a per-actor basis by using
-clutter_actor_set_text_direction()</doc>
-      <return-value transfer-ownership="none">
-        <doc xml:whitespace="preserve">the default text direction</doc>
-        <type name="TextDirection" c:type="ClutterTextDirection"/>
-      </return-value>
-    </function>
-    <function name="get_font_flags"
-              c:identifier="clutter_get_font_flags"
-              version="1.0">
-      <doc xml:whitespace="preserve">Gets the current font flags for rendering text. See
-clutter_set_font_flags().</doc>
-      <return-value transfer-ownership="none">
-        <doc xml:whitespace="preserve">The font flags</doc>
-        <type name="FontFlags" c:type="ClutterFontFlags"/>
-      </return-value>
-    </function>
-    <function name="get_font_map"
-              c:identifier="clutter_get_font_map"
-              version="1.0">
-      <doc xml:whitespace="preserve">Retrieves the #PangoFontMap instance used by Clutter.
-You can use the global font map object with the COGL
-Pango API.
-value is owned by Clutter and it should never be unreferenced.</doc>
-      <return-value transfer-ownership="none">
-        <doc xml:whitespace="preserve">the #PangoFontMap instance. The returned</doc>
-        <type name="Pango.FontMap" c:type="PangoFontMap*"/>
-      </return-value>
-    </function>
-    <function name="get_input_device_for_id"
-              c:identifier="clutter_get_input_device_for_id"
-              version="0.8">
-      <doc xml:whitespace="preserve">Retrieves the #ClutterInputDevice from its @id. This is a convenience
-wrapper for clutter_device_manager_get_device() and it is functionally
-equivalent to:
-|[
-ClutterDeviceManager *manager;
-ClutterInputDevice *device;
-manager = clutter_device_manager_get_default ();
-device = clutter_device_manager_get_device (manager, id);
-]|</doc>
-      <return-value transfer-ownership="none">
-        <doc xml:whitespace="preserve">a #ClutterInputDevice, or %NULL</doc>
-        <type name="InputDevice" c:type="ClutterInputDevice*"/>
-      </return-value>
-      <parameters>
-        <parameter name="id" transfer-ownership="none">
-          <doc xml:whitespace="preserve">the unique id for a device</doc>
-          <type name="gint" c:type="gint"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="get_keyboard_grab"
-              c:identifier="clutter_get_keyboard_grab"
-              version="0.6">
-      <doc xml:whitespace="preserve">Queries the current keyboard grab of clutter.</doc>
-      <return-value transfer-ownership="none">
-        <doc xml:whitespace="preserve">the actor currently holding the keyboard grab, or NULL if there is no grab.</doc>
-        <type name="Actor" c:type="ClutterActor*"/>
-      </return-value>
-    </function>
-    <function name="get_motion_events_enabled"
-              c:identifier="clutter_get_motion_events_enabled"
-              version="0.6">
-      <doc xml:whitespace="preserve">Gets whether the per-actor motion events are enabled.</doc>
-      <return-value transfer-ownership="none">
-        <doc xml:whitespace="preserve">%TRUE if the motion events are enabled</doc>
-        <type name="gboolean" c:type="gboolean"/>
-      </return-value>
-    </function>
-    <function name="get_option_group"
-              c:identifier="clutter_get_option_group"
-              version="0.2"
-              introspectable="0">
-      <doc xml:whitespace="preserve">Returns a #GOptionGroup for the command line arguments recognized
-by Clutter. You should add this group to your #GOptionContext with
-g_option_context_add_group(), if you are using g_option_context_parse()
-to parse your commandline arguments.
-Calling g_option_context_parse() with Clutter's #GOptionGroup will result
-in Clutter's initialization. That is, the following code:
-|[
-g_option_context_set_main_group (context, clutter_get_option_group ());
-res = g_option_context_parse (context, &amp;amp;argc, &amp;amp;argc, NULL);
-]|
-is functionally equivalent to:
-|[
-clutter_init (&amp;amp;argc, &amp;amp;argv);
-]|
-After g_option_context_parse() on a #GOptionContext containing the
-Clutter #GOptionGroup has returned %TRUE, Clutter is guaranteed to be
-initialized.
-recognized by Clutter</doc>
-      <return-value transfer-ownership="full">
-        <doc xml:whitespace="preserve">a #GOptionGroup for the commandline arguments</doc>
-        <type name="GLib.OptionGroup" c:type="GOptionGroup*"/>
-      </return-value>
-    </function>
-    <function name="get_option_group_without_init"
-              c:identifier="clutter_get_option_group_without_init"
-              version="0.8.2"
-              introspectable="0">
-      <doc xml:whitespace="preserve">Returns a #GOptionGroup for the command line arguments recognized
-by Clutter. You should add this group to your #GOptionContext with
-g_option_context_add_group(), if you are using g_option_context_parse()
-to parse your commandline arguments. Unlike clutter_get_option_group(),
-calling g_option_context_parse() with the #GOptionGroup returned by this
-function requires a subsequent explicit call to clutter_init(); use this
-function when needing to set foreign display connection with
-clutter_x11_set_display(), or with gtk_clutter_init().
-recognized by Clutter</doc>
-      <return-value transfer-ownership="full">
-        <doc xml:whitespace="preserve">a #GOptionGroup for the commandline arguments</doc>
-        <type name="GLib.OptionGroup" c:type="GOptionGroup*"/>
-      </return-value>
-    </function>
-    <function name="get_pointer_grab"
-              c:identifier="clutter_get_pointer_grab"
-              version="0.6">
-      <doc xml:whitespace="preserve">Queries the current pointer grab of clutter.</doc>
-      <return-value transfer-ownership="none">
-        <doc xml:whitespace="preserve">the actor currently holding the pointer grab, or NULL if there is no grab.</doc>
-        <type name="Actor" c:type="ClutterActor*"/>
-      </return-value>
-    </function>
-    <function name="get_script_id"
-              c:identifier="clutter_get_script_id"
-              version="0.6">
-      <doc xml:whitespace="preserve">Retrieves the Clutter script id, if any.
-a UI definition file. The returned string is owned by the object and
-should never be modified or freed.</doc>
-      <return-value transfer-ownership="none">
-        <doc xml:whitespace="preserve">the script id, or %NULL if @object was not defined inside</doc>
-        <type name="utf8" c:type="gchar*"/>
-      </return-value>
-      <parameters>
-        <parameter name="gobject" transfer-ownership="none">
-          <doc xml:whitespace="preserve">a #GObject</doc>
-          <type name="GObject.Object" c:type="GObject*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="get_show_fps"
-              c:identifier="clutter_get_show_fps"
-              version="0.4">
-      <doc xml:whitespace="preserve">Returns whether Clutter should print out the frames per second on the
-console. You can enable this setting either using the
-&lt;literal&gt;CLUTTER_SHOW_FPS&lt;/literal&gt; environment variable or passing
-the &lt;literal&gt;--clutter-show-fps&lt;/literal&gt; command line argument. *</doc>
-      <return-value transfer-ownership="none">
-        <doc xml:whitespace="preserve">%TRUE if Clutter should show the FPS.</doc>
-        <type name="gboolean" c:type="gboolean"/>
-      </return-value>
-    </function>
-    <function name="get_timestamp" c:identifier="clutter_get_timestamp">
-      <doc xml:whitespace="preserve">Returns the approximate number of microseconds passed since clutter was
-intialised.</doc>
-      <return-value transfer-ownership="none">
-        <doc xml:whitespace="preserve">Number of microseconds since clutter_init() was called.</doc>
-        <type name="gulong" c:type="gulong"/>
-      </return-value>
-    </function>
-    <function name="grab_keyboard"
-              c:identifier="clutter_grab_keyboard"
-              version="0.6">
-      <doc xml:whitespace="preserve">Grabs keyboard events, after the grab is done keyboard
-events (#ClutterActor::key-press-event and #ClutterActor::key-release-event)
-are delivered to this actor directly. The source set in the event will be
-the actor that would have received the event if the keyboard grab was not
-in effect.
-Like pointer grabs, keyboard grabs should only be used as a last
-resource.
-See also clutter_stage_set_key_focus() and clutter_actor_grab_key_focus()
-to perform a "soft" key grab and assign key focus to a specific actor.</doc>
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="actor" transfer-ownership="none">
-          <doc xml:whitespace="preserve">a #ClutterActor</doc>
-          <type name="Actor" c:type="ClutterActor*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="grab_pointer"
-              c:identifier="clutter_grab_pointer"
-              version="0.6">
-      <doc xml:whitespace="preserve">Grabs pointer events, after the grab is done all pointer related events
-(press, motion, release, enter, leave and scroll) are delivered to this
-actor directly without passing through both capture and bubble phases of
-the event delivery chain. The source set in the event will be the actor
-that would have received the event if the pointer grab was not in effect.
-&lt;note&gt;&lt;para&gt;Grabs completely override the entire event delivery chain
-done by Clutter. Pointer grabs should only be used as a last resource;
-using the #ClutterActor::captured-event signal should always be the
-preferred way to intercept event delivery to reactive actors.&lt;/para&gt;&lt;/note&gt;
-If you wish to grab all the pointer events for a specific input device,
-you should use clutter_grab_pointer_for_device().</doc>
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="actor" transfer-ownership="none">
-          <doc xml:whitespace="preserve">a #ClutterActor</doc>
-          <type name="Actor" c:type="ClutterActor*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="grab_pointer_for_device"
-              c:identifier="clutter_grab_pointer_for_device"
-              version="0.8">
-      <doc xml:whitespace="preserve">Grabs all the pointer events coming from the device @id for @actor.
-If @id is -1 then this function is equivalent to clutter_grab_pointer().</doc>
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="actor" transfer-ownership="none">
-          <doc xml:whitespace="preserve">a #ClutterActor</doc>
-          <type name="Actor" c:type="ClutterActor*"/>
-        </parameter>
-        <parameter name="id" transfer-ownership="none">
-          <doc xml:whitespace="preserve">a device id, or -1</doc>
-          <type name="gint" c:type="gint"/>
-        </parameter>
-      </parameters>
-    </function>
-    <constant name="grave" value="96">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="greater" value="62">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="greaterthanequal" value="2238">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="guillemotleft" value="171">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="guillemotright" value="187">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="h" value="104">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="hairspace" value="2728">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="hcircumflex" value="694">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="heart" value="2798">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="hebrew_aleph" value="3296">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="hebrew_ayin" value="3314">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="hebrew_bet" value="3297">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="hebrew_beth" value="3297">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="hebrew_chet" value="3303">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="hebrew_dalet" value="3299">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="hebrew_daleth" value="3299">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="hebrew_doublelowline" value="3295">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="hebrew_finalkaph" value="3306">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="hebrew_finalmem" value="3309">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="hebrew_finalnun" value="3311">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="hebrew_finalpe" value="3315">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="hebrew_finalzade" value="3317">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="hebrew_finalzadi" value="3317">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="hebrew_gimel" value="3298">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="hebrew_gimmel" value="3298">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="hebrew_he" value="3300">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="hebrew_het" value="3303">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="hebrew_kaph" value="3307">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="hebrew_kuf" value="3319">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="hebrew_lamed" value="3308">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="hebrew_mem" value="3310">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="hebrew_nun" value="3312">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="hebrew_pe" value="3316">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="hebrew_qoph" value="3319">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="hebrew_resh" value="3320">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="hebrew_samech" value="3313">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="hebrew_samekh" value="3313">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="hebrew_shin" value="3321">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="hebrew_taf" value="3322">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="hebrew_taw" value="3322">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="hebrew_tet" value="3304">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="hebrew_teth" value="3304">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="hebrew_waw" value="3301">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="hebrew_yod" value="3305">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="hebrew_zade" value="3318">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="hebrew_zadi" value="3318">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="hebrew_zain" value="3302">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="hebrew_zayin" value="3302">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="hexagram" value="2778">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="horizconnector" value="2211">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="horizlinescan1" value="2543">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="horizlinescan3" value="2544">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="horizlinescan5" value="2545">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="horizlinescan7" value="2546">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="horizlinescan9" value="2547">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="hstroke" value="689">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="ht" value="2530">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="hyphen" value="173">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="i" value="105">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="iTouch" value="269025120">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="iacute" value="237">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="ibelowdot" value="16785099">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="ibreve" value="16777517">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="icircumflex" value="238">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="identical" value="2255">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="idiaeresis" value="239">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="idotless" value="697">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="ifonlyif" value="2253">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="igrave" value="236">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="ihook" value="16785097">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="imacron" value="1007">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="implies" value="2254">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="includedin" value="2266">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="includes" value="2267">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="infinity" value="2242">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <function name="init" c:identifier="clutter_init">
-      <doc xml:whitespace="preserve">It will initialise everything needed to operate with Clutter and
-parses some standard command line options. @argc and @argv are
-adjusted accordingly so your own code will never see those standard
-arguments.</doc>
-      <return-value transfer-ownership="none">
-        <doc xml:whitespace="preserve">1 on success, &lt; 0 on failure.</doc>
-        <type name="InitError" c:type="ClutterInitError"/>
-      </return-value>
-      <parameters>
-        <parameter name="argc"
-                   direction="inout"
-                   caller-allocates="0"
-                   transfer-ownership="full">
-          <doc xml:whitespace="preserve">The number of arguments in @argv</doc>
-          <type name="gint" c:type="int*"/>
-        </parameter>
-        <parameter name="argv"
-                   direction="inout"
-                   caller-allocates="0"
-                   transfer-ownership="full"
-                   allow-none="1">
-          <doc xml:whitespace="preserve">A pointer to an array of arguments.</doc>
-          <array length="0" c:type="char***">
-            <type name="utf8"/>
-          </array>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="init_error_quark" c:identifier="clutter_init_error_quark">
-      <return-value transfer-ownership="none">
-        <type name="GLib.Quark" c:type="GQuark"/>
-      </return-value>
-    </function>
-    <function name="init_with_args"
-              c:identifier="clutter_init_with_args"
-              version="0.2"
-              throws="1">
-      <doc xml:whitespace="preserve">This function does the same work as clutter_init(). Additionally,
-it allows you to add your own command line options, and it
-automatically generates nicely formatted &lt;option&gt;--help&lt;/option&gt;
-output. Note that your program will be terminated after writing
-out the help output. Also note that, in case of error, the
-error message will be placed inside @error instead of being
-printed on the display.
-initialised, or other values or #ClutterInitError in case of
-error.</doc>
-      <return-value transfer-ownership="none">
-        <doc xml:whitespace="preserve">%CLUTTER_INIT_SUCCESS if Clutter has been successfully</doc>
-        <type name="InitError" c:type="ClutterInitError"/>
-      </return-value>
-      <parameters>
-        <parameter name="argc"
-                   direction="inout"
-                   caller-allocates="0"
-                   transfer-ownership="full">
-          <doc xml:whitespace="preserve">a pointer to the number of command line arguments</doc>
-          <type name="gint" c:type="int*"/>
-        </parameter>
-        <parameter name="argv"
-                   direction="inout"
-                   caller-allocates="0"
-                   transfer-ownership="full"
-                   allow-none="1">
-          <doc xml:whitespace="preserve">a pointer to the array of command line arguments</doc>
-          <array length="0" c:type="char***">
-            <type name="utf8"/>
-          </array>
-        </parameter>
-        <parameter name="parameter_string"
-                   transfer-ownership="none"
-                   allow-none="1">
-          <doc xml:whitespace="preserve">a string which is displayed in the first line of &lt;option&gt;--help&lt;/option&gt; output, after &lt;literal&gt;&lt;replaceable&gt;programname&lt;/replaceable&gt; [OPTION...]&lt;/literal&gt;</doc>
-          <type name="utf8" c:type="char*"/>
-        </parameter>
-        <parameter name="entries" transfer-ownership="none" allow-none="1">
-          <doc xml:whitespace="preserve">a %NULL terminated array of #GOptionEntry&lt;!-- --&gt;s describing the options of your program</doc>
-          <type name="GLib.OptionEntry" c:type="GOptionEntry*"/>
-        </parameter>
-        <parameter name="translation_domain"
-                   transfer-ownership="none"
-                   allow-none="1">
-          <doc xml:whitespace="preserve">a translation domain to use for translating the &lt;option&gt;--help&lt;/option&gt; output for the options in</doc>
-          <type name="utf8" c:type="char*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <constant name="integral" value="2239">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="intersection" value="2268">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="iogonek" value="999">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="itilde" value="949">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="j" value="106">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="jcircumflex" value="700">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="jot" value="3018">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="k" value="107">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="kana_A" value="1201">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="kana_CHI" value="1217">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="kana_E" value="1204">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="kana_FU" value="1228">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="kana_HA" value="1226">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="kana_HE" value="1229">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="kana_HI" value="1227">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="kana_HO" value="1230">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="kana_HU" value="1228">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="kana_I" value="1202">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="kana_KA" value="1206">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="kana_KE" value="1209">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="kana_KI" value="1207">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="kana_KO" value="1210">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="kana_KU" value="1208">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="kana_MA" value="1231">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="kana_ME" value="1234">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="kana_MI" value="1232">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="kana_MO" value="1235">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="kana_MU" value="1233">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="kana_N" value="1245">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="kana_NA" value="1221">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="kana_NE" value="1224">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="kana_NI" value="1222">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="kana_NO" value="1225">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="kana_NU" value="1223">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="kana_O" value="1205">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="kana_RA" value="1239">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="kana_RE" value="1242">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="kana_RI" value="1240">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="kana_RO" value="1243">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="kana_RU" value="1241">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="kana_SA" value="1211">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="kana_SE" value="1214">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="kana_SHI" value="1212">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="kana_SO" value="1215">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="kana_SU" value="1213">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="kana_TA" value="1216">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="kana_TE" value="1219">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="kana_TI" value="1217">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="kana_TO" value="1220">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="kana_TSU" value="1218">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="kana_TU" value="1218">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="kana_U" value="1203">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="kana_WA" value="1244">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="kana_WO" value="1190">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="kana_YA" value="1236">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="kana_YO" value="1238">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="kana_YU" value="1237">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="kana_a" value="1191">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="kana_closingbracket" value="1187">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="kana_comma" value="1188">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="kana_conjunctive" value="1189">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="kana_e" value="1194">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="kana_fullstop" value="1185">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="kana_i" value="1192">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="kana_middledot" value="1189">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="kana_o" value="1195">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="kana_openingbracket" value="1186">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="kana_switch" value="65406">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="kana_tsu" value="1199">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="kana_tu" value="1199">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="kana_u" value="1193">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="kana_ya" value="1196">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="kana_yo" value="1198">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="kana_yu" value="1197">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="kappa" value="930">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="kcedilla" value="1011">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <function name="keysym_to_unicode"
-              c:identifier="clutter_keysym_to_unicode">
-      <doc xml:whitespace="preserve">Convert from a Clutter key symbol to the corresponding ISO10646 (Unicode)
-character.
-character.</doc>
-      <return-value transfer-ownership="none">
-        <doc xml:whitespace="preserve">a Unicode character, or 0 if there  is no corresponding</doc>
-        <type name="guint32" c:type="guint32"/>
-      </return-value>
-      <parameters>
-        <parameter name="keyval" transfer-ownership="none">
-          <doc xml:whitespace="preserve">a key symbol</doc>
-          <type name="guint" c:type="guint"/>
-        </parameter>
-      </parameters>
-    </function>
-    <constant name="kra" value="930">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="l" value="108">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="lacute" value="485">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="latincross" value="2777">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="lbelowdot" value="16784951">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="lcaron" value="437">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="lcedilla" value="950">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="leftanglebracket" value="2748">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="leftarrow" value="2299">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="leftcaret" value="2979">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="leftdoublequotemark" value="2770">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="leftmiddlecurlybrace" value="2223">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="leftopentriangle" value="2764">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="leftpointer" value="2794">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="leftradical" value="2209">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="leftshoe" value="3034">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="leftsinglequotemark" value="2768">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="leftt" value="2548">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="lefttack" value="3036">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="less" value="60">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="lessthanequal" value="2236">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="lf" value="2533">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="logicaland" value="2270">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="logicalor" value="2271">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="lowleftcorner" value="2541">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="lowrightcorner" value="2538">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="lstroke" value="435">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="m" value="109">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="mabovedot" value="16784961">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="macron" value="175">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <function name="main" c:identifier="clutter_main">
-      <doc xml:whitespace="preserve">Starts the Clutter mainloop.</doc>
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-    </function>
-    <function name="main_level" c:identifier="clutter_main_level">
-      <doc xml:whitespace="preserve">Retrieves the depth of the Clutter mainloop.</doc>
-      <return-value transfer-ownership="none">
-        <doc xml:whitespace="preserve">The level of the mainloop.</doc>
-        <type name="gint" c:type="gint"/>
-      </return-value>
-    </function>
-    <function name="main_quit" c:identifier="clutter_main_quit">
-      <doc xml:whitespace="preserve">Terminates the Clutter mainloop.</doc>
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-    </function>
-    <constant name="malesymbol" value="2807">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="maltesecross" value="2800">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="marker" value="2751">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="masculine" value="186">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="minus" value="45">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="minutes" value="2774">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="mu" value="181">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="multiply" value="215">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="musicalflat" value="2806">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="musicalsharp" value="2805">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="n" value="110">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="nabla" value="2245">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="nacute" value="497">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="ncaron" value="498">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="ncedilla" value="1009">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="ninesubscript" value="16785545">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="ninesuperior" value="16785529">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="nl" value="2536">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="nobreakspace" value="160">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="notapproxeq" value="16785991">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="notelementof" value="16785929">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="notequal" value="2237">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="notidentical" value="16786018">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="notsign" value="172">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="ntilde" value="241">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="numbersign" value="35">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="numerosign" value="1712">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="o" value="111">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="oacute" value="243">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="obarred" value="16777845">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="obelowdot" value="16785101">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="ocaron" value="16777682">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="ocircumflex" value="244">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="ocircumflexacute" value="16785105">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="ocircumflexbelowdot" value="16785113">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="ocircumflexgrave" value="16785107">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="ocircumflexhook" value="16785109">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="ocircumflextilde" value="16785111">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="odiaeresis" value="246">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="odoubleacute" value="501">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="oe" value="5053">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="ogonek" value="434">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="ograve" value="242">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="ohook" value="16785103">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="ohorn" value="16777633">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="ohornacute" value="16785115">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="ohornbelowdot" value="16785123">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="ohorngrave" value="16785117">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="ohornhook" value="16785119">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="ohorntilde" value="16785121">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="omacron" value="1010">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="oneeighth" value="2755">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="onefifth" value="2738">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="onehalf" value="189">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="onequarter" value="188">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="onesixth" value="2742">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="onesubscript" value="16785537">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="onesuperior" value="185">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="onethird" value="2736">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="ooblique" value="248">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="openrectbullet" value="2786">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="openstar" value="2789">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="opentribulletdown" value="2788">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="opentribulletup" value="2787">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="ordfeminine" value="170">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="oslash" value="248">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="otilde" value="245">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="overbar" value="3008">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="overline" value="1150">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="p" value="112">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="pabovedot" value="16784983">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="paragraph" value="182">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <function name="param_spec_color"
-              c:identifier="clutter_param_spec_color"
-              version="0.8.4"
-              introspectable="0">
-      <doc xml:whitespace="preserve">Creates a #GParamSpec for properties using #ClutterColor.</doc>
-      <return-value>
-        <doc xml:whitespace="preserve">the newly created #GParamSpec</doc>
-        <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
-      </return-value>
-      <parameters>
-        <parameter name="name" transfer-ownership="none">
-          <doc xml:whitespace="preserve">name of the property</doc>
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-        <parameter name="nick" transfer-ownership="none">
-          <doc xml:whitespace="preserve">short name</doc>
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-        <parameter name="blurb" transfer-ownership="none">
-          <doc xml:whitespace="preserve">description (can be translatable)</doc>
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-        <parameter name="default_value" transfer-ownership="none">
-          <doc xml:whitespace="preserve">default value</doc>
-          <type name="Color" c:type="ClutterColor*"/>
-        </parameter>
-        <parameter name="flags" transfer-ownership="none">
-          <doc xml:whitespace="preserve">flags for the param spec</doc>
-          <type name="GObject.ParamFlags" c:type="GParamFlags"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="param_spec_fixed"
-              c:identifier="clutter_param_spec_fixed"
-              version="0.8"
-              introspectable="0">
-      <doc xml:whitespace="preserve">Creates a #GParamSpec for properties using #CoglFixed values</doc>
-      <return-value>
-        <doc xml:whitespace="preserve">the newly created #GParamSpec</doc>
-        <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
-      </return-value>
-      <parameters>
-        <parameter name="name" transfer-ownership="none">
-          <doc xml:whitespace="preserve">name of the property</doc>
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-        <parameter name="nick" transfer-ownership="none">
-          <doc xml:whitespace="preserve">short name</doc>
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-        <parameter name="blurb" transfer-ownership="none">
-          <doc xml:whitespace="preserve">description (can be translatable)</doc>
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-        <parameter name="minimum" transfer-ownership="none">
-          <doc xml:whitespace="preserve">lower boundary</doc>
-          <type name="Cogl.Fixed" c:type="CoglFixed"/>
-        </parameter>
-        <parameter name="maximum" transfer-ownership="none">
-          <doc xml:whitespace="preserve">higher boundary</doc>
-          <type name="Cogl.Fixed" c:type="CoglFixed"/>
-        </parameter>
-        <parameter name="default_value" transfer-ownership="none">
-          <doc xml:whitespace="preserve">default value</doc>
-          <type name="Cogl.Fixed" c:type="CoglFixed"/>
-        </parameter>
-        <parameter name="flags" transfer-ownership="none">
-          <doc xml:whitespace="preserve">flags for the param spec</doc>
-          <type name="GObject.ParamFlags" c:type="GParamFlags"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="param_spec_units"
-              c:identifier="clutter_param_spec_units"
-              version="1.0"
-              introspectable="0">
-      <doc xml:whitespace="preserve">Creates a #GParamSpec for properties using #ClutterUnits.</doc>
-      <return-value>
-        <doc xml:whitespace="preserve">the newly created #GParamSpec</doc>
-        <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
-      </return-value>
-      <parameters>
-        <parameter name="name" transfer-ownership="none">
-          <doc xml:whitespace="preserve">name of the property</doc>
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-        <parameter name="nick" transfer-ownership="none">
-          <doc xml:whitespace="preserve">short name</doc>
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-        <parameter name="blurb" transfer-ownership="none">
-          <doc xml:whitespace="preserve">description (can be translatable)</doc>
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-        <parameter name="default_type" transfer-ownership="none">
-          <doc xml:whitespace="preserve">the default type for the #ClutterUnits</doc>
-          <type name="UnitType" c:type="ClutterUnitType"/>
-        </parameter>
-        <parameter name="minimum" transfer-ownership="none">
-          <doc xml:whitespace="preserve">lower boundary</doc>
-          <type name="gfloat" c:type="gfloat"/>
-        </parameter>
-        <parameter name="maximum" transfer-ownership="none">
-          <doc xml:whitespace="preserve">higher boundary</doc>
-          <type name="gfloat" c:type="gfloat"/>
-        </parameter>
-        <parameter name="default_value" transfer-ownership="none">
-          <doc xml:whitespace="preserve">default value</doc>
-          <type name="gfloat" c:type="gfloat"/>
-        </parameter>
-        <parameter name="flags" transfer-ownership="none">
-          <doc xml:whitespace="preserve">flags for the param spec</doc>
-          <type name="GObject.ParamFlags" c:type="GParamFlags"/>
-        </parameter>
-      </parameters>
-    </function>
-    <constant name="parenleft" value="40">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="parenright" value="41">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="partdifferential" value="16785922">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="partialderivative" value="2287">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="percent" value="37">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="period" value="46">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="periodcentered" value="183">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="phonographcopyright" value="2811">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="plus" value="43">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="plusminus" value="177">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="prescription" value="2772">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="prolongedsound" value="1200">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="punctspace" value="2726">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="q" value="113">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="quad" value="3020">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="question" value="63">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="questiondown" value="191">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="quotedbl" value="34">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="quoteleft" value="96">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="quoteright" value="39">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="r" value="114">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="racute" value="480">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="radical" value="2262">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="rcaron" value="504">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="rcedilla" value="947">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <function name="redraw" c:identifier="clutter_redraw">
-      <doc xml:whitespace="preserve">Forces a redraw of the entire stage. Applications should never use this
-function, but queue a redraw using clutter_actor_queue_redraw().
-This function should only be used by libraries integrating Clutter from
-within another toolkit.</doc>
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="stage" transfer-ownership="none">
-          <type name="Stage" c:type="ClutterStage*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <constant name="registered" value="174">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="rightanglebracket" value="2750">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="rightarrow" value="2301">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="rightcaret" value="2982">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="rightdoublequotemark" value="2771">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="rightmiddlecurlybrace" value="2224">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="rightmiddlesummation" value="2231">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="rightopentriangle" value="2765">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="rightpointer" value="2795">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="rightshoe" value="3032">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="rightsinglequotemark" value="2769">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="rightt" value="2549">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="righttack" value="3068">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="s" value="115">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="sabovedot" value="16784993">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="sacute" value="438">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="scaron" value="441">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="scedilla" value="442">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="schwa" value="16777817">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="scircumflex" value="766">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <function name="script_error_quark"
-              c:identifier="clutter_script_error_quark">
-      <return-value transfer-ownership="none">
-        <type name="GLib.Quark" c:type="GQuark"/>
-      </return-value>
-    </function>
-    <constant name="script_switch" value="65406">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="seconds" value="2775">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="section" value="167">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="semicolon" value="59">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="semivoicedsound" value="1247">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <function name="set_default_frame_rate"
-              c:identifier="clutter_set_default_frame_rate"
-              version="0.6">
-      <doc xml:whitespace="preserve">Sets the default frame rate. This frame rate will be used to limit
-the number of frames drawn if Clutter is not able to synchronize
-with the vertical refresh rate of the display. When synchronization
-is possible, this value is ignored.</doc>
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="frames_per_sec" transfer-ownership="none">
-          <doc xml:whitespace="preserve">the new default frame rate</doc>
-          <type name="guint" c:type="guint"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="set_font_flags"
-              c:identifier="clutter_set_font_flags"
-              version="1.0">
-      <doc xml:whitespace="preserve">Sets the font quality options for subsequent text rendering
-operations.
-Using mipmapped textures will improve the quality for scaled down
-text but will use more texture memory.
-Enabling hinting improves text quality for static text but may
-introduce some artifacts if the text is animated.</doc>
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="flags" transfer-ownership="none">
-          <doc xml:whitespace="preserve">The new flags</doc>
-          <type name="FontFlags" c:type="ClutterFontFlags"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="set_motion_events_enabled"
-              c:identifier="clutter_set_motion_events_enabled"
-              version="0.6">
-      <doc xml:whitespace="preserve">Sets whether per-actor motion events should be enabled or not (the
-default is to enable them).
-If @enable is %FALSE the following events will not work:
-&lt;itemizedlist&gt;
-&lt;listitem&gt;&lt;para&gt;ClutterActor::motion-event, unless on the
-#ClutterStage&lt;/para&gt;&lt;/listitem&gt;
-&lt;listitem&gt;&lt;para&gt;ClutterActor::enter-event&lt;/para&gt;&lt;/listitem&gt;
-&lt;listitem&gt;&lt;para&gt;ClutterActor::leave-event&lt;/para&gt;&lt;/listitem&gt;
-&lt;/itemizedlist&gt;</doc>
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="enable" transfer-ownership="none">
-          <doc xml:whitespace="preserve">%TRUE to enable per-actor motion events</doc>
-          <type name="gboolean" c:type="gboolean"/>
-        </parameter>
-      </parameters>
-    </function>
-    <constant name="seveneighths" value="2758">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="sevensubscript" value="16785543">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="sevensuperior" value="16785527">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <function name="shader_error_quark"
-              c:identifier="clutter_shader_error_quark">
-      <return-value transfer-ownership="none">
-        <type name="GLib.Quark" c:type="GQuark"/>
-      </return-value>
-    </function>
-    <function name="shader_float_get_type"
-              c:identifier="clutter_shader_float_get_type">
-      <return-value transfer-ownership="none">
-        <type name="GType" c:type="GType"/>
-      </return-value>
-    </function>
-    <function name="shader_int_get_type"
-              c:identifier="clutter_shader_int_get_type">
-      <return-value transfer-ownership="none">
-        <type name="GType" c:type="GType"/>
-      </return-value>
-    </function>
-    <function name="shader_matrix_get_type"
-              c:identifier="clutter_shader_matrix_get_type">
-      <return-value transfer-ownership="none">
-        <type name="GType" c:type="GType"/>
-      </return-value>
-    </function>
-    <constant name="signaturemark" value="2762">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="signifblank" value="2732">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="similarequal" value="2249">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="singlelowquotemark" value="2813">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="sixsubscript" value="16785542">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="sixsuperior" value="16785526">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="slash" value="47">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="soliddiamond" value="2528">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="space" value="32">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="squareroot" value="16785946">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="ssharp" value="223">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="sterling" value="163">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="stricteq" value="16786019">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="t" value="116">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="tabovedot" value="16785003">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="tcaron" value="443">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="tcedilla" value="510">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="telephone" value="2809">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="telephonerecorder" value="2810">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <function name="texture_error_quark"
-              c:identifier="clutter_texture_error_quark">
-      <return-value transfer-ownership="none">
-        <type name="GLib.Quark" c:type="GQuark"/>
-      </return-value>
-    </function>
-    <constant name="therefore" value="2240">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="thinspace" value="2727">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="thorn" value="254">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <function name="threads_add_frame_source"
-              c:identifier="clutter_threads_add_frame_source"
-              shadowed-by="threads_add_frame_source_full"
-              version="0.8"
-              introspectable="0">
-      <doc xml:whitespace="preserve">Simple wrapper around clutter_threads_add_frame_source_full().</doc>
-      <return-value transfer-ownership="none">
-        <doc xml:whitespace="preserve">the ID (greater than 0) of the event source.</doc>
-        <type name="guint" c:type="guint"/>
-      </return-value>
-      <parameters>
-        <parameter name="fps" transfer-ownership="none">
-          <doc xml:whitespace="preserve">the number of times per second to call the function</doc>
-          <type name="guint" c:type="guint"/>
-        </parameter>
-        <parameter name="func" transfer-ownership="none" closure="2">
-          <doc xml:whitespace="preserve">function to call</doc>
-          <type name="GLib.SourceFunc" c:type="GSourceFunc"/>
-        </parameter>
-        <parameter name="data" transfer-ownership="none">
-          <doc xml:whitespace="preserve">data to pass to the function</doc>
-          <type name="gpointer" c:type="gpointer"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="threads_add_frame_source_full"
-              c:identifier="clutter_threads_add_frame_source_full"
-              shadows="threads_add_frame_source"
-              version="0.8">
-      <doc xml:whitespace="preserve">Sets a function to be called at regular intervals holding the Clutter
-threads lock, with the given priority. The function is called repeatedly
-until it returns %FALSE, at which point the timeout is automatically
-removed and the function will not be called again. The @notify function
-is called when the timeout is removed.
-This function is similar to clutter_threads_add_timeout_full()
-except that it will try to compensate for delays. For example, if
-will be called again half the interval time after it finished. In
-contrast clutter_threads_add_timeout_full() would not fire until a
-full interval after the function completes so the delay between
-calls would be @interval * 1.5. This function does not however try
-to invoke the function multiple times to catch up missing frames if
-See also clutter_threads_add_idle_full().</doc>
-      <return-value transfer-ownership="none">
-        <doc xml:whitespace="preserve">the ID (greater than 0) of the event source.</doc>
-        <type name="guint" c:type="guint"/>
-      </return-value>
-      <parameters>
-        <parameter name="priority" transfer-ownership="none">
-          <doc xml:whitespace="preserve">the priority of the frame source. Typically this will be in the range between #G_PRIORITY_DEFAULT and #G_PRIORITY_HIGH.</doc>
-          <type name="gint" c:type="gint"/>
-        </parameter>
-        <parameter name="fps" transfer-ownership="none">
-          <doc xml:whitespace="preserve">the number of times per second to call the function</doc>
-          <type name="guint" c:type="guint"/>
-        </parameter>
-        <parameter name="func"
-                   transfer-ownership="none"
-                   scope="notified"
-                   closure="3"
-                   destroy="4">
-          <doc xml:whitespace="preserve">function to call</doc>
-          <type name="GLib.SourceFunc" c:type="GSourceFunc"/>
-        </parameter>
-        <parameter name="data" transfer-ownership="none">
-          <doc xml:whitespace="preserve">data to pass to the function</doc>
-          <type name="gpointer" c:type="gpointer"/>
-        </parameter>
-        <parameter name="notify" transfer-ownership="none" scope="async">
-          <doc xml:whitespace="preserve">function to call when the timeout source is removed</doc>
-          <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="threads_add_idle"
-              c:identifier="clutter_threads_add_idle"
-              shadowed-by="threads_add_idle_full"
-              version="0.4"
-              introspectable="0">
-      <doc xml:whitespace="preserve">Simple wrapper around clutter_threads_add_idle_full() using the
-default priority.</doc>
-      <return-value transfer-ownership="none">
-        <doc xml:whitespace="preserve">the ID (greater than 0) of the event source.</doc>
-        <type name="guint" c:type="guint"/>
-      </return-value>
-      <parameters>
-        <parameter name="func" transfer-ownership="none" closure="1">
-          <doc xml:whitespace="preserve">function to call</doc>
-          <type name="GLib.SourceFunc" c:type="GSourceFunc"/>
-        </parameter>
-        <parameter name="data" transfer-ownership="none">
-          <doc xml:whitespace="preserve">data to pass to the function</doc>
-          <type name="gpointer" c:type="gpointer"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="threads_add_idle_full"
-              c:identifier="clutter_threads_add_idle_full"
-              shadows="threads_add_idle"
-              version="0.4">
-      <doc xml:whitespace="preserve">Adds a function to be called whenever there are no higher priority
-events pending. If the function returns %FALSE it is automatically
-removed from the list of event sources and will not be called again.
-This function can be considered a thread-safe variant of g_idle_add_full():
-it will call @function while holding the Clutter lock. It is logically
-equivalent to the following implementation:
-|[
-static gboolean
-idle_safe_callback (gpointer data)
-{
-SafeClosure *closure = data;
-gboolean res = FALSE;
-/&amp;ast; mark the critical section &amp;ast;/
-clutter_threads_enter();
-/&amp;ast; the callback does not need to acquire the Clutter
-&amp;ast; lock itself, as it is held by the this proxy handler
-&amp;ast;/
-res = closure-&gt;callback (closure-&gt;data);
-clutter_threads_leave();
-return res;
-}
-static gulong
-add_safe_idle (GSourceFunc callback,
-gpointer    data)
-{
-SafeClosure *closure = g_new0 (SafeClosure, 1);
-closure-&amp;gt;callback = callback;
-closure-&amp;gt;data = data;
-return g_add_idle_full (G_PRIORITY_DEFAULT_IDLE,
-idle_safe_callback,
-closure,
-g_free)
-}
-]|
-This function should be used by threaded applications to make sure
-that @func is emitted under the Clutter threads lock and invoked
-from the same thread that started the Clutter main loop. For instance,
-it can be used to update the UI using the results from a worker
-thread:
-|[
-static gboolean
-update_ui (gpointer data)
-{
-SomeClosure *closure = data;
-/&amp;ast; it is safe to call Clutter API from this function because
-&amp;ast; it is invoked from the same thread that started the main
-&amp;ast; loop and under the Clutter thread lock
-&amp;ast;/
-clutter_label_set_text (CLUTTER_LABEL (closure-&amp;gt;label),
-closure-&amp;gt;text);
-g_object_unref (closure-&amp;gt;label);
-g_free (closure);
-return FALSE;
-}
-/&amp;ast; within another thread &amp;ast;/
-closure = g_new0 (SomeClosure, 1);
-/&amp;ast; always take a reference on GObject instances &amp;ast;/
-closure-&amp;gt;label = g_object_ref (my_application-&amp;gt;label);
-closure-&amp;gt;text = g_strdup (processed_text_to_update_the_label);
-clutter_threads_add_idle_full (G_PRIORITY_HIGH_IDLE,
-update_ui,
-closure,
-NULL);
-]|</doc>
-      <return-value transfer-ownership="none">
-        <doc xml:whitespace="preserve">the ID (greater than 0) of the event source.</doc>
-        <type name="guint" c:type="guint"/>
-      </return-value>
-      <parameters>
-        <parameter name="priority" transfer-ownership="none">
-          <doc xml:whitespace="preserve">the priority of the timeout source. Typically this will be in the range between #G_PRIORITY_DEFAULT_IDLE and #G_PRIORITY_HIGH_IDLE</doc>
-          <type name="gint" c:type="gint"/>
-        </parameter>
-        <parameter name="func"
-                   transfer-ownership="none"
-                   scope="notified"
-                   closure="2"
-                   destroy="3">
-          <doc xml:whitespace="preserve">function to call</doc>
-          <type name="GLib.SourceFunc" c:type="GSourceFunc"/>
-        </parameter>
-        <parameter name="data" transfer-ownership="none">
-          <doc xml:whitespace="preserve">data to pass to the function</doc>
-          <type name="gpointer" c:type="gpointer"/>
-        </parameter>
-        <parameter name="notify" transfer-ownership="none" scope="async">
-          <doc xml:whitespace="preserve">functio to call when the idle source is removed</doc>
-          <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="threads_add_repaint_func"
-              c:identifier="clutter_threads_add_repaint_func"
-              version="1.0">
-      <doc xml:whitespace="preserve">Adds a function to be called whenever Clutter is repainting a Stage.
-If the function returns %FALSE it is automatically removed from the
-list of repaint functions and will not be called again.
-This function is guaranteed to be called from within the same thread
-that called clutter_main(), and while the Clutter lock is being held.
-A repaint function is useful to ensure that an update of the scenegraph
-is performed before the scenegraph is repainted; for instance, uploading
-a frame from a video into a #ClutterTexture.
-When the repaint function is removed (either because it returned %FALSE
-or because clutter_threads_remove_repaint_func() has been called) the
-can use the returned integer to remove the repaint function by
-calling clutter_threads_remove_repaint_func().</doc>
-      <return-value transfer-ownership="none">
-        <doc xml:whitespace="preserve">the ID (greater than 0) of the repaint function. You</doc>
-        <type name="guint" c:type="guint"/>
-      </return-value>
-      <parameters>
-        <parameter name="func"
-                   transfer-ownership="none"
-                   scope="notified"
-                   closure="1"
-                   destroy="2">
-          <doc xml:whitespace="preserve">the function to be called within the paint cycle</doc>
-          <type name="GLib.SourceFunc" c:type="GSourceFunc"/>
-        </parameter>
-        <parameter name="data" transfer-ownership="none">
-          <doc xml:whitespace="preserve">data to be passed to the function, or %NULL</doc>
-          <type name="gpointer" c:type="gpointer"/>
-        </parameter>
-        <parameter name="notify" transfer-ownership="none" scope="async">
-          <doc xml:whitespace="preserve">function to be called when removing the repaint function, or %NULL</doc>
-          <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="threads_add_timeout"
-              c:identifier="clutter_threads_add_timeout"
-              shadowed-by="threads_add_timeout_full"
-              version="0.4"
-              introspectable="0">
-      <doc xml:whitespace="preserve">Simple wrapper around clutter_threads_add_timeout_full().</doc>
-      <return-value transfer-ownership="none">
-        <doc xml:whitespace="preserve">the ID (greater than 0) of the event source.</doc>
-        <type name="guint" c:type="guint"/>
-      </return-value>
-      <parameters>
-        <parameter name="interval" transfer-ownership="none">
-          <doc xml:whitespace="preserve">the time between calls to the function, in milliseconds</doc>
-          <type name="guint" c:type="guint"/>
-        </parameter>
-        <parameter name="func" transfer-ownership="none" closure="2">
-          <doc xml:whitespace="preserve">function to call</doc>
-          <type name="GLib.SourceFunc" c:type="GSourceFunc"/>
-        </parameter>
-        <parameter name="data" transfer-ownership="none">
-          <doc xml:whitespace="preserve">data to pass to the function</doc>
-          <type name="gpointer" c:type="gpointer"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="threads_add_timeout_full"
-              c:identifier="clutter_threads_add_timeout_full"
-              shadows="threads_add_timeout"
-              version="0.4">
-      <doc xml:whitespace="preserve">Sets a function to be called at regular intervals holding the Clutter
-threads lock, with the given priority. The function is called repeatedly
-until it returns %FALSE, at which point the timeout is automatically
-removed and the function will not be called again. The @notify function
-is called when the timeout is removed.
-The first call to the function will be at the end of the first @interval.
-It is important to note that, due to how the Clutter main loop is
-implemented, the timing will not be accurate and it will not try to
-"keep up" with the interval. A more reliable source is available
-using clutter_threads_add_frame_source_full(), which is also internally
-used by #ClutterTimeline.
-See also clutter_threads_add_idle_full().</doc>
-      <return-value transfer-ownership="none">
-        <doc xml:whitespace="preserve">the ID (greater than 0) of the event source.</doc>
-        <type name="guint" c:type="guint"/>
-      </return-value>
-      <parameters>
-        <parameter name="priority" transfer-ownership="none">
-          <doc xml:whitespace="preserve">the priority of the timeout source. Typically this will be in the range between #G_PRIORITY_DEFAULT and #G_PRIORITY_HIGH.</doc>
-          <type name="gint" c:type="gint"/>
-        </parameter>
-        <parameter name="interval" transfer-ownership="none">
-          <doc xml:whitespace="preserve">the time between calls to the function, in milliseconds</doc>
-          <type name="guint" c:type="guint"/>
-        </parameter>
-        <parameter name="func"
-                   transfer-ownership="none"
-                   scope="notified"
-                   closure="3"
-                   destroy="4">
-          <doc xml:whitespace="preserve">function to call</doc>
-          <type name="GLib.SourceFunc" c:type="GSourceFunc"/>
-        </parameter>
-        <parameter name="data" transfer-ownership="none">
-          <doc xml:whitespace="preserve">data to pass to the function</doc>
-          <type name="gpointer" c:type="gpointer"/>
-        </parameter>
-        <parameter name="notify" transfer-ownership="none" scope="async">
-          <doc xml:whitespace="preserve">function to call when the timeout source is removed</doc>
-          <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="threads_enter"
-              c:identifier="clutter_threads_enter"
-              version="0.4">
-      <doc xml:whitespace="preserve">Locks the Clutter thread lock.</doc>
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-    </function>
-    <function name="threads_init"
-              c:identifier="clutter_threads_init"
-              version="0.4">
-      <doc xml:whitespace="preserve">Initialises the Clutter threading mechanism, so that Clutter API can be
-called by multiple threads, using clutter_threads_enter() and
-clutter_threads_leave() to mark the critical sections.
-You must call g_thread_init() before this function.
-This function must be called before clutter_init().
-It is safe to call this function multiple times.</doc>
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-    </function>
-    <function name="threads_leave"
-              c:identifier="clutter_threads_leave"
-              version="0.4">
-      <doc xml:whitespace="preserve">Unlocks the Clutter thread lock.</doc>
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-    </function>
-    <function name="threads_remove_repaint_func"
-              c:identifier="clutter_threads_remove_repaint_func"
-              version="1.0">
-      <doc xml:whitespace="preserve">Removes the repaint function with @handle_id as its id</doc>
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="handle_id" transfer-ownership="none">
-          <doc xml:whitespace="preserve">an unsigned integer greater than zero</doc>
-          <type name="guint" c:type="guint"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="threads_set_lock_functions"
-              c:identifier="clutter_threads_set_lock_functions"
-              version="0.4"
-              introspectable="0">
-      <doc xml:whitespace="preserve">Allows the application to replace the standard method that
-Clutter uses to protect its data structures. Normally, Clutter
-creates a single #GMutex that is locked by clutter_threads_enter(),
-and released by clutter_threads_leave(); using this function an
-application provides, instead, a function @enter_fn that is
-called by clutter_threads_enter() and a function @leave_fn that is
-called by clutter_threads_leave().
-The functions must provide at least same locking functionality
-as the default implementation, but can also do extra application
-specific processing.
-As an example, consider an application that has its own recursive
-lock that when held, holds the Clutter lock as well. When Clutter
-unlocks the Clutter lock when entering a recursive main loop, the
-application must temporarily release its lock as well.
-Most threaded Clutter apps won't need to use this method.
-This method must be called before clutter_threads_init(), and cannot
-be called multiple times.</doc>
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="enter_fn" transfer-ownership="none">
-          <doc xml:whitespace="preserve">function called when aquiring the Clutter main lock</doc>
-          <type name="GObject.Callback" c:type="GCallback"/>
-        </parameter>
-        <parameter name="leave_fn" transfer-ownership="none">
-          <doc xml:whitespace="preserve">function called when releasing the Clutter main lock</doc>
-          <type name="GObject.Callback" c:type="GCallback"/>
-        </parameter>
-      </parameters>
-    </function>
-    <constant name="threeeighths" value="2756">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="threefifths" value="2740">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="threequarters" value="190">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="threesubscript" value="16785539">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="threesuperior" value="179">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <function name="timeout_pool_new"
-              c:identifier="clutter_timeout_pool_new"
-              version="0.4"
-              introspectable="0">
-      <doc xml:whitespace="preserve">Creates a new timeout pool source. A timeout pool should be used when
-multiple timeout functions, running at the same priority, are needed and
-the g_timeout_add() API might lead to starvation of the time slice of
-the main loop. A timeout pool allocates a single time slice of the main
-loop and runs every timeout function inside it. The timeout pool is
-always sorted, so that the extraction of the next timeout function is
-a constant time operation.
-is owned by the GLib default context and will be automatically
-destroyed when the context is destroyed. It is possible to force
-the destruction of the timeout pool using g_source_destroy()</doc>
-      <return-value>
-        <doc xml:whitespace="preserve">the newly created #ClutterTimeoutPool. The created pool</doc>
-        <type name="TimeoutPool" c:type="ClutterTimeoutPool*"/>
-      </return-value>
-      <parameters>
-        <parameter name="priority" transfer-ownership="none">
-          <doc xml:whitespace="preserve">the priority of the timeout pool. Typically this will be #G_PRIORITY_DEFAULT</doc>
-          <type name="gint" c:type="gint"/>
-        </parameter>
-      </parameters>
-    </function>
-    <constant name="tintegral" value="16785965">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="topintegral" value="2212">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="topleftparens" value="2219">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="topleftradical" value="2210">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="topleftsqbracket" value="2215">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="topleftsummation" value="2225">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="toprightparens" value="2221">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="toprightsqbracket" value="2217">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="toprightsummation" value="2229">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="topt" value="2551">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="topvertsummationconnector" value="2227">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="trademark" value="2761">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="trademarkincircle" value="2763">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="tslash" value="956">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="twofifths" value="2739">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="twosubscript" value="16785538">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="twosuperior" value="178">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="twothirds" value="2737">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="u" value="117">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="uacute" value="250">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="ubelowdot" value="16785125">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="ubreve" value="765">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="ucircumflex" value="251">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="udiaeresis" value="252">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="udoubleacute" value="507">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="ugrave" value="249">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="uhook" value="16785127">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="uhorn" value="16777648">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="uhornacute" value="16785129">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="uhornbelowdot" value="16785137">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="uhorngrave" value="16785131">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="uhornhook" value="16785133">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="uhorntilde" value="16785135">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="umacron" value="1022">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="underbar" value="3014">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="underscore" value="95">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <function name="ungrab_keyboard"
-              c:identifier="clutter_ungrab_keyboard"
-              version="0.6">
-      <doc xml:whitespace="preserve">Removes an existing grab of the keyboard.</doc>
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-    </function>
-    <function name="ungrab_pointer"
-              c:identifier="clutter_ungrab_pointer"
-              version="0.6">
-      <doc xml:whitespace="preserve">Removes an existing grab of the pointer.</doc>
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-    </function>
-    <function name="ungrab_pointer_for_device"
-              c:identifier="clutter_ungrab_pointer_for_device"
-              version="0.8">
-      <doc xml:whitespace="preserve">Removes an existing grab of the pointer events for device @id.</doc>
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="id" transfer-ownership="none">
-          <doc xml:whitespace="preserve">a device id</doc>
-          <type name="gint" c:type="gint"/>
-        </parameter>
-      </parameters>
-    </function>
-    <constant name="union" value="2269">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="uogonek" value="1017">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="uparrow" value="2300">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="upcaret" value="2985">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="upleftcorner" value="2540">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="uprightcorner" value="2539">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="upshoe" value="3011">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="upstile" value="3027">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="uptack" value="3022">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="uring" value="505">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <function name="util_next_p2"
-              c:identifier="clutter_util_next_p2"
-              deprecated="1.2">
-      <doc xml:whitespace="preserve">Calculates the nearest power of two, greater than or equal to @a.</doc>
-      <return-value transfer-ownership="none">
-        <doc xml:whitespace="preserve">The nearest power of two, greater or equal to @a.</doc>
-        <type name="gint" c:type="gint"/>
-      </return-value>
-      <parameters>
-        <parameter name="a" transfer-ownership="none">
-          <doc xml:whitespace="preserve">Value to get the next power</doc>
-          <type name="gint" c:type="gint"/>
-        </parameter>
-      </parameters>
-    </function>
-    <constant name="utilde" value="1021">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="v" value="118">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <function name="value_get_color"
-              c:identifier="clutter_value_get_color"
-              version="0.8.4">
-      <doc xml:whitespace="preserve">Gets the #ClutterColor contained in @value.</doc>
-      <return-value transfer-ownership="none">
-        <doc xml:whitespace="preserve">the color inside the passed #GValue</doc>
-        <type name="Color" c:type="ClutterColor*"/>
-      </return-value>
-      <parameters>
-        <parameter name="value" transfer-ownership="none">
-          <doc xml:whitespace="preserve">a #GValue initialized to #CLUTTER_TYPE_COLOR</doc>
-          <type name="GObject.Value" c:type="GValue*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="value_get_fixed"
-              c:identifier="clutter_value_get_fixed"
-              version="0.8">
-      <doc xml:whitespace="preserve">Gets the fixed point value stored inside @value.</doc>
-      <return-value transfer-ownership="none">
-        <doc xml:whitespace="preserve">the value inside the passed #GValue</doc>
-        <type name="Cogl.Fixed" c:type="CoglFixed"/>
-      </return-value>
-      <parameters>
-        <parameter name="value" transfer-ownership="none">
-          <doc xml:whitespace="preserve">a #GValue initialized to %COGL_TYPE_FIXED</doc>
-          <type name="GObject.Value" c:type="GValue*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="value_get_shader_float"
-              c:identifier="clutter_value_get_shader_float"
-              version="0.8">
-      <doc xml:whitespace="preserve">Retrieves the list of floating point values stored inside
-the passed #GValue. @value must have been initialized with
-%CLUTTER_TYPE_SHADER_FLOAT.
-The returned value is owned by the #GValue and should never
-be modified or freed.</doc>
-      <return-value transfer-ownership="none">
-        <doc xml:whitespace="preserve">the pointer to a list of floating point values.</doc>
-        <type name="gfloat" c:type="gfloat*"/>
-      </return-value>
-      <parameters>
-        <parameter name="value" transfer-ownership="none">
-          <doc xml:whitespace="preserve">a #GValue</doc>
-          <type name="GObject.Value" c:type="GValue*"/>
-        </parameter>
-        <parameter name="length" transfer-ownership="none">
-          <doc xml:whitespace="preserve">return location for the number of returned floating point values, or %NULL</doc>
-          <type name="gulong" c:type="gsize*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="value_get_shader_int"
-              c:identifier="clutter_value_get_shader_int"
-              version="0.8">
-      <doc xml:whitespace="preserve">Retrieves the list of integer values stored inside the passed
-#GValue. @value must have been initialized with
-%CLUTTER_TYPE_SHADER_INT.
-The returned value is owned by the #GValue and should never
-be modified or freed.</doc>
-      <return-value transfer-ownership="none">
-        <doc xml:whitespace="preserve">the pointer to a list of integer values.</doc>
-        <type name="gint" c:type="gint*"/>
-      </return-value>
-      <parameters>
-        <parameter name="value" transfer-ownership="none">
-          <doc xml:whitespace="preserve">a #GValue</doc>
-          <type name="GObject.Value" c:type="GValue*"/>
-        </parameter>
-        <parameter name="length" transfer-ownership="none">
-          <doc xml:whitespace="preserve">return location for the number of returned integer values, or %NULL</doc>
-          <type name="gulong" c:type="gsize*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="value_get_shader_matrix"
-              c:identifier="clutter_value_get_shader_matrix"
-              version="0.8">
-      <doc xml:whitespace="preserve">Retrieves a matrix of floating point values stored inside
-the passed #GValue. @value must have been initialized with
-%CLUTTER_TYPE_SHADER_MATRIX.
-of floating point values. The returned value is owned by the #GValue and
-should never be modified or freed.</doc>
-      <return-value transfer-ownership="none">
-        <doc xml:whitespace="preserve">the pointer to a matrix</doc>
-        <array length="1" c:type="gfloat*">
-          <type name="gfloat"/>
-        </array>
-      </return-value>
-      <parameters>
-        <parameter name="value" transfer-ownership="none">
-          <doc xml:whitespace="preserve">a #GValue</doc>
-          <type name="GObject.Value" c:type="GValue*"/>
-        </parameter>
-        <parameter name="length"
-                   direction="out"
-                   caller-allocates="0"
-                   transfer-ownership="full">
-          <doc xml:whitespace="preserve">return location for the number of returned floating point values, or %NULL</doc>
-          <type name="gulong" c:type="gsize*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="value_get_units"
-              c:identifier="clutter_value_get_units"
-              version="0.8">
-      <doc xml:whitespace="preserve">Gets the #ClutterUnit&lt;!-- --&gt;s contained in @value.</doc>
-      <return-value transfer-ownership="none">
-        <doc xml:whitespace="preserve">the units inside the passed #GValue</doc>
-        <type name="Units" c:type="ClutterUnits*"/>
-      </return-value>
-      <parameters>
-        <parameter name="value" transfer-ownership="none">
-          <doc xml:whitespace="preserve">a #GValue initialized to #CLUTTER_TYPE_UNIT</doc>
-          <type name="GObject.Value" c:type="GValue*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="value_set_color"
-              c:identifier="clutter_value_set_color"
-              version="0.8.4">
-      <doc xml:whitespace="preserve">Sets @value to @color.</doc>
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="value" transfer-ownership="none">
-          <doc xml:whitespace="preserve">a #GValue initialized to #CLUTTER_TYPE_COLOR</doc>
-          <type name="GObject.Value" c:type="GValue*"/>
-        </parameter>
-        <parameter name="color" transfer-ownership="none">
-          <doc xml:whitespace="preserve">the color to set</doc>
-          <type name="Color" c:type="ClutterColor*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="value_set_fixed"
-              c:identifier="clutter_value_set_fixed"
-              version="0.8">
-      <doc xml:whitespace="preserve">Sets @value to @fixed_.</doc>
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="value" transfer-ownership="none">
-          <doc xml:whitespace="preserve">a #GValue initialized to %COGL_TYPE_FIXED</doc>
-          <type name="GObject.Value" c:type="GValue*"/>
-        </parameter>
-        <parameter name="fixed_" transfer-ownership="none">
-          <doc xml:whitespace="preserve">the fixed point value to set</doc>
-          <type name="Cogl.Fixed" c:type="CoglFixed"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="value_set_shader_float"
-              c:identifier="clutter_value_set_shader_float"
-              version="0.8">
-      <doc xml:whitespace="preserve">Sets @floats as the contents of @value. The passed #GValue
-must have been initialized using %CLUTTER_TYPE_SHADER_FLOAT.</doc>
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="value" transfer-ownership="none">
-          <doc xml:whitespace="preserve">a #GValue</doc>
-          <type name="GObject.Value" c:type="GValue*"/>
-        </parameter>
-        <parameter name="size" transfer-ownership="none">
-          <doc xml:whitespace="preserve">number of floating point values in @floats</doc>
-          <type name="gint" c:type="gint"/>
-        </parameter>
-        <parameter name="floats" transfer-ownership="none">
-          <doc xml:whitespace="preserve">an array of floating point values</doc>
-          <type name="gfloat" c:type="gfloat*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="value_set_shader_int"
-              c:identifier="clutter_value_set_shader_int"
-              version="0.8">
-      <doc xml:whitespace="preserve">Sets @ints as the contents of @value. The passed #GValue
-must have been initialized using %CLUTTER_TYPE_SHADER_INT.</doc>
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="value" transfer-ownership="none">
-          <doc xml:whitespace="preserve">a #GValue</doc>
-          <type name="GObject.Value" c:type="GValue*"/>
-        </parameter>
-        <parameter name="size" transfer-ownership="none">
-          <doc xml:whitespace="preserve">number of integer values in @ints</doc>
-          <type name="gint" c:type="gint"/>
-        </parameter>
-        <parameter name="ints" transfer-ownership="none">
-          <doc xml:whitespace="preserve">an array of integer values</doc>
-          <type name="gint" c:type="gint*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="value_set_shader_matrix"
-              c:identifier="clutter_value_set_shader_matrix"
-              version="0.8">
-      <doc xml:whitespace="preserve">Sets @matrix as the contents of @value. The passed #GValue
-must have been initialized using %CLUTTER_TYPE_SHADER_MATRIX.</doc>
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="value" transfer-ownership="none">
-          <doc xml:whitespace="preserve">a #GValue</doc>
-          <type name="GObject.Value" c:type="GValue*"/>
-        </parameter>
-        <parameter name="size" transfer-ownership="none">
-          <doc xml:whitespace="preserve">number of floating point values in @floats</doc>
-          <type name="gint" c:type="gint"/>
-        </parameter>
-        <parameter name="matrix" transfer-ownership="none">
-          <doc xml:whitespace="preserve">a matrix of floating point values</doc>
-          <type name="gfloat" c:type="gfloat*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="value_set_units"
-              c:identifier="clutter_value_set_units"
-              version="0.8">
-      <doc xml:whitespace="preserve">Sets @value to @units</doc>
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="value" transfer-ownership="none">
-          <doc xml:whitespace="preserve">a #GValue initialized to #CLUTTER_TYPE_UNIT</doc>
-          <type name="GObject.Value" c:type="GValue*"/>
-        </parameter>
-        <parameter name="units" transfer-ownership="none">
-          <doc xml:whitespace="preserve">the units to set</doc>
-          <type name="Units" c:type="ClutterUnits*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <constant name="variation" value="2241">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="vertbar" value="2552">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="vertconnector" value="2214">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="voicedsound" value="1246">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="vt" value="2537">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="w" value="119">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="wacute" value="16785027">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="wcircumflex" value="16777589">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="wdiaeresis" value="16785029">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="wgrave" value="16785025">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="x" value="120">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="xabovedot" value="16785035">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="y" value="121">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="yacute" value="253">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="ybelowdot" value="16785141">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="ycircumflex" value="16777591">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="ydiaeresis" value="255">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="yen" value="165">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="ygrave" value="16785139">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="yhook" value="16785143">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="ytilde" value="16785145">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="z" value="122">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="zabovedot" value="447">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="zacute" value="444">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="zcaron" value="446">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="zerosubscript" value="16785536">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="zerosuperior" value="16785520">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="zstroke" value="16777654">
-      <type name="gint" c:type="gint"/>
-    </constant>
-  </namespace>
-</repository>
diff --git a/extra/clutter/authors.txt b/extra/clutter/authors.txt
deleted file mode 100644 (file)
index ce9bcc8..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Anton Gorenko
\ No newline at end of file
diff --git a/extra/clutter/clutter.factor b/extra/clutter/clutter.factor
deleted file mode 100644 (file)
index a69a857..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-! Copyright (C) 2010 Anton Gorenko.
-! See http://factorcode.org/license.txt for BSD license.
-USING: clutter.ffi ;
-IN: clutter
-
diff --git a/extra/clutter/cogl/Cogl-1.0.gir b/extra/clutter/cogl/Cogl-1.0.gir
deleted file mode 100644 (file)
index 95d199a..0000000
+++ /dev/null
@@ -1,7107 +0,0 @@
-<?xml version="1.0"?>
-<!-- This file was automatically generated from C sources - DO NOT EDIT!
-To affect the contents of this file, edit the original C definitions,
-and/or use gtk-doc annotations.  -->
-<repository version="1.2"
-            xmlns="http://www.gtk.org/introspection/core/1.0"
-            xmlns:c="http://www.gtk.org/introspection/c/1.0"
-            xmlns:glib="http://www.gtk.org/introspection/glib/1.0">
-  <include name="GL" version="1.0"/>
-  <include name="GLib" version="2.0"/>
-  <include name="GObject" version="2.0"/>
-  <c:include name="cogl/cogl.h"/>
-  <namespace name="Cogl"
-             version="1.0"
-             shared-library="libclutter-glx-1.0.so.0"
-             c:identifier-prefixes="Cogl"
-             c:symbol-prefixes="cogl">
-    <alias name="Angle" c:type="CoglAngle">
-      <doc xml:whitespace="preserve">Integer representation of an angle such that 1024 corresponds to
-full circle (i.e., 2 * pi).</doc>
-      <type name="gint32" c:type="gint32"/>
-    </alias>
-    <alias name="Fixed" c:type="CoglFixed">
-      <doc xml:whitespace="preserve">Fixed point number using a (16.16) notation.</doc>
-      <type name="gint32" c:type="gint32"/>
-    </alias>
-    <alias name="Handle" c:type="CoglHandle">
-      <doc xml:whitespace="preserve">Type used for storing references to cogl objects, the CoglHandle is
-a fully opaque type without any public data members.</doc>
-      <type name="gpointer" c:type="gpointer"/>
-    </alias>
-    <constant name="AFIRST_BIT" value="64">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="A_BIT" value="16">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <enumeration name="AttributeType"
-                 version="1.0"
-                 glib:type-name="CoglAttributeType"
-                 glib:get-type="cogl_attribute_type_get_type"
-                 c:type="CoglAttributeType">
-      <doc xml:whitespace="preserve">Data types for the components of cogl_vertex_buffer_add()</doc>
-      <member name="byte"
-              value="5120"
-              c:identifier="COGL_ATTRIBUTE_TYPE_BYTE"
-              glib:nick="byte"/>
-      <member name="unsigned_byte"
-              value="5121"
-              c:identifier="COGL_ATTRIBUTE_TYPE_UNSIGNED_BYTE"
-              glib:nick="unsigned-byte"/>
-      <member name="short"
-              value="5122"
-              c:identifier="COGL_ATTRIBUTE_TYPE_SHORT"
-              glib:nick="short"/>
-      <member name="unsigned_short"
-              value="5123"
-              c:identifier="COGL_ATTRIBUTE_TYPE_UNSIGNED_SHORT"
-              glib:nick="unsigned-short"/>
-      <member name="float"
-              value="5126"
-              c:identifier="COGL_ATTRIBUTE_TYPE_FLOAT"
-              glib:nick="float"/>
-    </enumeration>
-    <constant name="BGR_BIT" value="32">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <record name="Bitmap" c:type="CoglBitmap" disguised="1">
-    </record>
-    <enumeration name="BitmapError"
-                 version="1.4"
-                 glib:type-name="CoglBitmapError"
-                 glib:get-type="cogl_bitmap_error_get_type"
-                 c:type="CoglBitmapError"
-                 glib:error-quark="cogl_bitmap_error_quark">
-      <doc xml:whitespace="preserve">Error codes that can be thrown when performing bitmap
-operations. Note that gdk_pixbuf_new_from_file() can also throw
-errors directly from the underlying image loading library. For
-example, if GdkPixbuf is used then errors #GdkPixbufError&lt;!-- --&gt;s
-will be used directly.</doc>
-      <member name="failed"
-              value="0"
-              c:identifier="COGL_BITMAP_ERROR_FAILED"
-              glib:nick="failed"/>
-      <member name="unknown_type"
-              value="1"
-              c:identifier="COGL_BITMAP_ERROR_UNKNOWN_TYPE"
-              glib:nick="unknown-type"/>
-      <member name="corrupt_image"
-              value="2"
-              c:identifier="COGL_BITMAP_ERROR_CORRUPT_IMAGE"
-              glib:nick="corrupt-image"/>
-    </enumeration>
-    <enumeration name="BlendStringError"
-                 version="1.0"
-                 glib:type-name="CoglBlendStringError"
-                 glib:get-type="cogl_blend_string_error_get_type"
-                 c:type="CoglBlendStringError"
-                 glib:error-quark="cogl_blend_string_error_quark">
-      <doc xml:whitespace="preserve">Error enumeration for the blend strings parser</doc>
-      <member name="parse_error"
-              value="0"
-              c:identifier="COGL_BLEND_STRING_ERROR_PARSE_ERROR"
-              glib:nick="parse-error"/>
-      <member name="argument_parse_error"
-              value="1"
-              c:identifier="COGL_BLEND_STRING_ERROR_ARGUMENT_PARSE_ERROR"
-              glib:nick="argument-parse-error"/>
-      <member name="invalid_error"
-              value="2"
-              c:identifier="COGL_BLEND_STRING_ERROR_INVALID_ERROR"
-              glib:nick="invalid-error"/>
-      <member name="gpu_unsupported_error"
-              value="3"
-              c:identifier="COGL_BLEND_STRING_ERROR_GPU_UNSUPPORTED_ERROR"
-              glib:nick="gpu-unsupported-error"/>
-    </enumeration>
-    <record name="Buffer" c:type="CoglBuffer" disguised="1">
-      <method name="get_size_EXP" c:identifier="cogl_buffer_get_size_EXP">
-        <return-value transfer-ownership="none">
-          <type name="guint" c:type="unsigned int"/>
-        </return-value>
-      </method>
-      <method name="get_update_hint_EXP"
-              c:identifier="cogl_buffer_get_update_hint_EXP">
-        <return-value transfer-ownership="none">
-          <type name="BufferUpdateHint" c:type="CoglBufferUpdateHint"/>
-        </return-value>
-      </method>
-      <method name="map_EXP" c:identifier="cogl_buffer_map_EXP">
-        <return-value transfer-ownership="none">
-          <type name="guint8" c:type="guint8*"/>
-        </return-value>
-        <parameters>
-          <parameter name="access" transfer-ownership="none">
-            <type name="BufferAccess" c:type="CoglBufferAccess"/>
-          </parameter>
-          <parameter name="hints" transfer-ownership="none">
-            <type name="BufferMapHint" c:type="CoglBufferMapHint"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_data_EXP" c:identifier="cogl_buffer_set_data_EXP">
-        <return-value transfer-ownership="none">
-          <type name="gboolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="offset" transfer-ownership="none">
-            <type name="gulong" c:type="gsize"/>
-          </parameter>
-          <parameter name="data" transfer-ownership="none">
-            <type name="guint8" c:type="guint8*"/>
-          </parameter>
-          <parameter name="size" transfer-ownership="none">
-            <type name="gulong" c:type="gsize"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_update_hint_EXP"
-              c:identifier="cogl_buffer_set_update_hint_EXP">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="hint" transfer-ownership="none">
-            <type name="BufferUpdateHint" c:type="CoglBufferUpdateHint"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="unmap_EXP" c:identifier="cogl_buffer_unmap_EXP">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </method>
-    </record>
-    <bitfield name="BufferAccess"
-              version="1.2"
-              glib:type-name="CoglBufferAccess"
-              glib:get-type="cogl_buffer_access_get_type"
-              c:type="CoglBufferAccess">
-      <doc xml:whitespace="preserve">The access hints for cogl_buffer_set_update_hint()</doc>
-      <member name="read"
-              value="1"
-              c:identifier="COGL_BUFFER_ACCESS_READ"
-              glib:nick="read"/>
-      <member name="write"
-              value="2"
-              c:identifier="COGL_BUFFER_ACCESS_WRITE"
-              glib:nick="write"/>
-      <member name="read_write"
-              value="3"
-              c:identifier="COGL_BUFFER_ACCESS_READ_WRITE"
-              glib:nick="read-write"/>
-    </bitfield>
-    <bitfield name="BufferBit"
-              version="1.0"
-              glib:type-name="CoglBufferBit"
-              glib:get-type="cogl_buffer_bit_get_type"
-              c:type="CoglBufferBit">
-      <doc xml:whitespace="preserve">Types of auxiliary buffers</doc>
-      <member name="color"
-              value="1"
-              c:identifier="COGL_BUFFER_BIT_COLOR"
-              glib:nick="color"/>
-      <member name="depth"
-              value="2"
-              c:identifier="COGL_BUFFER_BIT_DEPTH"
-              glib:nick="depth"/>
-      <member name="stencil"
-              value="4"
-              c:identifier="COGL_BUFFER_BIT_STENCIL"
-              glib:nick="stencil"/>
-    </bitfield>
-    <bitfield name="BufferMapHint"
-              version="1.4"
-              glib:type-name="CoglBufferMapHint"
-              glib:get-type="cogl_buffer_map_hint_get_type"
-              c:type="CoglBufferMapHint">
-      <doc xml:whitespace="preserve">all the buffer's contents.
-Hints to Cogl about how you are planning to modify the data once it
-is mapped.</doc>
-      <member name="discard"
-              value="1"
-              c:identifier="COGL_BUFFER_MAP_HINT_DISCARD"
-              glib:nick="discard"/>
-    </bitfield>
-    <bitfield name="BufferTarget"
-              version="0.8"
-              glib:type-name="CoglBufferTarget"
-              glib:get-type="cogl_buffer_target_get_type"
-              c:type="CoglBufferTarget">
-      <doc xml:whitespace="preserve">Target flags for FBOs.</doc>
-      <member name="window_buffer"
-              value="2"
-              c:identifier="COGL_WINDOW_BUFFER"
-              glib:nick="window-buffer"/>
-      <member name="offscreen_buffer"
-              value="4"
-              c:identifier="COGL_OFFSCREEN_BUFFER"
-              glib:nick="offscreen-buffer"/>
-    </bitfield>
-    <enumeration name="BufferUpdateHint"
-                 version="1.2"
-                 glib:type-name="CoglBufferUpdateHint"
-                 glib:get-type="cogl_buffer_update_hint_get_type"
-                 c:type="CoglBufferUpdateHint">
-      <doc xml:whitespace="preserve">The update hint on a buffer allows the user to give some detail on how often
-the buffer data is going to be updated.</doc>
-      <member name="static"
-              value="0"
-              c:identifier="COGL_BUFFER_UPDATE_HINT_STATIC"
-              glib:nick="static"/>
-      <member name="dynamic"
-              value="1"
-              c:identifier="COGL_BUFFER_UPDATE_HINT_DYNAMIC"
-              glib:nick="dynamic"/>
-      <member name="stream"
-              value="2"
-              c:identifier="COGL_BUFFER_UPDATE_HINT_STREAM"
-              glib:nick="stream"/>
-    </enumeration>
-    <record name="Color" c:type="CoglColor" version="1.0">
-      <doc xml:whitespace="preserve">A structure for holding a color definition. The contents of
-the CoglColor structure are private and should never by accessed
-directly.</doc>
-      <field name="red" writable="1">
-        <type name="guint8" c:type="guint8"/>
-      </field>
-      <field name="green" writable="1">
-        <type name="guint8" c:type="guint8"/>
-      </field>
-      <field name="blue" writable="1">
-        <type name="guint8" c:type="guint8"/>
-      </field>
-      <field name="alpha" writable="1">
-        <type name="guint8" c:type="guint8"/>
-      </field>
-      <field name="padding0" writable="1">
-        <type name="guint32" c:type="guint32"/>
-      </field>
-      <field name="padding1" writable="1">
-        <type name="guint32" c:type="guint32"/>
-      </field>
-      <field name="padding2" writable="1">
-        <type name="guint32" c:type="guint32"/>
-      </field>
-      <method name="copy"
-              c:identifier="cogl_color_copy"
-              version="1.0"
-              introspectable="0">
-        <doc xml:whitespace="preserve">Creates a copy of @color
-to free the allocate resources</doc>
-        <return-value>
-          <doc xml:whitespace="preserve">a newly-allocated #CoglColor. Use cogl_color_free()</doc>
-          <type name="Color" c:type="CoglColor*"/>
-        </return-value>
-      </method>
-      <method name="free" c:identifier="cogl_color_free" version="1.0">
-        <doc xml:whitespace="preserve">Frees the resources allocated by cogl_color_new() and cogl_color_copy()</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </method>
-      <method name="get_alpha"
-              c:identifier="cogl_color_get_alpha"
-              version="1.0">
-        <doc xml:whitespace="preserve">Retrieves the alpha channel of @color as a fixed point
-value between 0 and %1.0.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the alpha channel of the passed color</doc>
-          <type name="gfloat" c:type="float"/>
-        </return-value>
-      </method>
-      <method name="get_alpha_byte"
-              c:identifier="cogl_color_get_alpha_byte"
-              version="1.0">
-        <doc xml:whitespace="preserve">Retrieves the alpha channel of @color as a byte value
-between 0 and 255</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the alpha channel of the passed color</doc>
-          <type name="guint8" c:type="unsigned char"/>
-        </return-value>
-      </method>
-      <method name="get_alpha_float"
-              c:identifier="cogl_color_get_alpha_float"
-              version="1.0">
-        <doc xml:whitespace="preserve">Retrieves the alpha channel of @color as a floating point
-value between 0.0 and 1.0</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the alpha channel of the passed color</doc>
-          <type name="gfloat" c:type="float"/>
-        </return-value>
-      </method>
-      <method name="get_blue" c:identifier="cogl_color_get_blue" version="1.0">
-        <doc xml:whitespace="preserve">Retrieves the blue channel of @color as a fixed point
-value between 0 and %1.0.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the blue channel of the passed color</doc>
-          <type name="gfloat" c:type="float"/>
-        </return-value>
-      </method>
-      <method name="get_blue_byte"
-              c:identifier="cogl_color_get_blue_byte"
-              version="1.0">
-        <doc xml:whitespace="preserve">Retrieves the blue channel of @color as a byte value
-between 0 and 255</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the blue channel of the passed color</doc>
-          <type name="guint8" c:type="unsigned char"/>
-        </return-value>
-      </method>
-      <method name="get_blue_float"
-              c:identifier="cogl_color_get_blue_float"
-              version="1.0">
-        <doc xml:whitespace="preserve">Retrieves the blue channel of @color as a floating point
-value between 0.0 and 1.0</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the blue channel of the passed color</doc>
-          <type name="gfloat" c:type="float"/>
-        </return-value>
-      </method>
-      <method name="get_green"
-              c:identifier="cogl_color_get_green"
-              version="1.0">
-        <doc xml:whitespace="preserve">Retrieves the green channel of @color as a fixed point
-value between 0 and %1.0.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the green channel of the passed color</doc>
-          <type name="gfloat" c:type="float"/>
-        </return-value>
-      </method>
-      <method name="get_green_byte"
-              c:identifier="cogl_color_get_green_byte"
-              version="1.0">
-        <doc xml:whitespace="preserve">Retrieves the green channel of @color as a byte value
-between 0 and 255</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the green channel of the passed color</doc>
-          <type name="guint8" c:type="unsigned char"/>
-        </return-value>
-      </method>
-      <method name="get_green_float"
-              c:identifier="cogl_color_get_green_float"
-              version="1.0">
-        <doc xml:whitespace="preserve">Retrieves the green channel of @color as a floating point
-value between 0.0 and 1.0</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the green channel of the passed color</doc>
-          <type name="gfloat" c:type="float"/>
-        </return-value>
-      </method>
-      <method name="get_red" c:identifier="cogl_color_get_red" version="1.0">
-        <doc xml:whitespace="preserve">Retrieves the red channel of @color as a fixed point
-value between 0 and %1.0.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the red channel of the passed color</doc>
-          <type name="gfloat" c:type="float"/>
-        </return-value>
-      </method>
-      <method name="get_red_byte"
-              c:identifier="cogl_color_get_red_byte"
-              version="1.0">
-        <doc xml:whitespace="preserve">Retrieves the red channel of @color as a byte value
-between 0 and 255</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the red channel of the passed color</doc>
-          <type name="guint8" c:type="unsigned char"/>
-        </return-value>
-      </method>
-      <method name="get_red_float"
-              c:identifier="cogl_color_get_red_float"
-              version="1.0">
-        <doc xml:whitespace="preserve">Retrieves the red channel of @color as a floating point
-value between 0.0 and 1.0</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the red channel of the passed color</doc>
-          <type name="gfloat" c:type="float"/>
-        </return-value>
-      </method>
-      <method name="init_from_4f"
-              c:identifier="cogl_color_init_from_4f"
-              version="1.4">
-        <doc xml:whitespace="preserve">Sets the values of the passed channels into a #CoglColor</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="red" transfer-ownership="none">
-            <doc xml:whitespace="preserve">value of the red channel, between 0 and %1.0</doc>
-            <type name="gfloat" c:type="float"/>
-          </parameter>
-          <parameter name="green" transfer-ownership="none">
-            <doc xml:whitespace="preserve">value of the green channel, between 0 and %1.0</doc>
-            <type name="gfloat" c:type="float"/>
-          </parameter>
-          <parameter name="blue" transfer-ownership="none">
-            <doc xml:whitespace="preserve">value of the blue channel, between 0 and %1.0</doc>
-            <type name="gfloat" c:type="float"/>
-          </parameter>
-          <parameter name="alpha" transfer-ownership="none">
-            <doc xml:whitespace="preserve">value of the alpha channel, between 0 and %1.0</doc>
-            <type name="gfloat" c:type="float"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="init_from_4fv"
-              c:identifier="cogl_color_init_from_4fv"
-              version="1.4">
-        <doc xml:whitespace="preserve">Sets the values of the passed channels into a #CoglColor</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="color_array" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a pointer to an array of 4 float color components</doc>
-            <type name="gfloat" c:type="float*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="init_from_4ub"
-              c:identifier="cogl_color_init_from_4ub"
-              version="1.4">
-        <doc xml:whitespace="preserve">Sets the values of the passed channels into a #CoglColor.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="red" transfer-ownership="none">
-            <doc xml:whitespace="preserve">value of the red channel, between 0 and 255</doc>
-            <type name="guint8" c:type="guint8"/>
-          </parameter>
-          <parameter name="green" transfer-ownership="none">
-            <doc xml:whitespace="preserve">value of the green channel, between 0 and 255</doc>
-            <type name="guint8" c:type="guint8"/>
-          </parameter>
-          <parameter name="blue" transfer-ownership="none">
-            <doc xml:whitespace="preserve">value of the blue channel, between 0 and 255</doc>
-            <type name="guint8" c:type="guint8"/>
-          </parameter>
-          <parameter name="alpha" transfer-ownership="none">
-            <doc xml:whitespace="preserve">value of the alpha channel, between 0 and 255</doc>
-            <type name="guint8" c:type="guint8"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="premultiply"
-              c:identifier="cogl_color_premultiply"
-              version="1.0">
-        <doc xml:whitespace="preserve">Converts a non-premultiplied color to a pre-multiplied color. For
-example, semi-transparent red is (1.0, 0, 0, 0.5) when non-premultiplied
-and (0.5, 0, 0, 0.5) when premultiplied.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </method>
-      <method name="set_alpha"
-              c:identifier="cogl_color_set_alpha"
-              version="1.4">
-        <doc xml:whitespace="preserve">Sets the alpha channel of @color to @alpha.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="alpha" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a float value between 0.0f and 1.0f</doc>
-            <type name="gfloat" c:type="float"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_alpha_byte"
-              c:identifier="cogl_color_set_alpha_byte"
-              version="1.4">
-        <doc xml:whitespace="preserve">Sets the alpha channel of @color to @alpha.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="alpha" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a byte value between 0 and 255</doc>
-            <type name="guint8" c:type="unsigned char"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_alpha_float"
-              c:identifier="cogl_color_set_alpha_float"
-              version="1.4">
-        <doc xml:whitespace="preserve">Sets the alpha channel of @color to @alpha.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="alpha" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a float value between 0.0f and 1.0f</doc>
-            <type name="gfloat" c:type="float"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_blue" c:identifier="cogl_color_set_blue" version="1.4">
-        <doc xml:whitespace="preserve">Sets the blue channel of @color to @blue.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="blue" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a float value between 0.0f and 1.0f</doc>
-            <type name="gfloat" c:type="float"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_blue_byte"
-              c:identifier="cogl_color_set_blue_byte"
-              version="1.4">
-        <doc xml:whitespace="preserve">Sets the blue channel of @color to @blue.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="blue" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a byte value between 0 and 255</doc>
-            <type name="guint8" c:type="unsigned char"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_blue_float"
-              c:identifier="cogl_color_set_blue_float"
-              version="1.4">
-        <doc xml:whitespace="preserve">Sets the blue channel of @color to @blue.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="blue" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a float value between 0.0f and 1.0f</doc>
-            <type name="gfloat" c:type="float"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_from_4f"
-              c:identifier="cogl_color_set_from_4f"
-              version="1.0"
-              deprecated="Use cogl_color_init_from_4f instead."
-              deprecated-version="1.4">
-        <doc xml:whitespace="preserve">Sets the values of the passed channels into a #CoglColor</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="red" transfer-ownership="none">
-            <doc xml:whitespace="preserve">value of the red channel, between 0 and %1.0</doc>
-            <type name="gfloat" c:type="float"/>
-          </parameter>
-          <parameter name="green" transfer-ownership="none">
-            <doc xml:whitespace="preserve">value of the green channel, between 0 and %1.0</doc>
-            <type name="gfloat" c:type="float"/>
-          </parameter>
-          <parameter name="blue" transfer-ownership="none">
-            <doc xml:whitespace="preserve">value of the blue channel, between 0 and %1.0</doc>
-            <type name="gfloat" c:type="float"/>
-          </parameter>
-          <parameter name="alpha" transfer-ownership="none">
-            <doc xml:whitespace="preserve">value of the alpha channel, between 0 and %1.0</doc>
-            <type name="gfloat" c:type="float"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_from_4ub"
-              c:identifier="cogl_color_set_from_4ub"
-              version="1.0"
-              deprecated="Use cogl_color_init_from_4ub instead."
-              deprecated-version="1.4">
-        <doc xml:whitespace="preserve">Sets the values of the passed channels into a #CoglColor.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="red" transfer-ownership="none">
-            <doc xml:whitespace="preserve">value of the red channel, between 0 and 255</doc>
-            <type name="guint8" c:type="guint8"/>
-          </parameter>
-          <parameter name="green" transfer-ownership="none">
-            <doc xml:whitespace="preserve">value of the green channel, between 0 and 255</doc>
-            <type name="guint8" c:type="guint8"/>
-          </parameter>
-          <parameter name="blue" transfer-ownership="none">
-            <doc xml:whitespace="preserve">value of the blue channel, between 0 and 255</doc>
-            <type name="guint8" c:type="guint8"/>
-          </parameter>
-          <parameter name="alpha" transfer-ownership="none">
-            <doc xml:whitespace="preserve">value of the alpha channel, between 0 and 255</doc>
-            <type name="guint8" c:type="guint8"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_green"
-              c:identifier="cogl_color_set_green"
-              version="1.4">
-        <doc xml:whitespace="preserve">Sets the green channel of @color to @green.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="green" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a float value between 0.0f and 1.0f</doc>
-            <type name="gfloat" c:type="float"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_green_byte"
-              c:identifier="cogl_color_set_green_byte"
-              version="1.4">
-        <doc xml:whitespace="preserve">Sets the green channel of @color to @green.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="green" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a byte value between 0 and 255</doc>
-            <type name="guint8" c:type="unsigned char"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_green_float"
-              c:identifier="cogl_color_set_green_float"
-              version="1.4">
-        <doc xml:whitespace="preserve">Sets the green channel of @color to @green.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="green" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a float value between 0.0f and 1.0f</doc>
-            <type name="gfloat" c:type="float"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_red" c:identifier="cogl_color_set_red" version="1.4">
-        <doc xml:whitespace="preserve">Sets the red channel of @color to @red.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="red" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a float value between 0.0f and 1.0f</doc>
-            <type name="gfloat" c:type="float"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_red_byte"
-              c:identifier="cogl_color_set_red_byte"
-              version="1.4">
-        <doc xml:whitespace="preserve">Sets the red channel of @color to @red.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="red" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a byte value between 0 and 255</doc>
-            <type name="guint8" c:type="unsigned char"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_red_float"
-              c:identifier="cogl_color_set_red_float"
-              version="1.4">
-        <doc xml:whitespace="preserve">Sets the red channel of @color to @red.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="red" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a float value between 0.0f and 1.0f</doc>
-            <type name="gfloat" c:type="float"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="unpremultiply"
-              c:identifier="cogl_color_unpremultiply"
-              version="1.4">
-        <doc xml:whitespace="preserve">Converts a pre-multiplied color to a non-premultiplied color. For
-example, semi-transparent red is (0.5, 0, 0, 0.5) when premultiplied
-and (1.0, 0, 0, 0.5) when non-premultiplied.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </method>
-    </record>
-    <enumeration name="DepthTestFunction"
-                 glib:type-name="CoglDepthTestFunction"
-                 glib:get-type="cogl_depth_test_function_get_type"
-                 c:type="CoglDepthTestFunction">
-      <doc xml:whitespace="preserve">When using depth testing one of these functions is used to compare
-the depth of an incoming fragment against the depth value currently
-stored in the depth buffer. The function is changed using
-cogl_material_set_depth_test_function().
-The test is only done when depth testing is explicitly enabled. (See
-cogl_material_set_depth_test_enabled())</doc>
-      <member name="never"
-              value="512"
-              c:identifier="COGL_DEPTH_TEST_FUNCTION_NEVER"
-              glib:nick="never"/>
-      <member name="less"
-              value="513"
-              c:identifier="COGL_DEPTH_TEST_FUNCTION_LESS"
-              glib:nick="less"/>
-      <member name="equal"
-              value="514"
-              c:identifier="COGL_DEPTH_TEST_FUNCTION_EQUAL"
-              glib:nick="equal"/>
-      <member name="lequal"
-              value="515"
-              c:identifier="COGL_DEPTH_TEST_FUNCTION_LEQUAL"
-              glib:nick="lequal"/>
-      <member name="greater"
-              value="516"
-              c:identifier="COGL_DEPTH_TEST_FUNCTION_GREATER"
-              glib:nick="greater"/>
-      <member name="notequal"
-              value="517"
-              c:identifier="COGL_DEPTH_TEST_FUNCTION_NOTEQUAL"
-              glib:nick="notequal"/>
-      <member name="gequal"
-              value="518"
-              c:identifier="COGL_DEPTH_TEST_FUNCTION_GEQUAL"
-              glib:nick="gequal"/>
-      <member name="always"
-              value="519"
-              c:identifier="COGL_DEPTH_TEST_FUNCTION_ALWAYS"
-              glib:nick="always"/>
-    </enumeration>
-    <enumeration name="DriverError"
-                 glib:type-name="CoglDriverError"
-                 glib:get-type="cogl_driver_error_get_type"
-                 c:type="CoglDriverError">
-      <member name="unknown_version"
-              value="0"
-              c:identifier="COGL_DRIVER_ERROR_UNKNOWN_VERSION"
-              glib:nick="unknown-version"/>
-      <member name="invalid_version"
-              value="1"
-              c:identifier="COGL_DRIVER_ERROR_INVALID_VERSION"
-              glib:nick="invalid-version"/>
-    </enumeration>
-    <enumeration name="Error"
-                 version="1.4"
-                 glib:type-name="CoglError"
-                 glib:get-type="cogl_error_get_type"
-                 c:type="CoglError">
-      <doc xml:whitespace="preserve">Error enumeration for Cogl
-The @COGL_ERROR_UNSUPPORTED error can be thrown for a variety of
-reasons. For example:
-&lt;itemizedlist&gt;
-&lt;listitem&gt;&lt;para&gt;You've tried to use a feature that is not
-advertised by cogl_get_features(). This could happen if you create
-a non-sliced texture with a non-power-of-two size when
-%COGL_FEATURE_TEXTURE_NPOT is not advertised.&lt;/para&gt;&lt;/listitem&gt;
-&lt;listitem&gt;&lt;para&gt;The GPU can not handle the configuration you have
-requested. An example might be if you try to use too many texture
-layers in a single #CoglMaterial&lt;/para&gt;&lt;/listitem&gt;
-&lt;listitem&gt;&lt;para&gt;The driver does not support some
-configuration.&lt;/para&gt;&lt;/listiem&gt;
-&lt;/itemizedlist&gt;
-Currently this is only used by Cogl API marked as experimental so
-this enum should also be considered experimental.</doc>
-      <member name="unsupported"
-              value="0"
-              c:identifier="COGL_ERROR_UNSUPPORTED"
-              glib:nick="unsupported"/>
-    </enumeration>
-    <constant name="FIXED_0_5" value="32768">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="FIXED_1" value="1">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="FIXED_2_PI" value="411775">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="FIXED_BITS" value="32">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="FIXED_EPSILON" value="1">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="FIXED_MAX" value="2147483647">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="FIXED_MIN" value="-2147483648">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="FIXED_PI" value="205887">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="FIXED_PI_2" value="102944">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="FIXED_PI_4" value="51472">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="FIXED_Q" value="-16">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <bitfield name="FeatureFlags"
-              version="0.8"
-              glib:type-name="CoglFeatureFlags"
-              glib:get-type="cogl_feature_flags_get_type"
-              c:type="CoglFeatureFlags">
-      <doc xml:whitespace="preserve">Flags for the supported features.</doc>
-      <member name="texture_rectangle"
-              value="2"
-              c:identifier="COGL_FEATURE_TEXTURE_RECTANGLE"
-              glib:nick="texture-rectangle"/>
-      <member name="texture_npot"
-              value="4"
-              c:identifier="COGL_FEATURE_TEXTURE_NPOT"
-              glib:nick="texture-npot"/>
-      <member name="texture_yuv"
-              value="8"
-              c:identifier="COGL_FEATURE_TEXTURE_YUV"
-              glib:nick="texture-yuv"/>
-      <member name="texture_read_pixels"
-              value="16"
-              c:identifier="COGL_FEATURE_TEXTURE_READ_PIXELS"
-              glib:nick="texture-read-pixels"/>
-      <member name="shaders_glsl"
-              value="32"
-              c:identifier="COGL_FEATURE_SHADERS_GLSL"
-              glib:nick="shaders-glsl"/>
-      <member name="offscreen"
-              value="64"
-              c:identifier="COGL_FEATURE_OFFSCREEN"
-              glib:nick="offscreen"/>
-      <member name="offscreen_multisample"
-              value="128"
-              c:identifier="COGL_FEATURE_OFFSCREEN_MULTISAMPLE"
-              glib:nick="offscreen-multisample"/>
-      <member name="offscreen_blit"
-              value="256"
-              c:identifier="COGL_FEATURE_OFFSCREEN_BLIT"
-              glib:nick="offscreen-blit"/>
-      <member name="four_clip_planes"
-              value="512"
-              c:identifier="COGL_FEATURE_FOUR_CLIP_PLANES"
-              glib:nick="four-clip-planes"/>
-      <member name="stencil_buffer"
-              value="1024"
-              c:identifier="COGL_FEATURE_STENCIL_BUFFER"
-              glib:nick="stencil-buffer"/>
-      <member name="vbos"
-              value="2048"
-              c:identifier="COGL_FEATURE_VBOS"
-              glib:nick="vbos"/>
-      <member name="pbos"
-              value="4096"
-              c:identifier="COGL_FEATURE_PBOS"
-              glib:nick="pbos"/>
-      <member name="unsigned_int_indices"
-              value="8192"
-              c:identifier="COGL_FEATURE_UNSIGNED_INT_INDICES"
-              glib:nick="unsigned-int-indices"/>
-      <member name="depth_range"
-              value="16384"
-              c:identifier="COGL_FEATURE_DEPTH_RANGE"
-              glib:nick="depth-range"/>
-      <member name="texture_npot_basic"
-              value="32768"
-              c:identifier="COGL_FEATURE_TEXTURE_NPOT_BASIC"
-              glib:nick="texture-npot-basic"/>
-      <member name="texture_npot_mipmap"
-              value="65536"
-              c:identifier="COGL_FEATURE_TEXTURE_NPOT_MIPMAP"
-              glib:nick="texture-npot-mipmap"/>
-      <member name="texture_npot_repeat"
-              value="131072"
-              c:identifier="COGL_FEATURE_TEXTURE_NPOT_REPEAT"
-              glib:nick="texture-npot-repeat"/>
-      <member name="point_sprite"
-              value="262144"
-              c:identifier="COGL_FEATURE_POINT_SPRITE"
-              glib:nick="point-sprite"/>
-      <member name="texture_3d"
-              value="524288"
-              c:identifier="COGL_FEATURE_TEXTURE_3D"
-              glib:nick="texture-3d"/>
-      <member name="shaders_arbfp"
-              value="1048576"
-              c:identifier="COGL_FEATURE_SHADERS_ARBFP"
-              glib:nick="shaders-arbfp"/>
-    </bitfield>
-    <enumeration name="FogMode"
-                 version="1.0"
-                 glib:type-name="CoglFogMode"
-                 glib:get-type="cogl_fog_mode_get_type"
-                 c:type="CoglFogMode">
-      <doc xml:whitespace="preserve">The fog mode determines the equation used to calculate the fogging blend
-factor while fogging is enabled. The simplest %COGL_FOG_MODE_LINEAR mode
-determines f as:
-|[
-f = end - eye_distance / end - start
-]|
-Where eye_distance is the distance of the current fragment in eye
-coordinates from the origin.</doc>
-      <member name="linear"
-              value="0"
-              c:identifier="COGL_FOG_MODE_LINEAR"
-              glib:nick="linear"/>
-      <member name="exponential"
-              value="1"
-              c:identifier="COGL_FOG_MODE_EXPONENTIAL"
-              glib:nick="exponential"/>
-      <member name="exponential_squared"
-              value="2"
-              c:identifier="COGL_FOG_MODE_EXPONENTIAL_SQUARED"
-              glib:nick="exponential-squared"/>
-    </enumeration>
-    <record name="Framebuffer" c:type="CoglFramebuffer" disguised="1">
-    </record>
-    <callback name="FuncPtr" c:type="CoglFuncPtr">
-      <doc xml:whitespace="preserve">The type used by cogl for function pointers, note that this type
-is used as a generic catch-all cast for function pointers and the
-actual arguments and return type may be different.</doc>
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-    </callback>
-    <enumeration name="IndicesType"
-                 glib:type-name="CoglIndicesType"
-                 glib:get-type="cogl_indices_type_get_type"
-                 c:type="CoglIndicesType">
-      <doc xml:whitespace="preserve">You should aim to use the smallest data type that gives you enough
-range, since it reduces the size of your index array and can help
-reduce the demand on memory bandwidth.
-Note that %COGL_INDICES_TYPE_UNSIGNED_INT is only supported if the
-%COGL_FEATURE_UNSIGNED_INT_INDICES feature is available. This
-should always be available on OpenGL but on OpenGL ES it will only
-be available if the GL_OES_element_index_uint extension is
-advertized.</doc>
-      <member name="byte"
-              value="0"
-              c:identifier="COGL_INDICES_TYPE_UNSIGNED_BYTE"
-              glib:nick="byte"/>
-      <member name="short"
-              value="1"
-              c:identifier="COGL_INDICES_TYPE_UNSIGNED_SHORT"
-              glib:nick="short"/>
-      <member name="int"
-              value="2"
-              c:identifier="COGL_INDICES_TYPE_UNSIGNED_INT"
-              glib:nick="int"/>
-    </enumeration>
-    <record name="Material" c:type="CoglMaterial" disguised="1">
-      <method name="copy"
-              c:identifier="cogl_material_copy"
-              version="1.2"
-              introspectable="0">
-        <doc xml:whitespace="preserve">Creates a new material with the configuration copied from the
-source material.
-We would strongly advise developers to always aim to use
-cogl_material_copy() instead of cogl_material_new() whenever there will
-be any similarity between two materials. Copying a material helps Cogl
-keep track of a materials ancestry which we may use to help minimize GPU
-state changes.</doc>
-        <return-value>
-          <doc xml:whitespace="preserve">a pointer to the newly allocated #CoglMaterial</doc>
-          <type name="Material" c:type="CoglMaterial*"/>
-        </return-value>
-      </method>
-      <method name="foreach_layer"
-              c:identifier="cogl_material_foreach_layer"
-              version="1.4"
-              introspectable="0">
-        <doc xml:whitespace="preserve">Iterates all the layer indices of the given @material.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="callback" transfer-ownership="none" closure="1">
-            <doc xml:whitespace="preserve">A #CoglMaterialLayerCallback to be called for each layer index</doc>
-            <type name="MaterialLayerCallback"
-                  c:type="CoglMaterialLayerCallback"/>
-          </parameter>
-          <parameter name="user_data" transfer-ownership="none">
-            <doc xml:whitespace="preserve">Private data that will be passed to the callback</doc>
-            <type name="gpointer" c:type="void*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_ambient"
-              c:identifier="cogl_material_get_ambient"
-              version="1.0">
-        <doc xml:whitespace="preserve">Retrieves the current ambient color for @material</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="ambient" transfer-ownership="none">
-            <doc xml:whitespace="preserve">The location to store the ambient color</doc>
-            <type name="Color" c:type="CoglColor*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_color"
-              c:identifier="cogl_material_get_color"
-              version="1.0">
-        <doc xml:whitespace="preserve">Retrieves the current material color.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="color"
-                     direction="out"
-                     caller-allocates="1"
-                     transfer-ownership="none">
-            <doc xml:whitespace="preserve">The location to store the color</doc>
-            <type name="Color" c:type="CoglColor*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_depth_range"
-              c:identifier="cogl_material_get_depth_range">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="near_val" transfer-ownership="none">
-            <type name="gfloat" c:type="float*"/>
-          </parameter>
-          <parameter name="far_val" transfer-ownership="none">
-            <type name="gfloat" c:type="float*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_depth_test_enabled"
-              c:identifier="cogl_material_get_depth_test_enabled"
-              version="1.4">
-        <doc xml:whitespace="preserve">Gets the current depth test enabled state as previously set by
-cogl_material_set_depth_test_enabled().</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">The material's current depth test enabled state.</doc>
-          <type name="gboolean" c:type="gboolean"/>
-        </return-value>
-      </method>
-      <method name="get_depth_test_function"
-              c:identifier="cogl_material_get_depth_test_function"
-              version="1.4">
-        <doc xml:whitespace="preserve">Gets the current depth test enable state as previously set via
-cogl_material_set_depth_test_enabled().</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">The current depth test enable state.</doc>
-          <type name="DepthTestFunction" c:type="CoglDepthTestFunction"/>
-        </return-value>
-      </method>
-      <method name="get_depth_writing_enabled"
-              c:identifier="cogl_material_get_depth_writing_enabled"
-              version="1.4">
-        <doc xml:whitespace="preserve">Gets the depth writing enable state as set by the corresponding
-cogl_material_set_depth_writing_enabled.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">The current depth writing enable state</doc>
-          <type name="gboolean" c:type="gboolean"/>
-        </return-value>
-      </method>
-      <method name="get_diffuse"
-              c:identifier="cogl_material_get_diffuse"
-              version="1.0">
-        <doc xml:whitespace="preserve">Retrieves the current diffuse color for @material</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="diffuse" transfer-ownership="none">
-            <doc xml:whitespace="preserve">The location to store the diffuse color</doc>
-            <type name="Color" c:type="CoglColor*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_emission"
-              c:identifier="cogl_material_get_emission"
-              version="1.0">
-        <doc xml:whitespace="preserve">Retrieves the materials current emission color.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="emission" transfer-ownership="none">
-            <doc xml:whitespace="preserve">The location to store the emission color</doc>
-            <type name="Color" c:type="CoglColor*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_layer_point_sprite_coords_enabled"
-              c:identifier="cogl_material_get_layer_point_sprite_coords_enabled"
-              version="1.4">
-        <doc xml:whitespace="preserve">Gets whether point sprite coordinate generation is enabled for this
-texture layer.
-point sprite coordinates.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">whether the texture coordinates will be replaced with</doc>
-          <type name="gboolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="layer_index" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the layer number to check.</doc>
-            <type name="gint" c:type="int"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_layers" c:identifier="cogl_material_get_layers">
-        <doc xml:whitespace="preserve">This function lets you access a material's internal list of layers
-for iteration.
-&lt;note&gt;You should avoid using this API if possible since it was only
-made public by mistake and will be deprecated when we have
-suitable alternative.&lt;/note&gt;
-&lt;note&gt;It's important to understand that the list returned may not
-remain valid if you modify the material or any of the layers in any
-way and so you would have to re-get the list in that
-situation.&lt;/note&gt;
-list of #CoglMaterialLayer&lt;!-- --&gt;'s that can be passed to the
-cogl_material_layer_* functions. The list is owned by Cogl and it
-should not be modified or freed</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">A</doc>
-          <type name="GLib.List" c:type="GList*">
-            <type name="MaterialLayer"/>
-          </type>
-        </return-value>
-      </method>
-      <method name="get_n_layers"
-              c:identifier="cogl_material_get_n_layers"
-              version="1.0">
-        <doc xml:whitespace="preserve">Retrieves the number of layers defined for the given @material</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the number of layers</doc>
-          <type name="gint" c:type="int"/>
-        </return-value>
-      </method>
-      <method name="get_shininess"
-              c:identifier="cogl_material_get_shininess"
-              version="1.0">
-        <doc xml:whitespace="preserve">Retrieves the materials current emission color.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">The materials current shininess value</doc>
-          <type name="gfloat" c:type="float"/>
-        </return-value>
-      </method>
-      <method name="get_specular"
-              c:identifier="cogl_material_get_specular"
-              version="1.0">
-        <doc xml:whitespace="preserve">Retrieves the materials current specular color.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="specular" transfer-ownership="none">
-            <doc xml:whitespace="preserve">The location to store the specular color</doc>
-            <type name="Color" c:type="CoglColor*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_user_program"
-              c:identifier="cogl_material_get_user_program"
-              version="1.4"
-              introspectable="0">
-        <doc xml:whitespace="preserve">Queries what user program has been associated with the given</doc>
-        <return-value>
-          <doc xml:whitespace="preserve">The current user program or %COGL_INVALID_HANDLE.</doc>
-          <type name="Handle" c:type="CoglHandle"/>
-        </return-value>
-      </method>
-      <method name="remove_layer" c:identifier="cogl_material_remove_layer">
-        <doc xml:whitespace="preserve">This function removes a layer from your material</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="layer_index" transfer-ownership="none">
-            <doc xml:whitespace="preserve">Specifies the layer you want to remove</doc>
-            <type name="gint" c:type="int"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_alpha_test_function"
-              c:identifier="cogl_material_set_alpha_test_function"
-              version="1.0">
-        <doc xml:whitespace="preserve">Before a primitive is blended with the framebuffer, it goes through an
-alpha test stage which lets you discard fragments based on the current
-alpha value. This function lets you change the function used to evaluate
-the alpha channel, and thus determine which fragments are discarded
-and which continue on to the blending stage.
-The default is %COGL_MATERIAL_ALPHA_FUNC_ALWAYS</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="alpha_func" transfer-ownership="none">
-            <doc xml:whitespace="preserve">A @CoglMaterialAlphaFunc constant</doc>
-            <type name="MaterialAlphaFunc" c:type="CoglMaterialAlphaFunc"/>
-          </parameter>
-          <parameter name="alpha_reference" transfer-ownership="none">
-            <doc xml:whitespace="preserve">A reference point that the chosen alpha function uses to compare incoming fragments to.</doc>
-            <type name="gfloat" c:type="float"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_ambient"
-              c:identifier="cogl_material_set_ambient"
-              version="1.0">
-        <doc xml:whitespace="preserve">Sets the material's ambient color, in the standard OpenGL lighting
-model. The ambient color affects the overall color of the object.
-Since the diffuse color will be intense when the light hits the surface
-directly, the ambient will be most apparent where the light hits at a
-slant.
-The default value is (0.2, 0.2, 0.2, 1.0)</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="ambient" transfer-ownership="none">
-            <doc xml:whitespace="preserve">The components of the desired ambient color</doc>
-            <type name="Color" c:type="CoglColor*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_ambient_and_diffuse"
-              c:identifier="cogl_material_set_ambient_and_diffuse"
-              version="1.0">
-        <doc xml:whitespace="preserve">Conveniently sets the diffuse and ambient color of @material at the same
-time. See cogl_material_set_ambient() and cogl_material_set_diffuse().
-The default ambient color is (0.2, 0.2, 0.2, 1.0)
-The default diffuse color is (0.8, 0.8, 0.8, 1.0)</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="color" transfer-ownership="none">
-            <doc xml:whitespace="preserve">The components of the desired ambient and diffuse colors</doc>
-            <type name="Color" c:type="CoglColor*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_blend"
-              c:identifier="cogl_material_set_blend"
-              version="1.0"
-              throws="1">
-        <doc xml:whitespace="preserve">If not already familiar; please refer &lt;link linkend="cogl-Blend-Strings"&gt;here&lt;/link&gt;
-for an overview of what blend strings are, and their syntax.
-Blending occurs after the alpha test function, and combines fragments with
-the framebuffer.
-Currently the only blend function Cogl exposes is ADD(). So any valid
-blend statements will be of the form:
-|[
-&amp;lt;channel-mask&amp;gt;=ADD(SRC_COLOR*(&amp;lt;factor&amp;gt;), DST_COLOR*(&amp;lt;factor&amp;gt;))
-]|
-&lt;warning&gt;The brackets around blend factors are currently not
-optional!&lt;/warning&gt;
-This is the list of source-names usable as blend factors:
-&lt;itemizedlist&gt;
-&lt;listitem&gt;&lt;para&gt;SRC_COLOR: The color of the in comming fragment&lt;/para&gt;&lt;/listitem&gt;
-&lt;listitem&gt;&lt;para&gt;DST_COLOR: The color of the framebuffer&lt;/para&gt;&lt;/listitem&gt;
-&lt;listitem&gt;&lt;para&gt;CONSTANT: The constant set via cogl_material_set_blend_constant()&lt;/para&gt;&lt;/listitem&gt;
-&lt;/itemizedlist&gt;
-The source names can be used according to the
-&lt;link linkend="cogl-Blend-String-syntax"&gt;color-source and factor syntax&lt;/link&gt;,
-so for example "(1-SRC_COLOR[A])" would be a valid factor, as would
-"(CONSTANT[RGB])"
-These can also be used as factors:
-&lt;itemizedlist&gt;
-&lt;listitem&gt;0: (0, 0, 0, 0)&lt;/listitem&gt;
-&lt;listitem&gt;1: (1, 1, 1, 1)&lt;/listitem&gt;
-&lt;listitem&gt;SRC_ALPHA_SATURATE_FACTOR: (f,f,f,1) where f = MIN(SRC_COLOR[A],1-DST_COLOR[A])&lt;/listitem&gt;
-&lt;/itemizedlist&gt;
-&lt;note&gt;Remember; all color components are normalized to the range [0, 1]
-before computing the result of blending.&lt;/note&gt;
-&lt;example id="cogl-Blend-Strings-blend-unpremul"&gt;
-&lt;title&gt;Blend Strings/1&lt;/title&gt;
-&lt;para&gt;Blend a non-premultiplied source over a destination with
-premultiplied alpha:&lt;/para&gt;
-&lt;programlisting&gt;
-"RGB = ADD(SRC_COLOR*(SRC_COLOR[A]), DST_COLOR*(1-SRC_COLOR[A]))"
-"A   = ADD(SRC_COLOR, DST_COLOR*(1-SRC_COLOR[A]))"
-&lt;/programlisting&gt;
-&lt;/example&gt;
-&lt;example id="cogl-Blend-Strings-blend-premul"&gt;
-&lt;title&gt;Blend Strings/2&lt;/title&gt;
-&lt;para&gt;Blend a premultiplied source over a destination with
-premultiplied alpha&lt;/para&gt;
-&lt;programlisting&gt;
-"RGBA = ADD(SRC_COLOR, DST_COLOR*(1-SRC_COLOR[A]))"
-&lt;/programlisting&gt;
-&lt;/example&gt;
-The default blend string is:
-|[
-RGBA = ADD (SRC_COLOR, DST_COLOR*(1-SRC_COLOR[A]))
-]|
-That gives normal alpha-blending when the calculated color for the material
-is in premultiplied form.
-described blending is supported by the underlying driver/hardware. If
-there was an error, %FALSE is returned and @error is set accordingly (if
-present).</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">%TRUE if the blend string was successfully parsed, and the</doc>
-          <type name="gboolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="blend_string" transfer-ownership="none">
-            <doc xml:whitespace="preserve">A &lt;link linkend="cogl-Blend-Strings"&gt;Cogl blend string&lt;/link&gt; describing the desired blend function.</doc>
-            <type name="utf8" c:type="char*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_blend_constant"
-              c:identifier="cogl_material_set_blend_constant"
-              version="1.0">
-        <doc xml:whitespace="preserve">When blending is setup to reference a CONSTANT blend factor then
-blending will depend on the constant set with this function.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="constant_color" transfer-ownership="none">
-            <doc xml:whitespace="preserve">The constant color you want</doc>
-            <type name="Color" c:type="CoglColor*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_color"
-              c:identifier="cogl_material_set_color"
-              version="1.0">
-        <doc xml:whitespace="preserve">Sets the basic color of the material, used when no lighting is enabled.
-Note that if you don't add any layers to the material then the color
-will be blended unmodified with the destination; the default blend
-semi-transparent red. See cogl_color_premultiply().
-The default value is (1.0, 1.0, 1.0, 1.0)</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="color" transfer-ownership="none">
-            <doc xml:whitespace="preserve">The components of the color</doc>
-            <type name="Color" c:type="CoglColor*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_color4f"
-              c:identifier="cogl_material_set_color4f"
-              version="1.0">
-        <doc xml:whitespace="preserve">Sets the basic color of the material, used when no lighting is enabled.
-The default value is (1.0, 1.0, 1.0, 1.0)</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="red" transfer-ownership="none">
-            <doc xml:whitespace="preserve">The red component</doc>
-            <type name="gfloat" c:type="float"/>
-          </parameter>
-          <parameter name="green" transfer-ownership="none">
-            <doc xml:whitespace="preserve">The green component</doc>
-            <type name="gfloat" c:type="float"/>
-          </parameter>
-          <parameter name="blue" transfer-ownership="none">
-            <doc xml:whitespace="preserve">The blue component</doc>
-            <type name="gfloat" c:type="float"/>
-          </parameter>
-          <parameter name="alpha" transfer-ownership="none">
-            <doc xml:whitespace="preserve">The alpha component</doc>
-            <type name="gfloat" c:type="float"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_color4ub"
-              c:identifier="cogl_material_set_color4ub"
-              version="1.0">
-        <doc xml:whitespace="preserve">Sets the basic color of the material, used when no lighting is enabled.
-The default value is (0xff, 0xff, 0xff, 0xff)</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="red" transfer-ownership="none">
-            <doc xml:whitespace="preserve">The red component</doc>
-            <type name="guint8" c:type="guint8"/>
-          </parameter>
-          <parameter name="green" transfer-ownership="none">
-            <doc xml:whitespace="preserve">The green component</doc>
-            <type name="guint8" c:type="guint8"/>
-          </parameter>
-          <parameter name="blue" transfer-ownership="none">
-            <doc xml:whitespace="preserve">The blue component</doc>
-            <type name="guint8" c:type="guint8"/>
-          </parameter>
-          <parameter name="alpha" transfer-ownership="none">
-            <doc xml:whitespace="preserve">The alpha component</doc>
-            <type name="guint8" c:type="guint8"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_depth_range"
-              c:identifier="cogl_material_set_depth_range"
-              version="1.4"
-              throws="1">
-        <doc xml:whitespace="preserve">Sets the range to map depth values in normalized device coordinates
-to before writing out to a depth buffer.
-After your geometry has be transformed, clipped and had perspective
-division applied placing it in normalized device
-coordinates all depth values between the near and far z clipping
-planes are in the range -1 to 1. Before writing any depth value to
-the depth buffer though the value is mapped into the range [0, 1].
-With this function you can change the range which depth values are
-mapped too although the range must still lye within the range [0,
-1].
-If your driver does not support this feature (for example you are
-using GLES 1 drivers) then this will return %FALSE and set an error
-if @error isn't NULL. You can check ahead of time for the
-%COGL_FEATURE_DEPTH_RANGE feature with cogl_features_available() to
-know if this function will succeed.
-By default normalized device coordinate depth values are mapped to
-the full range of depth buffer values, [0, 1].</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">%TRUE if driver support is available else %FALSE.</doc>
-          <type name="gboolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="near_val" transfer-ownership="none">
-            <doc xml:whitespace="preserve">The near component of the desired depth range which will be clamped to the range [0, 1]</doc>
-            <type name="gfloat" c:type="float"/>
-          </parameter>
-          <parameter name="far_val" transfer-ownership="none">
-            <doc xml:whitespace="preserve">The far component of the desired depth range which will be clamped to the range [0, 1]</doc>
-            <type name="gfloat" c:type="float"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_depth_test_enabled"
-              c:identifier="cogl_material_set_depth_test_enabled"
-              version="1.4">
-        <doc xml:whitespace="preserve">Enables or disables depth testing according to the value of
-If depth testing is enable then the #CoglDepthTestFunction set
-using cogl_material_set_depth_test_function() us used to evaluate
-the depth value of incoming fragments against the corresponding
-value stored in the current depth buffer, and if the test passes
-then the fragments depth value is used to update the depth buffer.
-(unless you have disabled depth writing via
-cogl_material_set_depth_writing_enabled ())
-By default depth testing is disabled.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="enable" transfer-ownership="none">
-            <doc xml:whitespace="preserve">The enable state you want</doc>
-            <type name="gboolean" c:type="gboolean"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_depth_test_function"
-              c:identifier="cogl_material_set_depth_test_function"
-              version="1.4">
-        <doc xml:whitespace="preserve">Sets the #CoglDepthTestFunction used to compare the depth value of
-an incoming fragment against the corresponding value in the current
-depth buffer.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="function" transfer-ownership="none">
-            <doc xml:whitespace="preserve">The #CoglDepthTestFunction to set</doc>
-            <type name="DepthTestFunction" c:type="CoglDepthTestFunction"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_depth_writing_enabled"
-              c:identifier="cogl_material_set_depth_writing_enabled"
-              version="1.4">
-        <doc xml:whitespace="preserve">Enables or disables depth buffer writing according to the value of
-between a fragment's depth value and the corresponding depth buffer
-value passes then the fragment's depth is written to the depth
-buffer unless writing is disabled here.
-By default depth writing is enabled</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="enable" transfer-ownership="none">
-            <doc xml:whitespace="preserve">The enable state you want</doc>
-            <type name="gboolean" c:type="gboolean"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_diffuse"
-              c:identifier="cogl_material_set_diffuse"
-              version="1.0">
-        <doc xml:whitespace="preserve">Sets the material's diffuse color, in the standard OpenGL lighting
-model. The diffuse color is most intense where the light hits the
-surface directly - perpendicular to the surface.
-The default value is (0.8, 0.8, 0.8, 1.0)</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="diffuse" transfer-ownership="none">
-            <doc xml:whitespace="preserve">The components of the desired diffuse color</doc>
-            <type name="Color" c:type="CoglColor*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_emission"
-              c:identifier="cogl_material_set_emission"
-              version="1.0">
-        <doc xml:whitespace="preserve">Sets the material's emissive color, in the standard OpenGL lighting
-model. It will look like the surface is a light source emitting this
-color.
-The default value is (0.0, 0.0, 0.0, 1.0)</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="emission" transfer-ownership="none">
-            <doc xml:whitespace="preserve">The components of the desired emissive color</doc>
-            <type name="Color" c:type="CoglColor*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_layer"
-              c:identifier="cogl_material_set_layer"
-              version="1.0">
-        <doc xml:whitespace="preserve">In addition to the standard OpenGL lighting model a Cogl material may have
-one or more layers comprised of textures that can be blended together in
-order, with a number of different texture combine modes. This function
-defines a new texture layer.
-The index values of multiple layers do not have to be consecutive; it is
-only their relative order that is important.
-&lt;note&gt;In the future, we may define other types of material layers, such
-as purely GLSL based layers.&lt;/note&gt;</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="layer_index" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the index of the layer</doc>
-            <type name="gint" c:type="int"/>
-          </parameter>
-          <parameter name="texture" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #CoglHandle for the layer object</doc>
-            <type name="Handle" c:type="CoglHandle"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_layer_combine"
-              c:identifier="cogl_material_set_layer_combine"
-              version="1.0"
-              throws="1">
-        <doc xml:whitespace="preserve">If not already familiar; you can refer
-&lt;link linkend="cogl-Blend-Strings"&gt;here&lt;/link&gt; for an overview of what blend
-strings are and there syntax.
-These are all the functions available for texture combining:
-&lt;itemizedlist&gt;
-&lt;listitem&gt;REPLACE(arg0) = arg0&lt;/listitem&gt;
-&lt;listitem&gt;MODULATE(arg0, arg1) = arg0 x arg1&lt;/listitem&gt;
-&lt;listitem&gt;ADD(arg0, arg1) = arg0 + arg1&lt;/listitem&gt;
-&lt;listitem&gt;ADD_SIGNED(arg0, arg1) = arg0 + arg1 - 0.5&lt;/listitem&gt;
-&lt;listitem&gt;INTERPOLATE(arg0, arg1, arg2) = arg0 x arg2 + arg1 x (1 - arg2)&lt;/listitem&gt;
-&lt;listitem&gt;SUBTRACT(arg0, arg1) = arg0 - arg1&lt;/listitem&gt;
-&lt;listitem&gt;
-&lt;programlisting&gt;
-DOT3_RGB(arg0, arg1) = 4 x ((arg0[R] - 0.5)) * (arg1[R] - 0.5) +
-(arg0[G] - 0.5)) * (arg1[G] - 0.5) +
-(arg0[B] - 0.5)) * (arg1[B] - 0.5))
-&lt;/programlisting&gt;
-&lt;/listitem&gt;
-&lt;listitem&gt;
-&lt;programlisting&gt;
-DOT3_RGBA(arg0, arg1) = 4 x ((arg0[R] - 0.5)) * (arg1[R] - 0.5) +
-(arg0[G] - 0.5)) * (arg1[G] - 0.5) +
-(arg0[B] - 0.5)) * (arg1[B] - 0.5))
-&lt;/programlisting&gt;
-&lt;/listitem&gt;
-&lt;/itemizedlist&gt;
-Refer to the
-&lt;link linkend="cogl-Blend-String-syntax"&gt;color-source syntax&lt;/link&gt; for
-describing the arguments. The valid source names for texture combining
-are:
-&lt;variablelist&gt;
-&lt;varlistentry&gt;
-&lt;term&gt;TEXTURE&lt;/term&gt;
-&lt;listitem&gt;Use the color from the current texture layer&lt;/listitem&gt;
-&lt;/varlistentry&gt;
-&lt;varlistentry&gt;
-&lt;term&gt;TEXTURE_0, TEXTURE_1, etc&lt;/term&gt;
-&lt;listitem&gt;Use the color from the specified texture layer&lt;/listitem&gt;
-&lt;/varlistentry&gt;
-&lt;varlistentry&gt;
-&lt;term&gt;CONSTANT&lt;/term&gt;
-&lt;listitem&gt;Use the color from the constant given with
-cogl_material_set_layer_constant()&lt;/listitem&gt;
-&lt;/varlistentry&gt;
-&lt;varlistentry&gt;
-&lt;term&gt;PRIMARY&lt;/term&gt;
-&lt;listitem&gt;Use the color of the material as set with
-cogl_material_set_color()&lt;/listitem&gt;
-&lt;/varlistentry&gt;
-&lt;varlistentry&gt;
-&lt;term&gt;PREVIOUS&lt;/term&gt;
-&lt;listitem&gt;Either use the texture color from the previous layer, or
-if this is layer 0, use the color of the material as set with
-cogl_material_set_color()&lt;/listitem&gt;
-&lt;/varlistentry&gt;
-&lt;/variablelist&gt;
-&lt;refsect2 id="cogl-Layer-Combine-Examples"&gt;
-&lt;title&gt;Layer Combine Examples&lt;/title&gt;
-&lt;para&gt;This is effectively what the default blending is:&lt;/para&gt;
-&lt;informalexample&gt;&lt;programlisting&gt;
-RGBA = MODULATE (PREVIOUS, TEXTURE)
-&lt;/programlisting&gt;&lt;/informalexample&gt;
-&lt;para&gt;This could be used to cross-fade between two images, using
-the alpha component of a constant as the interpolator. The constant
-color is given by calling cogl_material_set_layer_constant.&lt;/para&gt;
-&lt;informalexample&gt;&lt;programlisting&gt;
-RGBA = INTERPOLATE (PREVIOUS, TEXTURE, CONSTANT[A])
-&lt;/programlisting&gt;&lt;/informalexample&gt;
-&lt;/refsect2&gt;
-&lt;note&gt;You can't give a multiplication factor for arguments as you can
-with blending.&lt;/note&gt;
-described texture combining is supported by the underlying driver and
-or hardware. On failure, %FALSE is returned and @error is set</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">%TRUE if the blend string was successfully parsed, and the</doc>
-          <type name="gboolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="layer_index" transfer-ownership="none">
-            <doc xml:whitespace="preserve">Specifies the layer you want define a combine function for</doc>
-            <type name="gint" c:type="int"/>
-          </parameter>
-          <parameter name="blend_string" transfer-ownership="none">
-            <doc xml:whitespace="preserve">A &lt;link linkend="cogl-Blend-Strings"&gt;Cogl blend string&lt;/link&gt; describing the desired texture combine function.</doc>
-            <type name="utf8" c:type="char*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_layer_combine_constant"
-              c:identifier="cogl_material_set_layer_combine_constant"
-              version="1.0">
-        <doc xml:whitespace="preserve">When you are using the 'CONSTANT' color source in a layer combine
-description then you can use this function to define its value.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="layer_index" transfer-ownership="none">
-            <doc xml:whitespace="preserve">Specifies the layer you want to specify a constant used for texture combining</doc>
-            <type name="gint" c:type="int"/>
-          </parameter>
-          <parameter name="constant" transfer-ownership="none">
-            <doc xml:whitespace="preserve">The constant color you want</doc>
-            <type name="Color" c:type="CoglColor*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_layer_filters"
-              c:identifier="cogl_material_set_layer_filters">
-        <doc xml:whitespace="preserve">Changes the decimation and interpolation filters used when a texture is
-drawn at other scales than 100%.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="layer_index" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the layer number to change.</doc>
-            <type name="gint" c:type="int"/>
-          </parameter>
-          <parameter name="min_filter" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the filter used when scaling a texture down.</doc>
-            <type name="MaterialFilter" c:type="CoglMaterialFilter"/>
-          </parameter>
-          <parameter name="mag_filter" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the filter used when magnifying a texture.</doc>
-            <type name="MaterialFilter" c:type="CoglMaterialFilter"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_layer_matrix"
-              c:identifier="cogl_material_set_layer_matrix">
-        <doc xml:whitespace="preserve">This function lets you set a matrix that can be used to e.g. translate
-and rotate a single layer of a material used to fill your geometry.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="layer_index" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the index for the layer inside @material</doc>
-            <type name="gint" c:type="int"/>
-          </parameter>
-          <parameter name="matrix" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the transformation matrix for the layer</doc>
-            <type name="Matrix" c:type="CoglMatrix*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_layer_point_sprite_coords_enabled"
-              c:identifier="cogl_material_set_layer_point_sprite_coords_enabled"
-              version="1.4"
-              throws="1">
-        <doc xml:whitespace="preserve">When rendering points, if @enable is %TRUE then the texture
-coordinates for this layer will be replaced with coordinates that
-vary from 0.0 to 1.0 across the primitive. The top left of the
-point will have the coordinates 0.0,0.0 and the bottom right will
-have 1.0,1.0. If @enable is %FALSE then the coordinates will be
-fixed for the entire point.
-This function will only work if %COGL_FEATURE_POINT_SPRITE is
-available. If the feature is not available then the function will
-return %FALSE and set @error.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">%TRUE if the function succeeds, %FALSE otherwise.</doc>
-          <type name="gboolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="layer_index" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the layer number to change.</doc>
-            <type name="gint" c:type="int"/>
-          </parameter>
-          <parameter name="enable" transfer-ownership="none">
-            <doc xml:whitespace="preserve">whether to enable point sprite coord generation.</doc>
-            <type name="gboolean" c:type="gboolean"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_layer_wrap_mode"
-              c:identifier="cogl_material_set_layer_wrap_mode"
-              version="1.4">
-        <doc xml:whitespace="preserve">Sets the wrap mode for all three coordinates of texture lookups on
-this layer. This is equivalent to calling
-cogl_material_set_layer_wrap_mode_s(),
-cogl_material_set_layer_wrap_mode_t() and
-cogl_material_set_layer_wrap_mode_p() separately.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="layer_index" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the layer number to change.</doc>
-            <type name="gint" c:type="int"/>
-          </parameter>
-          <parameter name="mode" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the new wrap mode</doc>
-            <type name="MaterialWrapMode" c:type="CoglMaterialWrapMode"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_layer_wrap_mode_p"
-              c:identifier="cogl_material_set_layer_wrap_mode_p"
-              version="1.4">
-        <doc xml:whitespace="preserve">Sets the wrap mode for the 'p' coordinate of texture lookups on
-this layer. 'p' is the third coordinate.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="layer_index" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the layer number to change.</doc>
-            <type name="gint" c:type="int"/>
-          </parameter>
-          <parameter name="mode" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the new wrap mode</doc>
-            <type name="MaterialWrapMode" c:type="CoglMaterialWrapMode"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_layer_wrap_mode_s"
-              c:identifier="cogl_material_set_layer_wrap_mode_s"
-              version="1.4">
-        <doc xml:whitespace="preserve">Sets the wrap mode for the 's' coordinate of texture lookups on this layer.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="layer_index" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the layer number to change.</doc>
-            <type name="gint" c:type="int"/>
-          </parameter>
-          <parameter name="mode" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the new wrap mode</doc>
-            <type name="MaterialWrapMode" c:type="CoglMaterialWrapMode"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_layer_wrap_mode_t"
-              c:identifier="cogl_material_set_layer_wrap_mode_t"
-              version="1.4">
-        <doc xml:whitespace="preserve">Sets the wrap mode for the 't' coordinate of texture lookups on this layer.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="layer_index" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the layer number to change.</doc>
-            <type name="gint" c:type="int"/>
-          </parameter>
-          <parameter name="mode" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the new wrap mode</doc>
-            <type name="MaterialWrapMode" c:type="CoglMaterialWrapMode"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_shininess"
-              c:identifier="cogl_material_set_shininess"
-              version="1.0">
-        <doc xml:whitespace="preserve">Sets the shininess of the material, in the standard OpenGL lighting
-model, which determines the size of the specular highlights. A
-higher @shininess will produce smaller highlights which makes the
-object appear more shiny.
-The default value is 0.0</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="shininess" transfer-ownership="none">
-            <doc xml:whitespace="preserve">The desired shininess; must be &gt;= 0.0</doc>
-            <type name="gfloat" c:type="float"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_specular"
-              c:identifier="cogl_material_set_specular"
-              version="1.0">
-        <doc xml:whitespace="preserve">Sets the material's specular color, in the standard OpenGL lighting
-model. The intensity of the specular color depends on the viewport
-position, and is brightest along the lines of reflection.
-The default value is (0.0, 0.0, 0.0, 1.0)</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="specular" transfer-ownership="none">
-            <doc xml:whitespace="preserve">The components of the desired specular color</doc>
-            <type name="Color" c:type="CoglColor*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_user_program"
-              c:identifier="cogl_material_set_user_program"
-              version="1.4">
-        <doc xml:whitespace="preserve">Associates a linked CoglProgram with the given material so that the
-program can take full control of vertex and/or fragment processing.
-This is an example of how it can be used to associate an ARBfp
-program with a #CoglMaterial:
-|[
-CoglHandle shader;
-CoglHandle program;
-CoglMaterial *material;
-shader = cogl_create_shader (COGL_SHADER_TYPE_FRAGMENT);
-cogl_shader_source (shader,
-"!!ARBfp1.0\n"
-"MOV result.color,fragment.color;\n"
-"END\n");
-cogl_shader_compile (shader);
-program = cogl_create_program ();
-cogl_program_attach_shader (program, shader);
-cogl_program_link (program);
-material = cogl_material_new ();
-cogl_material_set_user_program (material, program);
-cogl_set_source_color4ub (0xff, 0x00, 0x00, 0xff);
-cogl_rectangle (0, 0, 100, 100);
-]|
-It is possibly worth keeping in mind that this API is not part of
-the long term design for how we want to expose shaders to Cogl
-developers (We are planning on deprecating the cogl_program and
-cogl_shader APIs in favour of a "snippet" framework) but in the
-meantime we hope this will handle most practical GLSL and ARBfp
-requirements.
-Also remember you need to check for either the
-%COGL_FEATURE_SHADERS_GLSL or %COGL_FEATURE_SHADERS_ARBFP before
-using the cogl_program or cogl_shader API.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="program" transfer-ownership="none">
-            <doc xml:whitespace="preserve">A #CoglHandle to a linked CoglProgram</doc>
-            <type name="Handle" c:type="CoglHandle"/>
-          </parameter>
-        </parameters>
-      </method>
-    </record>
-    <enumeration name="MaterialAlphaFunc"
-                 glib:type-name="CoglMaterialAlphaFunc"
-                 glib:get-type="cogl_material_alpha_func_get_type"
-                 c:type="CoglMaterialAlphaFunc">
-      <doc xml:whitespace="preserve">Alpha testing happens before blending primitives with the framebuffer and
-gives an opportunity to discard fragments based on a comparison with the
-incoming alpha value and a reference alpha value. The #CoglMaterialAlphaFunc
-determines how the comparison is done.</doc>
-      <member name="never"
-              value="512"
-              c:identifier="COGL_MATERIAL_ALPHA_FUNC_NEVER"
-              glib:nick="never"/>
-      <member name="less"
-              value="513"
-              c:identifier="COGL_MATERIAL_ALPHA_FUNC_LESS"
-              glib:nick="less"/>
-      <member name="equal"
-              value="514"
-              c:identifier="COGL_MATERIAL_ALPHA_FUNC_EQUAL"
-              glib:nick="equal"/>
-      <member name="lequal"
-              value="515"
-              c:identifier="COGL_MATERIAL_ALPHA_FUNC_LEQUAL"
-              glib:nick="lequal"/>
-      <member name="greater"
-              value="516"
-              c:identifier="COGL_MATERIAL_ALPHA_FUNC_GREATER"
-              glib:nick="greater"/>
-      <member name="notequal"
-              value="517"
-              c:identifier="COGL_MATERIAL_ALPHA_FUNC_NOTEQUAL"
-              glib:nick="notequal"/>
-      <member name="gequal"
-              value="518"
-              c:identifier="COGL_MATERIAL_ALPHA_FUNC_GEQUAL"
-              glib:nick="gequal"/>
-      <member name="always"
-              value="519"
-              c:identifier="COGL_MATERIAL_ALPHA_FUNC_ALWAYS"
-              glib:nick="always"/>
-    </enumeration>
-    <enumeration name="MaterialFilter"
-                 glib:type-name="CoglMaterialFilter"
-                 glib:get-type="cogl_material_filter_get_type"
-                 c:type="CoglMaterialFilter">
-      <doc xml:whitespace="preserve">Texture filtering is used whenever the current pixel maps either to more
-than one texture element (texel) or less than one. These filter enums
-correspond to different strategies used to come up with a pixel color, by
-possibly referring to multiple neighbouring texels and taking a weighted
-average or simply using the nearest texel.</doc>
-      <member name="nearest"
-              value="9728"
-              c:identifier="COGL_MATERIAL_FILTER_NEAREST"
-              glib:nick="nearest"/>
-      <member name="linear"
-              value="9729"
-              c:identifier="COGL_MATERIAL_FILTER_LINEAR"
-              glib:nick="linear"/>
-      <member name="nearest_mipmap_nearest"
-              value="9984"
-              c:identifier="COGL_MATERIAL_FILTER_NEAREST_MIPMAP_NEAREST"
-              glib:nick="nearest-mipmap-nearest"/>
-      <member name="linear_mipmap_nearest"
-              value="9985"
-              c:identifier="COGL_MATERIAL_FILTER_LINEAR_MIPMAP_NEAREST"
-              glib:nick="linear-mipmap-nearest"/>
-      <member name="nearest_mipmap_linear"
-              value="9986"
-              c:identifier="COGL_MATERIAL_FILTER_NEAREST_MIPMAP_LINEAR"
-              glib:nick="nearest-mipmap-linear"/>
-      <member name="linear_mipmap_linear"
-              value="9987"
-              c:identifier="COGL_MATERIAL_FILTER_LINEAR_MIPMAP_LINEAR"
-              glib:nick="linear-mipmap-linear"/>
-    </enumeration>
-    <record name="MaterialLayer" c:type="CoglMaterialLayer" disguised="1">
-      <method name="get_mag_filter"
-              c:identifier="cogl_material_layer_get_mag_filter">
-        <doc xml:whitespace="preserve">Queries the currently set downscaling filter for a material later</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the current downscaling filter</doc>
-          <type name="MaterialFilter" c:type="CoglMaterialFilter"/>
-        </return-value>
-      </method>
-      <method name="get_min_filter"
-              c:identifier="cogl_material_layer_get_min_filter">
-        <doc xml:whitespace="preserve">Queries the currently set downscaling filter for a material layer</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the current downscaling filter</doc>
-          <type name="MaterialFilter" c:type="CoglMaterialFilter"/>
-        </return-value>
-      </method>
-      <method name="get_texture"
-              c:identifier="cogl_material_layer_get_texture">
-        <doc xml:whitespace="preserve">Extracts a texture handle for a specific layer.
-&lt;note&gt;In the future Cogl may support purely GLSL based layers; for those
-layers this function which will likely return %COGL_INVALID_HANDLE if you
-try to get the texture handle from them. Considering this scenario, you
-should call cogl_material_layer_get_type() first in order check it is of
-type %COGL_MATERIAL_LAYER_TYPE_TEXTURE before calling this function.&lt;/note&gt;</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">a #CoglHandle for the texture inside the layer</doc>
-          <type name="Handle" c:type="CoglHandle"/>
-        </return-value>
-      </method>
-      <method name="get_wrap_mode_p"
-              c:identifier="cogl_material_layer_get_wrap_mode_p"
-              version="1.4">
-        <doc xml:whitespace="preserve">Gets the wrap mode for the 'p' coordinate of texture lookups on
-this layer. 'p' is the third coordinate.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the wrap mode value for the p coordinate.</doc>
-          <type name="MaterialWrapMode" c:type="CoglMaterialWrapMode"/>
-        </return-value>
-      </method>
-      <method name="get_wrap_mode_s"
-              c:identifier="cogl_material_layer_get_wrap_mode_s"
-              version="1.4">
-        <doc xml:whitespace="preserve">Gets the wrap mode for the 's' coordinate of texture lookups on this layer.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the wrap mode value for the s coordinate.</doc>
-          <type name="MaterialWrapMode" c:type="CoglMaterialWrapMode"/>
-        </return-value>
-      </method>
-      <method name="get_wrap_mode_t"
-              c:identifier="cogl_material_layer_get_wrap_mode_t"
-              version="1.4">
-        <doc xml:whitespace="preserve">Gets the wrap mode for the 't' coordinate of texture lookups on this layer.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the wrap mode value for the t coordinate.</doc>
-          <type name="MaterialWrapMode" c:type="CoglMaterialWrapMode"/>
-        </return-value>
-      </method>
-    </record>
-    <callback name="MaterialLayerCallback"
-              c:type="CoglMaterialLayerCallback"
-              version="1.4">
-      <doc xml:whitespace="preserve">The callback prototype used with cogl_material_foreach_layer() for
-iterating all the layers of a @material.</doc>
-      <return-value transfer-ownership="none">
-        <type name="gboolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="material" transfer-ownership="none">
-          <doc xml:whitespace="preserve">The #CoglMaterial whos layers are being iterated</doc>
-          <type name="Material" c:type="CoglMaterial*"/>
-        </parameter>
-        <parameter name="layer_index" transfer-ownership="none">
-          <doc xml:whitespace="preserve">The current layer index</doc>
-          <type name="gint" c:type="int"/>
-        </parameter>
-        <parameter name="user_data" transfer-ownership="none" closure="2">
-          <doc xml:whitespace="preserve">The private data passed to cogl_material_foreach_layer()</doc>
-          <type name="gpointer" c:type="void*"/>
-        </parameter>
-      </parameters>
-    </callback>
-    <enumeration name="MaterialLayerType"
-                 version="1.0"
-                 glib:type-name="CoglMaterialLayerType"
-                 glib:get-type="cogl_material_layer_type_get_type"
-                 c:type="CoglMaterialLayerType">
-      <doc xml:whitespace="preserve">Available types of layers for a #CoglMaterial. This enumeration
-might be expanded in later versions.</doc>
-      <member name="texture"
-              value="0"
-              c:identifier="COGL_MATERIAL_LAYER_TYPE_TEXTURE"
-              glib:nick="texture"/>
-    </enumeration>
-    <enumeration name="MaterialWrapMode"
-                 version="1.4"
-                 glib:type-name="CoglMaterialWrapMode"
-                 glib:get-type="cogl_material_wrap_mode_get_type"
-                 c:type="CoglMaterialWrapMode">
-      <doc xml:whitespace="preserve">The wrap mode specifies what happens when texture coordinates
-outside the range 0→1 are used. Note that if the filter mode is
-anything but %COGL_MATERIAL_FILTER_NEAREST then texels outside the
-range 0→1 might be used even when the coordinate is exactly 0 or 1
-because OpenGL will try to sample neighbouring pixels. For example
-if you are trying to render the full texture then you may get
-artifacts around the edges when the pixels from the other side are
-merged in if the wrap mode is set to repeat.</doc>
-      <member name="repeat"
-              value="10497"
-              c:identifier="COGL_MATERIAL_WRAP_MODE_REPEAT"
-              glib:nick="repeat"/>
-      <member name="clamp_to_edge"
-              value="33071"
-              c:identifier="COGL_MATERIAL_WRAP_MODE_CLAMP_TO_EDGE"
-              glib:nick="clamp-to-edge"/>
-      <member name="automatic"
-              value="519"
-              c:identifier="COGL_MATERIAL_WRAP_MODE_AUTOMATIC"
-              glib:nick="automatic"/>
-    </enumeration>
-    <record name="Matrix" c:type="CoglMatrix">
-      <doc xml:whitespace="preserve">A CoglMatrix holds a 4x4 transform matrix. This is a single precision,
-column-major matrix which means it is compatible with what OpenGL expects.
-A CoglMatrix can represent transforms such as, rotations, scaling,
-translation, sheering, and linear projections. You can combine these
-transforms by multiplying multiple matrices in the order you want them
-applied.
-The transformation of a vertex (x, y, z, w) by a CoglMatrix is given by:
-|[
-x_new = xx * x + xy * y + xz * z + xw * w
-y_new = yx * x + yy * y + yz * z + yw * w
-z_new = zx * x + zy * y + zz * z + zw * w
-w_new = wx * x + wy * y + wz * z + ww * w
-]|
-Where w is normally 1
-&lt;note&gt;You must consider the members of the CoglMatrix structure read only,
-and all matrix modifications must be done via the cogl_matrix API. This
-allows Cogl to annotate the matrices internally. Violation of this will give
-undefined results. If you need to initialize a matrix with a constant other
-than the identity matrix you can use cogl_matrix_init_from_array().&lt;/note&gt;</doc>
-      <field name="xx" writable="1">
-        <type name="gfloat" c:type="float"/>
-      </field>
-      <field name="yx" writable="1">
-        <type name="gfloat" c:type="float"/>
-      </field>
-      <field name="zx" writable="1">
-        <type name="gfloat" c:type="float"/>
-      </field>
-      <field name="wx" writable="1">
-        <type name="gfloat" c:type="float"/>
-      </field>
-      <field name="xy" writable="1">
-        <type name="gfloat" c:type="float"/>
-      </field>
-      <field name="yy" writable="1">
-        <type name="gfloat" c:type="float"/>
-      </field>
-      <field name="zy" writable="1">
-        <type name="gfloat" c:type="float"/>
-      </field>
-      <field name="wy" writable="1">
-        <type name="gfloat" c:type="float"/>
-      </field>
-      <field name="xz" writable="1">
-        <type name="gfloat" c:type="float"/>
-      </field>
-      <field name="yz" writable="1">
-        <type name="gfloat" c:type="float"/>
-      </field>
-      <field name="zz" writable="1">
-        <type name="gfloat" c:type="float"/>
-      </field>
-      <field name="wz" writable="1">
-        <type name="gfloat" c:type="float"/>
-      </field>
-      <field name="xw" writable="1">
-        <type name="gfloat" c:type="float"/>
-      </field>
-      <field name="yw" writable="1">
-        <type name="gfloat" c:type="float"/>
-      </field>
-      <field name="zw" writable="1">
-        <type name="gfloat" c:type="float"/>
-      </field>
-      <field name="ww" writable="1">
-        <type name="gfloat" c:type="float"/>
-      </field>
-      <field name="inv" writable="1">
-        <array zero-terminated="0" c:type="gfloat" fixed-size="16">
-          <type name="gfloat" c:type="float"/>
-        </array>
-      </field>
-      <field name="type" writable="1">
-        <type name="guint" c:type="unsigned"/>
-      </field>
-      <field name="flags" writable="1">
-        <type name="guint" c:type="unsigned"/>
-      </field>
-      <field name="_padding3" writable="1">
-        <type name="guint" c:type="unsigned"/>
-      </field>
-      <method name="frustum" c:identifier="cogl_matrix_frustum">
-        <doc xml:whitespace="preserve">Multiplies @matrix by the given frustum perspective matrix.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="left" transfer-ownership="none">
-            <doc xml:whitespace="preserve">coord of left vertical clipping plane</doc>
-            <type name="gfloat" c:type="float"/>
-          </parameter>
-          <parameter name="right" transfer-ownership="none">
-            <doc xml:whitespace="preserve">coord of right vertical clipping plane</doc>
-            <type name="gfloat" c:type="float"/>
-          </parameter>
-          <parameter name="bottom" transfer-ownership="none">
-            <doc xml:whitespace="preserve">coord of bottom horizontal clipping plane</doc>
-            <type name="gfloat" c:type="float"/>
-          </parameter>
-          <parameter name="top" transfer-ownership="none">
-            <doc xml:whitespace="preserve">coord of top horizontal clipping plane</doc>
-            <type name="gfloat" c:type="float"/>
-          </parameter>
-          <parameter name="z_near" transfer-ownership="none">
-            <doc xml:whitespace="preserve">positive distance to near depth clipping plane</doc>
-            <type name="gfloat" c:type="float"/>
-          </parameter>
-          <parameter name="z_far" transfer-ownership="none">
-            <doc xml:whitespace="preserve">positive distance to far depth clipping plane</doc>
-            <type name="gfloat" c:type="float"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_array" c:identifier="cogl_matrix_get_array">
-        <doc xml:whitespace="preserve">Casts @matrix to a float array which can be directly passed to OpenGL.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">a pointer to the float array</doc>
-          <type name="gfloat" c:type="float*"/>
-        </return-value>
-      </method>
-      <method name="get_inverse"
-              c:identifier="cogl_matrix_get_inverse"
-              version="1.2">
-        <doc xml:whitespace="preserve">Gets the inverse transform of a given matrix and uses it to initialize
-a new #CoglMatrix.
-&lt;note&gt;Although the first parameter is annotated as const to indicate
-that the transform it represents isn't modified this function may
-technically save a copy of the inverse transform within the given
-#CoglMatrix so that subsequent requests for the inverse transform may
-avoid costly inversion calculations.&lt;/note&gt;
-for degenerate transformations that can't be inverted (in this case the</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">%TRUE if the inverse was successfully calculated or %FALSE</doc>
-          <type name="gboolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="inverse"
-                     direction="out"
-                     caller-allocates="1"
-                     transfer-ownership="none">
-            <doc xml:whitespace="preserve">The destination for a 4x4 inverse transformation matrix</doc>
-            <type name="Matrix" c:type="CoglMatrix*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="init_from_array"
-              c:identifier="cogl_matrix_init_from_array">
-        <doc xml:whitespace="preserve">Initializes @matrix with the contents of @array</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="array" transfer-ownership="none">
-            <doc xml:whitespace="preserve">A linear array of 16 floats (column-major order)</doc>
-            <type name="gfloat" c:type="float*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="init_identity" c:identifier="cogl_matrix_init_identity">
-        <doc xml:whitespace="preserve">Resets matrix to the identity matrix:
-|[
-.xx=1; .xy=0; .xz=0; .xw=0;
-.yx=0; .yy=1; .yz=0; .yw=0;
-.zx=0; .zy=0; .zz=1; .zw=0;
-.wx=0; .wy=0; .wz=0; .ww=1;
-]|</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </method>
-      <method name="multiply" c:identifier="cogl_matrix_multiply">
-        <doc xml:whitespace="preserve">Multiplies the two supplied matrices together and stores
-the resulting matrix inside @result</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="a" transfer-ownership="none">
-            <doc xml:whitespace="preserve">A 4x4 transformation matrix</doc>
-            <type name="Matrix" c:type="CoglMatrix*"/>
-          </parameter>
-          <parameter name="b" transfer-ownership="none">
-            <doc xml:whitespace="preserve">A 4x4 transformation matrix</doc>
-            <type name="Matrix" c:type="CoglMatrix*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="ortho" c:identifier="cogl_matrix_ortho">
-        <doc xml:whitespace="preserve">Multiplies @matrix by a parallel projection matrix.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="left" transfer-ownership="none">
-            <doc xml:whitespace="preserve">The coordinate for the left clipping plane</doc>
-            <type name="gfloat" c:type="float"/>
-          </parameter>
-          <parameter name="right" transfer-ownership="none">
-            <doc xml:whitespace="preserve">The coordinate for the right clipping plane</doc>
-            <type name="gfloat" c:type="float"/>
-          </parameter>
-          <parameter name="bottom" transfer-ownership="none">
-            <doc xml:whitespace="preserve">The coordinate for the bottom clipping plane</doc>
-            <type name="gfloat" c:type="float"/>
-          </parameter>
-          <parameter name="top" transfer-ownership="none">
-            <doc xml:whitespace="preserve">The coordinate for the top clipping plane</doc>
-            <type name="gfloat" c:type="float"/>
-          </parameter>
-          <parameter name="z_near" transfer-ownership="none">
-            <doc xml:whitespace="preserve">The coordinate for the near clipping plane (may be negative if the plane is behind the viewer)</doc>
-            <type name="gfloat" c:type="float"/>
-          </parameter>
-          <parameter name="z_far" transfer-ownership="none">
-            <doc xml:whitespace="preserve">The coordinate for the far clipping plane (may be negative if the plane is behind the viewer)</doc>
-            <type name="gfloat" c:type="float"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="perspective" c:identifier="cogl_matrix_perspective">
-        <doc xml:whitespace="preserve">Multiplies @matrix by the described perspective matrix
-&lt;note&gt;You should be careful not to have to great a @z_far / @z_near ratio
-since that will reduce the effectiveness of depth testing since there wont
-be enough precision to identify the depth of objects near to each
-other.&lt;/note&gt;</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="fov_y" transfer-ownership="none">
-            <doc xml:whitespace="preserve">A field of view angle for the Y axis</doc>
-            <type name="gfloat" c:type="float"/>
-          </parameter>
-          <parameter name="aspect" transfer-ownership="none">
-            <doc xml:whitespace="preserve">The ratio of width to height determining the field of view angle for the x axis.</doc>
-            <type name="gfloat" c:type="float"/>
-          </parameter>
-          <parameter name="z_near" transfer-ownership="none">
-            <doc xml:whitespace="preserve">The distance to the near clip plane. Never pass 0 and always pass a positive number.</doc>
-            <type name="gfloat" c:type="float"/>
-          </parameter>
-          <parameter name="z_far" transfer-ownership="none">
-            <doc xml:whitespace="preserve">The distance to the far clip plane. (Should always be positive)</doc>
-            <type name="gfloat" c:type="float"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="rotate" c:identifier="cogl_matrix_rotate">
-        <doc xml:whitespace="preserve">Multiplies @matrix with a rotation matrix that applies a rotation
-of @angle degrees around the specified 3D vector.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="angle" transfer-ownership="none">
-            <doc xml:whitespace="preserve">The angle you want to rotate in degrees</doc>
-            <type name="gfloat" c:type="float"/>
-          </parameter>
-          <parameter name="x" transfer-ownership="none">
-            <doc xml:whitespace="preserve">X component of your rotation vector</doc>
-            <type name="gfloat" c:type="float"/>
-          </parameter>
-          <parameter name="y" transfer-ownership="none">
-            <doc xml:whitespace="preserve">Y component of your rotation vector</doc>
-            <type name="gfloat" c:type="float"/>
-          </parameter>
-          <parameter name="z" transfer-ownership="none">
-            <doc xml:whitespace="preserve">Z component of your rotation vector</doc>
-            <type name="gfloat" c:type="float"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="scale" c:identifier="cogl_matrix_scale">
-        <doc xml:whitespace="preserve">Multiplies @matrix with a transform matrix that scales along the X,
-Y and Z axis.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="sx" transfer-ownership="none">
-            <doc xml:whitespace="preserve">The X scale factor</doc>
-            <type name="gfloat" c:type="float"/>
-          </parameter>
-          <parameter name="sy" transfer-ownership="none">
-            <doc xml:whitespace="preserve">The Y scale factor</doc>
-            <type name="gfloat" c:type="float"/>
-          </parameter>
-          <parameter name="sz" transfer-ownership="none">
-            <doc xml:whitespace="preserve">The Z scale factor</doc>
-            <type name="gfloat" c:type="float"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="transform_point"
-              c:identifier="cogl_matrix_transform_point">
-        <doc xml:whitespace="preserve">Transforms a point whos position is given and returned as four float
-components.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="x"
-                     direction="inout"
-                     caller-allocates="0"
-                     transfer-ownership="full">
-            <doc xml:whitespace="preserve">The X component of your points position</doc>
-            <type name="gfloat" c:type="float*"/>
-          </parameter>
-          <parameter name="y"
-                     direction="inout"
-                     caller-allocates="0"
-                     transfer-ownership="full">
-            <doc xml:whitespace="preserve">The Y component of your points position</doc>
-            <type name="gfloat" c:type="float*"/>
-          </parameter>
-          <parameter name="z"
-                     direction="inout"
-                     caller-allocates="0"
-                     transfer-ownership="full">
-            <doc xml:whitespace="preserve">The Z component of your points position</doc>
-            <type name="gfloat" c:type="float*"/>
-          </parameter>
-          <parameter name="w"
-                     direction="inout"
-                     caller-allocates="0"
-                     transfer-ownership="full">
-            <doc xml:whitespace="preserve">The W component of your points position</doc>
-            <type name="gfloat" c:type="float*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="translate" c:identifier="cogl_matrix_translate">
-        <doc xml:whitespace="preserve">Multiplies @matrix with a transform matrix that translates along
-the X, Y and Z axis.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="x" transfer-ownership="none">
-            <doc xml:whitespace="preserve">The X translation you want to apply</doc>
-            <type name="gfloat" c:type="float"/>
-          </parameter>
-          <parameter name="y" transfer-ownership="none">
-            <doc xml:whitespace="preserve">The Y translation you want to apply</doc>
-            <type name="gfloat" c:type="float"/>
-          </parameter>
-          <parameter name="z" transfer-ownership="none">
-            <doc xml:whitespace="preserve">The Z translation you want to apply</doc>
-            <type name="gfloat" c:type="float"/>
-          </parameter>
-        </parameters>
-      </method>
-    </record>
-    <record name="Object" c:type="CoglObject" disguised="1">
-      <method name="get_user_data"
-              c:identifier="cogl_object_get_user_data"
-              version="1.4"
-              introspectable="0">
-        <doc xml:whitespace="preserve">Finds the user data previously associated with @object using
-the given @key. If no user data has been associated with @object
-for the given @key this function returns NULL.
-the given @key; or NULL if no associated data is found.</doc>
-        <return-value>
-          <doc xml:whitespace="preserve">The user data previously associated with @object using</doc>
-          <type name="gpointer" c:type="void*"/>
-        </return-value>
-        <parameters>
-          <parameter name="key" transfer-ownership="none">
-            <doc xml:whitespace="preserve">The address of a #CoglUserDataKey which provides a unique value with which to index the private data.</doc>
-            <type name="UserDataKey" c:type="CoglUserDataKey*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_user_data"
-              c:identifier="cogl_object_set_user_data"
-              version="1.4"
-              introspectable="0">
-        <doc xml:whitespace="preserve">Associates some private @user_data with a given #CoglObject. To
-later remove the association call cogl_object_set_user_data() with
-the same @key but NULL for the @user_data.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="key" transfer-ownership="none">
-            <doc xml:whitespace="preserve">The address of a #CoglUserDataKey which provides a unique value with which to index the private data.</doc>
-            <type name="UserDataKey" c:type="CoglUserDataKey*"/>
-          </parameter>
-          <parameter name="user_data" transfer-ownership="none">
-            <doc xml:whitespace="preserve">The data to associate with the given object, or NULL to remove a previous association.</doc>
-            <type name="gpointer" c:type="void*"/>
-          </parameter>
-          <parameter name="destroy" transfer-ownership="none">
-            <doc xml:whitespace="preserve">A #CoglUserDataDestroyCallback to call if the object is destroyed or if the association is removed by later setting NULL data for the same key.</doc>
-            <type name="UserDataDestroyCallback"
-                  c:type="CoglUserDataDestroyCallback"/>
-          </parameter>
-        </parameters>
-      </method>
-    </record>
-    <constant name="PIXEL_FORMAT_24" value="2">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="PIXEL_FORMAT_32" value="3">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="PREMULT_BIT" value="128">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <record name="Path" c:type="CoglPath" disguised="1">
-      <method name="copy" c:identifier="cogl_path_copy" introspectable="0">
-        <doc xml:whitespace="preserve">Returns a new copy of the path in @path. The new path has a
-reference count of 1 so you should unref it with
-cogl_object_unref() if you no longer need it.
-Internally the path will share the data until one of the paths is
-modified so copying paths should be relatively cheap.</doc>
-        <return-value>
-          <doc xml:whitespace="preserve">a copy of the path in @path.</doc>
-          <type name="Path" c:type="CoglPath*"/>
-        </return-value>
-      </method>
-    </record>
-    <enumeration name="PathFillRule"
-                 version="1.4"
-                 glib:type-name="CoglPathFillRule"
-                 glib:get-type="cogl_path_fill_rule_get_type"
-                 c:type="CoglPathFillRule">
-      <doc xml:whitespace="preserve">#CoglPathFillRule is used to determine how a path is filled. There
-are two options - 'non-zero' and 'even-odd'. To work out whether any
-point will be filled imagine drawing an infinetely long line in any
-direction from that point. The number of times and the direction
-that the edges of the path crosses this line determines whether the
-line is filled as described below. Any open sub paths are treated
-as if there was an extra line joining the first point and the last
-point.
-The default fill rule is %COGL_PATH_FILL_RULE_EVEN_ODD. The fill
-rule is attached to the current path so preserving a path with
-cogl_get_path() also preserves the fill rule. Calling
-cogl_path_new() resets the current fill rule to the default.
-&lt;figure id="fill-rule-non-zero"&gt;
-&lt;title&gt;Example of filling various paths using the non-zero rule&lt;/title&gt;
-&lt;graphic fileref="fill-rule-non-zero.png" format="PNG"/&gt;
-&lt;/figure&gt;
-&lt;figure id="fill-rule-even-odd"&gt;
-&lt;title&gt;Example of filling various paths using the even-odd rule&lt;/title&gt;
-&lt;graphic fileref="fill-rule-even-odd.png" format="PNG"/&gt;
-&lt;/figure&gt;</doc>
-      <member name="non_zero"
-              value="0"
-              c:identifier="COGL_PATH_FILL_RULE_NON_ZERO"
-              glib:nick="non-zero"/>
-      <member name="even_odd"
-              value="1"
-              c:identifier="COGL_PATH_FILL_RULE_EVEN_ODD"
-              glib:nick="even-odd"/>
-    </enumeration>
-    <record name="PixelArray" c:type="CoglPixelArray" disguised="1">
-    </record>
-    <enumeration name="PixelFormat"
-                 version="0.8"
-                 glib:type-name="CoglPixelFormat"
-                 glib:get-type="cogl_pixel_format_get_type"
-                 c:type="CoglPixelFormat">
-      <doc xml:whitespace="preserve">Pixel formats used by COGL. For the formats with a byte per
-component, the order of the components specify the order in
-increasing memory addresses. So for example
-%COGL_PIXEL_FORMAT_RGB_888 would have the red component in the
-lowest address, green in the next address and blue after that
-regardless of the endinanness of the system.
-For the 16-bit formats the component order specifies the order
-within a 16-bit number from most significant bit to least
-significant. So for %COGL_PIXEL_FORMAT_RGB_565, the red component
-would be in bits 11-15, the green component would be in 6-11 and
-the blue component would be in 1-5. Therefore the order in memory
-depends on the endianness of the system.
-When uploading a texture %COGL_PIXEL_FORMAT_ANY can be used as the
-internal format. Cogl will try to pick the best format to use
-internally and convert the texture data if necessary.</doc>
-      <member name="any"
-              value="0"
-              c:identifier="COGL_PIXEL_FORMAT_ANY"
-              glib:nick="any"/>
-      <member name="a_8"
-              value="17"
-              c:identifier="COGL_PIXEL_FORMAT_A_8"
-              glib:nick="a-8"/>
-      <member name="rgb_565"
-              value="4"
-              c:identifier="COGL_PIXEL_FORMAT_RGB_565"
-              glib:nick="rgb-565"/>
-      <member name="rgba_4444"
-              value="21"
-              c:identifier="COGL_PIXEL_FORMAT_RGBA_4444"
-              glib:nick="rgba-4444"/>
-      <member name="rgba_5551"
-              value="22"
-              c:identifier="COGL_PIXEL_FORMAT_RGBA_5551"
-              glib:nick="rgba-5551"/>
-      <member name="yuv"
-              value="7"
-              c:identifier="COGL_PIXEL_FORMAT_YUV"
-              glib:nick="yuv"/>
-      <member name="g_8"
-              value="8"
-              c:identifier="COGL_PIXEL_FORMAT_G_8"
-              glib:nick="g-8"/>
-      <member name="rgb_888"
-              value="2"
-              c:identifier="COGL_PIXEL_FORMAT_RGB_888"
-              glib:nick="rgb-888"/>
-      <member name="bgr_888"
-              value="34"
-              c:identifier="COGL_PIXEL_FORMAT_BGR_888"
-              glib:nick="bgr-888"/>
-      <member name="rgba_8888"
-              value="19"
-              c:identifier="COGL_PIXEL_FORMAT_RGBA_8888"
-              glib:nick="rgba-8888"/>
-      <member name="bgra_8888"
-              value="51"
-              c:identifier="COGL_PIXEL_FORMAT_BGRA_8888"
-              glib:nick="bgra-8888"/>
-      <member name="argb_8888"
-              value="83"
-              c:identifier="COGL_PIXEL_FORMAT_ARGB_8888"
-              glib:nick="argb-8888"/>
-      <member name="abgr_8888"
-              value="115"
-              c:identifier="COGL_PIXEL_FORMAT_ABGR_8888"
-              glib:nick="abgr-8888"/>
-      <member name="rgba_8888_pre"
-              value="147"
-              c:identifier="COGL_PIXEL_FORMAT_RGBA_8888_PRE"
-              glib:nick="rgba-8888-pre"/>
-      <member name="bgra_8888_pre"
-              value="179"
-              c:identifier="COGL_PIXEL_FORMAT_BGRA_8888_PRE"
-              glib:nick="bgra-8888-pre"/>
-      <member name="argb_8888_pre"
-              value="211"
-              c:identifier="COGL_PIXEL_FORMAT_ARGB_8888_PRE"
-              glib:nick="argb-8888-pre"/>
-      <member name="abgr_8888_pre"
-              value="243"
-              c:identifier="COGL_PIXEL_FORMAT_ABGR_8888_PRE"
-              glib:nick="abgr-8888-pre"/>
-      <member name="rgba_4444_pre"
-              value="149"
-              c:identifier="COGL_PIXEL_FORMAT_RGBA_4444_PRE"
-              glib:nick="rgba-4444-pre"/>
-      <member name="rgba_5551_pre"
-              value="150"
-              c:identifier="COGL_PIXEL_FORMAT_RGBA_5551_PRE"
-              glib:nick="rgba-5551-pre"/>
-    </enumeration>
-    <constant name="RADIANS_TO_DEGREES" value="3754936">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <bitfield name="ReadPixelsFlags"
-              version="1.0"
-              glib:type-name="CoglReadPixelsFlags"
-              glib:get-type="cogl_read_pixels_flags_get_type"
-              c:type="CoglReadPixelsFlags">
-      <doc xml:whitespace="preserve">Flags for cogl_read_pixels()</doc>
-      <member name="color_buffer"
-              value="1"
-              c:identifier="COGL_READ_PIXELS_COLOR_BUFFER"
-              glib:nick="color-buffer"/>
-    </bitfield>
-    <constant name="SQRTI_ARG_10_PERCENT" value="5590">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="SQRTI_ARG_5_PERCENT" value="210">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="SQRTI_ARG_MAX" value="4194303">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <enumeration name="ShaderType"
-                 version="1.0"
-                 glib:type-name="CoglShaderType"
-                 glib:get-type="cogl_shader_type_get_type"
-                 c:type="CoglShaderType">
-      <doc xml:whitespace="preserve">Types of shaders</doc>
-      <member name="vertex"
-              value="0"
-              c:identifier="COGL_SHADER_TYPE_VERTEX"
-              glib:nick="vertex"/>
-      <member name="fragment"
-              value="1"
-              c:identifier="COGL_SHADER_TYPE_FRAGMENT"
-              glib:nick="fragment"/>
-    </enumeration>
-    <constant name="TEXTURE_MAX_WASTE" value="127">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <bitfield name="TextureFlags"
-              version="1.0"
-              glib:type-name="CoglTextureFlags"
-              glib:get-type="cogl_texture_flags_get_type"
-              c:type="CoglTextureFlags">
-      <doc xml:whitespace="preserve">Flags to pass to the cogl_texture_new_* family of functions.</doc>
-      <member name="none"
-              value="0"
-              c:identifier="COGL_TEXTURE_NONE"
-              glib:nick="none"/>
-      <member name="no_auto_mipmap"
-              value="1"
-              c:identifier="COGL_TEXTURE_NO_AUTO_MIPMAP"
-              glib:nick="no-auto-mipmap"/>
-      <member name="no_slicing"
-              value="2"
-              c:identifier="COGL_TEXTURE_NO_SLICING"
-              glib:nick="no-slicing"/>
-      <member name="no_atlas"
-              value="4"
-              c:identifier="COGL_TEXTURE_NO_ATLAS"
-              glib:nick="no-atlas"/>
-    </bitfield>
-    <enumeration name="TexturePixmapX11ReportLevel"
-                 glib:type-name="CoglTexturePixmapX11ReportLevel"
-                 glib:get-type="cogl_texture_pixmap_x11_report_level_get_type"
-                 c:type="CoglTexturePixmapX11ReportLevel">
-      <member name="raw_rectangles"
-              value="0"
-              c:identifier="COGL_TEXTURE_PIXMAP_X11_DAMAGE_RAW_RECTANGLES"
-              glib:nick="raw-rectangles"/>
-      <member name="delta_rectangles"
-              value="1"
-              c:identifier="COGL_TEXTURE_PIXMAP_X11_DAMAGE_DELTA_RECTANGLES"
-              glib:nick="delta-rectangles"/>
-      <member name="bounding_box"
-              value="2"
-              c:identifier="COGL_TEXTURE_PIXMAP_X11_DAMAGE_BOUNDING_BOX"
-              glib:nick="bounding-box"/>
-      <member name="non_empty"
-              value="3"
-              c:identifier="COGL_TEXTURE_PIXMAP_X11_DAMAGE_NON_EMPTY"
-              glib:nick="non-empty"/>
-    </enumeration>
-    <record name="TextureVertex" c:type="CoglTextureVertex">
-      <doc xml:whitespace="preserve">Used to specify vertex information when calling cogl_polygon()</doc>
-      <field name="x" writable="1">
-        <type name="gfloat" c:type="float"/>
-      </field>
-      <field name="y" writable="1">
-        <type name="gfloat" c:type="float"/>
-      </field>
-      <field name="z" writable="1">
-        <type name="gfloat" c:type="float"/>
-      </field>
-      <field name="tx" writable="1">
-        <type name="gfloat" c:type="float"/>
-      </field>
-      <field name="ty" writable="1">
-        <type name="gfloat" c:type="float"/>
-      </field>
-      <field name="color" writable="1">
-        <type name="Color" c:type="CoglColor"/>
-      </field>
-    </record>
-    <constant name="UNORDERED_MASK" value="15">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <constant name="UNPREMULT_MASK" value="127">
-      <type name="gint" c:type="gint"/>
-    </constant>
-    <callback name="UserDataDestroyCallback"
-              c:type="CoglUserDataDestroyCallback"
-              version="1.4">
-      <doc xml:whitespace="preserve">When associating private data with a #CoglObject a callback can be
-given which will be called either if the object is destroyed or if
-cogl_object_set_user_data() is called with NULL user_data for the
-same key.</doc>
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="user_data" transfer-ownership="none" closure="0">
-          <doc xml:whitespace="preserve">The data whos association with a #CoglObject has been destoyed.</doc>
-          <type name="gpointer" c:type="void*"/>
-        </parameter>
-      </parameters>
-    </callback>
-    <record name="UserDataKey" c:type="CoglUserDataKey" version="1.4">
-      <doc xml:whitespace="preserve">A #CoglUserDataKey is used to declare a key for attaching data to a
-#CoglObject using cogl_object_set_user_data. The typedef only exists as a
-formality to make code self documenting since only the unique address of a
-#CoglUserDataKey is used.
-Typically you would declare a static #CoglUserDataKey and set private data
-on an object something like this:
-|[
-static CoglUserDataKey path_private_key;
-static void
-destroy_path_private_cb (void *data)
-{
-g_free (data);
-}
-static void
-my_path_set_data (CoglPath *path, void *data)
-{
-cogl_object_set_user_data (COGL_OBJECT (path),
-&amp;private_key,
-data,
-destroy_path_private_cb);
-}
-]|</doc>
-      <field name="unused" writable="1">
-        <type name="gint" c:type="int"/>
-      </field>
-    </record>
-    <record name="Vector3" c:type="CoglVector3">
-      <field name="x" writable="1">
-        <type name="gfloat" c:type="float"/>
-      </field>
-      <field name="y" writable="1">
-        <type name="gfloat" c:type="float"/>
-      </field>
-      <field name="z" writable="1">
-        <type name="gfloat" c:type="float"/>
-      </field>
-      <method name="add_EXP" c:identifier="cogl_vector3_add_EXP">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="a" transfer-ownership="none">
-            <type name="Vector3" c:type="CoglVector3*"/>
-          </parameter>
-          <parameter name="b" transfer-ownership="none">
-            <type name="Vector3" c:type="CoglVector3*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="copy_EXP"
-              c:identifier="cogl_vector3_copy_EXP"
-              introspectable="0">
-        <return-value>
-          <type name="Vector3" c:type="CoglVector3*"/>
-        </return-value>
-      </method>
-      <method name="cross_product_EXP"
-              c:identifier="cogl_vector3_cross_product_EXP">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="u" transfer-ownership="none">
-            <type name="Vector3" c:type="CoglVector3*"/>
-          </parameter>
-          <parameter name="v" transfer-ownership="none">
-            <type name="Vector3" c:type="CoglVector3*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="distance_EXP" c:identifier="cogl_vector3_distance_EXP">
-        <return-value transfer-ownership="none">
-          <type name="gfloat" c:type="float"/>
-        </return-value>
-        <parameters>
-          <parameter name="b" transfer-ownership="none">
-            <type name="Vector3" c:type="CoglVector3*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="divide_scalar_EXP"
-              c:identifier="cogl_vector3_divide_scalar_EXP">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="scalar" transfer-ownership="none">
-            <type name="gfloat" c:type="float"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="dot_product_EXP"
-              c:identifier="cogl_vector3_dot_product_EXP">
-        <return-value transfer-ownership="none">
-          <type name="gfloat" c:type="float"/>
-        </return-value>
-        <parameters>
-          <parameter name="b" transfer-ownership="none">
-            <type name="Vector3" c:type="CoglVector3*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="equal_with_epsilon_EXP"
-              c:identifier="cogl_vector3_equal_with_epsilon_EXP">
-        <return-value transfer-ownership="none">
-          <type name="gboolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="vector1" transfer-ownership="none">
-            <type name="Vector3" c:type="CoglVector3*"/>
-          </parameter>
-          <parameter name="epsilon" transfer-ownership="none">
-            <type name="gfloat" c:type="float"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="free_EXP" c:identifier="cogl_vector3_free_EXP">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </method>
-      <method name="init_EXP" c:identifier="cogl_vector3_init_EXP">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="x" transfer-ownership="none">
-            <type name="gfloat" c:type="float"/>
-          </parameter>
-          <parameter name="y" transfer-ownership="none">
-            <type name="gfloat" c:type="float"/>
-          </parameter>
-          <parameter name="z" transfer-ownership="none">
-            <type name="gfloat" c:type="float"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="init_zero_EXP" c:identifier="cogl_vector3_init_zero_EXP">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </method>
-      <method name="invert_EXP" c:identifier="cogl_vector3_invert_EXP">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </method>
-      <method name="magnitude_EXP" c:identifier="cogl_vector3_magnitude_EXP">
-        <return-value transfer-ownership="none">
-          <type name="gfloat" c:type="float"/>
-        </return-value>
-      </method>
-      <method name="multiply_scalar_EXP"
-              c:identifier="cogl_vector3_multiply_scalar_EXP">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="scalar" transfer-ownership="none">
-            <type name="gfloat" c:type="float"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="normalize_EXP" c:identifier="cogl_vector3_normalize_EXP">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </method>
-      <method name="subtract_EXP" c:identifier="cogl_vector3_subtract_EXP">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="a" transfer-ownership="none">
-            <type name="Vector3" c:type="CoglVector3*"/>
-          </parameter>
-          <parameter name="b" transfer-ownership="none">
-            <type name="Vector3" c:type="CoglVector3*"/>
-          </parameter>
-        </parameters>
-      </method>
-    </record>
-    <enumeration name="VerticesMode"
-                 version="1.0"
-                 glib:type-name="CoglVerticesMode"
-                 glib:get-type="cogl_vertices_mode_get_type"
-                 c:type="CoglVerticesMode">
-      <doc xml:whitespace="preserve">How vertices passed to cogl_vertex_buffer_draw() and
-cogl_vertex_buffer_draw_elements() should be interpreted</doc>
-      <member name="points"
-              value="0"
-              c:identifier="COGL_VERTICES_MODE_POINTS"
-              glib:nick="points"/>
-      <member name="line_strip"
-              value="3"
-              c:identifier="COGL_VERTICES_MODE_LINE_STRIP"
-              glib:nick="line-strip"/>
-      <member name="line_loop"
-              value="2"
-              c:identifier="COGL_VERTICES_MODE_LINE_LOOP"
-              glib:nick="line-loop"/>
-      <member name="lines"
-              value="1"
-              c:identifier="COGL_VERTICES_MODE_LINES"
-              glib:nick="lines"/>
-      <member name="triangle_strip"
-              value="5"
-              c:identifier="COGL_VERTICES_MODE_TRIANGLE_STRIP"
-              glib:nick="triangle-strip"/>
-      <member name="triangle_fan"
-              value="6"
-              c:identifier="COGL_VERTICES_MODE_TRIANGLE_FAN"
-              glib:nick="triangle-fan"/>
-      <member name="triangles"
-              value="4"
-              c:identifier="COGL_VERTICES_MODE_TRIANGLES"
-              glib:nick="triangles"/>
-    </enumeration>
-    <function name="angle_cos" c:identifier="cogl_angle_cos" version="1.0">
-      <doc xml:whitespace="preserve">Computes the cosine of @angle</doc>
-      <return-value transfer-ownership="none">
-        <doc xml:whitespace="preserve">the cosine of the passed angle</doc>
-        <type name="Fixed" c:type="CoglFixed"/>
-      </return-value>
-      <parameters>
-        <parameter name="angle" transfer-ownership="none">
-          <doc xml:whitespace="preserve">an angle expressed using #CoglAngle</doc>
-          <type name="Angle" c:type="CoglAngle"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="angle_sin" c:identifier="cogl_angle_sin" version="1.0">
-      <doc xml:whitespace="preserve">Computes the sine of @angle</doc>
-      <return-value transfer-ownership="none">
-        <doc xml:whitespace="preserve">the sine of the passed angle</doc>
-        <type name="Fixed" c:type="CoglFixed"/>
-      </return-value>
-      <parameters>
-        <parameter name="angle" transfer-ownership="none">
-          <doc xml:whitespace="preserve">an angle expressed using #CoglAngle</doc>
-          <type name="Angle" c:type="CoglAngle"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="angle_tan" c:identifier="cogl_angle_tan" version="1.0">
-      <doc xml:whitespace="preserve">Computes the tangent of @angle</doc>
-      <return-value transfer-ownership="none">
-        <doc xml:whitespace="preserve">the tangent of the passed angle</doc>
-        <type name="Fixed" c:type="CoglFixed"/>
-      </return-value>
-      <parameters>
-        <parameter name="angle" transfer-ownership="none">
-          <doc xml:whitespace="preserve">an angle expressed using #CoglAngle</doc>
-          <type name="Angle" c:type="CoglAngle"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="begin_gl" c:identifier="cogl_begin_gl" version="1.0">
-      <doc xml:whitespace="preserve">We do not advise nor reliably support the interleaving of raw GL drawing and
-Cogl drawing functions, but if you insist, cogl_begin_gl() and cogl_end_gl()
-provide a simple mechanism that may at least give you a fighting chance of
-succeeding.
-through the modification of GL state; that will never be reliably supported,
-but if you are trying to do something like:
-|[
-{
-- setup some OpenGL state.
-- draw using OpenGL (e.g. glDrawArrays() )
-- reset modified OpenGL state.
-- continue using Cogl to draw
-}
-]|
-You should surround blocks of drawing using raw GL with cogl_begin_gl()
-and cogl_end_gl():
-|[
-{
-cogl_begin_gl ();
-- setup some OpenGL state.
-- draw using OpenGL (e.g. glDrawArrays() )
-- reset modified OpenGL state.
-cogl_end_gl ();
-- continue using Cogl to draw
-}
-]|
-Don't ever try and do:
-|[
-{
-- setup some OpenGL state.
-- use Cogl to draw
-- reset modified OpenGL state.
-}
-]|
-When the internals of Cogl evolves, this is very liable to break.
-This function will flush all batched primitives, and subsequently flush
-all internal Cogl state to OpenGL as if it were going to draw something
-itself.
-The result is that the OpenGL modelview matrix will be setup; the state
-corresponding to the current source material will be set up and other world
-state such as backface culling, depth and fogging enabledness will be sent
-to OpenGL.
-&lt;note&gt;No special material state is flushed, so if you want Cogl to setup a
-simplified material state it is your responsibility to set a simple source
-material before calling cogl_begin_gl(). E.g. by calling
-cogl_set_source_color4ub().&lt;/note&gt;
-&lt;note&gt;It is your responsibility to restore any OpenGL state that you modify
-to how it was after calling cogl_begin_gl() if you don't do this then the
-result of further Cogl calls is undefined.&lt;/note&gt;
-&lt;note&gt;You can not nest begin/end blocks.&lt;/note&gt;
-Again we would like to stress, we do not advise the use of this API and if
-possible we would prefer to improve Cogl than have developers require raw
-OpenGL.</doc>
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-    </function>
-    <function name="bitmap_error_quark" c:identifier="cogl_bitmap_error_quark">
-      <return-value transfer-ownership="none">
-        <type name="GLib.Quark" c:type="GQuark"/>
-      </return-value>
-    </function>
-    <function name="bitmap_get_size_from_file"
-              c:identifier="cogl_bitmap_get_size_from_file"
-              version="1.0">
-      <doc xml:whitespace="preserve">Parses an image file enough to extract the width and height
-of the bitmap.</doc>
-      <return-value transfer-ownership="none">
-        <doc xml:whitespace="preserve">%TRUE if the image was successfully parsed</doc>
-        <type name="gboolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="filename" transfer-ownership="none">
-          <doc xml:whitespace="preserve">the file to check</doc>
-          <type name="utf8" c:type="char*"/>
-        </parameter>
-        <parameter name="width"
-                   direction="out"
-                   caller-allocates="0"
-                   transfer-ownership="full">
-          <doc xml:whitespace="preserve">return location for the bitmap width, or %NULL</doc>
-          <type name="gint" c:type="int*"/>
-        </parameter>
-        <parameter name="height"
-                   direction="out"
-                   caller-allocates="0"
-                   transfer-ownership="full">
-          <doc xml:whitespace="preserve">return location for the bitmap height, or %NULL</doc>
-          <type name="gint" c:type="int*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="bitmap_new_from_file"
-              c:identifier="cogl_bitmap_new_from_file"
-              version="1.0"
-              introspectable="0"
-              throws="1">
-      <doc xml:whitespace="preserve">Loads an image file from disk. This function can be safely called from
-within a thread.
-%NULL if loading the image failed.</doc>
-      <return-value>
-        <doc xml:whitespace="preserve">a #CoglBitmap to the new loaded image data, or</doc>
-        <type name="Bitmap" c:type="CoglBitmap*"/>
-      </return-value>
-      <parameters>
-        <parameter name="filename" transfer-ownership="none">
-          <doc xml:whitespace="preserve">the file to load.</doc>
-          <type name="utf8" c:type="char*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="blend_string_error_quark"
-              c:identifier="cogl_blend_string_error_quark">
-      <return-value transfer-ownership="none">
-        <type name="GLib.Quark" c:type="GQuark"/>
-      </return-value>
-    </function>
-    <function name="check_extension"
-              c:identifier="cogl_check_extension"
-              deprecated="OpenGL is an implementation detail for Cogl and so it&apos;s"
-              deprecated-version="1.2">
-      <doc xml:whitespace="preserve">Check whether @name occurs in list of extensions in @ext.
-not appropriate to expose OpenGL extensions through the Cogl API. This
-function can be replaced by the following equivalent code:
-|[
-]|</doc>
-      <return-value transfer-ownership="none">
-        <doc xml:whitespace="preserve">%TRUE if the extension occurs in the list, %FALSE otherwise.</doc>
-        <type name="gboolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="name" transfer-ownership="none">
-          <doc xml:whitespace="preserve">extension to check for</doc>
-          <type name="utf8" c:type="char*"/>
-        </parameter>
-        <parameter name="ext" transfer-ownership="none">
-          <doc xml:whitespace="preserve">list of extensions</doc>
-          <type name="utf8" c:type="char*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="clear" c:identifier="cogl_clear">
-      <doc xml:whitespace="preserve">Clears all the auxiliary buffers identified in the @buffers mask, and if
-that includes the color buffer then the specified @color is used.</doc>
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="color" transfer-ownership="none">
-          <doc xml:whitespace="preserve">Background color to clear to</doc>
-          <type name="Color" c:type="CoglColor*"/>
-        </parameter>
-        <parameter name="buffers" transfer-ownership="none">
-          <doc xml:whitespace="preserve">A mask of #CoglBufferBit&lt;!-- --&gt;'s identifying which auxiliary buffers to clear</doc>
-          <type name="gulong" c:type="unsigned long"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="clip_ensure"
-              c:identifier="cogl_clip_ensure"
-              version="1.0"
-              deprecated="Calling this function has no effect"
-              deprecated-version="1.2">
-      <doc xml:whitespace="preserve">Ensures that the current clipping region has been set in GL. This
-will automatically be called before any Cogl primitives but it
-maybe be neccessary to call if you are using raw GL calls with
-clipping.</doc>
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-    </function>
-    <function name="clip_pop" c:identifier="cogl_clip_pop">
-      <doc xml:whitespace="preserve">Reverts the clipping region to the state before the last call to
-cogl_clip_push().</doc>
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-    </function>
-    <function name="clip_push"
-              c:identifier="cogl_clip_push"
-              deprecated="The x, y, width, height arguments are inconsistent"
-              deprecated-version="1.2">
-      <doc xml:whitespace="preserve">Specifies a rectangular clipping area for all subsequent drawing
-operations. Any drawing commands that extend outside the rectangle
-will be clipped so that only the portion inside the rectangle will
-be displayed. The rectangle dimensions are transformed by the
-current model-view matrix.
-The rectangle is intersected with the current clip region. To undo
-the effect of this function, call cogl_clip_pop().
-with other API that specify rectangles in model space, and when used
-with a coordinate space that puts the origin at the center and y+
-extending up, it's awkward to use. Please use cogl_clip_push_rectangle()
-instead</doc>
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="x_offset" transfer-ownership="none">
-          <doc xml:whitespace="preserve">left edge of the clip rectangle</doc>
-          <type name="gfloat" c:type="float"/>
-        </parameter>
-        <parameter name="y_offset" transfer-ownership="none">
-          <doc xml:whitespace="preserve">top edge of the clip rectangle</doc>
-          <type name="gfloat" c:type="float"/>
-        </parameter>
-        <parameter name="width" transfer-ownership="none">
-          <doc xml:whitespace="preserve">width of the clip rectangle</doc>
-          <type name="gfloat" c:type="float"/>
-        </parameter>
-        <parameter name="height" transfer-ownership="none">
-          <doc xml:whitespace="preserve">height of the clip rectangle</doc>
-          <type name="gfloat" c:type="float"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="clip_push_from_path"
-              c:identifier="cogl_clip_push_from_path"
-              version="1.0">
-      <doc xml:whitespace="preserve">Sets a new clipping area using the current path. The current path
-is then cleared. The clipping area is intersected with the previous
-clipping area. To restore the previous clipping area, call
-cogl_clip_pop().</doc>
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-    </function>
-    <function name="clip_push_from_path_preserve"
-              c:identifier="cogl_clip_push_from_path_preserve"
-              version="1.0">
-      <doc xml:whitespace="preserve">Sets a new clipping area using the current path. The current path
-is then cleared. The clipping area is intersected with the previous
-clipping area. To restore the previous clipping area, call
-cogl_clip_pop().</doc>
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-    </function>
-    <function name="clip_push_rectangle"
-              c:identifier="cogl_clip_push_rectangle"
-              version="1.2">
-      <doc xml:whitespace="preserve">Specifies a rectangular clipping area for all subsequent drawing
-operations. Any drawing commands that extend outside the rectangle
-will be clipped so that only the portion inside the rectangle will
-be displayed. The rectangle dimensions are transformed by the
-current model-view matrix.
-The rectangle is intersected with the current clip region. To undo
-the effect of this function, call cogl_clip_pop().</doc>
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="x0" transfer-ownership="none">
-          <doc xml:whitespace="preserve">x coordinate for top left corner of the clip rectangle</doc>
-          <type name="gfloat" c:type="float"/>
-        </parameter>
-        <parameter name="y0" transfer-ownership="none">
-          <doc xml:whitespace="preserve">y coordinate for top left corner of the clip rectangle</doc>
-          <type name="gfloat" c:type="float"/>
-        </parameter>
-        <parameter name="x1" transfer-ownership="none">
-          <doc xml:whitespace="preserve">x coordinate for bottom right corner of the clip rectangle</doc>
-          <type name="gfloat" c:type="float"/>
-        </parameter>
-        <parameter name="y1" transfer-ownership="none">
-          <doc xml:whitespace="preserve">y coordinate for bottom right corner of the clip rectangle</doc>
-          <type name="gfloat" c:type="float"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="clip_push_window_rect"
-              c:identifier="cogl_clip_push_window_rect"
-              deprecated="Use cogl_clip_push_window_rectangle() instead"
-              deprecated-version="1.2">
-      <doc xml:whitespace="preserve">Specifies a rectangular clipping area for all subsequent drawing
-operations. Any drawing commands that extend outside the rectangle
-will be clipped so that only the portion inside the rectangle will
-be displayed. The rectangle dimensions are not transformed by the
-current model-view matrix.
-The rectangle is intersected with the current clip region. To undo
-the effect of this function, call cogl_clip_pop().</doc>
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="x_offset" transfer-ownership="none">
-          <doc xml:whitespace="preserve">left edge of the clip rectangle in window coordinates</doc>
-          <type name="gfloat" c:type="float"/>
-        </parameter>
-        <parameter name="y_offset" transfer-ownership="none">
-          <doc xml:whitespace="preserve">top edge of the clip rectangle in window coordinates</doc>
-          <type name="gfloat" c:type="float"/>
-        </parameter>
-        <parameter name="width" transfer-ownership="none">
-          <doc xml:whitespace="preserve">width of the clip rectangle</doc>
-          <type name="gfloat" c:type="float"/>
-        </parameter>
-        <parameter name="height" transfer-ownership="none">
-          <doc xml:whitespace="preserve">height of the clip rectangle</doc>
-          <type name="gfloat" c:type="float"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="clip_push_window_rectangle"
-              c:identifier="cogl_clip_push_window_rectangle"
-              version="1.2">
-      <doc xml:whitespace="preserve">Specifies a rectangular clipping area for all subsequent drawing
-operations. Any drawing commands that extend outside the rectangle
-will be clipped so that only the portion inside the rectangle will
-be displayed. The rectangle dimensions are not transformed by the
-current model-view matrix.
-The rectangle is intersected with the current clip region. To undo
-the effect of this function, call cogl_clip_pop().</doc>
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="x_offset" transfer-ownership="none">
-          <doc xml:whitespace="preserve">left edge of the clip rectangle in window coordinates</doc>
-          <type name="gint" c:type="int"/>
-        </parameter>
-        <parameter name="y_offset" transfer-ownership="none">
-          <doc xml:whitespace="preserve">top edge of the clip rectangle in window coordinates</doc>
-          <type name="gint" c:type="int"/>
-        </parameter>
-        <parameter name="width" transfer-ownership="none">
-          <doc xml:whitespace="preserve">width of the clip rectangle</doc>
-          <type name="gint" c:type="int"/>
-        </parameter>
-        <parameter name="height" transfer-ownership="none">
-          <doc xml:whitespace="preserve">height of the clip rectangle</doc>
-          <type name="gint" c:type="int"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="clip_stack_restore"
-              c:identifier="cogl_clip_stack_restore"
-              version="0.8.2"
-              deprecated="This was originally added to allow us to restore"
-              deprecated-version="1.2">
-      <doc xml:whitespace="preserve">Restore the state of the clipping stack that was previously saved
-by cogl_clip_stack_save().
-the clip stack when switching back from an offscreen framebuffer,
-but it's not necessary anymore given that framebuffers now own
-separate clip stacks which will be automatically switched between
-when a new buffer is set. Calling this function has no effect</doc>
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-    </function>
-    <function name="clip_stack_save"
-              c:identifier="cogl_clip_stack_save"
-              version="0.8.2"
-              deprecated="This was originally added to allow us to save the"
-              deprecated-version="1.2">
-      <doc xml:whitespace="preserve">Save the entire state of the clipping stack and then clear all
-clipping. The previous state can be returned to with
-cogl_clip_stack_restore(). Each call to cogl_clip_push() after this
-must be matched by a call to cogl_clip_pop() before calling
-cogl_clip_stack_restore().
-clip stack when switching to an offscreen framebuffer, but it's
-not necessary anymore given that framebuffers now own separate
-clip stacks which will be automatically switched between when a
-new buffer is set. Calling this function has no effect</doc>
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-    </function>
-    <function name="color_equal" c:identifier="cogl_color_equal" version="1.0">
-      <doc xml:whitespace="preserve">Compares two #CoglColor&lt;!-- --&gt;s and checks if they are the same.
-This function can be passed to g_hash_table_new() as the @key_equal_func
-parameter, when using #CoglColor&lt;!-- --&gt;s as keys in a #GHashTable.</doc>
-      <return-value transfer-ownership="none">
-        <doc xml:whitespace="preserve">%TRUE if the two colors are the same.</doc>
-        <type name="gboolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="v1" transfer-ownership="none">
-          <doc xml:whitespace="preserve">a #CoglColor</doc>
-          <type name="gpointer" c:type="gconstpointer"/>
-        </parameter>
-        <parameter name="v2" transfer-ownership="none">
-          <doc xml:whitespace="preserve">a #CoglColor</doc>
-          <type name="gpointer" c:type="gconstpointer"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="color_new"
-              c:identifier="cogl_color_new"
-              version="1.0"
-              introspectable="0">
-      <doc xml:whitespace="preserve">Creates a new (empty) color
-to free the allocated resources</doc>
-      <return-value>
-        <doc xml:whitespace="preserve">a newly-allocated #CoglColor. Use cogl_color_free()</doc>
-        <type name="Color" c:type="CoglColor*"/>
-      </return-value>
-    </function>
-    <function name="create_program"
-              c:identifier="cogl_create_program"
-              introspectable="0">
-      <doc xml:whitespace="preserve">Create a new cogl program object that can be used to replace parts of the GL
-rendering pipeline with custom code.</doc>
-      <return-value>
-        <doc xml:whitespace="preserve">a new cogl program.</doc>
-        <type name="Handle" c:type="CoglHandle"/>
-      </return-value>
-    </function>
-    <function name="create_shader"
-              c:identifier="cogl_create_shader"
-              introspectable="0">
-      <doc xml:whitespace="preserve">Create a new shader handle, use #cogl_shader_source to set the source code
-to be used on it.</doc>
-      <return-value>
-        <doc xml:whitespace="preserve">a new shader handle.</doc>
-        <type name="Handle" c:type="CoglHandle"/>
-      </return-value>
-      <parameters>
-        <parameter name="shader_type" transfer-ownership="none">
-          <doc xml:whitespace="preserve">COGL_SHADER_TYPE_VERTEX or COGL_SHADER_TYPE_FRAGMENT.</doc>
-          <type name="ShaderType" c:type="CoglShaderType"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="disable_fog" c:identifier="cogl_disable_fog">
-      <doc xml:whitespace="preserve">This function disables fogging, so primitives drawn afterwards will not be
-blended with any previously set fog color.</doc>
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-    </function>
-    <function name="double_to_fixed" c:identifier="cogl_double_to_fixed">
-      <return-value transfer-ownership="none">
-        <type name="Fixed" c:type="CoglFixed"/>
-      </return-value>
-      <parameters>
-        <parameter name="value" transfer-ownership="none">
-          <type name="gdouble" c:type="double"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="double_to_int" c:identifier="cogl_double_to_int">
-      <return-value transfer-ownership="none">
-        <type name="gint" c:type="int"/>
-      </return-value>
-      <parameters>
-        <parameter name="value" transfer-ownership="none">
-          <type name="gdouble" c:type="double"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="double_to_uint" c:identifier="cogl_double_to_uint">
-      <return-value transfer-ownership="none">
-        <type name="guint" c:type="unsigned int"/>
-      </return-value>
-      <parameters>
-        <parameter name="value" transfer-ownership="none">
-          <type name="gdouble" c:type="double"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="end_gl" c:identifier="cogl_end_gl" version="1.0">
-      <doc xml:whitespace="preserve">This is the counterpart to cogl_begin_gl() used to delimit blocks of drawing
-code using raw OpenGL. Please refer to cogl_begin_gl() for full details.</doc>
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-    </function>
-    <function name="features_available" c:identifier="cogl_features_available">
-      <doc xml:whitespace="preserve">Checks whether the given COGL features are available. Multiple
-features can be checked for by or-ing them together with the '|'
-operator. %TRUE is only returned if all of the requested features
-are available.</doc>
-      <return-value transfer-ownership="none">
-        <doc xml:whitespace="preserve">%TRUE if the features are available, %FALSE otherwise.</doc>
-        <type name="gboolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="features" transfer-ownership="none">
-          <doc xml:whitespace="preserve">A bitmask of features to check for</doc>
-          <type name="FeatureFlags" c:type="CoglFeatureFlags"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="fixed_atan" c:identifier="cogl_fixed_atan" version="1.0">
-      <doc xml:whitespace="preserve">Computes the arc tangent of @a.</doc>
-      <return-value transfer-ownership="none">
-        <doc xml:whitespace="preserve">the arc tangent of the passed value, in fixed point notation</doc>
-        <type name="Fixed" c:type="CoglFixed"/>
-      </return-value>
-      <parameters>
-        <parameter name="a" transfer-ownership="none">
-          <doc xml:whitespace="preserve">a #CoglFixed number</doc>
-          <type name="Fixed" c:type="CoglFixed"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="fixed_atan2" c:identifier="cogl_fixed_atan2" version="1.0">
-      <doc xml:whitespace="preserve">Computes the arc tangent of @a / @b but uses the sign of both
-arguments to return the angle in right quadrant.
-notation</doc>
-      <return-value transfer-ownership="none">
-        <doc xml:whitespace="preserve">the arc tangent of the passed fraction, in fixed point</doc>
-        <type name="Fixed" c:type="CoglFixed"/>
-      </return-value>
-      <parameters>
-        <parameter name="a" transfer-ownership="none">
-          <doc xml:whitespace="preserve">the numerator as a #CoglFixed number</doc>
-          <type name="Fixed" c:type="CoglFixed"/>
-        </parameter>
-        <parameter name="b" transfer-ownership="none">
-          <doc xml:whitespace="preserve">the denominator as a #CoglFixed number</doc>
-          <type name="Fixed" c:type="CoglFixed"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="fixed_cos" c:identifier="cogl_fixed_cos" version="1.0">
-      <doc xml:whitespace="preserve">Computes the cosine of @angle.</doc>
-      <return-value transfer-ownership="none">
-        <doc xml:whitespace="preserve">the cosine of the passed angle, in fixed point notation</doc>
-        <type name="Fixed" c:type="CoglFixed"/>
-      </return-value>
-      <parameters>
-        <parameter name="angle" transfer-ownership="none">
-          <doc xml:whitespace="preserve">a #CoglFixed number</doc>
-          <type name="Fixed" c:type="CoglFixed"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="fixed_div" c:identifier="cogl_fixed_div">
-      <return-value transfer-ownership="none">
-        <type name="Fixed" c:type="CoglFixed"/>
-      </return-value>
-      <parameters>
-        <parameter name="a" transfer-ownership="none">
-          <type name="Fixed" c:type="CoglFixed"/>
-        </parameter>
-        <parameter name="b" transfer-ownership="none">
-          <type name="Fixed" c:type="CoglFixed"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="fixed_get_type" c:identifier="cogl_fixed_get_type">
-      <return-value transfer-ownership="none">
-        <type name="GType" c:type="GType"/>
-      </return-value>
-    </function>
-    <function name="fixed_log2" c:identifier="cogl_fixed_log2" version="1.0">
-      <doc xml:whitespace="preserve">Calculates base 2 logarithm.
-This function is some 2.5 times faster on x86, and over 12 times faster on
-fpu-less arm, than using libc log().</doc>
-      <return-value transfer-ownership="none">
-        <doc xml:whitespace="preserve">base 2 logarithm.</doc>
-        <type name="Fixed" c:type="CoglFixed"/>
-      </return-value>
-      <parameters>
-        <parameter name="x" transfer-ownership="none">
-          <doc xml:whitespace="preserve">value to calculate base 2 logarithm from</doc>
-          <type name="guint" c:type="unsigned int"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="fixed_mul" c:identifier="cogl_fixed_mul">
-      <return-value transfer-ownership="none">
-        <type name="Fixed" c:type="CoglFixed"/>
-      </return-value>
-      <parameters>
-        <parameter name="a" transfer-ownership="none">
-          <type name="Fixed" c:type="CoglFixed"/>
-        </parameter>
-        <parameter name="b" transfer-ownership="none">
-          <type name="Fixed" c:type="CoglFixed"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="fixed_mul_div" c:identifier="cogl_fixed_mul_div">
-      <return-value transfer-ownership="none">
-        <type name="Fixed" c:type="CoglFixed"/>
-      </return-value>
-      <parameters>
-        <parameter name="a" transfer-ownership="none">
-          <type name="Fixed" c:type="CoglFixed"/>
-        </parameter>
-        <parameter name="b" transfer-ownership="none">
-          <type name="Fixed" c:type="CoglFixed"/>
-        </parameter>
-        <parameter name="c" transfer-ownership="none">
-          <type name="Fixed" c:type="CoglFixed"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="fixed_pow" c:identifier="cogl_fixed_pow" version="1.0">
-      <doc xml:whitespace="preserve">Calculates @x to the @y power.</doc>
-      <return-value transfer-ownership="none">
-        <doc xml:whitespace="preserve">the power of @x to the @y</doc>
-        <type name="guint" c:type="unsigned int"/>
-      </return-value>
-      <parameters>
-        <parameter name="x" transfer-ownership="none">
-          <doc xml:whitespace="preserve">base</doc>
-          <type name="guint" c:type="unsigned int"/>
-        </parameter>
-        <parameter name="y" transfer-ownership="none">
-          <doc xml:whitespace="preserve">#CoglFixed exponent</doc>
-          <type name="Fixed" c:type="CoglFixed"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="fixed_pow2" c:identifier="cogl_fixed_pow2" version="1.0">
-      <doc xml:whitespace="preserve">Calculates 2 to the @x power.
-This function is around 11 times faster on x86, and around 22 times faster
-on fpu-less arm than libc pow(2, x).</doc>
-      <return-value transfer-ownership="none">
-        <doc xml:whitespace="preserve">the power of 2 to the passed value</doc>
-        <type name="guint" c:type="unsigned int"/>
-      </return-value>
-      <parameters>
-        <parameter name="x" transfer-ownership="none">
-          <doc xml:whitespace="preserve">a #CoglFixed number</doc>
-          <type name="Fixed" c:type="CoglFixed"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="fixed_sin" c:identifier="cogl_fixed_sin" version="1.0">
-      <doc xml:whitespace="preserve">Computes the sine of @angle.</doc>
-      <return-value transfer-ownership="none">
-        <doc xml:whitespace="preserve">the sine of the passed angle, in fixed point notation</doc>
-        <type name="Fixed" c:type="CoglFixed"/>
-      </return-value>
-      <parameters>
-        <parameter name="angle" transfer-ownership="none">
-          <doc xml:whitespace="preserve">a #CoglFixed number</doc>
-          <type name="Fixed" c:type="CoglFixed"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="fixed_sqrt" c:identifier="cogl_fixed_sqrt" version="1.0">
-      <doc xml:whitespace="preserve">Computes the square root of @x.
-notation</doc>
-      <return-value transfer-ownership="none">
-        <doc xml:whitespace="preserve">the square root of the passed value, in floating point</doc>
-        <type name="Fixed" c:type="CoglFixed"/>
-      </return-value>
-      <parameters>
-        <parameter name="x" transfer-ownership="none">
-          <doc xml:whitespace="preserve">a #CoglFixed number</doc>
-          <type name="Fixed" c:type="CoglFixed"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="fixed_tan" c:identifier="cogl_fixed_tan" version="1.0">
-      <doc xml:whitespace="preserve">Computes the tangent of @angle.</doc>
-      <return-value transfer-ownership="none">
-        <doc xml:whitespace="preserve">the tangent of the passed angle, in fixed point notation</doc>
-        <type name="Fixed" c:type="CoglFixed"/>
-      </return-value>
-      <parameters>
-        <parameter name="angle" transfer-ownership="none">
-          <doc xml:whitespace="preserve">a #CoglFixed number</doc>
-          <type name="Fixed" c:type="CoglFixed"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="flush" c:identifier="cogl_flush" version="1.0">
-      <doc xml:whitespace="preserve">This function should only need to be called in exceptional circumstances.
-As an optimization Cogl drawing functions may batch up primitives
-internally, so if you are trying to use raw GL outside of Cogl you stand a
-better chance of being successful if you ask Cogl to flush any batched
-geometry before making your state changes.
-It only ensure that the underlying driver is issued all the commands
-necessary to draw the batched primitives. It provides no guarantees about
-when the driver will complete the rendering.
-This provides no guarantees about the GL state upon returning and to avoid
-confusing Cogl you should aim to restore any changes you make before
-resuming use of Cogl.
-If you are making state changes with the intention of affecting Cogl drawing
-primitives you are 100% on your own since you stand a good chance of
-conflicting with Cogl internals. For example clutter-gst which currently
-uses direct GL calls to bind ARBfp programs will very likely break when Cogl
-starts to use ARBfb programs itself for the material API.</doc>
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-    </function>
-    <function name="frustum" c:identifier="cogl_frustum" version="0.8.2">
-      <doc xml:whitespace="preserve">Replaces the current projection matrix with a perspective matrix
-for the given viewing frustum.</doc>
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="left" transfer-ownership="none">
-          <doc xml:whitespace="preserve">Left clipping plane</doc>
-          <type name="gfloat" c:type="float"/>
-        </parameter>
-        <parameter name="right" transfer-ownership="none">
-          <doc xml:whitespace="preserve">Right clipping plane</doc>
-          <type name="gfloat" c:type="float"/>
-        </parameter>
-        <parameter name="bottom" transfer-ownership="none">
-          <doc xml:whitespace="preserve">Bottom clipping plane</doc>
-          <type name="gfloat" c:type="float"/>
-        </parameter>
-        <parameter name="top" transfer-ownership="none">
-          <doc xml:whitespace="preserve">Top clipping plane</doc>
-          <type name="gfloat" c:type="float"/>
-        </parameter>
-        <parameter name="z_near" transfer-ownership="none">
-          <doc xml:whitespace="preserve">Nearest visible point</doc>
-          <type name="gfloat" c:type="float"/>
-        </parameter>
-        <parameter name="z_far" transfer-ownership="none">
-          <doc xml:whitespace="preserve">Furthest visible point along the z-axis</doc>
-          <type name="gfloat" c:type="float"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="get_backface_culling_enabled"
-              c:identifier="cogl_get_backface_culling_enabled">
-      <doc xml:whitespace="preserve">Queries if backface culling has been enabled via
-cogl_set_backface_culling_enabled()</doc>
-      <return-value transfer-ownership="none">
-        <doc xml:whitespace="preserve">%TRUE if backface culling is enabled, and %FALSE otherwise</doc>
-        <type name="gboolean" c:type="gboolean"/>
-      </return-value>
-    </function>
-    <function name="get_bitmasks" c:identifier="cogl_get_bitmasks">
-      <doc xml:whitespace="preserve">Gets the number of bitplanes used for each of the color components
-in the color buffer. Pass %NULL for any of the arguments if the
-value is not required.</doc>
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="red"
-                   direction="out"
-                   caller-allocates="0"
-                   transfer-ownership="full">
-          <doc xml:whitespace="preserve">Return location for the number of red bits or %NULL</doc>
-          <type name="gint" c:type="int*"/>
-        </parameter>
-        <parameter name="green"
-                   direction="out"
-                   caller-allocates="0"
-                   transfer-ownership="full">
-          <doc xml:whitespace="preserve">Return location for the number of green bits or %NULL</doc>
-          <type name="gint" c:type="int*"/>
-        </parameter>
-        <parameter name="blue"
-                   direction="out"
-                   caller-allocates="0"
-                   transfer-ownership="full">
-          <doc xml:whitespace="preserve">Return location for the number of blue bits or %NULL</doc>
-          <type name="gint" c:type="int*"/>
-        </parameter>
-        <parameter name="alpha"
-                   direction="out"
-                   caller-allocates="0"
-                   transfer-ownership="full">
-          <doc xml:whitespace="preserve">Return location for the number of alpha bits or %NULL</doc>
-          <type name="gint" c:type="int*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="get_depth_test_enabled"
-              c:identifier="cogl_get_depth_test_enabled"
-              deprecated="Use cogl_material_get_depth_test_enabled()"
-              deprecated-version="1.4">
-      <doc xml:whitespace="preserve">Queries if depth testing has been enabled via cogl_set_depth_test_enable()
-instead.</doc>
-      <return-value transfer-ownership="none">
-        <doc xml:whitespace="preserve">%TRUE if depth testing is enabled, and %FALSE otherwise</doc>
-        <type name="gboolean" c:type="gboolean"/>
-      </return-value>
-    </function>
-    <function name="get_features"
-              c:identifier="cogl_get_features"
-              version="0.8">
-      <doc xml:whitespace="preserve">Returns all of the features supported by COGL.</doc>
-      <return-value transfer-ownership="none">
-        <doc xml:whitespace="preserve">A logical OR of all the supported COGL features.</doc>
-        <type name="FeatureFlags" c:type="CoglFeatureFlags"/>
-      </return-value>
-    </function>
-    <function name="get_modelview_matrix"
-              c:identifier="cogl_get_modelview_matrix">
-      <doc xml:whitespace="preserve">Stores the current model-view matrix in @matrix.</doc>
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="matrix"
-                   direction="out"
-                   caller-allocates="1"
-                   transfer-ownership="none">
-          <doc xml:whitespace="preserve">return location for the model-view matrix</doc>
-          <type name="Matrix" c:type="CoglMatrix*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="get_option_group"
-              c:identifier="cogl_get_option_group"
-              version="1.0"
-              introspectable="0">
-      <doc xml:whitespace="preserve">Retrieves the #GOptionGroup used by COGL to parse the command
-line options. Clutter uses this to handle the COGL command line
-options during its initialization process.</doc>
-      <return-value>
-        <doc xml:whitespace="preserve">a #GOptionGroup</doc>
-        <type name="GLib.OptionGroup" c:type="GOptionGroup*"/>
-      </return-value>
-    </function>
-    <function name="get_path"
-              c:identifier="cogl_get_path"
-              version="1.4"
-              introspectable="0">
-      <doc xml:whitespace="preserve">Gets a pointer to the current path. The path can later be used
-again by calling cogl_path_set(). Note that the path isn't copied
-so if you later call any functions to add to the path it will
-affect the returned object too. No reference is taken on the path
-so if you want to retain it you should take your own reference with
-cogl_object_ref().</doc>
-      <return-value>
-        <doc xml:whitespace="preserve">a pointer to the current path.</doc>
-        <type name="Path" c:type="CoglPath*"/>
-      </return-value>
-    </function>
-    <function name="get_proc_address"
-              c:identifier="cogl_get_proc_address"
-              introspectable="0">
-      <doc xml:whitespace="preserve">Gets a pointer to a given GL or GL ES extension function. This acts
-as a wrapper around glXGetProcAddress() or whatever is the
-appropriate function for the current backend.
-function is not available.</doc>
-      <return-value>
-        <doc xml:whitespace="preserve">a pointer to the requested function or %NULL if the</doc>
-        <type name="FuncPtr" c:type="CoglFuncPtr"/>
-      </return-value>
-      <parameters>
-        <parameter name="name" transfer-ownership="none">
-          <doc xml:whitespace="preserve">the name of the function.</doc>
-          <type name="utf8" c:type="char*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="get_projection_matrix"
-              c:identifier="cogl_get_projection_matrix">
-      <doc xml:whitespace="preserve">Stores the current projection matrix in @matrix.</doc>
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="matrix"
-                   direction="out"
-                   caller-allocates="1"
-                   transfer-ownership="none">
-          <doc xml:whitespace="preserve">return location for the projection matrix</doc>
-          <type name="Matrix" c:type="CoglMatrix*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="get_viewport" c:identifier="cogl_get_viewport">
-      <doc xml:whitespace="preserve">Stores the current viewport in @v. @v[0] and @v[1] get the x and y
-position of the viewport and @v[2] and @v[3] get the width and
-height.</doc>
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="v"
-                   direction="out"
-                   caller-allocates="0"
-                   transfer-ownership="full">
-          <doc xml:whitespace="preserve">pointer to a 4 element array of #float&lt;!-- --&gt;s to receive the viewport dimensions.</doc>
-          <array c:type="float" fixed-size="4">
-            <type name="gfloat"/>
-          </array>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="handle_get_type" c:identifier="cogl_handle_get_type">
-      <return-value transfer-ownership="none">
-        <type name="GType" c:type="GType"/>
-      </return-value>
-    </function>
-    <function name="handle_ref" c:identifier="cogl_handle_ref">
-      <doc xml:whitespace="preserve">Increases the reference count of @handle by 1</doc>
-      <return-value transfer-ownership="none">
-        <doc xml:whitespace="preserve">the handle, with its reference count increased</doc>
-        <type name="Handle" c:type="CoglHandle"/>
-      </return-value>
-      <parameters>
-        <parameter name="handle" transfer-ownership="none">
-          <doc xml:whitespace="preserve">a #CoglHandle</doc>
-          <type name="Handle" c:type="CoglHandle"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="handle_unref" c:identifier="cogl_handle_unref">
-      <doc xml:whitespace="preserve">Drecreases the reference count of @handle by 1; if the reference
-count reaches 0, the resources allocated by @handle will be freed</doc>
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="handle" transfer-ownership="none">
-          <doc xml:whitespace="preserve">a #CoglHandle</doc>
-          <type name="Handle" c:type="CoglHandle"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="is_bitmap" c:identifier="cogl_is_bitmap" version="1.0">
-      <doc xml:whitespace="preserve">Checks whether @handle is a #CoglHandle for a bitmap
-and %FALSE otherwise</doc>
-      <return-value transfer-ownership="none">
-        <doc xml:whitespace="preserve">%TRUE if the passed handle represents a bitmap,</doc>
-        <type name="gboolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="handle" transfer-ownership="none">
-          <doc xml:whitespace="preserve">a #CoglHandle for a bitmap</doc>
-          <type name="Handle" c:type="CoglHandle"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="is_buffer_EXP" c:identifier="cogl_is_buffer_EXP">
-      <return-value transfer-ownership="none">
-        <type name="gboolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="object" transfer-ownership="none">
-          <type name="gpointer" c:type="void*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="is_material" c:identifier="cogl_is_material">
-      <doc xml:whitespace="preserve">Gets whether the given handle references an existing material object.
-%FALSE otherwise</doc>
-      <return-value transfer-ownership="none">
-        <doc xml:whitespace="preserve">%TRUE if the handle references a #CoglMaterial,</doc>
-        <type name="gboolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="handle" transfer-ownership="none">
-          <doc xml:whitespace="preserve">A CoglHandle</doc>
-          <type name="Handle" c:type="CoglHandle"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="is_offscreen" c:identifier="cogl_is_offscreen">
-      <doc xml:whitespace="preserve">Determines whether the given #CoglHandle references an offscreen buffer
-object.
-%FALSE otherwise</doc>
-      <return-value transfer-ownership="none">
-        <doc xml:whitespace="preserve">%TRUE if the handle references an offscreen buffer,</doc>
-        <type name="gboolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="handle" transfer-ownership="none">
-          <doc xml:whitespace="preserve">A CoglHandle for an offscreen buffer</doc>
-          <type name="Handle" c:type="CoglHandle"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="is_path" c:identifier="cogl_is_path">
-      <doc xml:whitespace="preserve">Gets whether the given handle references an existing path object.
-%FALSE otherwise</doc>
-      <return-value transfer-ownership="none">
-        <doc xml:whitespace="preserve">%TRUE if the handle references a #CoglPath,</doc>
-        <type name="gboolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="handle" transfer-ownership="none">
-          <doc xml:whitespace="preserve">A CoglHandle</doc>
-          <type name="Handle" c:type="CoglHandle"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="is_pixel_array_EXP" c:identifier="cogl_is_pixel_array_EXP">
-      <return-value transfer-ownership="none">
-        <type name="gboolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="object" transfer-ownership="none">
-          <type name="gpointer" c:type="void*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="is_program" c:identifier="cogl_is_program">
-      <doc xml:whitespace="preserve">Gets whether the given handle references an existing program object.
-%FALSE otherwise</doc>
-      <return-value transfer-ownership="none">
-        <doc xml:whitespace="preserve">%TRUE if the handle references a program,</doc>
-        <type name="gboolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="handle" transfer-ownership="none">
-          <doc xml:whitespace="preserve">A CoglHandle</doc>
-          <type name="Handle" c:type="CoglHandle"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="is_shader" c:identifier="cogl_is_shader">
-      <doc xml:whitespace="preserve">Gets whether the given handle references an existing shader object.
-%FALSE otherwise</doc>
-      <return-value transfer-ownership="none">
-        <doc xml:whitespace="preserve">%TRUE if the handle references a shader,</doc>
-        <type name="gboolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="handle" transfer-ownership="none">
-          <doc xml:whitespace="preserve">A CoglHandle</doc>
-          <type name="Handle" c:type="CoglHandle"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="is_texture" c:identifier="cogl_is_texture">
-      <doc xml:whitespace="preserve">Gets whether the given handle references an existing texture object.
-%FALSE otherwise</doc>
-      <return-value transfer-ownership="none">
-        <doc xml:whitespace="preserve">%TRUE if the handle references a texture, and</doc>
-        <type name="gboolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="handle" transfer-ownership="none">
-          <doc xml:whitespace="preserve">A CoglHandle</doc>
-          <type name="Handle" c:type="CoglHandle"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="is_texture_3d_EXP" c:identifier="cogl_is_texture_3d_EXP">
-      <return-value transfer-ownership="none">
-        <type name="gboolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="handle" transfer-ownership="none">
-          <type name="Handle" c:type="CoglHandle"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="is_texture_pixmap_x11_EXP"
-              c:identifier="cogl_is_texture_pixmap_x11_EXP">
-      <return-value transfer-ownership="none">
-        <type name="gboolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="handle" transfer-ownership="none">
-          <type name="Handle" c:type="CoglHandle"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="is_vertex_buffer"
-              c:identifier="cogl_is_vertex_buffer"
-              version="1.0">
-      <doc xml:whitespace="preserve">Checks whether @handle is a Vertex Buffer Object
-otherwise</doc>
-      <return-value transfer-ownership="none">
-        <doc xml:whitespace="preserve">%TRUE if the handle is a VBO, and %FALSE</doc>
-        <type name="gboolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="handle" transfer-ownership="none">
-          <doc xml:whitespace="preserve">a #CoglHandle for a vertex buffer object</doc>
-          <type name="Handle" c:type="CoglHandle"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="is_vertex_buffer_indices"
-              c:identifier="cogl_is_vertex_buffer_indices"
-              version="1.4">
-      <doc xml:whitespace="preserve">Checks whether @handle is a handle to the indices for a vertex
-buffer object
-otherwise</doc>
-      <return-value transfer-ownership="none">
-        <doc xml:whitespace="preserve">%TRUE if the handle is indices, and %FALSE</doc>
-        <type name="gboolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="handle" transfer-ownership="none">
-          <doc xml:whitespace="preserve">a #CoglHandle</doc>
-          <type name="Handle" c:type="CoglHandle"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="material_get_point_size"
-              c:identifier="cogl_material_get_point_size"
-              version="1.4">
-      <doc xml:whitespace="preserve">Get the size of points drawn when %COGL_VERTICES_MODE_POINTS is
-used with the vertex buffer API.</doc>
-      <return-value transfer-ownership="none">
-        <doc xml:whitespace="preserve">the point size of the material.</doc>
-        <type name="gfloat" c:type="float"/>
-      </return-value>
-      <parameters>
-        <parameter name="material" transfer-ownership="none">
-          <doc xml:whitespace="preserve">a #CoglHandle to a material.</doc>
-          <type name="Handle" c:type="CoglHandle"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="material_layer_get_type"
-              c:identifier="cogl_material_layer_get_type">
-      <doc xml:whitespace="preserve">Retrieves the type of the layer
-Currently there is only one type of layer defined:
-%COGL_MATERIAL_LAYER_TYPE_TEXTURE, but considering we may add purely GLSL
-based layers in the future, you should write code that checks the type
-first.</doc>
-      <return-value transfer-ownership="none">
-        <doc xml:whitespace="preserve">the type of the layer</doc>
-        <type name="MaterialLayerType" c:type="CoglMaterialLayerType"/>
-      </return-value>
-      <parameters>
-        <parameter name="layer" transfer-ownership="none">
-          <doc xml:whitespace="preserve">A #CoglMaterialLayer object</doc>
-          <type name="MaterialLayer" c:type="CoglMaterialLayer*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="material_new"
-              c:identifier="cogl_material_new"
-              introspectable="0">
-      <doc xml:whitespace="preserve">Allocates and initializes a blank white material</doc>
-      <return-value>
-        <doc xml:whitespace="preserve">a pointer to a new #CoglMaterial</doc>
-        <type name="Material" c:type="CoglMaterial*"/>
-      </return-value>
-    </function>
-    <function name="material_ref"
-              c:identifier="cogl_material_ref"
-              version="1.0"
-              introspectable="0"
-              deprecated="Use cogl_object_ref() instead"
-              deprecated-version="1.2">
-      <doc xml:whitespace="preserve">Increment the reference count for a #CoglMaterial.</doc>
-      <return-value>
-        <doc xml:whitespace="preserve">the @material.</doc>
-        <type name="Handle" c:type="CoglHandle"/>
-      </return-value>
-      <parameters>
-        <parameter name="handle" transfer-ownership="none">
-          <type name="Handle" c:type="CoglHandle"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="material_set_point_size"
-              c:identifier="cogl_material_set_point_size"
-              version="1.4">
-      <doc xml:whitespace="preserve">Changes the size of points drawn when %COGL_VERTICES_MODE_POINTS is
-used with the vertex buffer API. Note that typically the GPU will
-only support a limited minimum and maximum range of point sizes. If
-the chosen point size is outside that range then the nearest value
-within that range will be used instead. The size of a point is in
-screen space so it will be the same regardless of any
-transformations. The default point size is 1.0.</doc>
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="material" transfer-ownership="none">
-          <doc xml:whitespace="preserve">a #CoglHandle to a material.</doc>
-          <type name="Handle" c:type="CoglHandle"/>
-        </parameter>
-        <parameter name="point_size" transfer-ownership="none">
-          <type name="gfloat" c:type="float"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="material_unref"
-              c:identifier="cogl_material_unref"
-              version="1.0"
-              deprecated="Use cogl_object_unref() instead"
-              deprecated-version="1.2">
-      <doc xml:whitespace="preserve">Decrement the reference count for a #CoglMaterial.</doc>
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="handle" transfer-ownership="none">
-          <type name="Handle" c:type="CoglHandle"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="matrix_equal"
-              c:identifier="cogl_matrix_equal"
-              version="1.4">
-      <doc xml:whitespace="preserve">Compares two matrices to see if they represent the same
-transformation. Although internally the matrices may have different
-annotations associated with them and may potentially have a cached
-inverse matrix these are not considered in the comparison.</doc>
-      <return-value transfer-ownership="none">
-        <type name="gboolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="v1" transfer-ownership="none">
-          <doc xml:whitespace="preserve">A 4x4 transformation matrix</doc>
-          <type name="gpointer" c:type="gconstpointer"/>
-        </parameter>
-        <parameter name="v2" transfer-ownership="none">
-          <doc xml:whitespace="preserve">A 4x4 transformation matrix</doc>
-          <type name="gpointer" c:type="gconstpointer"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="object_ref"
-              c:identifier="cogl_object_ref"
-              introspectable="0">
-      <doc xml:whitespace="preserve">Increases the reference count of @handle by 1</doc>
-      <return-value>
-        <doc xml:whitespace="preserve">the @object, with its reference count increased</doc>
-        <type name="gpointer" c:type="void*"/>
-      </return-value>
-      <parameters>
-        <parameter name="object" transfer-ownership="none">
-          <doc xml:whitespace="preserve">a #CoglObject</doc>
-          <type name="gpointer" c:type="void*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="object_unref" c:identifier="cogl_object_unref">
-      <doc xml:whitespace="preserve">Drecreases the reference count of @object by 1; if the reference
-count reaches 0, the resources allocated by @object will be freed</doc>
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="object" transfer-ownership="none">
-          <doc xml:whitespace="preserve">a #CoglObject</doc>
-          <type name="gpointer" c:type="void*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="offscreen_new_to_texture"
-              c:identifier="cogl_offscreen_new_to_texture">
-      <doc xml:whitespace="preserve">This creates an offscreen buffer object using the given texture as the
-primary color buffer. It doesn't just initialize the contents of the
-offscreen buffer with the texture; they are tightly bound so that
-drawing to the offscreen buffer effectivly updates the contents of the
-given texture. You don't need to destroy the offscreen buffer before
-you can use the texture again.
-buffer or %COGL_INVALID_HANDLE if it wasn't possible to create the
-buffer.</doc>
-      <return-value transfer-ownership="full">
-        <doc xml:whitespace="preserve">a #CoglHandle for the new offscreen</doc>
-        <type name="Handle" c:type="CoglHandle"/>
-      </return-value>
-      <parameters>
-        <parameter name="handle" transfer-ownership="none">
-          <doc xml:whitespace="preserve">A CoglHandle for a Cogl texture</doc>
-          <type name="Handle" c:type="CoglHandle"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="offscreen_ref"
-              c:identifier="cogl_offscreen_ref"
-              deprecated="cogl_handle_ref() should be used in new code."
-              deprecated-version="1.2">
-      <doc xml:whitespace="preserve">Increments the reference count on the offscreen buffer.</doc>
-      <return-value transfer-ownership="none">
-        <doc xml:whitespace="preserve">For convenience it returns the given CoglHandle</doc>
-        <type name="Handle" c:type="CoglHandle"/>
-      </return-value>
-      <parameters>
-        <parameter name="handle" transfer-ownership="none">
-          <doc xml:whitespace="preserve">A CoglHandle for an offscreen buffer</doc>
-          <type name="Handle" c:type="CoglHandle"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="offscreen_unref"
-              c:identifier="cogl_offscreen_unref"
-              deprecated="cogl_handle_unref() should be used in new code."
-              deprecated-version="1.2">
-      <doc xml:whitespace="preserve">Decreases the reference count for the offscreen buffer and frees it when
-the count reaches 0.</doc>
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="handle" transfer-ownership="none">
-          <doc xml:whitespace="preserve">A CoglHandle for an offscreen buffer</doc>
-          <type name="Handle" c:type="CoglHandle"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="ortho" c:identifier="cogl_ortho" version="1.0">
-      <doc xml:whitespace="preserve">Replaces the current projection matrix with an orthographic projection
-matrix. See &lt;xref linkend="cogl-ortho-matrix"/&gt; to see how the matrix is
-calculated.
-&lt;figure id="cogl-ortho-matrix"&gt;
-&lt;title&gt;&lt;/title&gt;
-&lt;graphic fileref="cogl_ortho.png" format="PNG"/&gt;
-&lt;/figure&gt;
-&lt;note&gt;This function copies the arguments from OpenGL's glOrtho() even
-though they are unnecessarily confusing due to the z near and z far
-arguments actually being a "distance" from the origin, where
-negative values are behind the viewer, instead of coordinates for
-the z clipping planes which would have been consistent with the
-left, right bottom and top arguments.&lt;/note&gt;</doc>
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="left" transfer-ownership="none">
-          <doc xml:whitespace="preserve">The coordinate for the left clipping plane</doc>
-          <type name="gfloat" c:type="float"/>
-        </parameter>
-        <parameter name="right" transfer-ownership="none">
-          <doc xml:whitespace="preserve">The coordinate for the right clipping plane</doc>
-          <type name="gfloat" c:type="float"/>
-        </parameter>
-        <parameter name="bottom" transfer-ownership="none">
-          <doc xml:whitespace="preserve">The coordinate for the bottom clipping plane</doc>
-          <type name="gfloat" c:type="float"/>
-        </parameter>
-        <parameter name="top" transfer-ownership="none">
-          <doc xml:whitespace="preserve">The coordinate for the top clipping plane</doc>
-          <type name="gfloat" c:type="float"/>
-        </parameter>
-        <parameter name="near" transfer-ownership="none">
-          <doc xml:whitespace="preserve">The &lt;emphasis&gt;distance&lt;/emphasis&gt; to the near clipping plane (negative if the plane is behind the viewer)</doc>
-          <type name="gfloat" c:type="float"/>
-        </parameter>
-        <parameter name="far" transfer-ownership="none">
-          <doc xml:whitespace="preserve">The &lt;emphasis&gt;distance&lt;/emphasis&gt; for the far clipping plane (negative if the plane is behind the viewer)</doc>
-          <type name="gfloat" c:type="float"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="path_arc" c:identifier="cogl_path_arc">
-      <doc xml:whitespace="preserve">Adds an elliptical arc segment to the current path. A straight line
-segment will link the current pen location with the first vertex
-of the arc. If you perform a move_to to the arcs start just before
-drawing it you create a free standing arc.
-The angles are measured in degrees where 0° is in the direction of
-the positive X axis and 90° is in the direction of the positive Y
-axis. The angle of the arc begins at @angle_1 and heads towards
-otherwise it will increase).</doc>
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="center_x" transfer-ownership="none">
-          <doc xml:whitespace="preserve">X coordinate of the elliptical arc center</doc>
-          <type name="gfloat" c:type="float"/>
-        </parameter>
-        <parameter name="center_y" transfer-ownership="none">
-          <doc xml:whitespace="preserve">Y coordinate of the elliptical arc center</doc>
-          <type name="gfloat" c:type="float"/>
-        </parameter>
-        <parameter name="radius_x" transfer-ownership="none">
-          <doc xml:whitespace="preserve">X radius of the elliptical arc</doc>
-          <type name="gfloat" c:type="float"/>
-        </parameter>
-        <parameter name="radius_y" transfer-ownership="none">
-          <doc xml:whitespace="preserve">Y radius of the elliptical arc</doc>
-          <type name="gfloat" c:type="float"/>
-        </parameter>
-        <parameter name="angle_1" transfer-ownership="none">
-          <doc xml:whitespace="preserve">Angle in degrees at which the arc begin</doc>
-          <type name="gfloat" c:type="float"/>
-        </parameter>
-        <parameter name="angle_2" transfer-ownership="none">
-          <doc xml:whitespace="preserve">Angle in degrees at which the arc ends</doc>
-          <type name="gfloat" c:type="float"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="path_close" c:identifier="cogl_path_close">
-      <doc xml:whitespace="preserve">Closes the path being constructed by adding a straight line segment
-to it that ends at the first vertex of the path.</doc>
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-    </function>
-    <function name="path_curve_to" c:identifier="cogl_path_curve_to">
-      <doc xml:whitespace="preserve">Adds a cubic bezier curve segment to the current path with the given
-second, third and fourth control points and using current pen location
-as the first control point.</doc>
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="x_1" transfer-ownership="none">
-          <doc xml:whitespace="preserve">X coordinate of the second bezier control point</doc>
-          <type name="gfloat" c:type="float"/>
-        </parameter>
-        <parameter name="y_1" transfer-ownership="none">
-          <doc xml:whitespace="preserve">Y coordinate of the second bezier control point</doc>
-          <type name="gfloat" c:type="float"/>
-        </parameter>
-        <parameter name="x_2" transfer-ownership="none">
-          <doc xml:whitespace="preserve">X coordinate of the third bezier control point</doc>
-          <type name="gfloat" c:type="float"/>
-        </parameter>
-        <parameter name="y_2" transfer-ownership="none">
-          <doc xml:whitespace="preserve">Y coordinate of the third bezier control point</doc>
-          <type name="gfloat" c:type="float"/>
-        </parameter>
-        <parameter name="x_3" transfer-ownership="none">
-          <doc xml:whitespace="preserve">X coordinate of the fourth bezier control point</doc>
-          <type name="gfloat" c:type="float"/>
-        </parameter>
-        <parameter name="y_3" transfer-ownership="none">
-          <doc xml:whitespace="preserve">Y coordinate of the fourth bezier control point</doc>
-          <type name="gfloat" c:type="float"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="path_ellipse" c:identifier="cogl_path_ellipse">
-      <doc xml:whitespace="preserve">Constructs an ellipse shape. If there is an existing path this will
-start a new disjoint sub-path.</doc>
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="center_x" transfer-ownership="none">
-          <doc xml:whitespace="preserve">X coordinate of the ellipse center</doc>
-          <type name="gfloat" c:type="float"/>
-        </parameter>
-        <parameter name="center_y" transfer-ownership="none">
-          <doc xml:whitespace="preserve">Y coordinate of the ellipse center</doc>
-          <type name="gfloat" c:type="float"/>
-        </parameter>
-        <parameter name="radius_x" transfer-ownership="none">
-          <doc xml:whitespace="preserve">X radius of the ellipse</doc>
-          <type name="gfloat" c:type="float"/>
-        </parameter>
-        <parameter name="radius_y" transfer-ownership="none">
-          <doc xml:whitespace="preserve">Y radius of the ellipse</doc>
-          <type name="gfloat" c:type="float"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="path_fill" c:identifier="cogl_path_fill">
-      <doc xml:whitespace="preserve">Fills the interior of the constructed shape using the current
-drawing color. The current path is then cleared. To use the path
-again, call cogl_path_fill_preserve() instead.
-The interior of the shape is determined using the fill rule of the
-path. See %CoglPathFillRule for details.</doc>
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-    </function>
-    <function name="path_fill_preserve"
-              c:identifier="cogl_path_fill_preserve"
-              version="1.0">
-      <doc xml:whitespace="preserve">Fills the interior of the constructed shape using the current
-drawing color and preserves the path to be used again. See
-cogl_path_fill() for a description what is considered the interior
-of the shape.</doc>
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-    </function>
-    <function name="path_get_fill_rule"
-              c:identifier="cogl_path_get_fill_rule"
-              version="1.4">
-      <doc xml:whitespace="preserve">Retrieves the fill rule set using cogl_path_set_fill_rule().</doc>
-      <return-value transfer-ownership="none">
-        <doc xml:whitespace="preserve">the fill rule that is used for the current path.</doc>
-        <type name="PathFillRule" c:type="CoglPathFillRule"/>
-      </return-value>
-    </function>
-    <function name="path_line" c:identifier="cogl_path_line">
-      <doc xml:whitespace="preserve">Constructs a straight line shape starting and ending at the given
-coordinates. If there is an existing path this will start a new
-disjoint sub-path.</doc>
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="x_1" transfer-ownership="none">
-          <doc xml:whitespace="preserve">X coordinate of the start line vertex</doc>
-          <type name="gfloat" c:type="float"/>
-        </parameter>
-        <parameter name="y_1" transfer-ownership="none">
-          <doc xml:whitespace="preserve">Y coordinate of the start line vertex</doc>
-          <type name="gfloat" c:type="float"/>
-        </parameter>
-        <parameter name="x_2" transfer-ownership="none">
-          <doc xml:whitespace="preserve">X coordinate of the end line vertex</doc>
-          <type name="gfloat" c:type="float"/>
-        </parameter>
-        <parameter name="y_2" transfer-ownership="none">
-          <doc xml:whitespace="preserve">Y coordinate of the end line vertex</doc>
-          <type name="gfloat" c:type="float"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="path_line_to" c:identifier="cogl_path_line_to">
-      <doc xml:whitespace="preserve">Adds a straight line segment to the current path that ends at the
-given coordinates.</doc>
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="x" transfer-ownership="none">
-          <doc xml:whitespace="preserve">X coordinate of the end line vertex</doc>
-          <type name="gfloat" c:type="float"/>
-        </parameter>
-        <parameter name="y" transfer-ownership="none">
-          <doc xml:whitespace="preserve">Y coordinate of the end line vertex</doc>
-          <type name="gfloat" c:type="float"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="path_move_to" c:identifier="cogl_path_move_to">
-      <doc xml:whitespace="preserve">Moves the pen to the given location. If there is an existing path
-this will start a new disjoint subpath.</doc>
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="x" transfer-ownership="none">
-          <doc xml:whitespace="preserve">X coordinate of the pen location to move to.</doc>
-          <type name="gfloat" c:type="float"/>
-        </parameter>
-        <parameter name="y" transfer-ownership="none">
-          <doc xml:whitespace="preserve">Y coordinate of the pen location to move to.</doc>
-          <type name="gfloat" c:type="float"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="path_new" c:identifier="cogl_path_new" version="1.0">
-      <doc xml:whitespace="preserve">Clears the current path and starts a new one. Creating a new path
-also resets the fill rule to the default which is
-%COGL_PATH_FILL_RULE_EVEN_ODD.</doc>
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-    </function>
-    <function name="path_polygon" c:identifier="cogl_path_polygon">
-      <doc xml:whitespace="preserve">Constructs a polygonal shape of the given number of vertices. If
-there is an existing path this will start a new disjoint sub-path.
-The coords array must contain 2 * num_points values. The first value
-represents the X coordinate of the first vertex, the second value
-represents the Y coordinate of the first vertex, continuing in the same
-fashion for the rest of the vertices.</doc>
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="coords" transfer-ownership="none">
-          <doc xml:whitespace="preserve">A pointer to the first element of an array of fixed-point values that specify the vertex coordinates.</doc>
-          <array c:type="float*">
-            <type name="gfloat"/>
-          </array>
-        </parameter>
-        <parameter name="num_points" transfer-ownership="none">
-          <doc xml:whitespace="preserve">The total number of vertices.</doc>
-          <type name="gint" c:type="int"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="path_polyline" c:identifier="cogl_path_polyline">
-      <doc xml:whitespace="preserve">Constructs a series of straight line segments, starting from the
-first given vertex coordinate. If there is an existing path this
-will start a new disjoint sub-path. Each subsequent segment starts
-where the previous one ended and ends at the next given vertex
-coordinate.
-The coords array must contain 2 * num_points values. The first value
-represents the X coordinate of the first vertex, the second value
-represents the Y coordinate of the first vertex, continuing in the same
-fashion for the rest of the vertices. (num_points - 1) segments will
-be constructed.</doc>
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="coords" transfer-ownership="none">
-          <doc xml:whitespace="preserve">A pointer to the first element of an array of fixed-point values that specify the vertex coordinates.</doc>
-          <array c:type="float*">
-            <type name="gfloat"/>
-          </array>
-        </parameter>
-        <parameter name="num_points" transfer-ownership="none">
-          <doc xml:whitespace="preserve">The total number of vertices.</doc>
-          <type name="gint" c:type="int"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="path_rectangle" c:identifier="cogl_path_rectangle">
-      <doc xml:whitespace="preserve">Constructs a rectangular shape at the given coordinates. If there
-is an existing path this will start a new disjoint sub-path.</doc>
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="x_1" transfer-ownership="none">
-          <doc xml:whitespace="preserve">X coordinate of the top-left corner.</doc>
-          <type name="gfloat" c:type="float"/>
-        </parameter>
-        <parameter name="y_1" transfer-ownership="none">
-          <doc xml:whitespace="preserve">Y coordinate of the top-left corner.</doc>
-          <type name="gfloat" c:type="float"/>
-        </parameter>
-        <parameter name="x_2" transfer-ownership="none">
-          <doc xml:whitespace="preserve">X coordinate of the bottom-right corner.</doc>
-          <type name="gfloat" c:type="float"/>
-        </parameter>
-        <parameter name="y_2" transfer-ownership="none">
-          <doc xml:whitespace="preserve">Y coordinate of the bottom-right corner.</doc>
-          <type name="gfloat" c:type="float"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="path_rel_curve_to" c:identifier="cogl_path_rel_curve_to">
-      <doc xml:whitespace="preserve">Adds a cubic bezier curve segment to the current path with the given
-second, third and fourth control points and using current pen location
-as the first control point. The given coordinates are relative to the
-current pen location.</doc>
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="x_1" transfer-ownership="none">
-          <doc xml:whitespace="preserve">X coordinate of the second bezier control point</doc>
-          <type name="gfloat" c:type="float"/>
-        </parameter>
-        <parameter name="y_1" transfer-ownership="none">
-          <doc xml:whitespace="preserve">Y coordinate of the second bezier control point</doc>
-          <type name="gfloat" c:type="float"/>
-        </parameter>
-        <parameter name="x_2" transfer-ownership="none">
-          <doc xml:whitespace="preserve">X coordinate of the third bezier control point</doc>
-          <type name="gfloat" c:type="float"/>
-        </parameter>
-        <parameter name="y_2" transfer-ownership="none">
-          <doc xml:whitespace="preserve">Y coordinate of the third bezier control point</doc>
-          <type name="gfloat" c:type="float"/>
-        </parameter>
-        <parameter name="x_3" transfer-ownership="none">
-          <doc xml:whitespace="preserve">X coordinate of the fourth bezier control point</doc>
-          <type name="gfloat" c:type="float"/>
-        </parameter>
-        <parameter name="y_3" transfer-ownership="none">
-          <doc xml:whitespace="preserve">Y coordinate of the fourth bezier control point</doc>
-          <type name="gfloat" c:type="float"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="path_rel_line_to" c:identifier="cogl_path_rel_line_to">
-      <doc xml:whitespace="preserve">Adds a straight line segment to the current path that ends at the
-given coordinates relative to the current pen location.</doc>
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="x" transfer-ownership="none">
-          <doc xml:whitespace="preserve">X offset from the current pen location of the end line vertex</doc>
-          <type name="gfloat" c:type="float"/>
-        </parameter>
-        <parameter name="y" transfer-ownership="none">
-          <doc xml:whitespace="preserve">Y offset from the current pen location of the end line vertex</doc>
-          <type name="gfloat" c:type="float"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="path_rel_move_to" c:identifier="cogl_path_rel_move_to">
-      <doc xml:whitespace="preserve">Moves the pen to the given offset relative to the current pen
-location. If there is an existing path this will start a new
-disjoint subpath.</doc>
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="x" transfer-ownership="none">
-          <doc xml:whitespace="preserve">X offset from the current pen location to move the pen to.</doc>
-          <type name="gfloat" c:type="float"/>
-        </parameter>
-        <parameter name="y" transfer-ownership="none">
-          <doc xml:whitespace="preserve">Y offset from the current pen location to move the pen to.</doc>
-          <type name="gfloat" c:type="float"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="path_round_rectangle"
-              c:identifier="cogl_path_round_rectangle">
-      <doc xml:whitespace="preserve">Constructs a rectangular shape with rounded corners. If there is an
-existing path this will start a new disjoint sub-path.</doc>
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="x_1" transfer-ownership="none">
-          <doc xml:whitespace="preserve">X coordinate of the top-left corner.</doc>
-          <type name="gfloat" c:type="float"/>
-        </parameter>
-        <parameter name="y_1" transfer-ownership="none">
-          <doc xml:whitespace="preserve">Y coordinate of the top-left corner.</doc>
-          <type name="gfloat" c:type="float"/>
-        </parameter>
-        <parameter name="x_2" transfer-ownership="none">
-          <doc xml:whitespace="preserve">X coordinate of the bottom-right corner.</doc>
-          <type name="gfloat" c:type="float"/>
-        </parameter>
-        <parameter name="y_2" transfer-ownership="none">
-          <doc xml:whitespace="preserve">Y coordinate of the bottom-right corner.</doc>
-          <type name="gfloat" c:type="float"/>
-        </parameter>
-        <parameter name="radius" transfer-ownership="none">
-          <doc xml:whitespace="preserve">Radius of the corner arcs.</doc>
-          <type name="gfloat" c:type="float"/>
-        </parameter>
-        <parameter name="arc_step" transfer-ownership="none">
-          <doc xml:whitespace="preserve">Angle increment resolution for subdivision of the corner arcs.</doc>
-          <type name="gfloat" c:type="float"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="path_set_fill_rule"
-              c:identifier="cogl_path_set_fill_rule"
-              version="1.4">
-      <doc xml:whitespace="preserve">Sets the fill rule of the current path to @fill_rule. This will
-affect how the path is filled when cogl_path_fill() is later
-called. Note that the fill rule state is attached to the path so
-calling cogl_get_path() will preserve the fill rule and calling
-cogl_path_new() will reset the fill rule back to the default.</doc>
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="fill_rule" transfer-ownership="none">
-          <doc xml:whitespace="preserve">The new fill rule.</doc>
-          <type name="PathFillRule" c:type="CoglPathFillRule"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="path_stroke" c:identifier="cogl_path_stroke">
-      <doc xml:whitespace="preserve">Strokes the constructed shape using the current drawing color and a
-width of 1 pixel (regardless of the current transformation
-matrix). To current path is then cleared. To use the path again,
-call cogl_path_stroke_preserve() instead.</doc>
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-    </function>
-    <function name="path_stroke_preserve"
-              c:identifier="cogl_path_stroke_preserve"
-              version="1.0">
-      <doc xml:whitespace="preserve">Strokes the constructed shape using the current drawing color and
-preserves the path to be used again.</doc>
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-    </function>
-    <function name="perspective" c:identifier="cogl_perspective">
-      <doc xml:whitespace="preserve">Replaces the current projection matrix with a perspective matrix
-based on the provided values.</doc>
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="fovy" transfer-ownership="none">
-          <doc xml:whitespace="preserve">Vertical of view angle in degrees.</doc>
-          <type name="gfloat" c:type="float"/>
-        </parameter>
-        <parameter name="aspect" transfer-ownership="none">
-          <doc xml:whitespace="preserve">Aspect ratio of diesplay</doc>
-          <type name="gfloat" c:type="float"/>
-        </parameter>
-        <parameter name="z_near" transfer-ownership="none">
-          <doc xml:whitespace="preserve">Nearest visible point</doc>
-          <type name="gfloat" c:type="float"/>
-        </parameter>
-        <parameter name="z_far" transfer-ownership="none">
-          <doc xml:whitespace="preserve">Furthest visible point along the z-axis</doc>
-          <type name="gfloat" c:type="float"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="pixel_array_new_with_size_EXP"
-              c:identifier="cogl_pixel_array_new_with_size_EXP"
-              introspectable="0">
-      <return-value>
-        <type name="PixelArray" c:type="CoglPixelArray*"/>
-      </return-value>
-      <parameters>
-        <parameter name="width" transfer-ownership="none">
-          <type name="guint" c:type="unsigned int"/>
-        </parameter>
-        <parameter name="height" transfer-ownership="none">
-          <type name="guint" c:type="unsigned int"/>
-        </parameter>
-        <parameter name="format" transfer-ownership="none">
-          <type name="PixelFormat" c:type="CoglPixelFormat"/>
-        </parameter>
-        <parameter name="stride" transfer-ownership="none">
-          <type name="guint" c:type="unsigned int*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="polygon" c:identifier="cogl_polygon" version="1.0">
-      <doc xml:whitespace="preserve">Draws a convex polygon using the current source material to fill / texture
-with according to the texture coordinates passed.
-If @use_color is %TRUE then the color will be changed for each vertex using
-the value specified in the color member of #CoglTextureVertex. This can be
-used for example to make the texture fade out by setting the alpha value of
-the color.
-All of the texture coordinates must be in the range [0,1] and repeating the
-texture is not supported.
-Because of the way this function is implemented it will currently
-only work if either the texture is not sliced or the backend is not
-OpenGL ES and the minifying and magnifying functions are both set
-to COGL_MATERIAL_FILTER_NEAREST.</doc>
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="vertices" transfer-ownership="none">
-          <doc xml:whitespace="preserve">An array of #CoglTextureVertex structs</doc>
-          <type name="TextureVertex" c:type="CoglTextureVertex*"/>
-        </parameter>
-        <parameter name="n_vertices" transfer-ownership="none">
-          <doc xml:whitespace="preserve">The length of the vertices array</doc>
-          <type name="guint" c:type="unsigned int"/>
-        </parameter>
-        <parameter name="use_color" transfer-ownership="none">
-          <doc xml:whitespace="preserve">%TRUE if the color member of #CoglTextureVertex should be used</doc>
-          <type name="gboolean" c:type="gboolean"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="pop_draw_buffer"
-              c:identifier="cogl_pop_draw_buffer"
-              deprecated="The draw buffer API was replaced with a framebuffer API"
-              deprecated-version="1.2">
-      <doc xml:whitespace="preserve">Restore cogl_set_draw_buffer() state.</doc>
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-    </function>
-    <function name="pop_framebuffer"
-              c:identifier="cogl_pop_framebuffer"
-              version="1.2">
-      <doc xml:whitespace="preserve">Restores the framebuffer that was previously at the top of the stack.
-All subsequent drawing will be redirected to this framebuffer.</doc>
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-    </function>
-    <function name="pop_matrix" c:identifier="cogl_pop_matrix">
-      <doc xml:whitespace="preserve">Restores the current model-view matrix from the matrix stack.</doc>
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-    </function>
-    <function name="program_attach_shader"
-              c:identifier="cogl_program_attach_shader">
-      <doc xml:whitespace="preserve">Attaches a shader to a program object, a program can have one vertex shader
-and one fragment shader attached.</doc>
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="program_handle" transfer-ownership="none">
-          <doc xml:whitespace="preserve">a #CoglHandle for a shdaer program.</doc>
-          <type name="Handle" c:type="CoglHandle"/>
-        </parameter>
-        <parameter name="shader_handle" transfer-ownership="none">
-          <doc xml:whitespace="preserve">a #CoglHandle for a vertex of fragment shader.</doc>
-          <type name="Handle" c:type="CoglHandle"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="program_get_uniform_location"
-              c:identifier="cogl_program_get_uniform_location">
-      <doc xml:whitespace="preserve">Retrieve the location (offset) of a uniform variable in a shader program,
-a uniform is a variable that is constant for all vertices/fragments for a
-shader object and is possible to modify as an external parameter.
-This uniform can be set using cogl_program_uniform_1f() when the
-program is in use.</doc>
-      <return-value transfer-ownership="none">
-        <doc xml:whitespace="preserve">the offset of a uniform in a specified program.</doc>
-        <type name="gint" c:type="int"/>
-      </return-value>
-      <parameters>
-        <parameter name="handle" transfer-ownership="none">
-          <doc xml:whitespace="preserve">a #CoglHandle for a shader program.</doc>
-          <type name="Handle" c:type="CoglHandle"/>
-        </parameter>
-        <parameter name="uniform_name" transfer-ownership="none">
-          <doc xml:whitespace="preserve">the name of a uniform.</doc>
-          <type name="utf8" c:type="char*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="program_link" c:identifier="cogl_program_link">
-      <doc xml:whitespace="preserve">Links a program making it ready for use.</doc>
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="handle" transfer-ownership="none">
-          <doc xml:whitespace="preserve">a #CoglHandle for a shader program.</doc>
-          <type name="Handle" c:type="CoglHandle"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="program_ref"
-              c:identifier="cogl_program_ref"
-              introspectable="0">
-      <doc xml:whitespace="preserve">Add an extra reference to a program.</doc>
-      <return-value>
-        <doc xml:whitespace="preserve">@handle</doc>
-        <type name="Handle" c:type="CoglHandle"/>
-      </return-value>
-      <parameters>
-        <parameter name="handle" transfer-ownership="none">
-          <doc xml:whitespace="preserve">A #CoglHandle to a program.</doc>
-          <type name="Handle" c:type="CoglHandle"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="program_set_uniform_1f"
-              c:identifier="cogl_program_set_uniform_1f"
-              version="1.4">
-      <doc xml:whitespace="preserve">Changes the value of a floating point uniform for the given linked</doc>
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="program" transfer-ownership="none">
-          <doc xml:whitespace="preserve">A #CoglHandle for a linked program</doc>
-          <type name="Handle" c:type="CoglHandle"/>
-        </parameter>
-        <parameter name="uniform_location" transfer-ownership="none">
-          <doc xml:whitespace="preserve">the uniform location retrieved from cogl_program_get_uniform_location().</doc>
-          <type name="gint" c:type="int"/>
-        </parameter>
-        <parameter name="value" transfer-ownership="none">
-          <doc xml:whitespace="preserve">the new value of the uniform.</doc>
-          <type name="gfloat" c:type="float"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="program_set_uniform_1i"
-              c:identifier="cogl_program_set_uniform_1i"
-              version="1.4">
-      <doc xml:whitespace="preserve">Changes the value of an integer uniform for the given linked</doc>
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="program" transfer-ownership="none">
-          <doc xml:whitespace="preserve">A #CoglHandle for a linked program</doc>
-          <type name="Handle" c:type="CoglHandle"/>
-        </parameter>
-        <parameter name="uniform_location" transfer-ownership="none">
-          <doc xml:whitespace="preserve">the uniform location retrieved from cogl_program_get_uniform_location().</doc>
-          <type name="gint" c:type="int"/>
-        </parameter>
-        <parameter name="value" transfer-ownership="none">
-          <doc xml:whitespace="preserve">the new value of the uniform.</doc>
-          <type name="gint" c:type="int"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="program_set_uniform_float"
-              c:identifier="cogl_program_set_uniform_float"
-              version="1.4">
-      <doc xml:whitespace="preserve">Changes the value of a float vector uniform, or uniform array for
-the given linked @program.</doc>
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="program" transfer-ownership="none">
-          <doc xml:whitespace="preserve">A #CoglHandle for a linked program</doc>
-          <type name="Handle" c:type="CoglHandle"/>
-        </parameter>
-        <parameter name="uniform_location" transfer-ownership="none">
-          <doc xml:whitespace="preserve">the uniform location retrieved from cogl_program_get_uniform_location().</doc>
-          <type name="gint" c:type="int"/>
-        </parameter>
-        <parameter name="n_components" transfer-ownership="none">
-          <doc xml:whitespace="preserve">The number of components for the uniform. For example with glsl you'd use 3 for a vec3 or 4 for a vec4.</doc>
-          <type name="gint" c:type="int"/>
-        </parameter>
-        <parameter name="count" transfer-ownership="none">
-          <doc xml:whitespace="preserve">For uniform arrays this is the array length otherwise just pass 1</doc>
-          <type name="gint" c:type="int"/>
-        </parameter>
-        <parameter name="value" transfer-ownership="none">
-          <doc xml:whitespace="preserve">the new value of the uniform[s].</doc>
-          <array length="3" c:type="float*">
-            <type name="gfloat"/>
-          </array>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="program_set_uniform_int"
-              c:identifier="cogl_program_set_uniform_int"
-              version="1.4">
-      <doc xml:whitespace="preserve">Changes the value of a int vector uniform, or uniform array for
-the given linked @program.</doc>
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="program" transfer-ownership="none">
-          <doc xml:whitespace="preserve">A #CoglHandle for a linked program</doc>
-          <type name="Handle" c:type="CoglHandle"/>
-        </parameter>
-        <parameter name="uniform_location" transfer-ownership="none">
-          <doc xml:whitespace="preserve">the uniform location retrieved from cogl_program_get_uniform_location().</doc>
-          <type name="gint" c:type="int"/>
-        </parameter>
-        <parameter name="n_components" transfer-ownership="none">
-          <doc xml:whitespace="preserve">The number of components for the uniform. For example with glsl you'd use 3 for a vec3 or 4 for a vec4.</doc>
-          <type name="gint" c:type="int"/>
-        </parameter>
-        <parameter name="count" transfer-ownership="none">
-          <doc xml:whitespace="preserve">For uniform arrays this is the array length otherwise just pass 1</doc>
-          <type name="gint" c:type="int"/>
-        </parameter>
-        <parameter name="value" transfer-ownership="none">
-          <doc xml:whitespace="preserve">the new value of the uniform[s].</doc>
-          <array length="3" c:type="int*">
-            <type name="gint"/>
-          </array>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="program_set_uniform_matrix"
-              c:identifier="cogl_program_set_uniform_matrix"
-              version="1.4">
-      <doc xml:whitespace="preserve">Changes the value of a matrix uniform, or uniform array in the
-given linked @program.</doc>
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="program" transfer-ownership="none">
-          <doc xml:whitespace="preserve">A #CoglHandle for a linked program</doc>
-          <type name="Handle" c:type="CoglHandle"/>
-        </parameter>
-        <parameter name="uniform_location" transfer-ownership="none">
-          <doc xml:whitespace="preserve">the uniform location retrieved from cogl_program_get_uniform_location().</doc>
-          <type name="gint" c:type="int"/>
-        </parameter>
-        <parameter name="dimensions" transfer-ownership="none">
-          <doc xml:whitespace="preserve">The dimensions of the matrix. So for for example pass 2 for a 2x2 matrix or 3 for 3x3.</doc>
-          <type name="gint" c:type="int"/>
-        </parameter>
-        <parameter name="count" transfer-ownership="none">
-          <doc xml:whitespace="preserve">For uniform arrays this is the array length otherwise just pass 1</doc>
-          <type name="gint" c:type="int"/>
-        </parameter>
-        <parameter name="transpose" transfer-ownership="none">
-          <doc xml:whitespace="preserve">Whether to transpose the matrix when setting the uniform.</doc>
-          <type name="gboolean" c:type="gboolean"/>
-        </parameter>
-        <parameter name="value" transfer-ownership="none">
-          <doc xml:whitespace="preserve">the new value of the uniform.</doc>
-          <array length="3" c:type="float*">
-            <type name="gfloat"/>
-          </array>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="program_uniform_1f"
-              c:identifier="cogl_program_uniform_1f"
-              deprecated="Use cogl_program_set_uniform_1f() instead."
-              deprecated-version="1.4">
-      <doc xml:whitespace="preserve">Changes the value of a floating point uniform in the currently
-used (see cogl_program_use()) shader program.</doc>
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="uniform_no" transfer-ownership="none">
-          <doc xml:whitespace="preserve">the uniform to set.</doc>
-          <type name="gint" c:type="int"/>
-        </parameter>
-        <parameter name="value" transfer-ownership="none">
-          <doc xml:whitespace="preserve">the new value of the uniform.</doc>
-          <type name="gfloat" c:type="float"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="program_uniform_1i"
-              c:identifier="cogl_program_uniform_1i"
-              deprecated="Use cogl_program_set_uniform_1i() instead."
-              deprecated-version="1.4">
-      <doc xml:whitespace="preserve">Changes the value of an integer uniform in the currently
-used (see cogl_program_use()) shader program.</doc>
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="uniform_no" transfer-ownership="none">
-          <doc xml:whitespace="preserve">the uniform to set.</doc>
-          <type name="gint" c:type="int"/>
-        </parameter>
-        <parameter name="value" transfer-ownership="none">
-          <doc xml:whitespace="preserve">the new value of the uniform.</doc>
-          <type name="gint" c:type="int"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="program_uniform_float"
-              c:identifier="cogl_program_uniform_float"
-              deprecated="Use cogl_program_set_uniform_float() instead."
-              deprecated-version="1.4">
-      <doc xml:whitespace="preserve">Changes the value of a float vector uniform, or uniform array in the
-currently used (see cogl_program_use()) shader program.</doc>
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="uniform_no" transfer-ownership="none">
-          <doc xml:whitespace="preserve">the uniform to set.</doc>
-          <type name="gint" c:type="int"/>
-        </parameter>
-        <parameter name="size" transfer-ownership="none">
-          <doc xml:whitespace="preserve">Size of float vector.</doc>
-          <type name="gint" c:type="int"/>
-        </parameter>
-        <parameter name="count" transfer-ownership="none">
-          <doc xml:whitespace="preserve">Size of array of uniforms.</doc>
-          <type name="gint" c:type="int"/>
-        </parameter>
-        <parameter name="value" transfer-ownership="none">
-          <doc xml:whitespace="preserve">the new value of the uniform.</doc>
-          <array length="2" c:type="float*">
-            <type name="gfloat"/>
-          </array>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="program_uniform_int"
-              c:identifier="cogl_program_uniform_int">
-      <doc xml:whitespace="preserve">Changes the value of a int vector uniform, or uniform array in the
-currently used (see cogl_program_use()) shader program.</doc>
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="uniform_no" transfer-ownership="none">
-          <doc xml:whitespace="preserve">the uniform to set.</doc>
-          <type name="gint" c:type="int"/>
-        </parameter>
-        <parameter name="size" transfer-ownership="none">
-          <doc xml:whitespace="preserve">Size of int vector.</doc>
-          <type name="gint" c:type="int"/>
-        </parameter>
-        <parameter name="count" transfer-ownership="none">
-          <doc xml:whitespace="preserve">Size of array of uniforms.</doc>
-          <type name="gint" c:type="int"/>
-        </parameter>
-        <parameter name="value" transfer-ownership="none">
-          <doc xml:whitespace="preserve">the new value of the uniform.</doc>
-          <array length="2" c:type="int*">
-            <type name="gint"/>
-          </array>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="program_uniform_matrix"
-              c:identifier="cogl_program_uniform_matrix">
-      <doc xml:whitespace="preserve">Changes the value of a matrix uniform, or uniform array in the
-currently used (see cogl_program_use()) shader program. The @size
-parameter is used to determine the square size of the matrix.</doc>
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="uniform_no" transfer-ownership="none">
-          <doc xml:whitespace="preserve">the uniform to set.</doc>
-          <type name="gint" c:type="int"/>
-        </parameter>
-        <parameter name="size" transfer-ownership="none">
-          <doc xml:whitespace="preserve">Size of matrix.</doc>
-          <type name="gint" c:type="int"/>
-        </parameter>
-        <parameter name="count" transfer-ownership="none">
-          <doc xml:whitespace="preserve">Size of array of uniforms.</doc>
-          <type name="gint" c:type="int"/>
-        </parameter>
-        <parameter name="transpose" transfer-ownership="none">
-          <doc xml:whitespace="preserve">Whether to transpose the matrix when setting the uniform.</doc>
-          <type name="gboolean" c:type="gboolean"/>
-        </parameter>
-        <parameter name="value" transfer-ownership="none">
-          <doc xml:whitespace="preserve">the new value of the uniform.</doc>
-          <array length="2" c:type="float*">
-            <type name="gfloat"/>
-          </array>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="program_unref" c:identifier="cogl_program_unref">
-      <doc xml:whitespace="preserve">Removes a reference to a program. If it was the last reference the
-program object will be destroyed.</doc>
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="handle" transfer-ownership="none">
-          <doc xml:whitespace="preserve">A #CoglHandle to a program.</doc>
-          <type name="Handle" c:type="CoglHandle"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="program_use" c:identifier="cogl_program_use">
-      <doc xml:whitespace="preserve">Activate a specific shader program replacing that part of the GL
-rendering pipeline, if passed in %COGL_INVALID_HANDLE the default
-behavior of GL is reinstated.</doc>
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="handle" transfer-ownership="none">
-          <doc xml:whitespace="preserve">a #CoglHandle for a shader program or %COGL_INVALID_HANDLE.</doc>
-          <type name="Handle" c:type="CoglHandle"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="push_draw_buffer"
-              c:identifier="cogl_push_draw_buffer"
-              deprecated="The draw buffer API was replaced with a framebuffer API"
-              deprecated-version="1.2">
-      <doc xml:whitespace="preserve">Save cogl_set_draw_buffer() state.</doc>
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-    </function>
-    <function name="push_framebuffer"
-              c:identifier="cogl_push_framebuffer"
-              version="1.2">
-      <doc xml:whitespace="preserve">Redirects all subsequent drawing to the specified framebuffer. This can
-either be an offscreen buffer created with cogl_offscreen_new_to_texture ()
-or in the future it may be an onscreen framebuffer too.
-You should understand that a framebuffer owns the following state:
-&lt;itemizedlist&gt;
-&lt;listitem&gt;&lt;simpara&gt;The projection matrix&lt;/simpara&gt;&lt;/listitem&gt;
-&lt;listitem&gt;&lt;simpara&gt;The modelview matrix stack&lt;/simpara&gt;&lt;/listitem&gt;
-&lt;listitem&gt;&lt;simpara&gt;The viewport&lt;/simpara&gt;&lt;/listitem&gt;
-&lt;listitem&gt;&lt;simpara&gt;The clip stack&lt;/simpara&gt;&lt;/listitem&gt;
-&lt;/itemizedlist&gt;
-So these items will automatically be saved and restored when you
-push and pop between different framebuffers.
-Also remember a newly allocated framebuffer will have an identity matrix for
-the projection and modelview matrices which gives you a coordinate space
-like OpenGL with (-1, -1) corresponding to the top left of the viewport,
-(1, 1) corresponding to the bottom right and +z coming out towards the
-viewer.
-If you want to set up a coordinate space like Clutter does with (0, 0)
-corresponding to the top left and (framebuffer_width, framebuffer_height)
-corresponding to the bottom right you can do so like this:
-|[
-static void
-setup_viewport (unsigned int width,
-unsigned int height,
-float fovy,
-float aspect,
-float z_near,
-float z_far)
-{
-float z_camera;
-CoglMatrix projection_matrix;
-CoglMatrix mv_matrix;
-cogl_set_viewport (0, 0, width, height);
-cogl_perspective (fovy, aspect, z_near, z_far);
-cogl_get_projection_matrix (&amp;amp;projection_matrix);
-z_camera = 0.5 * projection_matrix.xx;
-cogl_matrix_init_identity (&amp;amp;mv_matrix);
-cogl_matrix_translate (&amp;amp;mv_matrix, -0.5f, -0.5f, -z_camera);
-cogl_matrix_scale (&amp;amp;mv_matrix, 1.0f / width, -1.0f / height, 1.0f / width);
-cogl_matrix_translate (&amp;amp;mv_matrix, 0.0f, -1.0 * height, 0.0f);
-cogl_set_modelview_matrix (&amp;amp;mv_matrix);
-}
-static void
-my_init_framebuffer (ClutterStage *stage,
-CoglFramebuffer *framebuffer,
-unsigned int framebuffer_width,
-unsigned int framebuffer_height)
-{
-ClutterPerspective perspective;
-clutter_stage_get_perspective (stage, &amp;perspective);
-cogl_push_framebuffer (framebuffer);
-setup_viewport (framebuffer_width,
-framebuffer_height,
-perspective.fovy,
-perspective.aspect,
-perspective.z_near,
-perspective.z_far);
-}
-]|
-The previous framebuffer can be restored by calling cogl_pop_framebuffer()</doc>
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="buffer" transfer-ownership="none">
-          <doc xml:whitespace="preserve">A #CoglFramebuffer object, either onscreen or offscreen.</doc>
-          <type name="Framebuffer" c:type="CoglFramebuffer*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="push_matrix" c:identifier="cogl_push_matrix">
-      <doc xml:whitespace="preserve">Stores the current model-view matrix on the matrix stack. The matrix
-can later be restored with cogl_pop_matrix().</doc>
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-    </function>
-    <function name="read_pixels" c:identifier="cogl_read_pixels">
-      <doc xml:whitespace="preserve">This reads a rectangle of pixels from the current framebuffer where
-position (0, 0) is the top left. The pixel at (x, y) is the first
-read, and the data is returned with a rowstride of (width * 4).
-Currently Cogl assumes that the framebuffer is in a premultiplied
-format so if @format is non-premultiplied it will convert it. To
-read the pixel values without any conversion you should either
-specify a format that doesn't use an alpha channel or use one of
-the formats ending in PRE.</doc>
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="x" transfer-ownership="none">
-          <doc xml:whitespace="preserve">The window x position to start reading from</doc>
-          <type name="gint" c:type="int"/>
-        </parameter>
-        <parameter name="y" transfer-ownership="none">
-          <doc xml:whitespace="preserve">The window y position to start reading from</doc>
-          <type name="gint" c:type="int"/>
-        </parameter>
-        <parameter name="width" transfer-ownership="none">
-          <doc xml:whitespace="preserve">The width of the rectangle you want to read</doc>
-          <type name="gint" c:type="int"/>
-        </parameter>
-        <parameter name="height" transfer-ownership="none">
-          <doc xml:whitespace="preserve">The height of the rectangle you want to read</doc>
-          <type name="gint" c:type="int"/>
-        </parameter>
-        <parameter name="source" transfer-ownership="none">
-          <doc xml:whitespace="preserve">Identifies which auxillary buffer you want to read (only COGL_READ_PIXELS_COLOR_BUFFER supported currently)</doc>
-          <type name="ReadPixelsFlags" c:type="CoglReadPixelsFlags"/>
-        </parameter>
-        <parameter name="format" transfer-ownership="none">
-          <doc xml:whitespace="preserve">The pixel format you want the result in (only COGL_PIXEL_FORMAT_RGBA_8888 supported currently)</doc>
-          <type name="PixelFormat" c:type="CoglPixelFormat"/>
-        </parameter>
-        <parameter name="pixels" transfer-ownership="none">
-          <doc xml:whitespace="preserve">The location to write the pixel data.</doc>
-          <type name="guint8" c:type="guint8*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="rectangle" c:identifier="cogl_rectangle">
-      <doc xml:whitespace="preserve">Fills a rectangle at the given coordinates with the current source material</doc>
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="x_1" transfer-ownership="none">
-          <doc xml:whitespace="preserve">X coordinate of the top-left corner</doc>
-          <type name="gfloat" c:type="float"/>
-        </parameter>
-        <parameter name="y_1" transfer-ownership="none">
-          <doc xml:whitespace="preserve">Y coordinate of the top-left corner</doc>
-          <type name="gfloat" c:type="float"/>
-        </parameter>
-        <parameter name="x_2" transfer-ownership="none">
-          <doc xml:whitespace="preserve">X coordinate of the bottom-right corner</doc>
-          <type name="gfloat" c:type="float"/>
-        </parameter>
-        <parameter name="y_2" transfer-ownership="none">
-          <doc xml:whitespace="preserve">Y coordinate of the bottom-right corner</doc>
-          <type name="gfloat" c:type="float"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="rectangle_with_multitexture_coords"
-              c:identifier="cogl_rectangle_with_multitexture_coords"
-              version="1.0">
-      <doc xml:whitespace="preserve">This function draws a rectangle using the current source material to
-texture or fill with. As a material may contain multiple texture layers
-this interface lets you supply texture coordinates for each layer of the
-material.
-The first pair of coordinates are for the first layer (with the smallest
-layer index) and if you supply less texture coordinates than there are
-layers in the current source material then default texture coordinates
-(0.0, 0.0, 1.0, 1.0) are generated.</doc>
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="x1" transfer-ownership="none">
-          <doc xml:whitespace="preserve">x coordinate upper left on screen.</doc>
-          <type name="gfloat" c:type="float"/>
-        </parameter>
-        <parameter name="y1" transfer-ownership="none">
-          <doc xml:whitespace="preserve">y coordinate upper left on screen.</doc>
-          <type name="gfloat" c:type="float"/>
-        </parameter>
-        <parameter name="x2" transfer-ownership="none">
-          <doc xml:whitespace="preserve">x coordinate lower right on screen.</doc>
-          <type name="gfloat" c:type="float"/>
-        </parameter>
-        <parameter name="y2" transfer-ownership="none">
-          <doc xml:whitespace="preserve">y coordinate lower right on screen.</doc>
-          <type name="gfloat" c:type="float"/>
-        </parameter>
-        <parameter name="tex_coords" transfer-ownership="none">
-          <doc xml:whitespace="preserve">An array containing groups of 4 float values: [tx1, ty1, tx2, ty2] that are interpreted as two texture coordinates; one for the upper left texel, and one for the lower right texel. Each value should be between 0.0 and 1.0, where the coordinate (0.0, 0.0) represents the top left of the texture, and (1.0, 1.0) the bottom right.</doc>
-          <array c:type="float*">
-            <type name="gfloat"/>
-          </array>
-        </parameter>
-        <parameter name="tex_coords_len" transfer-ownership="none">
-          <doc xml:whitespace="preserve">The length of the tex_coords array. (e.g. for one layer and one group of texture coordinates, this would be 4)</doc>
-          <type name="gint" c:type="int"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="rectangle_with_texture_coords"
-              c:identifier="cogl_rectangle_with_texture_coords"
-              version="1.0">
-      <doc xml:whitespace="preserve">Draw a rectangle using the current material and supply texture coordinates
-to be used for the first texture layer of the material. To draw the entire
-texture pass in @tx1=0.0 @ty1=0.0 @tx2=1.0 @ty2=1.0.</doc>
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="x1" transfer-ownership="none">
-          <doc xml:whitespace="preserve">x coordinate upper left on screen.</doc>
-          <type name="gfloat" c:type="float"/>
-        </parameter>
-        <parameter name="y1" transfer-ownership="none">
-          <doc xml:whitespace="preserve">y coordinate upper left on screen.</doc>
-          <type name="gfloat" c:type="float"/>
-        </parameter>
-        <parameter name="x2" transfer-ownership="none">
-          <doc xml:whitespace="preserve">x coordinate lower right on screen.</doc>
-          <type name="gfloat" c:type="float"/>
-        </parameter>
-        <parameter name="y2" transfer-ownership="none">
-          <doc xml:whitespace="preserve">y coordinate lower right on screen.</doc>
-          <type name="gfloat" c:type="float"/>
-        </parameter>
-        <parameter name="tx1" transfer-ownership="none">
-          <doc xml:whitespace="preserve">x part of texture coordinate to use for upper left pixel</doc>
-          <type name="gfloat" c:type="float"/>
-        </parameter>
-        <parameter name="ty1" transfer-ownership="none">
-          <doc xml:whitespace="preserve">y part of texture coordinate to use for upper left pixel</doc>
-          <type name="gfloat" c:type="float"/>
-        </parameter>
-        <parameter name="tx2" transfer-ownership="none">
-          <doc xml:whitespace="preserve">x part of texture coordinate to use for lower right pixel</doc>
-          <type name="gfloat" c:type="float"/>
-        </parameter>
-        <parameter name="ty2" transfer-ownership="none">
-          <doc xml:whitespace="preserve">y part of texture coordinate to use for left pixel</doc>
-          <type name="gfloat" c:type="float"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="rectangles" c:identifier="cogl_rectangles" version="1.0">
-      <doc xml:whitespace="preserve">Draws a series of rectangles in the same way that
-cogl_rectangle() does. In some situations it can give a
-significant performance boost to use this function rather than
-calling cogl_rectangle() separately for each rectangle.
-parameters x1, y1, x2, and y2, and have the same
-meaning as in cogl_rectangle().</doc>
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="verts" transfer-ownership="none">
-          <doc xml:whitespace="preserve">an array of vertices</doc>
-          <array c:type="float*">
-            <type name="gfloat"/>
-          </array>
-        </parameter>
-        <parameter name="n_rects" transfer-ownership="none">
-          <doc xml:whitespace="preserve">number of rectangles to draw</doc>
-          <type name="guint" c:type="unsigned int"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="rectangles_with_texture_coords"
-              c:identifier="cogl_rectangles_with_texture_coords"
-              version="0.8.6">
-      <doc xml:whitespace="preserve">Draws a series of rectangles in the same way that
-cogl_rectangle_with_texture_coords() does. In some situations it can give a
-significant performance boost to use this function rather than
-calling cogl_rectangle_with_texture_coords() separately for each rectangle.
-parameters x1, y1, x2, y2, tx1, ty1, tx2 and ty2 and have the same
-meaning as in cogl_rectangle_with_texture_coords().</doc>
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="verts" transfer-ownership="none">
-          <doc xml:whitespace="preserve">an array of vertices</doc>
-          <array c:type="float*">
-            <type name="gfloat"/>
-          </array>
-        </parameter>
-        <parameter name="n_rects" transfer-ownership="none">
-          <doc xml:whitespace="preserve">number of rectangles to draw</doc>
-          <type name="guint" c:type="unsigned int"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="rotate" c:identifier="cogl_rotate">
-      <doc xml:whitespace="preserve">Multiplies the current model-view matrix by one that rotates the
-model around the vertex specified by @x, @y and @z. The rotation
-follows the right-hand thumb rule so for example rotating by 10
-degrees about the vertex (0, 0, 1) causes a small counter-clockwise
-rotation.</doc>
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="angle" transfer-ownership="none">
-          <doc xml:whitespace="preserve">Angle in degrees to rotate.</doc>
-          <type name="gfloat" c:type="float"/>
-        </parameter>
-        <parameter name="x" transfer-ownership="none">
-          <doc xml:whitespace="preserve">X-component of vertex to rotate around.</doc>
-          <type name="gfloat" c:type="float"/>
-        </parameter>
-        <parameter name="y" transfer-ownership="none">
-          <doc xml:whitespace="preserve">Y-component of vertex to rotate around.</doc>
-          <type name="gfloat" c:type="float"/>
-        </parameter>
-        <parameter name="z" transfer-ownership="none">
-          <doc xml:whitespace="preserve">Z-component of vertex to rotate around.</doc>
-          <type name="gfloat" c:type="float"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="scale" c:identifier="cogl_scale">
-      <doc xml:whitespace="preserve">Multiplies the current model-view matrix by one that scales the x,
-y and z axes by the given values.</doc>
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="x" transfer-ownership="none">
-          <doc xml:whitespace="preserve">Amount to scale along the x-axis</doc>
-          <type name="gfloat" c:type="float"/>
-        </parameter>
-        <parameter name="y" transfer-ownership="none">
-          <doc xml:whitespace="preserve">Amount to scale along the y-axis</doc>
-          <type name="gfloat" c:type="float"/>
-        </parameter>
-        <parameter name="z" transfer-ownership="none">
-          <doc xml:whitespace="preserve">Amount to scale along the z-axis</doc>
-          <type name="gfloat" c:type="float"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="set_backface_culling_enabled"
-              c:identifier="cogl_set_backface_culling_enabled">
-      <doc xml:whitespace="preserve">Sets whether textures positioned so that their backface is showing
-should be hidden. This can be used to efficiently draw two-sided
-textures or fully closed cubes without enabling depth testing. This
-only affects calls to the cogl_rectangle* family of functions and
-cogl_vertex_buffer_draw*. Backface culling is disabled by default.</doc>
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="setting" transfer-ownership="none">
-          <doc xml:whitespace="preserve">%TRUE to enable backface culling or %FALSE to disable.</doc>
-          <type name="gboolean" c:type="gboolean"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="set_depth_test_enabled"
-              c:identifier="cogl_set_depth_test_enabled"
-              deprecated="Use cogl_material_set_depth_test_enabled()"
-              deprecated-version="1.4">
-      <doc xml:whitespace="preserve">Sets whether depth testing is enabled. If it is disabled then the
-order that actors are layered on the screen depends solely on the
-order specified using clutter_actor_raise() and
-clutter_actor_lower(), otherwise it will also take into account the
-actor's depth. Depth testing is disabled by default.
-instead.</doc>
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="setting" transfer-ownership="none">
-          <doc xml:whitespace="preserve">%TRUE to enable depth testing or %FALSE to disable.</doc>
-          <type name="gboolean" c:type="gboolean"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="set_draw_buffer"
-              c:identifier="cogl_set_draw_buffer"
-              deprecated="The target argument was redundant since we could look at"
-              deprecated-version="1.2">
-      <doc xml:whitespace="preserve">Redirects all subsequent drawing to the specified framebuffer. This
-can either be an offscreen buffer created with
-cogl_offscreen_new_to_texture () or you can revert to your original
-on screen window buffer.
-the type of CoglHandle given instead.</doc>
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="target" transfer-ownership="none">
-          <doc xml:whitespace="preserve">A #CoglBufferTarget that specifies what kind of framebuffer you are setting as the render target.</doc>
-          <type name="BufferTarget" c:type="CoglBufferTarget"/>
-        </parameter>
-        <parameter name="offscreen" transfer-ownership="none">
-          <doc xml:whitespace="preserve">If you are setting a framebuffer of type COGL_OFFSCREEN_BUFFER then this is a CoglHandle for the offscreen buffer.</doc>
-          <type name="Handle" c:type="CoglHandle"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="set_fog" c:identifier="cogl_set_fog">
-      <doc xml:whitespace="preserve">Enables fogging. Fogging causes vertices that are further away from the eye
-to be rendered with a different color. The color is determined according to
-the chosen fog mode; at it's simplest the color is linearly interpolated so
-that vertices at @z_near are drawn fully with their original color and
-vertices at @z_far are drawn fully with @fog_color. Fogging will remain
-enabled until you call cogl_disable_fog().
-&lt;note&gt;The fogging functions only work correctly when primitives use
-unmultiplied alpha colors. By default Cogl will premultiply textures
-and cogl_set_source_color() will premultiply colors, so unless you
-explicitly load your textures requesting an unmultiplied internal format
-and use cogl_material_set_color() you can only use fogging with fully
-opaque primitives. This might improve in the future when we can depend
-on fragment shaders.&lt;/note&gt;</doc>
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="fog_color" transfer-ownership="none">
-          <doc xml:whitespace="preserve">The color of the fog</doc>
-          <type name="Color" c:type="CoglColor*"/>
-        </parameter>
-        <parameter name="mode" transfer-ownership="none">
-          <doc xml:whitespace="preserve">A #CoglFogMode that determines the equation used to calculate the fogging blend factor.</doc>
-          <type name="FogMode" c:type="CoglFogMode"/>
-        </parameter>
-        <parameter name="density" transfer-ownership="none">
-          <doc xml:whitespace="preserve">Used by %COGL_FOG_MODE_EXPONENTIAL and by %COGL_FOG_MODE_EXPONENTIAL_SQUARED equations.</doc>
-          <type name="gfloat" c:type="float"/>
-        </parameter>
-        <parameter name="z_near" transfer-ownership="none">
-          <doc xml:whitespace="preserve">Position along Z axis where no fogging should be applied</doc>
-          <type name="gfloat" c:type="float"/>
-        </parameter>
-        <parameter name="z_far" transfer-ownership="none">
-          <doc xml:whitespace="preserve">Position along Z axis where full fogging should be applied</doc>
-          <type name="gfloat" c:type="float"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="set_framebuffer"
-              c:identifier="cogl_set_framebuffer"
-              version="1.2">
-      <doc xml:whitespace="preserve">This redirects all subsequent drawing to the specified framebuffer. This can
-either be an offscreen buffer created with cogl_offscreen_new_to_texture ()
-or in the future it may be an onscreen framebuffers too.</doc>
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="buffer" transfer-ownership="none">
-          <doc xml:whitespace="preserve">A #CoglFramebuffer object, either onscreen or offscreen.</doc>
-          <type name="Framebuffer" c:type="CoglFramebuffer*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="set_modelview_matrix"
-              c:identifier="cogl_set_modelview_matrix">
-      <doc xml:whitespace="preserve">Loads @matrix as the new model-view matrix.</doc>
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="matrix" transfer-ownership="none">
-          <doc xml:whitespace="preserve">the new model-view matrix</doc>
-          <type name="Matrix" c:type="CoglMatrix*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="set_path" c:identifier="cogl_set_path" version="1.4">
-      <doc xml:whitespace="preserve">Replaces the current path with @path. A reference is taken on the
-object so if you no longer need the path you should unref with
-cogl_object_unref().</doc>
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="path" transfer-ownership="none">
-          <doc xml:whitespace="preserve">A #CoglPath object</doc>
-          <type name="Path" c:type="CoglPath*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="set_projection_matrix"
-              c:identifier="cogl_set_projection_matrix">
-      <doc xml:whitespace="preserve">Loads matrix as the new projection matrix.</doc>
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="matrix" transfer-ownership="none">
-          <doc xml:whitespace="preserve">the new projection matrix</doc>
-          <type name="Matrix" c:type="CoglMatrix*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="set_source" c:identifier="cogl_set_source" version="1.0">
-      <doc xml:whitespace="preserve">This function sets the source material that will be used to fill subsequent
-geometry emitted via the cogl API.
-&lt;note&gt;In the future we may add the ability to set a front facing material,
-and a back facing material, in which case this function will set both to the
-same.&lt;/note&gt;</doc>
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="material" transfer-ownership="none">
-          <doc xml:whitespace="preserve">A #CoglHandle for a material</doc>
-          <type name="Handle" c:type="CoglHandle"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="set_source_color"
-              c:identifier="cogl_set_source_color"
-              version="1.0">
-      <doc xml:whitespace="preserve">This is a convenience function for creating a solid fill source material
-from the given color. This color will be used for any subsequent drawing
-operation.
-The color will be premultiplied by Cogl, so the color should be
-semi-transparent red.
-See also cogl_set_source_color4ub() and cogl_set_source_color4f()
-if you already have the color components.</doc>
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="color" transfer-ownership="none">
-          <doc xml:whitespace="preserve">a #CoglColor</doc>
-          <type name="Color" c:type="CoglColor*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="set_source_color4f"
-              c:identifier="cogl_set_source_color4f"
-              version="1.0">
-      <doc xml:whitespace="preserve">This is a convenience function for creating a solid fill source material
-from the given color using normalized values for each component. This color
-will be used for any subsequent drawing operation.
-The value for each component is a fixed point number in the range
-between 0 and %1.0. If the values passed in are outside that
-range, they will be clamped.</doc>
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="red" transfer-ownership="none">
-          <doc xml:whitespace="preserve">value of the red channel, between 0 and %1.0</doc>
-          <type name="gfloat" c:type="float"/>
-        </parameter>
-        <parameter name="green" transfer-ownership="none">
-          <doc xml:whitespace="preserve">value of the green channel, between 0 and %1.0</doc>
-          <type name="gfloat" c:type="float"/>
-        </parameter>
-        <parameter name="blue" transfer-ownership="none">
-          <doc xml:whitespace="preserve">value of the blue channel, between 0 and %1.0</doc>
-          <type name="gfloat" c:type="float"/>
-        </parameter>
-        <parameter name="alpha" transfer-ownership="none">
-          <doc xml:whitespace="preserve">value of the alpha channel, between 0 and %1.0</doc>
-          <type name="gfloat" c:type="float"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="set_source_color4ub"
-              c:identifier="cogl_set_source_color4ub"
-              version="1.0">
-      <doc xml:whitespace="preserve">This is a convenience function for creating a solid fill source material
-from the given color using unsigned bytes for each component. This
-color will be used for any subsequent drawing operation.
-The value for each component is an unsigned byte in the range
-between 0 and 255.</doc>
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="red" transfer-ownership="none">
-          <doc xml:whitespace="preserve">value of the red channel, between 0 and 255</doc>
-          <type name="guint8" c:type="guint8"/>
-        </parameter>
-        <parameter name="green" transfer-ownership="none">
-          <doc xml:whitespace="preserve">value of the green channel, between 0 and 255</doc>
-          <type name="guint8" c:type="guint8"/>
-        </parameter>
-        <parameter name="blue" transfer-ownership="none">
-          <doc xml:whitespace="preserve">value of the blue channel, between 0 and 255</doc>
-          <type name="guint8" c:type="guint8"/>
-        </parameter>
-        <parameter name="alpha" transfer-ownership="none">
-          <doc xml:whitespace="preserve">value of the alpha channel, between 0 and 255</doc>
-          <type name="guint8" c:type="guint8"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="set_source_texture"
-              c:identifier="cogl_set_source_texture"
-              version="1.0">
-      <doc xml:whitespace="preserve">This is a convenience function for creating a material with the first
-layer set to #texture_handle and setting that material as the source with
-cogl_set_source.
-and cogl_set_source_texture. If you need to blend a texture with a color then
-you can create a simple material like this:
-&lt;programlisting&gt;
-material = cogl_material_new ();
-cogl_material_set_color4ub (material, 0xff, 0x00, 0x00, 0x80);
-cogl_material_set_layer (material, 0, tex_handle);
-cogl_set_source (material);
-&lt;/programlisting&gt;</doc>
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="texture_handle" transfer-ownership="none">
-          <doc xml:whitespace="preserve">The Cogl texture you want as your source</doc>
-          <type name="Handle" c:type="CoglHandle"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="set_viewport"
-              c:identifier="cogl_set_viewport"
-              version="1.2">
-      <doc xml:whitespace="preserve">Replaces the current viewport with the given values.</doc>
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="x" transfer-ownership="none">
-          <doc xml:whitespace="preserve">X offset of the viewport</doc>
-          <type name="gint" c:type="int"/>
-        </parameter>
-        <parameter name="y" transfer-ownership="none">
-          <doc xml:whitespace="preserve">Y offset of the viewport</doc>
-          <type name="gint" c:type="int"/>
-        </parameter>
-        <parameter name="width" transfer-ownership="none">
-          <doc xml:whitespace="preserve">Width of the viewport</doc>
-          <type name="gint" c:type="int"/>
-        </parameter>
-        <parameter name="height" transfer-ownership="none">
-          <doc xml:whitespace="preserve">Height of the viewport</doc>
-          <type name="gint" c:type="int"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="shader_compile" c:identifier="cogl_shader_compile">
-      <doc xml:whitespace="preserve">Compiles the shader, no return value, but the shader is now ready for
-linking into a program.</doc>
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="handle" transfer-ownership="none">
-          <doc xml:whitespace="preserve">#CoglHandle for a shader.</doc>
-          <type name="Handle" c:type="CoglHandle"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="shader_get_info_log"
-              c:identifier="cogl_shader_get_info_log">
-      <doc xml:whitespace="preserve">Retrieves the information log for a coglobject, can be used in conjunction
-with cogl_shader_get_parameteriv() to retrieve the compiler warnings/error
-messages that caused a shader to not compile correctly, mainly useful for
-debugging purposes.
-g_free() to free it</doc>
-      <return-value transfer-ownership="full">
-        <doc xml:whitespace="preserve">a newly allocated string containing the info log. Use</doc>
-        <type name="utf8" c:type="char*"/>
-      </return-value>
-      <parameters>
-        <parameter name="handle" transfer-ownership="none">
-          <doc xml:whitespace="preserve">#CoglHandle for a shader.</doc>
-          <type name="Handle" c:type="CoglHandle"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="shader_get_type" c:identifier="cogl_shader_get_type">
-      <doc xml:whitespace="preserve">Retrieves the type of a shader #CoglHandle
-or %COGL_SHADER_TYPE_FRAGMENT if the shader is a frament processor</doc>
-      <return-value transfer-ownership="none">
-        <doc xml:whitespace="preserve">%COGL_SHADER_TYPE_VERTEX if the shader is a vertex processor</doc>
-        <type name="ShaderType" c:type="CoglShaderType"/>
-      </return-value>
-      <parameters>
-        <parameter name="handle" transfer-ownership="none">
-          <doc xml:whitespace="preserve">#CoglHandle for a shader.</doc>
-          <type name="Handle" c:type="CoglHandle"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="shader_is_compiled" c:identifier="cogl_shader_is_compiled">
-      <doc xml:whitespace="preserve">Retrieves whether a shader #CoglHandle has been compiled</doc>
-      <return-value transfer-ownership="none">
-        <doc xml:whitespace="preserve">%TRUE if the shader object has sucessfully be compiled</doc>
-        <type name="gboolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="handle" transfer-ownership="none">
-          <doc xml:whitespace="preserve">#CoglHandle for a shader.</doc>
-          <type name="Handle" c:type="CoglHandle"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="shader_ref"
-              c:identifier="cogl_shader_ref"
-              introspectable="0">
-      <doc xml:whitespace="preserve">Add an extra reference to a shader.</doc>
-      <return-value>
-        <doc xml:whitespace="preserve">@handle</doc>
-        <type name="Handle" c:type="CoglHandle"/>
-      </return-value>
-      <parameters>
-        <parameter name="handle" transfer-ownership="none">
-          <doc xml:whitespace="preserve">A #CoglHandle to a shader.</doc>
-          <type name="Handle" c:type="CoglHandle"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="shader_source" c:identifier="cogl_shader_source">
-      <doc xml:whitespace="preserve">Replaces the current GLSL source associated with a shader with a new
-one.</doc>
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="shader" transfer-ownership="none">
-          <doc xml:whitespace="preserve">#CoglHandle for a shader.</doc>
-          <type name="Handle" c:type="CoglHandle"/>
-        </parameter>
-        <parameter name="source" transfer-ownership="none">
-          <doc xml:whitespace="preserve">GLSL shader source.</doc>
-          <type name="utf8" c:type="char*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="shader_unref" c:identifier="cogl_shader_unref">
-      <doc xml:whitespace="preserve">Removes a reference to a shader. If it was the last reference the
-shader object will be destroyed.</doc>
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="handle" transfer-ownership="none">
-          <doc xml:whitespace="preserve">A #CoglHandle to a shader.</doc>
-          <type name="Handle" c:type="CoglHandle"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="sqrti" c:identifier="cogl_sqrti" version="1.0">
-      <doc xml:whitespace="preserve">Very fast fixed point implementation of square root for integers.
-This function is at least 6x faster than clib sqrt() on x86, and (this is
-not a typo!) about 500x faster on ARM without FPU. It's error is less than
-5% for arguments smaller than %COGL_SQRTI_ARG_5_PERCENT and less than 10%
-for narguments smaller than %COGL_SQRTI_ARG_10_PERCENT. The maximum
-argument that can be passed to this function is %COGL_SQRTI_ARG_MAX.</doc>
-      <return-value transfer-ownership="none">
-        <doc xml:whitespace="preserve">integer square root.</doc>
-        <type name="gint" c:type="int"/>
-      </return-value>
-      <parameters>
-        <parameter name="x" transfer-ownership="none">
-          <doc xml:whitespace="preserve">integer value</doc>
-          <type name="gint" c:type="int"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="texture_3d_new_from_data_EXP"
-              c:identifier="cogl_texture_3d_new_from_data_EXP"
-              introspectable="0"
-              throws="1">
-      <return-value>
-        <type name="Handle" c:type="CoglHandle"/>
-      </return-value>
-      <parameters>
-        <parameter name="width" transfer-ownership="none">
-          <type name="guint" c:type="unsigned int"/>
-        </parameter>
-        <parameter name="height" transfer-ownership="none">
-          <type name="guint" c:type="unsigned int"/>
-        </parameter>
-        <parameter name="depth" transfer-ownership="none">
-          <type name="guint" c:type="unsigned int"/>
-        </parameter>
-        <parameter name="flags" transfer-ownership="none">
-          <type name="TextureFlags" c:type="CoglTextureFlags"/>
-        </parameter>
-        <parameter name="format" transfer-ownership="none">
-          <type name="PixelFormat" c:type="CoglPixelFormat"/>
-        </parameter>
-        <parameter name="internal_format" transfer-ownership="none">
-          <type name="PixelFormat" c:type="CoglPixelFormat"/>
-        </parameter>
-        <parameter name="rowstride" transfer-ownership="none">
-          <type name="guint" c:type="unsigned int"/>
-        </parameter>
-        <parameter name="image_stride" transfer-ownership="none">
-          <type name="guint" c:type="unsigned int"/>
-        </parameter>
-        <parameter name="data" transfer-ownership="none">
-          <type name="guint8" c:type="guint8*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="texture_3d_new_with_size_EXP"
-              c:identifier="cogl_texture_3d_new_with_size_EXP"
-              introspectable="0"
-              throws="1">
-      <return-value>
-        <type name="Handle" c:type="CoglHandle"/>
-      </return-value>
-      <parameters>
-        <parameter name="width" transfer-ownership="none">
-          <type name="guint" c:type="unsigned int"/>
-        </parameter>
-        <parameter name="height" transfer-ownership="none">
-          <type name="guint" c:type="unsigned int"/>
-        </parameter>
-        <parameter name="depth" transfer-ownership="none">
-          <type name="guint" c:type="unsigned int"/>
-        </parameter>
-        <parameter name="flags" transfer-ownership="none">
-          <type name="TextureFlags" c:type="CoglTextureFlags"/>
-        </parameter>
-        <parameter name="internal_format" transfer-ownership="none">
-          <type name="PixelFormat" c:type="CoglPixelFormat"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="texture_get_data" c:identifier="cogl_texture_get_data">
-      <doc xml:whitespace="preserve">Copies the pixel data from a cogl texture to system memory.
-is not valid</doc>
-      <return-value transfer-ownership="none">
-        <doc xml:whitespace="preserve">the size of the texture data in bytes, or 0 if the texture</doc>
-        <type name="gint" c:type="int"/>
-      </return-value>
-      <parameters>
-        <parameter name="handle" transfer-ownership="none">
-          <doc xml:whitespace="preserve">a #CoglHandle for a texture.</doc>
-          <type name="Handle" c:type="CoglHandle"/>
-        </parameter>
-        <parameter name="format" transfer-ownership="none">
-          <doc xml:whitespace="preserve">the #CoglPixelFormat to store the texture as.</doc>
-          <type name="PixelFormat" c:type="CoglPixelFormat"/>
-        </parameter>
-        <parameter name="rowstride" transfer-ownership="none">
-          <doc xml:whitespace="preserve">the rowstride of @data or retrieved from texture if none is specified.</doc>
-          <type name="guint" c:type="unsigned int"/>
-        </parameter>
-        <parameter name="data" transfer-ownership="none">
-          <doc xml:whitespace="preserve">memory location to write contents of buffer, or %NULL if we're only querying the data size through the return value.</doc>
-          <type name="guint8" c:type="guint8*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="texture_get_format" c:identifier="cogl_texture_get_format">
-      <doc xml:whitespace="preserve">Queries the #CoglPixelFormat of a cogl texture.</doc>
-      <return-value transfer-ownership="none">
-        <doc xml:whitespace="preserve">the #CoglPixelFormat of the GPU side texture</doc>
-        <type name="PixelFormat" c:type="CoglPixelFormat"/>
-      </return-value>
-      <parameters>
-        <parameter name="handle" transfer-ownership="none">
-          <doc xml:whitespace="preserve">a #CoglHandle for a texture.</doc>
-          <type name="Handle" c:type="CoglHandle"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="texture_get_gl_texture"
-              c:identifier="cogl_texture_get_gl_texture">
-      <doc xml:whitespace="preserve">Queries the GL handles for a GPU side texture through its #CoglHandle.
-If the texture is spliced the data for the first sub texture will be
-queried.
-if the handle was invalid</doc>
-      <return-value transfer-ownership="none">
-        <doc xml:whitespace="preserve">%TRUE if the handle was successfully retrieved, %FALSE</doc>
-        <type name="gboolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="handle" transfer-ownership="none">
-          <doc xml:whitespace="preserve">a #CoglHandle for a texture.</doc>
-          <type name="Handle" c:type="CoglHandle"/>
-        </parameter>
-        <parameter name="out_gl_handle"
-                   direction="out"
-                   caller-allocates="1"
-                   transfer-ownership="none"
-                   allow-none="1">
-          <doc xml:whitespace="preserve">pointer to return location for the textures GL handle, or %NULL.</doc>
-          <type name="GL.uint" c:type="GLuint*"/>
-        </parameter>
-        <parameter name="out_gl_target"
-                   direction="out"
-                   caller-allocates="1"
-                   transfer-ownership="none"
-                   allow-none="1">
-          <doc xml:whitespace="preserve">pointer to return location for the GL target type, or %NULL.</doc>
-          <type name="GL.enum" c:type="GLenum*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="texture_get_height" c:identifier="cogl_texture_get_height">
-      <doc xml:whitespace="preserve">Queries the height of a cogl texture.</doc>
-      <return-value transfer-ownership="none">
-        <doc xml:whitespace="preserve">the height of the GPU side texture in pixels</doc>
-        <type name="guint" c:type="unsigned int"/>
-      </return-value>
-      <parameters>
-        <parameter name="handle" transfer-ownership="none">
-          <doc xml:whitespace="preserve">a #CoglHandle for a texture.</doc>
-          <type name="Handle" c:type="CoglHandle"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="texture_get_max_waste"
-              c:identifier="cogl_texture_get_max_waste">
-      <doc xml:whitespace="preserve">Queries the maximum wasted (unused) pixels in one dimension of a GPU side
-texture.</doc>
-      <return-value transfer-ownership="none">
-        <doc xml:whitespace="preserve">the maximum waste</doc>
-        <type name="gint" c:type="int"/>
-      </return-value>
-      <parameters>
-        <parameter name="handle" transfer-ownership="none">
-          <doc xml:whitespace="preserve">a #CoglHandle for a texture.</doc>
-          <type name="Handle" c:type="CoglHandle"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="texture_get_rowstride"
-              c:identifier="cogl_texture_get_rowstride">
-      <doc xml:whitespace="preserve">Queries the rowstride of a cogl texture.</doc>
-      <return-value transfer-ownership="none">
-        <doc xml:whitespace="preserve">the offset in bytes between each consequetive row of pixels</doc>
-        <type name="guint" c:type="unsigned int"/>
-      </return-value>
-      <parameters>
-        <parameter name="handle" transfer-ownership="none">
-          <doc xml:whitespace="preserve">a #CoglHandle for a texture.</doc>
-          <type name="Handle" c:type="CoglHandle"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="texture_get_width" c:identifier="cogl_texture_get_width">
-      <doc xml:whitespace="preserve">Queries the width of a cogl texture.</doc>
-      <return-value transfer-ownership="none">
-        <doc xml:whitespace="preserve">the width of the GPU side texture in pixels</doc>
-        <type name="guint" c:type="unsigned int"/>
-      </return-value>
-      <parameters>
-        <parameter name="handle" transfer-ownership="none">
-          <doc xml:whitespace="preserve">a #CoglHandle for a texture.</doc>
-          <type name="Handle" c:type="CoglHandle"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="texture_is_sliced" c:identifier="cogl_texture_is_sliced">
-      <doc xml:whitespace="preserve">Queries if a texture is sliced (stored as multiple GPU side tecture
-objects).
-is stored as a single GPU texture</doc>
-      <return-value transfer-ownership="none">
-        <doc xml:whitespace="preserve">%TRUE if the texture is sliced, %FALSE if the texture</doc>
-        <type name="gboolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="handle" transfer-ownership="none">
-          <doc xml:whitespace="preserve">a #CoglHandle for a texture.</doc>
-          <type name="Handle" c:type="CoglHandle"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="texture_new_from_bitmap"
-              c:identifier="cogl_texture_new_from_bitmap"
-              version="1.0"
-              introspectable="0">
-      <doc xml:whitespace="preserve">Creates a COGL texture from a CoglBitmap.
-%COGL_INVALID_HANDLE on failure</doc>
-      <return-value>
-        <doc xml:whitespace="preserve">a #CoglHandle to the newly created texture or</doc>
-        <type name="Handle" c:type="CoglHandle"/>
-      </return-value>
-      <parameters>
-        <parameter name="bmp_handle" transfer-ownership="none">
-          <doc xml:whitespace="preserve">A CoglBitmap handle</doc>
-          <type name="Handle" c:type="CoglHandle"/>
-        </parameter>
-        <parameter name="flags" transfer-ownership="none">
-          <doc xml:whitespace="preserve">Optional flags for the texture, or %COGL_TEXTURE_NONE</doc>
-          <type name="TextureFlags" c:type="CoglTextureFlags"/>
-        </parameter>
-        <parameter name="internal_format" transfer-ownership="none">
-          <doc xml:whitespace="preserve">the #CoglPixelFormat to use for the GPU storage of the texture</doc>
-          <type name="PixelFormat" c:type="CoglPixelFormat"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="texture_new_from_buffer"
-              c:identifier="cogl_texture_new_from_buffer"
-              version="1.2"
-              introspectable="0">
-      <doc xml:whitespace="preserve">Creates a new texture using the buffer specified by @handle. If the buffer
-has been created using cogl_pixel_buffer_new_for_size() it's possible to omit
-the height and width values already specified at creation time.
-failure</doc>
-      <return-value>
-        <doc xml:whitespace="preserve">a #CoglHandle to the new texture or %COGL_INVALID_HANDLE on</doc>
-        <type name="Handle" c:type="CoglHandle"/>
-      </return-value>
-      <parameters>
-        <parameter name="buffer" transfer-ownership="none">
-          <doc xml:whitespace="preserve">the #CoglHandle of a pixel buffer</doc>
-          <type name="Handle" c:type="CoglHandle"/>
-        </parameter>
-        <parameter name="width" transfer-ownership="none">
-          <doc xml:whitespace="preserve">width of texture in pixels or 0</doc>
-          <type name="guint" c:type="unsigned int"/>
-        </parameter>
-        <parameter name="height" transfer-ownership="none">
-          <doc xml:whitespace="preserve">height of texture in pixels or 0</doc>
-          <type name="guint" c:type="unsigned int"/>
-        </parameter>
-        <parameter name="flags" transfer-ownership="none">
-          <doc xml:whitespace="preserve">optional flags for the texture, or %COGL_TEXTURE_NONE</doc>
-          <type name="TextureFlags" c:type="CoglTextureFlags"/>
-        </parameter>
-        <parameter name="format" transfer-ownership="none">
-          <doc xml:whitespace="preserve">the #CoglPixelFormat the buffer is stored in in RAM</doc>
-          <type name="PixelFormat" c:type="CoglPixelFormat"/>
-        </parameter>
-        <parameter name="internal_format" transfer-ownership="none">
-          <doc xml:whitespace="preserve">the #CoglPixelFormat that will be used for storing the buffer on the GPU. If %COGL_PIXEL_FORMAT_ANY is given then a premultiplied format similar to the format of the source data will be used. The default blending equations of Cogl expect premultiplied color data; the main use of passing a non-premultiplied format here is if you have non-premultiplied source data and are going to adjust the blend mode (see cogl_material_set_blend()) or use the data for something other than straight blending</doc>
-          <type name="PixelFormat" c:type="CoglPixelFormat"/>
-        </parameter>
-        <parameter name="rowstride" transfer-ownership="none">
-          <doc xml:whitespace="preserve">the memory offset in bytes between the starts of scanlines in @data. If 0 is given the row stride will be deduced from</doc>
-          <type name="guint" c:type="unsigned int"/>
-        </parameter>
-        <parameter name="offset" transfer-ownership="none">
-          <doc xml:whitespace="preserve">offset in bytes in @buffer from where the texture data starts</doc>
-          <type name="guint" c:type="unsigned int"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="texture_new_from_buffer_EXP"
-              c:identifier="cogl_texture_new_from_buffer_EXP"
-              introspectable="0">
-      <return-value>
-        <type name="Handle" c:type="CoglHandle"/>
-      </return-value>
-      <parameters>
-        <parameter name="buffer" transfer-ownership="none">
-          <type name="Handle" c:type="CoglHandle"/>
-        </parameter>
-        <parameter name="width" transfer-ownership="none">
-          <type name="guint" c:type="unsigned int"/>
-        </parameter>
-        <parameter name="height" transfer-ownership="none">
-          <type name="guint" c:type="unsigned int"/>
-        </parameter>
-        <parameter name="flags" transfer-ownership="none">
-          <type name="TextureFlags" c:type="CoglTextureFlags"/>
-        </parameter>
-        <parameter name="format" transfer-ownership="none">
-          <type name="PixelFormat" c:type="CoglPixelFormat"/>
-        </parameter>
-        <parameter name="internal_format" transfer-ownership="none">
-          <type name="PixelFormat" c:type="CoglPixelFormat"/>
-        </parameter>
-        <parameter name="rowstride" transfer-ownership="none">
-          <type name="guint" c:type="unsigned int"/>
-        </parameter>
-        <parameter name="offset" transfer-ownership="none">
-          <type name="guint" c:type="unsigned int"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="texture_new_from_data"
-              c:identifier="cogl_texture_new_from_data"
-              version="0.8"
-              introspectable="0">
-      <doc xml:whitespace="preserve">Creates a new COGL texture based on data residing in memory.
-%COGL_INVALID_HANDLE on failure</doc>
-      <return-value>
-        <doc xml:whitespace="preserve">a #CoglHandle to the newly created texture or</doc>
-        <type name="Handle" c:type="CoglHandle"/>
-      </return-value>
-      <parameters>
-        <parameter name="width" transfer-ownership="none">
-          <doc xml:whitespace="preserve">width of texture in pixels</doc>
-          <type name="guint" c:type="unsigned int"/>
-        </parameter>
-        <parameter name="height" transfer-ownership="none">
-          <doc xml:whitespace="preserve">height of texture in pixels</doc>
-          <type name="guint" c:type="unsigned int"/>
-        </parameter>
-        <parameter name="flags" transfer-ownership="none">
-          <doc xml:whitespace="preserve">Optional flags for the texture, or %COGL_TEXTURE_NONE</doc>
-          <type name="TextureFlags" c:type="CoglTextureFlags"/>
-        </parameter>
-        <parameter name="format" transfer-ownership="none">
-          <doc xml:whitespace="preserve">the #CoglPixelFormat the buffer is stored in in RAM</doc>
-          <type name="PixelFormat" c:type="CoglPixelFormat"/>
-        </parameter>
-        <parameter name="internal_format" transfer-ownership="none">
-          <doc xml:whitespace="preserve">the #CoglPixelFormat that will be used for storing the buffer on the GPU. If COGL_PIXEL_FORMAT_ANY is given then a premultiplied format similar to the format of the source data will be used. The default blending equations of Cogl expect premultiplied color data; the main use of passing a non-premultiplied format here is if you have non-premultiplied source data and are going to adjust the blend mode (see cogl_material_set_blend()) or use the data for something other than straight blending.</doc>
-          <type name="PixelFormat" c:type="CoglPixelFormat"/>
-        </parameter>
-        <parameter name="rowstride" transfer-ownership="none">
-          <doc xml:whitespace="preserve">the memory offset in bytes between the starts of scanlines in @data</doc>
-          <type name="guint" c:type="unsigned int"/>
-        </parameter>
-        <parameter name="data" transfer-ownership="none">
-          <doc xml:whitespace="preserve">pointer the memory region where the source buffer resides</doc>
-          <type name="guint8" c:type="guint8*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="texture_new_from_file"
-              c:identifier="cogl_texture_new_from_file"
-              version="0.8"
-              introspectable="0"
-              throws="1">
-      <doc xml:whitespace="preserve">Creates a COGL texture from an image file.
-%COGL_INVALID_HANDLE on failure</doc>
-      <return-value>
-        <doc xml:whitespace="preserve">a #CoglHandle to the newly created texture or</doc>
-        <type name="Handle" c:type="CoglHandle"/>
-      </return-value>
-      <parameters>
-        <parameter name="filename" transfer-ownership="none">
-          <doc xml:whitespace="preserve">the file to load</doc>
-          <type name="utf8" c:type="char*"/>
-        </parameter>
-        <parameter name="flags" transfer-ownership="none">
-          <doc xml:whitespace="preserve">Optional flags for the texture, or %COGL_TEXTURE_NONE</doc>
-          <type name="TextureFlags" c:type="CoglTextureFlags"/>
-        </parameter>
-        <parameter name="internal_format" transfer-ownership="none">
-          <doc xml:whitespace="preserve">the #CoglPixelFormat to use for the GPU storage of the texture. If %COGL_PIXEL_FORMAT_ANY is given then a premultiplied format similar to the format of the source data will be used. The default blending equations of Cogl expect premultiplied color data; the main use of passing a non-premultiplied format here is if you have non-premultiplied source data and are going to adjust the blend mode (see cogl_material_set_blend()) or use the data for something other than straight blending.</doc>
-          <type name="PixelFormat" c:type="CoglPixelFormat"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="texture_new_from_foreign"
-              c:identifier="cogl_texture_new_from_foreign"
-              version="0.8"
-              introspectable="0">
-      <doc xml:whitespace="preserve">Creates a COGL texture based on an existing OpenGL texture; the
-width, height and format are passed along since it is not always
-possible to query these from OpenGL.
-The waste arguments allow you to create a Cogl texture that maps to
-a region smaller than the real OpenGL texture. For instance if your
-hardware only supports power-of-two textures you may load a
-non-power-of-two image into a larger power-of-two texture and use
-the waste arguments to tell Cogl which region should be mapped to
-the texture coordinate range [0:1].
-%COGL_INVALID_HANDLE on failure</doc>
-      <return-value>
-        <doc xml:whitespace="preserve">a #CoglHandle to the newly created texture or</doc>
-        <type name="Handle" c:type="CoglHandle"/>
-      </return-value>
-      <parameters>
-        <parameter name="gl_handle" transfer-ownership="none">
-          <doc xml:whitespace="preserve">opengl handle of foreign texture.</doc>
-          <type name="GL.uint" c:type="GLuint"/>
-        </parameter>
-        <parameter name="gl_target" transfer-ownership="none">
-          <doc xml:whitespace="preserve">opengl target type of foreign texture</doc>
-          <type name="GL.enum" c:type="GLenum"/>
-        </parameter>
-        <parameter name="width" transfer-ownership="none">
-          <doc xml:whitespace="preserve">width of foreign texture</doc>
-          <type name="GL.uint" c:type="GLuint"/>
-        </parameter>
-        <parameter name="height" transfer-ownership="none">
-          <doc xml:whitespace="preserve">height of foreign texture.</doc>
-          <type name="GL.uint" c:type="GLuint"/>
-        </parameter>
-        <parameter name="x_pot_waste" transfer-ownership="none">
-          <doc xml:whitespace="preserve">horizontal waste on the right hand edge of the texture.</doc>
-          <type name="GL.uint" c:type="GLuint"/>
-        </parameter>
-        <parameter name="y_pot_waste" transfer-ownership="none">
-          <doc xml:whitespace="preserve">vertical waste on the bottom edge of the texture.</doc>
-          <type name="GL.uint" c:type="GLuint"/>
-        </parameter>
-        <parameter name="format" transfer-ownership="none">
-          <doc xml:whitespace="preserve">format of the foreign texture.</doc>
-          <type name="PixelFormat" c:type="CoglPixelFormat"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="texture_new_from_sub_texture"
-              c:identifier="cogl_texture_new_from_sub_texture"
-              version="1.2"
-              introspectable="0">
-      <doc xml:whitespace="preserve">Creates a new texture which represents a subregion of another
-texture. The GL resources will be shared so that no new texture
-data is actually allocated.
-Sub textures have undefined behaviour texture coordinates outside
-of the range [0,1] are used. They also do not work with
-CoglVertexBuffers.
-The sub texture will keep a reference to the full texture so you do
-not need to keep one separately if you only want to use the sub
-texture.</doc>
-      <return-value>
-        <doc xml:whitespace="preserve">a #CoglHandle to the new texture.</doc>
-        <type name="Handle" c:type="CoglHandle"/>
-      </return-value>
-      <parameters>
-        <parameter name="full_texture" transfer-ownership="none">
-          <doc xml:whitespace="preserve">a #CoglHandle to an existing texture</doc>
-          <type name="Handle" c:type="CoglHandle"/>
-        </parameter>
-        <parameter name="sub_x" transfer-ownership="none">
-          <doc xml:whitespace="preserve">X coordinate of the top-left of the subregion</doc>
-          <type name="gint" c:type="int"/>
-        </parameter>
-        <parameter name="sub_y" transfer-ownership="none">
-          <doc xml:whitespace="preserve">Y coordinate of the top-left of the subregion</doc>
-          <type name="gint" c:type="int"/>
-        </parameter>
-        <parameter name="sub_width" transfer-ownership="none">
-          <doc xml:whitespace="preserve">Width in pixels of the subregion</doc>
-          <type name="gint" c:type="int"/>
-        </parameter>
-        <parameter name="sub_height" transfer-ownership="none">
-          <doc xml:whitespace="preserve">Height in pixels of the subregion</doc>
-          <type name="gint" c:type="int"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="texture_new_with_size"
-              c:identifier="cogl_texture_new_with_size"
-              version="0.8"
-              introspectable="0">
-      <doc xml:whitespace="preserve">Creates a new COGL texture with the specified dimensions and pixel format.
-%COGL_INVALID_HANDLE on failure</doc>
-      <return-value>
-        <doc xml:whitespace="preserve">a #CoglHandle to the newly created texture or</doc>
-        <type name="Handle" c:type="CoglHandle"/>
-      </return-value>
-      <parameters>
-        <parameter name="width" transfer-ownership="none">
-          <doc xml:whitespace="preserve">width of texture in pixels.</doc>
-          <type name="guint" c:type="unsigned int"/>
-        </parameter>
-        <parameter name="height" transfer-ownership="none">
-          <doc xml:whitespace="preserve">height of texture in pixels.</doc>
-          <type name="guint" c:type="unsigned int"/>
-        </parameter>
-        <parameter name="flags" transfer-ownership="none">
-          <doc xml:whitespace="preserve">Optional flags for the texture, or %COGL_TEXTURE_NONE</doc>
-          <type name="TextureFlags" c:type="CoglTextureFlags"/>
-        </parameter>
-        <parameter name="internal_format" transfer-ownership="none">
-          <doc xml:whitespace="preserve">the #CoglPixelFormat to use for the GPU storage of the texture.</doc>
-          <type name="PixelFormat" c:type="CoglPixelFormat"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="texture_pixmap_x11_is_using_tfp_extension_EXP"
-              c:identifier="cogl_texture_pixmap_x11_is_using_tfp_extension_EXP">
-      <return-value transfer-ownership="none">
-        <type name="gboolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="handle" transfer-ownership="none">
-          <type name="Handle" c:type="CoglHandle"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="texture_pixmap_x11_new_EXP"
-              c:identifier="cogl_texture_pixmap_x11_new_EXP"
-              introspectable="0">
-      <return-value>
-        <type name="Handle" c:type="CoglHandle"/>
-      </return-value>
-      <parameters>
-        <parameter name="pixmap" transfer-ownership="none">
-          <type name="guint32" c:type="guint32"/>
-        </parameter>
-        <parameter name="automatic_updates" transfer-ownership="none">
-          <type name="gboolean" c:type="gboolean"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="texture_pixmap_x11_set_damage_object_EXP"
-              c:identifier="cogl_texture_pixmap_x11_set_damage_object_EXP">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="handle" transfer-ownership="none">
-          <type name="Handle" c:type="CoglHandle"/>
-        </parameter>
-        <parameter name="damage" transfer-ownership="none">
-          <type name="guint32" c:type="guint32"/>
-        </parameter>
-        <parameter name="report_level" transfer-ownership="none">
-          <type name="TexturePixmapX11ReportLevel"
-                c:type="CoglTexturePixmapX11ReportLevel"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="texture_pixmap_x11_update_area_EXP"
-              c:identifier="cogl_texture_pixmap_x11_update_area_EXP">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="handle" transfer-ownership="none">
-          <type name="Handle" c:type="CoglHandle"/>
-        </parameter>
-        <parameter name="x" transfer-ownership="none">
-          <type name="gint" c:type="int"/>
-        </parameter>
-        <parameter name="y" transfer-ownership="none">
-          <type name="gint" c:type="int"/>
-        </parameter>
-        <parameter name="width" transfer-ownership="none">
-          <type name="gint" c:type="int"/>
-        </parameter>
-        <parameter name="height" transfer-ownership="none">
-          <type name="gint" c:type="int"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="texture_ref"
-              c:identifier="cogl_texture_ref"
-              introspectable="0"
-              deprecated="Use cogl_handle_ref() instead"
-              deprecated-version="1.2">
-      <doc xml:whitespace="preserve">Increment the reference count for a cogl texture.</doc>
-      <return-value>
-        <doc xml:whitespace="preserve">the @handle.</doc>
-        <type name="Handle" c:type="CoglHandle"/>
-      </return-value>
-      <parameters>
-        <parameter name="handle" transfer-ownership="none">
-          <doc xml:whitespace="preserve">a @CoglHandle.</doc>
-          <type name="Handle" c:type="CoglHandle"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="texture_set_region" c:identifier="cogl_texture_set_region">
-      <doc xml:whitespace="preserve">Sets the pixels in a rectangular subregion of @handle from an in-memory
-buffer containing pixel data.
-%FALSE otherwise</doc>
-      <return-value transfer-ownership="none">
-        <doc xml:whitespace="preserve">%TRUE if the subregion upload was successful, and</doc>
-        <type name="gboolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="handle" transfer-ownership="none">
-          <doc xml:whitespace="preserve">a #CoglHandle.</doc>
-          <type name="Handle" c:type="CoglHandle"/>
-        </parameter>
-        <parameter name="src_x" transfer-ownership="none">
-          <doc xml:whitespace="preserve">upper left coordinate to use from source data.</doc>
-          <type name="gint" c:type="int"/>
-        </parameter>
-        <parameter name="src_y" transfer-ownership="none">
-          <doc xml:whitespace="preserve">upper left coordinate to use from source data.</doc>
-          <type name="gint" c:type="int"/>
-        </parameter>
-        <parameter name="dst_x" transfer-ownership="none">
-          <doc xml:whitespace="preserve">upper left destination horizontal coordinate.</doc>
-          <type name="gint" c:type="int"/>
-        </parameter>
-        <parameter name="dst_y" transfer-ownership="none">
-          <doc xml:whitespace="preserve">upper left destination vertical coordinate.</doc>
-          <type name="gint" c:type="int"/>
-        </parameter>
-        <parameter name="dst_width" transfer-ownership="none">
-          <doc xml:whitespace="preserve">width of destination region to write.</doc>
-          <type name="guint" c:type="unsigned int"/>
-        </parameter>
-        <parameter name="dst_height" transfer-ownership="none">
-          <doc xml:whitespace="preserve">height of destination region to write.</doc>
-          <type name="guint" c:type="unsigned int"/>
-        </parameter>
-        <parameter name="width" transfer-ownership="none">
-          <doc xml:whitespace="preserve">width of source data buffer.</doc>
-          <type name="gint" c:type="int"/>
-        </parameter>
-        <parameter name="height" transfer-ownership="none">
-          <doc xml:whitespace="preserve">height of source data buffer.</doc>
-          <type name="gint" c:type="int"/>
-        </parameter>
-        <parameter name="format" transfer-ownership="none">
-          <doc xml:whitespace="preserve">the #CoglPixelFormat used in the source buffer.</doc>
-          <type name="PixelFormat" c:type="CoglPixelFormat"/>
-        </parameter>
-        <parameter name="rowstride" transfer-ownership="none">
-          <doc xml:whitespace="preserve">rowstride of source buffer (computed from width if none specified)</doc>
-          <type name="guint" c:type="unsigned int"/>
-        </parameter>
-        <parameter name="data" transfer-ownership="none">
-          <doc xml:whitespace="preserve">the actual pixel data.</doc>
-          <type name="guint8" c:type="guint8*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="texture_unref"
-              c:identifier="cogl_texture_unref"
-              deprecated="Use cogl_handle_unref() instead"
-              deprecated-version="1.2">
-      <doc xml:whitespace="preserve">Decrement the reference count for a cogl texture.</doc>
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="handle" transfer-ownership="none">
-          <doc xml:whitespace="preserve">a @CoglHandle.</doc>
-          <type name="Handle" c:type="CoglHandle"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="transform" c:identifier="cogl_transform" version="1.4">
-      <doc xml:whitespace="preserve">Multiplies the current model-view matrix by the given matrix.</doc>
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="matrix" transfer-ownership="none">
-          <doc xml:whitespace="preserve">the matrix to multiply with the current model-view</doc>
-          <type name="Matrix" c:type="CoglMatrix*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="translate" c:identifier="cogl_translate">
-      <doc xml:whitespace="preserve">Multiplies the current model-view matrix by one that translates the
-model along all three axes according to the given values.</doc>
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="x" transfer-ownership="none">
-          <doc xml:whitespace="preserve">Distance to translate along the x-axis</doc>
-          <type name="gfloat" c:type="float"/>
-        </parameter>
-        <parameter name="y" transfer-ownership="none">
-          <doc xml:whitespace="preserve">Distance to translate along the y-axis</doc>
-          <type name="gfloat" c:type="float"/>
-        </parameter>
-        <parameter name="z" transfer-ownership="none">
-          <doc xml:whitespace="preserve">Distance to translate along the z-axis</doc>
-          <type name="gfloat" c:type="float"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="vector3_equal_EXP" c:identifier="cogl_vector3_equal_EXP">
-      <return-value transfer-ownership="none">
-        <type name="gboolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="v1" transfer-ownership="none">
-          <type name="gpointer" c:type="gconstpointer"/>
-        </parameter>
-        <parameter name="v2" transfer-ownership="none">
-          <type name="gpointer" c:type="gconstpointer"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="vertex_buffer_add" c:identifier="cogl_vertex_buffer_add">
-      <doc xml:whitespace="preserve">Adds an attribute to a buffer.
-You either can use one of the built-in names such as "gl_Vertex", or
-"gl_MultiTexCoord0" to add standard attributes, like positions, colors
-and normals, or you can add custom attributes for use in shaders.
-The number of vertices declared when calling cogl_vertex_buffer_new()
-determines how many attribute values will be read from the supplied
-The data for your attribute isn't copied anywhere until you call
-cogl_vertex_buffer_submit(), or issue a draw call which automatically
-submits pending attribute changes. so the supplied pointer must remain
-valid until then. If you are updating an existing attribute (done by
-re-adding it) then you still need to re-call cogl_vertex_buffer_submit()
-to commit the changes to the GPU. Be carefull to minimize the number
-of calls to cogl_vertex_buffer_submit(), though.
-&lt;note&gt;If you are interleving attributes it is assumed that each interleaved
-attribute starts no farther than +- stride bytes from the other attributes
-it is interleved with. I.e. this is ok:
-&lt;programlisting&gt;
-|-0-0-0-0-0-0-0-0-0-0|
-&lt;/programlisting&gt;
-This is not ok:
-&lt;programlisting&gt;
-|- - - - -0-0-0-0-0-0 0 0 0 0|
-&lt;/programlisting&gt;
-(Though you can have multiple groups of interleved attributes)&lt;/note&gt;</doc>
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="handle" transfer-ownership="none">
-          <doc xml:whitespace="preserve">A vertex buffer handle</doc>
-          <type name="Handle" c:type="CoglHandle"/>
-        </parameter>
-        <parameter name="attribute_name" transfer-ownership="none">
-          <doc xml:whitespace="preserve">The name of your attribute. It should be a valid GLSL variable name and standard attribute types must use one of following built-in names: (Note: they correspond to the built-in names of GLSL) &lt;itemizedlist&gt; &lt;listitem&gt;"gl_Color"&lt;/listitem&gt; &lt;listitem&gt;"gl_Normal"&lt;/listitem&gt; &lt;listitem&gt;"gl_MultiTexCoord0, gl_MultiTexCoord1, ..."&lt;/listitem&gt; &lt;listitem&gt;"gl_Vertex"&lt;/listitem&gt; &lt;/itemizedlist&gt; To support adding multiple variations of the same attribute the name can have a detail component, E.g. "gl_Color::active" or "gl_Color::inactive"</doc>
-          <type name="utf8" c:type="char*"/>
-        </parameter>
-        <parameter name="n_components" transfer-ownership="none">
-          <doc xml:whitespace="preserve">The number of components per attribute and must be 1, 2, 3 or 4</doc>
-          <type name="guint8" c:type="guint8"/>
-        </parameter>
-        <parameter name="type" transfer-ownership="none">
-          <doc xml:whitespace="preserve">a #CoglAttributeType specifying the data type of each component.</doc>
-          <type name="AttributeType" c:type="CoglAttributeType"/>
-        </parameter>
-        <parameter name="normalized" transfer-ownership="none">
-          <doc xml:whitespace="preserve">If %TRUE, this specifies that values stored in an integer format should be mapped into the range [-1.0, 1.0] or [0.0, 1.0] for unsigned values. If %FALSE they are converted to floats directly.</doc>
-          <type name="gboolean" c:type="gboolean"/>
-        </parameter>
-        <parameter name="stride" transfer-ownership="none">
-          <doc xml:whitespace="preserve">This specifies the number of bytes from the start of one attribute value to the start of the next value (for the same attribute). So, for example, with a position interleved with color like this: XYRGBAXYRGBAXYRGBA, then if each letter represents a byte, the stride for both attributes is 6. The special value 0 means the values are stored sequentially in memory.</doc>
-          <type name="guint16" c:type="guint16"/>
-        </parameter>
-        <parameter name="pointer" transfer-ownership="none">
-          <doc xml:whitespace="preserve">This addresses the first attribute in the vertex array. This must remain valid until you either call cogl_vertex_buffer_submit() or issue a draw call.</doc>
-          <type name="gpointer" c:type="void*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="vertex_buffer_delete"
-              c:identifier="cogl_vertex_buffer_delete">
-      <doc xml:whitespace="preserve">Deletes an attribute from a buffer. You will need to call
-cogl_vertex_buffer_submit() or issue a draw call to commit this
-change to the GPU.</doc>
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="handle" transfer-ownership="none">
-          <doc xml:whitespace="preserve">A vertex buffer handle</doc>
-          <type name="Handle" c:type="CoglHandle"/>
-        </parameter>
-        <parameter name="attribute_name" transfer-ownership="none">
-          <doc xml:whitespace="preserve">The name of a previously added attribute</doc>
-          <type name="utf8" c:type="char*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="vertex_buffer_disable"
-              c:identifier="cogl_vertex_buffer_disable">
-      <doc xml:whitespace="preserve">Disables a previosuly added attribute.
-Since it can be costly to add and remove new attributes to buffers; to make
-individual buffers more reuseable it is possible to enable and disable
-attributes before using a buffer for drawing.
-You don't need to call cogl_vertex_buffer_submit() after using this
-function.</doc>
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="handle" transfer-ownership="none">
-          <doc xml:whitespace="preserve">A vertex buffer handle</doc>
-          <type name="Handle" c:type="CoglHandle"/>
-        </parameter>
-        <parameter name="attribute_name" transfer-ownership="none">
-          <doc xml:whitespace="preserve">The name of the attribute you want to disable</doc>
-          <type name="utf8" c:type="char*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="vertex_buffer_draw" c:identifier="cogl_vertex_buffer_draw">
-      <doc xml:whitespace="preserve">Allows you to draw geometry using all or a subset of the
-vertices in a vertex buffer.
-Any un-submitted attribute changes are automatically submitted before
-drawing.</doc>
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="handle" transfer-ownership="none">
-          <doc xml:whitespace="preserve">A vertex buffer handle</doc>
-          <type name="Handle" c:type="CoglHandle"/>
-        </parameter>
-        <parameter name="mode" transfer-ownership="none">
-          <doc xml:whitespace="preserve">A #CoglVerticesMode specifying how the vertices should be interpreted.</doc>
-          <type name="VerticesMode" c:type="CoglVerticesMode"/>
-        </parameter>
-        <parameter name="first" transfer-ownership="none">
-          <doc xml:whitespace="preserve">Specifies the index of the first vertex you want to draw with</doc>
-          <type name="gint" c:type="int"/>
-        </parameter>
-        <parameter name="count" transfer-ownership="none">
-          <doc xml:whitespace="preserve">Specifies the number of vertices you want to draw.</doc>
-          <type name="gint" c:type="int"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="vertex_buffer_draw_elements"
-              c:identifier="cogl_vertex_buffer_draw_elements">
-      <doc xml:whitespace="preserve">This function lets you use an array of indices to specify the vertices
-within your vertex buffer that you want to draw. The indices themselves
-are created by calling cogl_vertex_buffer_indices_new ()
-Any un-submitted attribute changes are automatically submitted before
-drawing.</doc>
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="handle" transfer-ownership="none">
-          <doc xml:whitespace="preserve">A vertex buffer handle</doc>
-          <type name="Handle" c:type="CoglHandle"/>
-        </parameter>
-        <parameter name="mode" transfer-ownership="none">
-          <doc xml:whitespace="preserve">A #CoglVerticesMode specifying how the vertices should be interpreted.</doc>
-          <type name="VerticesMode" c:type="CoglVerticesMode"/>
-        </parameter>
-        <parameter name="indices" transfer-ownership="none">
-          <doc xml:whitespace="preserve">A CoglHandle for a set of indices allocated via cogl_vertex_buffer_indices_new ()</doc>
-          <type name="Handle" c:type="CoglHandle"/>
-        </parameter>
-        <parameter name="min_index" transfer-ownership="none">
-          <doc xml:whitespace="preserve">Specifies the minimum vertex index contained in indices</doc>
-          <type name="gint" c:type="int"/>
-        </parameter>
-        <parameter name="max_index" transfer-ownership="none">
-          <doc xml:whitespace="preserve">Specifies the maximum vertex index contained in indices</doc>
-          <type name="gint" c:type="int"/>
-        </parameter>
-        <parameter name="indices_offset" transfer-ownership="none">
-          <doc xml:whitespace="preserve">An offset into named indices. The offset marks the first index to use for drawing.</doc>
-          <type name="gint" c:type="int"/>
-        </parameter>
-        <parameter name="count" transfer-ownership="none">
-          <doc xml:whitespace="preserve">Specifies the number of vertices you want to draw.</doc>
-          <type name="gint" c:type="int"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="vertex_buffer_enable"
-              c:identifier="cogl_vertex_buffer_enable">
-      <doc xml:whitespace="preserve">Enables a previosuly disabled attribute.
-Since it can be costly to add and remove new attributes to buffers; to make
-individual buffers more reuseable it is possible to enable and disable
-attributes before using a buffer for drawing.
-You don't need to call cogl_vertex_buffer_submit() after using this function</doc>
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="handle" transfer-ownership="none">
-          <doc xml:whitespace="preserve">A vertex buffer handle</doc>
-          <type name="Handle" c:type="CoglHandle"/>
-        </parameter>
-        <parameter name="attribute_name" transfer-ownership="none">
-          <doc xml:whitespace="preserve">The name of the attribute you want to enable</doc>
-          <type name="utf8" c:type="char*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="vertex_buffer_get_n_vertices"
-              c:identifier="cogl_vertex_buffer_get_n_vertices">
-      <doc xml:whitespace="preserve">Retrieves the number of vertices that @handle represents</doc>
-      <return-value transfer-ownership="none">
-        <doc xml:whitespace="preserve">the number of vertices</doc>
-        <type name="guint" c:type="unsigned int"/>
-      </return-value>
-      <parameters>
-        <parameter name="handle" transfer-ownership="none">
-          <doc xml:whitespace="preserve">A vertex buffer handle</doc>
-          <type name="Handle" c:type="CoglHandle"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="vertex_buffer_indices_get_for_quads"
-              c:identifier="cogl_vertex_buffer_indices_get_for_quads"
-              introspectable="0">
-      <doc xml:whitespace="preserve">Creates a vertex buffer containing the indices needed to draw pairs
-of triangles from a list of vertices grouped as quads. There will
-be at least @n_indices entries in the buffer (but there may be
-more).
-The indices will follow this pattern:
-0, 1, 2, 0, 2, 3, 4, 5, 6, 4, 6, 7 ... etc
-For example, if you submit vertices for a quad like like that shown
-in &lt;xref linkend="quad-indices-order"/&gt; then you can request 6
-indices to render two triangles like those shown in &lt;xref
-linkend="quad-indices-triangles"/&gt;.
-&lt;figure id="quad-indices-order"&gt;
-&lt;title&gt;Example of vertices submitted to form a quad&lt;/title&gt;
-&lt;graphic fileref="quad-indices-order.png" format="PNG"/&gt;
-&lt;/figure&gt;
-&lt;figure id="quad-indices-triangles"&gt;
-&lt;title&gt;Illustration of the triangle indices that will be generated&lt;/title&gt;
-&lt;graphic fileref="quad-indices-triangles.png" format="PNG"/&gt;
-&lt;/figure&gt;
-owned by Cogl and should not be modified or unref'd.</doc>
-      <return-value>
-        <doc xml:whitespace="preserve">A %CoglHandle containing the indices. The handled is</doc>
-        <type name="Handle" c:type="CoglHandle"/>
-      </return-value>
-      <parameters>
-        <parameter name="n_indices" transfer-ownership="none">
-          <doc xml:whitespace="preserve">the number of indices in the vertex buffer.</doc>
-          <type name="guint" c:type="unsigned int"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="vertex_buffer_indices_get_type"
-              c:identifier="cogl_vertex_buffer_indices_get_type">
-      <doc xml:whitespace="preserve">Queries back the data type used for the given indices</doc>
-      <return-value transfer-ownership="none">
-        <doc xml:whitespace="preserve">The CoglIndicesType used</doc>
-        <type name="IndicesType" c:type="CoglIndicesType"/>
-      </return-value>
-      <parameters>
-        <parameter name="indices" transfer-ownership="none">
-          <type name="Handle" c:type="CoglHandle"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="vertex_buffer_indices_new"
-              c:identifier="cogl_vertex_buffer_indices_new"
-              introspectable="0">
-      <doc xml:whitespace="preserve">Depending on how much geometry you are submitting it can be worthwhile
-optimizing the number of redundant vertices you submit. Using an index
-array allows you to reference vertices multiple times, for example
-during triangle strips.
-cogl_vertex_buffer_draw_elements().</doc>
-      <return-value>
-        <doc xml:whitespace="preserve">A CoglHandle for the indices which you can pass to</doc>
-        <type name="Handle" c:type="CoglHandle"/>
-      </return-value>
-      <parameters>
-        <parameter name="indices_type" transfer-ownership="none">
-          <doc xml:whitespace="preserve">a #CoglIndicesType specifying the data type used for the indices.</doc>
-          <type name="IndicesType" c:type="CoglIndicesType"/>
-        </parameter>
-        <parameter name="indices_array" transfer-ownership="none">
-          <doc xml:whitespace="preserve">Specifies the address of your array of indices</doc>
-          <array length="2" c:type="void*">
-            <type name="gpointer"/>
-          </array>
-        </parameter>
-        <parameter name="indices_len" transfer-ownership="none">
-          <doc xml:whitespace="preserve">The number of indices in indices_array</doc>
-          <type name="gint" c:type="int"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="vertex_buffer_new"
-              c:identifier="cogl_vertex_buffer_new"
-              introspectable="0">
-      <doc xml:whitespace="preserve">Creates a new vertex buffer that you can use to add attributes.</doc>
-      <return-value>
-        <doc xml:whitespace="preserve">a new #CoglHandle</doc>
-        <type name="Handle" c:type="CoglHandle"/>
-      </return-value>
-      <parameters>
-        <parameter name="n_vertices" transfer-ownership="none">
-          <doc xml:whitespace="preserve">The number of vertices that your attributes will correspond to.</doc>
-          <type name="guint" c:type="unsigned int"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="vertex_buffer_ref"
-              c:identifier="cogl_vertex_buffer_ref"
-              introspectable="0"
-              deprecated="Use cogl_handle_ref() instead"
-              deprecated-version="1.2">
-      <doc xml:whitespace="preserve">Increment the reference count for a vertex buffer</doc>
-      <return-value>
-        <doc xml:whitespace="preserve">the @handle.</doc>
-        <type name="Handle" c:type="CoglHandle"/>
-      </return-value>
-      <parameters>
-        <parameter name="handle" transfer-ownership="none">
-          <doc xml:whitespace="preserve">a @CoglHandle.</doc>
-          <type name="Handle" c:type="CoglHandle"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="vertex_buffer_submit"
-              c:identifier="cogl_vertex_buffer_submit">
-      <doc xml:whitespace="preserve">Submits all the user added attributes to the GPU; once submitted, the
-attributes can be used for drawing.
-You should aim to minimize calls to this function since it implies
-validating your data; it potentially incurs a transport cost (especially if
-you are using GLX indirect rendering) and potentially a format conversion
-cost if the GPU doesn't natively support any of the given attribute formats.</doc>
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="handle" transfer-ownership="none">
-          <doc xml:whitespace="preserve">A vertex buffer handle</doc>
-          <type name="Handle" c:type="CoglHandle"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="vertex_buffer_unref"
-              c:identifier="cogl_vertex_buffer_unref"
-              deprecated="Use cogl_handle_unref() instead"
-              deprecated-version="1.2">
-      <doc xml:whitespace="preserve">Decrement the reference count for a vertex buffer</doc>
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="handle" transfer-ownership="none">
-          <doc xml:whitespace="preserve">a @CoglHandle.</doc>
-          <type name="Handle" c:type="CoglHandle"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="viewport"
-              c:identifier="cogl_viewport"
-              version="0.8.2"
-              deprecated="Use cogl_set_viewport() instead"
-              deprecated-version="1.2">
-      <doc xml:whitespace="preserve">Replace the current viewport with the given values.</doc>
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="width" transfer-ownership="none">
-          <doc xml:whitespace="preserve">Width of the viewport</doc>
-          <type name="guint" c:type="unsigned int"/>
-        </parameter>
-        <parameter name="height" transfer-ownership="none">
-          <doc xml:whitespace="preserve">Height of the viewport</doc>
-          <type name="guint" c:type="unsigned int"/>
-        </parameter>
-      </parameters>
-    </function>
-  </namespace>
-</repository>
diff --git a/extra/clutter/cogl/cogl.factor b/extra/clutter/cogl/cogl.factor
deleted file mode 100644 (file)
index 6b54a07..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-! Copyright (C) 2010 Anton Gorenko.
-! See http://factorcode.org/license.txt for BSD license.
-USING: clutter.cogl.ffi ;
-IN: clutter.cogl
-
diff --git a/extra/clutter/cogl/ffi/ffi.factor b/extra/clutter/cogl/ffi/ffi.factor
deleted file mode 100644 (file)
index 199fa07..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-! Copyright (C) 2010 Anton Gorenko.
-! See http://factorcode.org/license.txt for BSD license.
-USING: alien alien.libraries alien.syntax combinators
-gobject-introspection kernel opengl.gl system vocabs.loader ;
-IN: clutter.cogl.ffi
-
-<<
-"gobject.ffi" require
->>
-
-LIBRARY: clutter.cogl
-
-<<
-"clutter.cogl" {
-    { [ os winnt? ] [ drop ] }
-    { [ os macosx? ] [ drop ] }
-    { [ os unix? ] [ "libclutter-glx-1.0.so" cdecl add-library ] }
-} cond
->>
-
-FOREIGN-ATOMIC-TYPE: GL.uint GLuint
-FOREIGN-ATOMIC-TYPE: GL.enum GLenum
-
-GIR: vocab:clutter/cogl/Cogl-1.0.gir
-
diff --git a/extra/clutter/ffi/ffi.factor b/extra/clutter/ffi/ffi.factor
deleted file mode 100644 (file)
index 4a44412..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-! Copyright (C) 2010 Anton Gorenko.
-! See http://factorcode.org/license.txt for BSD license.
-USING: alien alien.libraries alien.syntax cairo.ffi combinators
-gobject-introspection kernel system vocabs.loader ;
-IN: clutter.ffi
-
-<<
-"atk.ffi" require
-"pango.cairo.ffi" require
-"clutter.cogl.ffi" require
-"clutter.json.ffi" require
->>
-
-LIBRARY: clutter
-
-<<
-"clutter" {
-    { [ os winnt? ] [ drop ] }
-    { [ os macosx? ] [ drop ] }
-    { [ os unix? ] [ "libclutter-glx-1.0.so" cdecl add-library ] }
-} cond
->>
-
-FOREIGN-RECORD-TYPE: cairo.Path cairo_path_t
-
-GIR: vocab:clutter/Clutter-1.0.gir
-
diff --git a/extra/clutter/gtk/GtkClutter-0.10.gir b/extra/clutter/gtk/GtkClutter-0.10.gir
deleted file mode 100644 (file)
index 3811379..0000000
+++ /dev/null
@@ -1,912 +0,0 @@
-<?xml version="1.0"?>
-<!-- This file was automatically generated from C sources - DO NOT EDIT!
-To affect the contents of this file, edit the original C definitions,
-and/or use gtk-doc annotations.  -->
-<repository version="1.2"
-            xmlns="http://www.gtk.org/introspection/core/1.0"
-            xmlns:c="http://www.gtk.org/introspection/c/1.0"
-            xmlns:glib="http://www.gtk.org/introspection/glib/1.0">
-  <include name="Atk" version="1.0"/>
-  <include name="Clutter" version="1.0"/>
-  <include name="Cogl" version="1.0"/>
-  <include name="GL" version="1.0"/>
-  <include name="GLib" version="2.0"/>
-  <include name="GModule" version="2.0"/>
-  <include name="GObject" version="2.0"/>
-  <include name="Gdk" version="2.0"/>
-  <include name="GdkPixbuf" version="2.0"/>
-  <include name="Gio" version="2.0"/>
-  <include name="Gtk" version="2.0"/>
-  <include name="Json" version="1.0"/>
-  <include name="Pango" version="1.0"/>
-  <include name="PangoCairo" version="1.0"/>
-  <include name="PangoFT2" version="1.0"/>
-  <include name="cairo" version="1.0"/>
-  <include name="fontconfig" version="2.0"/>
-  <include name="freetype2" version="2.0"/>
-  <namespace name="GtkClutter"
-             version="0.10"
-             shared-library="libclutter-gtk-0.10.so.0"
-             c:identifier-prefixes="GtkClutter"
-             c:symbol-prefixes="gtk_clutter">
-    <class name="Embed"
-           c:symbol-prefix="embed"
-           c:type="GtkClutterEmbed"
-           version="0.6"
-           parent="Gtk.Container"
-           glib:type-name="GtkClutterEmbed"
-           glib:get-type="gtk_clutter_embed_get_type"
-           glib:type-struct="EmbedClass">
-      <doc xml:whitespace="preserve">A #GtkWidget containing the default Clutter stage.</doc>
-      <implements name="Atk.ImplementorIface"/>
-      <implements name="Gtk.Buildable"/>
-      <constructor name="new"
-                   c:identifier="gtk_clutter_embed_new"
-                   version="0.6">
-        <doc xml:whitespace="preserve">Creates a new #GtkClutterEmbed widget. This widget can be
-used to build a scene using Clutter API into a GTK+ application.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the newly created #GtkClutterEmbed</doc>
-          <type name="Gtk.Widget" c:type="GtkWidget*"/>
-        </return-value>
-      </constructor>
-      <method name="get_stage"
-              c:identifier="gtk_clutter_embed_get_stage"
-              version="0.6">
-        <doc xml:whitespace="preserve">Retrieves the #ClutterStage from @embed. The returned stage can be
-used to add actors to the Clutter scene. Multiple calls to this function
-on the same #GtkClutterEmbed widget will return the same stage.
-or unref the returned actor.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">a #ClutterStage. You should never destroy</doc>
-          <type name="Clutter.Actor" c:type="ClutterActor*"/>
-        </return-value>
-      </method>
-      <field name="parent_instance">
-        <type name="Gtk.Container" c:type="GtkContainer"/>
-      </field>
-      <field name="priv">
-        <type name="EmbedPrivate" c:type="GtkClutterEmbedPrivate*"/>
-      </field>
-    </class>
-    <record name="EmbedClass"
-            c:type="GtkClutterEmbedClass"
-            glib:is-gtype-struct-for="Embed"
-            version="0.6">
-      <doc xml:whitespace="preserve">Base class for #GtkClutterEmbed.</doc>
-      <field name="parent_class">
-        <type name="Gtk.ContainerClass" c:type="GtkContainerClass"/>
-      </field>
-      <field name="_clutter_gtk_reserved1" introspectable="0">
-        <callback name="_clutter_gtk_reserved1">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-      <field name="_clutter_gtk_reserved2" introspectable="0">
-        <callback name="_clutter_gtk_reserved2">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-      <field name="_clutter_gtk_reserved3" introspectable="0">
-        <callback name="_clutter_gtk_reserved3">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-      <field name="_clutter_gtk_reserved4" introspectable="0">
-        <callback name="_clutter_gtk_reserved4">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-      <field name="_clutter_gtk_reserved5" introspectable="0">
-        <callback name="_clutter_gtk_reserved5">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-      <field name="_clutter_gtk_reserved6" introspectable="0">
-        <callback name="_clutter_gtk_reserved6">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-    </record>
-    <record name="EmbedPrivate" c:type="GtkClutterEmbedPrivate" disguised="1">
-    </record>
-    <interface name="Scrollable"
-               c:symbol-prefix="scrollable"
-               c:type="GtkClutterScrollable"
-               glib:type-name="GtkClutterScrollable"
-               glib:get-type="gtk_clutter_scrollable_get_type"
-               glib:type-struct="ScrollableIface">
-      <virtual-method name="get_adjustments"
-                      invoker="get_adjustments"
-                      version="0.10">
-        <doc xml:whitespace="preserve">Retrieves the horizontal and vertical adjustments used to
-determine the position of the scrollable actor.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="h_adjust"
-                     direction="out"
-                     caller-allocates="0"
-                     transfer-ownership="full">
-            <doc xml:whitespace="preserve">return location for a #GtkAdjustment, or %NULL</doc>
-            <type name="Gtk.Adjustment" c:type="GtkAdjustment**"/>
-          </parameter>
-          <parameter name="v_adjust"
-                     direction="out"
-                     caller-allocates="0"
-                     transfer-ownership="full">
-            <doc xml:whitespace="preserve">return location for a #GtkAdjustment, or %NULL</doc>
-            <type name="Gtk.Adjustment" c:type="GtkAdjustment**"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <virtual-method name="set_adjustments"
-                      invoker="set_adjustments"
-                      version="0.10">
-        <doc xml:whitespace="preserve">Sets the horizontal and vertical adjustments used to determine
-the position of the scrollable actor.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="h_adjust" transfer-ownership="none" allow-none="1">
-            <doc xml:whitespace="preserve">a #GtkAdjustment, or %NULL</doc>
-            <type name="Gtk.Adjustment" c:type="GtkAdjustment*"/>
-          </parameter>
-          <parameter name="v_adjust" transfer-ownership="none" allow-none="1">
-            <doc xml:whitespace="preserve">a #GtkAdjustment, or %NULL</doc>
-            <type name="Gtk.Adjustment" c:type="GtkAdjustment*"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <method name="get_adjustments"
-              c:identifier="gtk_clutter_scrollable_get_adjustments"
-              version="0.10">
-        <doc xml:whitespace="preserve">Retrieves the horizontal and vertical adjustments used to
-determine the position of the scrollable actor.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="h_adjust"
-                     direction="out"
-                     caller-allocates="0"
-                     transfer-ownership="full">
-            <doc xml:whitespace="preserve">return location for a #GtkAdjustment, or %NULL</doc>
-            <type name="Gtk.Adjustment" c:type="GtkAdjustment**"/>
-          </parameter>
-          <parameter name="v_adjust"
-                     direction="out"
-                     caller-allocates="0"
-                     transfer-ownership="full">
-            <doc xml:whitespace="preserve">return location for a #GtkAdjustment, or %NULL</doc>
-            <type name="Gtk.Adjustment" c:type="GtkAdjustment**"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_adjustments"
-              c:identifier="gtk_clutter_scrollable_set_adjustments"
-              version="0.10">
-        <doc xml:whitespace="preserve">Sets the horizontal and vertical adjustments used to determine
-the position of the scrollable actor.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="h_adjust" transfer-ownership="none" allow-none="1">
-            <doc xml:whitespace="preserve">a #GtkAdjustment, or %NULL</doc>
-            <type name="Gtk.Adjustment" c:type="GtkAdjustment*"/>
-          </parameter>
-          <parameter name="v_adjust" transfer-ownership="none" allow-none="1">
-            <doc xml:whitespace="preserve">a #GtkAdjustment, or %NULL</doc>
-            <type name="Gtk.Adjustment" c:type="GtkAdjustment*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <property name="hadjustment"
-                version="0.10"
-                writable="1"
-                construct="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">The #GtkAdjustment that determines the value of the
-horizontal position for this scrollable actor.</doc>
-        <type name="Gtk.Adjustment"/>
-      </property>
-      <property name="vadjustment"
-                version="0.10"
-                writable="1"
-                construct="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">The #GtkAdjustment that determines the value of the
-vertical position for this scrollable actor.</doc>
-        <type name="Gtk.Adjustment"/>
-      </property>
-    </interface>
-    <record name="ScrollableIface"
-            c:type="GtkClutterScrollableIface"
-            glib:is-gtype-struct-for="Scrollable"
-            version="0.10">
-      <doc xml:whitespace="preserve">The #GtkClutterScrollableIface structure contains only private data
-and should be accessed using the provided functions.</doc>
-      <field name="parent_iface">
-        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
-      </field>
-      <field name="set_adjustments">
-        <callback name="set_adjustments">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="scrollable" transfer-ownership="none">
-              <type name="Scrollable" c:type="GtkClutterScrollable*"/>
-            </parameter>
-            <parameter name="h_adjust"
-                       transfer-ownership="none"
-                       allow-none="1">
-              <doc xml:whitespace="preserve">a #GtkAdjustment, or %NULL</doc>
-              <type name="Gtk.Adjustment" c:type="GtkAdjustment*"/>
-            </parameter>
-            <parameter name="v_adjust"
-                       transfer-ownership="none"
-                       allow-none="1">
-              <doc xml:whitespace="preserve">a #GtkAdjustment, or %NULL</doc>
-              <type name="Gtk.Adjustment" c:type="GtkAdjustment*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="get_adjustments">
-        <callback name="get_adjustments">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="scrollable" transfer-ownership="none">
-              <type name="Scrollable" c:type="GtkClutterScrollable*"/>
-            </parameter>
-            <parameter name="h_adjust"
-                       direction="out"
-                       caller-allocates="0"
-                       transfer-ownership="full">
-              <doc xml:whitespace="preserve">return location for a #GtkAdjustment, or %NULL</doc>
-              <type name="Gtk.Adjustment" c:type="GtkAdjustment**"/>
-            </parameter>
-            <parameter name="v_adjust"
-                       direction="out"
-                       caller-allocates="0"
-                       transfer-ownership="full">
-              <doc xml:whitespace="preserve">return location for a #GtkAdjustment, or %NULL</doc>
-              <type name="Gtk.Adjustment" c:type="GtkAdjustment**"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-    </record>
-    <class name="Viewport"
-           c:symbol-prefix="viewport"
-           c:type="GtkClutterViewport"
-           version="0.8.2"
-           parent="Clutter.Actor"
-           glib:type-name="GtkClutterViewport"
-           glib:get-type="gtk_clutter_viewport_get_type"
-           glib:type-struct="ViewportClass">
-      <doc xml:whitespace="preserve">The #GtkClutterViewport structure contains only private data and
-should be accessed using the provided functions.</doc>
-      <implements name="Atk.ImplementorIface"/>
-      <implements name="Clutter.Animatable"/>
-      <implements name="Clutter.Container"/>
-      <implements name="Clutter.Scriptable"/>
-      <implements name="Scrollable"/>
-      <implements name="Zoomable"/>
-      <constructor name="new"
-                   c:identifier="gtk_clutter_viewport_new"
-                   version="0.10">
-        <doc xml:whitespace="preserve">Creates a new #GtkClutterViewport with the given adjustments.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the newly created viewport actor</doc>
-          <type name="Clutter.Actor" c:type="ClutterActor*"/>
-        </return-value>
-        <parameters>
-          <parameter name="h_adjust" transfer-ownership="none">
-            <doc xml:whitespace="preserve">horizontal adjustment, or %NULL</doc>
-            <type name="Gtk.Adjustment" c:type="GtkAdjustment*"/>
-          </parameter>
-          <parameter name="v_adjust" transfer-ownership="none">
-            <doc xml:whitespace="preserve">vertical adjustment, or %NULL</doc>
-            <type name="Gtk.Adjustment" c:type="GtkAdjustment*"/>
-          </parameter>
-          <parameter name="z_adjust" transfer-ownership="none">
-            <doc xml:whitespace="preserve">zoom adjustment, or %NULL</doc>
-            <type name="Gtk.Adjustment" c:type="GtkAdjustment*"/>
-          </parameter>
-        </parameters>
-      </constructor>
-      <method name="get_origin"
-              c:identifier="gtk_clutter_viewport_get_origin"
-              version="0.10">
-        <doc xml:whitespace="preserve">Retrieves the current translation factor ("origin") used when
-displaying the child of @viewport.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="x" transfer-ownership="none">
-            <doc xml:whitespace="preserve">return location for the X origin in pixels, or %NULL</doc>
-            <type name="gfloat" c:type="gfloat*"/>
-          </parameter>
-          <parameter name="y" transfer-ownership="none">
-            <doc xml:whitespace="preserve">return location for the Y origin in pixels, or %NULL</doc>
-            <type name="gfloat" c:type="gfloat*"/>
-          </parameter>
-          <parameter name="z" transfer-ownership="none">
-            <doc xml:whitespace="preserve">return location for the Z origin in pixels, or %NULL</doc>
-            <type name="gfloat" c:type="gfloat*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <property name="child"
-                version="0.10"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">The #ClutterActor inside the viewport.</doc>
-        <type name="Clutter.Actor"/>
-      </property>
-      <property name="origin" version="0.10" transfer-ownership="none">
-        <doc xml:whitespace="preserve">The current origin of the viewport. You should use the
-vertex to convert event coordinates for the child of the
-viewport.</doc>
-        <type name="Clutter.Vertex"/>
-      </property>
-      <field name="parent_instance">
-        <type name="Clutter.Actor" c:type="ClutterActor"/>
-      </field>
-      <field name="priv">
-        <type name="ViewportPrivate" c:type="GtkClutterViewportPrivate*"/>
-      </field>
-    </class>
-    <record name="ViewportClass"
-            c:type="GtkClutterViewportClass"
-            glib:is-gtype-struct-for="Viewport"
-            version="0.8.2">
-      <doc xml:whitespace="preserve">The #GtkClutterViewportClass structure contains only private data and
-should be accessed using the provided functions.</doc>
-      <field name="parent_class">
-        <type name="Clutter.ActorClass" c:type="ClutterActorClass"/>
-      </field>
-    </record>
-    <record name="ViewportPrivate"
-            c:type="GtkClutterViewportPrivate"
-            disguised="1">
-    </record>
-    <interface name="Zoomable"
-               c:symbol-prefix="zoomable"
-               c:type="GtkClutterZoomable"
-               glib:type-name="GtkClutterZoomable"
-               glib:get-type="gtk_clutter_zoomable_get_type"
-               glib:type-struct="ZoomableIface">
-      <virtual-method name="get_adjustment"
-                      invoker="get_adjustment"
-                      version="0.10">
-        <doc xml:whitespace="preserve">Retrieves the adjustment used to determine the zoom factor of
-the zoomable actor</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">a #GtkAdjustment</doc>
-          <type name="Gtk.Adjustment" c:type="GtkAdjustment*"/>
-        </return-value>
-      </virtual-method>
-      <virtual-method name="set_adjustment"
-                      invoker="set_adjustment"
-                      version="0.10">
-        <doc xml:whitespace="preserve">Sets the adjustment used to determine the zoom factor of
-the zoomable actor</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="z_adjust" transfer-ownership="none" allow-none="1">
-            <doc xml:whitespace="preserve">a #GtkAdjustment, or %NULL</doc>
-            <type name="Gtk.Adjustment" c:type="GtkAdjustment*"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <method name="get_adjustment"
-              c:identifier="gtk_clutter_zoomable_get_adjustment"
-              version="0.10">
-        <doc xml:whitespace="preserve">Retrieves the adjustment used to determine the zoom factor of
-the zoomable actor</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">a #GtkAdjustment</doc>
-          <type name="Gtk.Adjustment" c:type="GtkAdjustment*"/>
-        </return-value>
-      </method>
-      <method name="set_adjustment"
-              c:identifier="gtk_clutter_zoomable_set_adjustment"
-              version="0.10">
-        <doc xml:whitespace="preserve">Sets the adjustment used to determine the zoom factor of
-the zoomable actor</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="z_adjust" transfer-ownership="none" allow-none="1">
-            <doc xml:whitespace="preserve">a #GtkAdjustment, or %NULL</doc>
-            <type name="Gtk.Adjustment" c:type="GtkAdjustment*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <property name="zadjustment"
-                version="0.10"
-                writable="1"
-                construct="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">The #GtkAdjustment that determines the value of
-the zoom factor for this zoomable actor</doc>
-        <type name="Gtk.Adjustment"/>
-      </property>
-    </interface>
-    <record name="ZoomableIface"
-            c:type="GtkClutterZoomableIface"
-            glib:is-gtype-struct-for="Zoomable"
-            version="1.0">
-      <doc xml:whitespace="preserve">The #GtkClutterZoomableIface structure contains only private data</doc>
-      <field name="parent_iface">
-        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
-      </field>
-      <field name="set_adjustment">
-        <callback name="set_adjustment">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="zoomable" transfer-ownership="none">
-              <type name="Zoomable" c:type="GtkClutterZoomable*"/>
-            </parameter>
-            <parameter name="z_adjust"
-                       transfer-ownership="none"
-                       allow-none="1">
-              <doc xml:whitespace="preserve">a #GtkAdjustment, or %NULL</doc>
-              <type name="Gtk.Adjustment" c:type="GtkAdjustment*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="get_adjustment">
-        <callback name="get_adjustment">
-          <return-value transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #GtkAdjustment</doc>
-            <type name="Gtk.Adjustment" c:type="GtkAdjustment*"/>
-          </return-value>
-          <parameters>
-            <parameter name="zoomable" transfer-ownership="none">
-              <type name="Zoomable" c:type="GtkClutterZoomable*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-    </record>
-    <function name="get_base_color"
-              c:identifier="gtk_clutter_get_base_color"
-              version="0.8">
-      <doc xml:whitespace="preserve">Retrieves the base color of @widget for the given @state and copies it
-into @color.</doc>
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="widget" transfer-ownership="none">
-          <doc xml:whitespace="preserve">a #GtkWidget</doc>
-          <type name="Gtk.Widget" c:type="GtkWidget*"/>
-        </parameter>
-        <parameter name="state" transfer-ownership="none">
-          <doc xml:whitespace="preserve">a state</doc>
-          <type name="Gtk.StateType" c:type="GtkStateType"/>
-        </parameter>
-        <parameter name="color" transfer-ownership="none">
-          <doc xml:whitespace="preserve">return location for a #ClutterColor</doc>
-          <type name="Clutter.Color" c:type="ClutterColor*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="get_bg_color"
-              c:identifier="gtk_clutter_get_bg_color"
-              version="0.8">
-      <doc xml:whitespace="preserve">Retrieves the background color of @widget for the given @state and copies
-it into @color.</doc>
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="widget" transfer-ownership="none">
-          <doc xml:whitespace="preserve">a #GtkWidget</doc>
-          <type name="Gtk.Widget" c:type="GtkWidget*"/>
-        </parameter>
-        <parameter name="state" transfer-ownership="none">
-          <doc xml:whitespace="preserve">a state</doc>
-          <type name="Gtk.StateType" c:type="GtkStateType"/>
-        </parameter>
-        <parameter name="color" transfer-ownership="none">
-          <doc xml:whitespace="preserve">return location for a #ClutterColor</doc>
-          <type name="Clutter.Color" c:type="ClutterColor*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="get_dark_color"
-              c:identifier="gtk_clutter_get_dark_color"
-              version="0.8">
-      <doc xml:whitespace="preserve">Retrieves the dark color of @widget for the given @state and copies it
-into @color.</doc>
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="widget" transfer-ownership="none">
-          <doc xml:whitespace="preserve">a #GtkWidget</doc>
-          <type name="Gtk.Widget" c:type="GtkWidget*"/>
-        </parameter>
-        <parameter name="state" transfer-ownership="none">
-          <doc xml:whitespace="preserve">a state</doc>
-          <type name="Gtk.StateType" c:type="GtkStateType"/>
-        </parameter>
-        <parameter name="color" transfer-ownership="none">
-          <doc xml:whitespace="preserve">return location for a #ClutterColor</doc>
-          <type name="Clutter.Color" c:type="ClutterColor*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="get_fg_color"
-              c:identifier="gtk_clutter_get_fg_color"
-              version="0.8">
-      <doc xml:whitespace="preserve">Retrieves the foreground color of @widget for the given @state and copies
-it into @color.</doc>
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="widget" transfer-ownership="none">
-          <doc xml:whitespace="preserve">a #GtkWidget</doc>
-          <type name="Gtk.Widget" c:type="GtkWidget*"/>
-        </parameter>
-        <parameter name="state" transfer-ownership="none">
-          <doc xml:whitespace="preserve">a state</doc>
-          <type name="Gtk.StateType" c:type="GtkStateType"/>
-        </parameter>
-        <parameter name="color" transfer-ownership="none">
-          <doc xml:whitespace="preserve">return location for a #ClutterColor</doc>
-          <type name="Clutter.Color" c:type="ClutterColor*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="get_light_color"
-              c:identifier="gtk_clutter_get_light_color"
-              version="0.8">
-      <doc xml:whitespace="preserve">Retrieves the light color of @widget for the given @state and copies it
-into @color.</doc>
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="widget" transfer-ownership="none">
-          <doc xml:whitespace="preserve">a #GtkWidget</doc>
-          <type name="Gtk.Widget" c:type="GtkWidget*"/>
-        </parameter>
-        <parameter name="state" transfer-ownership="none">
-          <doc xml:whitespace="preserve">a state</doc>
-          <type name="Gtk.StateType" c:type="GtkStateType"/>
-        </parameter>
-        <parameter name="color" transfer-ownership="none">
-          <doc xml:whitespace="preserve">return location for a #ClutterColor</doc>
-          <type name="Clutter.Color" c:type="ClutterColor*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="get_mid_color"
-              c:identifier="gtk_clutter_get_mid_color"
-              version="0.8">
-      <doc xml:whitespace="preserve">Retrieves the mid color of @widget for the given @state and copies it
-into @color.</doc>
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="widget" transfer-ownership="none">
-          <doc xml:whitespace="preserve">a #GtkWidget</doc>
-          <type name="Gtk.Widget" c:type="GtkWidget*"/>
-        </parameter>
-        <parameter name="state" transfer-ownership="none">
-          <doc xml:whitespace="preserve">a state</doc>
-          <type name="Gtk.StateType" c:type="GtkStateType"/>
-        </parameter>
-        <parameter name="color" transfer-ownership="none">
-          <doc xml:whitespace="preserve">return location for a #ClutterColor</doc>
-          <type name="Clutter.Color" c:type="ClutterColor*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="get_text_aa_color"
-              c:identifier="gtk_clutter_get_text_aa_color"
-              version="0.8">
-      <doc xml:whitespace="preserve">Retrieves the text-aa color of @widget for the given @state and copies it
-into @color.</doc>
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="widget" transfer-ownership="none">
-          <doc xml:whitespace="preserve">a #GtkWidget</doc>
-          <type name="Gtk.Widget" c:type="GtkWidget*"/>
-        </parameter>
-        <parameter name="state" transfer-ownership="none">
-          <doc xml:whitespace="preserve">a state</doc>
-          <type name="Gtk.StateType" c:type="GtkStateType"/>
-        </parameter>
-        <parameter name="color" transfer-ownership="none">
-          <doc xml:whitespace="preserve">return location for a #ClutterColor</doc>
-          <type name="Clutter.Color" c:type="ClutterColor*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="get_text_color"
-              c:identifier="gtk_clutter_get_text_color"
-              version="0.8">
-      <doc xml:whitespace="preserve">Retrieves the text color of @widget for the given @state and copies it
-into @color.</doc>
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="widget" transfer-ownership="none">
-          <doc xml:whitespace="preserve">a #GtkWidget</doc>
-          <type name="Gtk.Widget" c:type="GtkWidget*"/>
-        </parameter>
-        <parameter name="state" transfer-ownership="none">
-          <doc xml:whitespace="preserve">a state</doc>
-          <type name="Gtk.StateType" c:type="GtkStateType"/>
-        </parameter>
-        <parameter name="color" transfer-ownership="none">
-          <doc xml:whitespace="preserve">return location for a #ClutterColor</doc>
-          <type name="Clutter.Color" c:type="ClutterColor*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="init" c:identifier="gtk_clutter_init" version="0.8">
-      <doc xml:whitespace="preserve">This function should be called instead of clutter_init() and
-gtk_init().
-on failure.</doc>
-      <return-value transfer-ownership="none">
-        <doc xml:whitespace="preserve">%CLUTTER_INIT_SUCCESS on success, a negative integer</doc>
-        <type name="Clutter.InitError" c:type="ClutterInitError"/>
-      </return-value>
-      <parameters>
-        <parameter name="argc"
-                   direction="inout"
-                   caller-allocates="0"
-                   transfer-ownership="full">
-          <doc xml:whitespace="preserve">pointer to the arguments count, or %NULL</doc>
-          <type name="gint" c:type="int*"/>
-        </parameter>
-        <parameter name="argv"
-                   direction="inout"
-                   caller-allocates="0"
-                   transfer-ownership="full"
-                   allow-none="1">
-          <doc xml:whitespace="preserve">pointer to the arguments vector, or %NULL</doc>
-          <array length="0" c:type="char***">
-            <type name="utf8"/>
-          </array>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="init_with_args"
-              c:identifier="gtk_clutter_init_with_args"
-              version="0.10"
-              throws="1">
-      <doc xml:whitespace="preserve">This function should be called instead of clutter_init() and
-gtk_init_with_args().
-on failure.</doc>
-      <return-value transfer-ownership="none">
-        <doc xml:whitespace="preserve">%CLUTTER_INIT_SUCCESS on success, a negative integer</doc>
-        <type name="Clutter.InitError" c:type="ClutterInitError"/>
-      </return-value>
-      <parameters>
-        <parameter name="argc"
-                   direction="inout"
-                   caller-allocates="0"
-                   transfer-ownership="full">
-          <doc xml:whitespace="preserve">a pointer to the number of command line arguments.</doc>
-          <type name="gint" c:type="int*"/>
-        </parameter>
-        <parameter name="argv"
-                   direction="inout"
-                   caller-allocates="0"
-                   transfer-ownership="full"
-                   allow-none="1">
-          <doc xml:whitespace="preserve">a pointer to the array of command line arguments.</doc>
-          <array length="0" c:type="char***">
-            <type name="utf8"/>
-          </array>
-        </parameter>
-        <parameter name="parameter_string"
-                   transfer-ownership="none"
-                   allow-none="1">
-          <doc xml:whitespace="preserve">a string which is displayed in the first line of &lt;option&gt;--help&lt;/option&gt; output, after &lt;literal&gt;&lt;replaceable&gt;programname&lt;/replaceable&gt; [OPTION...]&lt;/literal&gt;</doc>
-          <type name="utf8" c:type="char*"/>
-        </parameter>
-        <parameter name="entries" transfer-ownership="none" allow-none="1">
-          <doc xml:whitespace="preserve">a %NULL-terminated array of #GOptionEntry&lt;!-- --&gt;s describing the options of your program, or %NULL</doc>
-          <type name="GLib.OptionEntry" c:type="GOptionEntry*"/>
-        </parameter>
-        <parameter name="translation_domain"
-                   transfer-ownership="none"
-                   allow-none="1">
-          <doc xml:whitespace="preserve">a translation domain to use for translating the &lt;option&gt;--help&lt;/option&gt; output for the options in @entries with gettext(), or %NULL</doc>
-          <type name="utf8" c:type="char*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="texture_error_quark"
-              c:identifier="gtk_clutter_texture_error_quark">
-      <return-value transfer-ownership="none">
-        <type name="GLib.Quark" c:type="GQuark"/>
-      </return-value>
-    </function>
-    <function name="texture_new_from_icon_name"
-              c:identifier="gtk_clutter_texture_new_from_icon_name"
-              version="0.8"
-              introspectable="0">
-      <doc xml:whitespace="preserve">Creates a new #ClutterTexture and sets its contents to be
-the @icon_name from the current icon theme.
-was %NULL and @icon_name was not found.</doc>
-      <return-value>
-        <doc xml:whitespace="preserve">the newly created texture, or %NULL if @widget</doc>
-        <type name="Clutter.Actor" c:type="ClutterActor*"/>
-      </return-value>
-      <parameters>
-        <parameter name="widget" transfer-ownership="none">
-          <doc xml:whitespace="preserve">a #GtkWidget or %NULL</doc>
-          <type name="Gtk.Widget" c:type="GtkWidget*"/>
-        </parameter>
-        <parameter name="icon_name" transfer-ownership="none">
-          <doc xml:whitespace="preserve">the name of the icon</doc>
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-        <parameter name="size" transfer-ownership="none">
-          <doc xml:whitespace="preserve">the size of the icon, or -1</doc>
-          <type name="Gtk.IconSize" c:type="GtkIconSize"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="texture_new_from_pixbuf"
-              c:identifier="gtk_clutter_texture_new_from_pixbuf"
-              version="0.8"
-              introspectable="0">
-      <doc xml:whitespace="preserve">Creates a new #ClutterTexture and sets its contents with a copy
-of @pixbuf.</doc>
-      <return-value>
-        <doc xml:whitespace="preserve">the newly created #ClutterTexture</doc>
-        <type name="Clutter.Actor" c:type="ClutterActor*"/>
-      </return-value>
-      <parameters>
-        <parameter name="pixbuf" transfer-ownership="none">
-          <doc xml:whitespace="preserve">a #GdkPixbuf</doc>
-          <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="texture_new_from_stock"
-              c:identifier="gtk_clutter_texture_new_from_stock"
-              version="0.8"
-              introspectable="0">
-      <doc xml:whitespace="preserve">Creates a new #ClutterTexture and sets its contents using the stock
-icon @stock_id as rendered by @widget.</doc>
-      <return-value>
-        <doc xml:whitespace="preserve">the newly created #ClutterTexture</doc>
-        <type name="Clutter.Actor" c:type="ClutterActor*"/>
-      </return-value>
-      <parameters>
-        <parameter name="widget" transfer-ownership="none">
-          <doc xml:whitespace="preserve">a #GtkWidget</doc>
-          <type name="Gtk.Widget" c:type="GtkWidget*"/>
-        </parameter>
-        <parameter name="stock_id" transfer-ownership="none">
-          <doc xml:whitespace="preserve">the stock id of the icon</doc>
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-        <parameter name="size" transfer-ownership="none">
-          <doc xml:whitespace="preserve">the size of the icon, or -1</doc>
-          <type name="Gtk.IconSize" c:type="GtkIconSize"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="texture_set_from_icon_name"
-              c:identifier="gtk_clutter_texture_set_from_icon_name"
-              version="0.8"
-              throws="1">
-      <doc xml:whitespace="preserve">Sets the contents of @texture using the @icon_name from the
-current icon theme.</doc>
-      <return-value transfer-ownership="none">
-        <doc xml:whitespace="preserve">%TRUE on success, %FALSE on failure.</doc>
-        <type name="gboolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="texture" transfer-ownership="none">
-          <doc xml:whitespace="preserve">a #ClutterTexture</doc>
-          <type name="Clutter.Texture" c:type="ClutterTexture*"/>
-        </parameter>
-        <parameter name="widget" transfer-ownership="none">
-          <doc xml:whitespace="preserve">a #GtkWidget or %NULL</doc>
-          <type name="Gtk.Widget" c:type="GtkWidget*"/>
-        </parameter>
-        <parameter name="icon_name" transfer-ownership="none">
-          <doc xml:whitespace="preserve">the name of the icon</doc>
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-        <parameter name="size" transfer-ownership="none">
-          <doc xml:whitespace="preserve">the icon size or -1</doc>
-          <type name="Gtk.IconSize" c:type="GtkIconSize"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="texture_set_from_pixbuf"
-              c:identifier="gtk_clutter_texture_set_from_pixbuf"
-              version="0.8"
-              throws="1">
-      <doc xml:whitespace="preserve">Sets the contents of @texture with a copy of @pixbuf.</doc>
-      <return-value transfer-ownership="none">
-        <doc xml:whitespace="preserve">%TRUE on success, %FALSE on failure.</doc>
-        <type name="gboolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="texture" transfer-ownership="none">
-          <doc xml:whitespace="preserve">a #ClutterTexture</doc>
-          <type name="Clutter.Texture" c:type="ClutterTexture*"/>
-        </parameter>
-        <parameter name="pixbuf" transfer-ownership="none">
-          <doc xml:whitespace="preserve">a #GdkPixbuf</doc>
-          <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="texture_set_from_stock"
-              c:identifier="gtk_clutter_texture_set_from_stock"
-              version="0.8"
-              throws="1">
-      <doc xml:whitespace="preserve">Sets the contents of @texture using the stock icon @stock_id, as
-rendered by @widget.</doc>
-      <return-value transfer-ownership="none">
-        <doc xml:whitespace="preserve">%TRUE on success, %FALSE on failure.</doc>
-        <type name="gboolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="texture" transfer-ownership="none">
-          <doc xml:whitespace="preserve">a #ClutterTexture</doc>
-          <type name="Clutter.Texture" c:type="ClutterTexture*"/>
-        </parameter>
-        <parameter name="widget" transfer-ownership="none">
-          <doc xml:whitespace="preserve">a #GtkWidget</doc>
-          <type name="Gtk.Widget" c:type="GtkWidget*"/>
-        </parameter>
-        <parameter name="stock_id" transfer-ownership="none">
-          <doc xml:whitespace="preserve">the stock id of the icon</doc>
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-        <parameter name="size" transfer-ownership="none">
-          <doc xml:whitespace="preserve">the size of the icon, or -1</doc>
-          <type name="Gtk.IconSize" c:type="GtkIconSize"/>
-        </parameter>
-      </parameters>
-    </function>
-  </namespace>
-</repository>
diff --git a/extra/clutter/gtk/ffi/ffi.factor b/extra/clutter/gtk/ffi/ffi.factor
deleted file mode 100644 (file)
index 088899a..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-! Copyright (C) 2010 Anton Gorenko.
-! See http://factorcode.org/license.txt for BSD license.
-USING: alien alien.libraries alien.syntax combinators
-gobject-introspection kernel system vocabs.loader ;
-IN: clutter.gtk.ffi
-
-<<
-"clutter.ffi" require
-"gtk.ffi" require
->>
-
-LIBRARY: clutter.gtk
-
-<<
-"clutter.gtk" {
-    { [ os winnt? ] [ drop ] }
-    { [ os macosx? ] [ drop ] }
-    { [ os unix? ] [ "libclutter-gtk-0.10.so" cdecl add-library ] }
-} cond
->>
-
-GIR: vocab:clutter/gtk/GtkClutter-0.10.gir
-
diff --git a/extra/clutter/gtk/gtk.factor b/extra/clutter/gtk/gtk.factor
deleted file mode 100644 (file)
index 6c495f5..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-! Copyright (C) 2010 Anton Gorenko.
-! See http://factorcode.org/license.txt for BSD license.
-USING: clutter.gtk.ffi ;
-IN: clutter.gtk
-
diff --git a/extra/clutter/json/Json-1.0.gir b/extra/clutter/json/Json-1.0.gir
deleted file mode 100644 (file)
index e945408..0000000
+++ /dev/null
@@ -1,2925 +0,0 @@
-<?xml version="1.0"?>
-<!-- This file was automatically generated from C sources - DO NOT EDIT!
-To affect the contents of this file, edit the original C definitions,
-and/or use gtk-doc annotations.  -->
-<repository version="1.2"
-            xmlns="http://www.gtk.org/introspection/core/1.0"
-            xmlns:c="http://www.gtk.org/introspection/c/1.0"
-            xmlns:glib="http://www.gtk.org/introspection/glib/1.0">
-  <include name="GLib" version="2.0"/>
-  <include name="GObject" version="2.0"/>
-  <include name="Gio" version="2.0"/>
-  <package name="json-glib-1.0"/>
-  <namespace name="Json"
-             version="1.0"
-             shared-library="libjson-glib-1.0.so.0"
-             c:identifier-prefixes="Json"
-             c:symbol-prefixes="json">
-    <record name="Array"
-            c:type="JsonArray"
-            glib:type-name="JsonArray"
-            glib:get-type="json_array_get_type"
-            c:symbol-prefix="array">
-      <doc xml:whitespace="preserve">A JSON array type. The contents of the #JsonArray structure are private
-and should only be accessed by the provided API</doc>
-      <constructor name="new" c:identifier="json_array_new">
-        <doc xml:whitespace="preserve">Creates a new #JsonArray.</doc>
-        <return-value transfer-ownership="full">
-          <doc xml:whitespace="preserve">the newly created #JsonArray</doc>
-          <type name="Array" c:type="JsonArray*"/>
-        </return-value>
-      </constructor>
-      <constructor name="sized_new" c:identifier="json_array_sized_new">
-        <doc xml:whitespace="preserve">Creates a new #JsonArray with @n_elements slots already allocated.</doc>
-        <return-value transfer-ownership="full">
-          <doc xml:whitespace="preserve">the newly created #JsonArray</doc>
-          <type name="Array" c:type="JsonArray*"/>
-        </return-value>
-        <parameters>
-          <parameter name="n_elements" transfer-ownership="none">
-            <doc xml:whitespace="preserve">number of slots to pre-allocate</doc>
-            <type name="guint" c:type="guint"/>
-          </parameter>
-        </parameters>
-      </constructor>
-      <method name="add_array_element"
-              c:identifier="json_array_add_array_element"
-              version="0.8">
-        <doc xml:whitespace="preserve">Conveniently adds an array into @array. The @array takes ownership
-of the newly added #JsonArray</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="value" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #JsonArray</doc>
-            <type name="Array" c:type="JsonArray*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="add_boolean_element"
-              c:identifier="json_array_add_boolean_element"
-              version="0.8">
-        <doc xml:whitespace="preserve">Conveniently adds a boolean @value into @array</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="value" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a boolean value</doc>
-            <type name="gboolean" c:type="gboolean"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="add_double_element"
-              c:identifier="json_array_add_double_element"
-              version="0.8">
-        <doc xml:whitespace="preserve">Conveniently adds a floating point @value into @array</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="value" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a floating point value</doc>
-            <type name="gdouble" c:type="gdouble"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="add_element" c:identifier="json_array_add_element">
-        <doc xml:whitespace="preserve">Appends @node inside @array. The array will take ownership of the
-#JsonNode.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="node" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #JsonNode</doc>
-            <type name="Node" c:type="JsonNode*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="add_int_element"
-              c:identifier="json_array_add_int_element"
-              version="0.8">
-        <doc xml:whitespace="preserve">Conveniently adds an integer @value into @array</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="value" transfer-ownership="none">
-            <doc xml:whitespace="preserve">an integer value</doc>
-            <type name="gint64" c:type="gint64"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="add_null_element"
-              c:identifier="json_array_add_null_element"
-              version="0.8">
-        <doc xml:whitespace="preserve">Conveniently adds a null element into @array</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </method>
-      <method name="add_object_element"
-              c:identifier="json_array_add_object_element"
-              version="0.8">
-        <doc xml:whitespace="preserve">Conveniently adds an object into @array. The @array takes ownership
-of the newly added #JsonObject</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="value" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #JsonObject</doc>
-            <type name="Object" c:type="JsonObject*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="add_string_element"
-              c:identifier="json_array_add_string_element"
-              version="0.8">
-        <doc xml:whitespace="preserve">Conveniently adds a string @value into @array</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="value" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a string value</doc>
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="dup_element"
-              c:identifier="json_array_dup_element"
-              version="0.6">
-        <doc xml:whitespace="preserve">Retrieves a copy of the #JsonNode containing the value of the
-element at @index_ inside a #JsonArray
-index. Use json_node_free() when done.</doc>
-        <return-value transfer-ownership="full">
-          <doc xml:whitespace="preserve">a copy of the #JsonNode at the requested</doc>
-          <type name="Node" c:type="JsonNode*"/>
-        </return-value>
-        <parameters>
-          <parameter name="index_" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the index of the element to retrieve</doc>
-            <type name="guint" c:type="guint"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="foreach_element"
-              c:identifier="json_array_foreach_element"
-              version="0.8">
-        <doc xml:whitespace="preserve">Iterates over all elements of @array and calls @func on
-each one of them.
-It is safe to change the value of a #JsonNode of the @array
-from within the iterator @func, but it is not safe to add or
-remove elements from the @array.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="func"
-                     transfer-ownership="none"
-                     scope="call"
-                     closure="1">
-            <doc xml:whitespace="preserve">the function to be called on each element</doc>
-            <type name="ArrayForeach" c:type="JsonArrayForeach"/>
-          </parameter>
-          <parameter name="data" transfer-ownership="none">
-            <doc xml:whitespace="preserve">data to be passed to the function</doc>
-            <type name="gpointer" c:type="gpointer"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_array_element"
-              c:identifier="json_array_get_array_element"
-              version="0.8">
-        <doc xml:whitespace="preserve">Conveniently retrieves the array from the element at @index_
-inside @array</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the array</doc>
-          <type name="Array" c:type="JsonArray*"/>
-        </return-value>
-        <parameters>
-          <parameter name="index_" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the index of the element to retrieve</doc>
-            <type name="guint" c:type="guint"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_boolean_element"
-              c:identifier="json_array_get_boolean_element"
-              version="0.8">
-        <doc xml:whitespace="preserve">Conveniently retrieves the boolean value of the element at @index_
-inside @array</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the integer value</doc>
-          <type name="gboolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="index_" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the index of the element to retrieve</doc>
-            <type name="guint" c:type="guint"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_double_element"
-              c:identifier="json_array_get_double_element"
-              version="0.8">
-        <doc xml:whitespace="preserve">Conveniently retrieves the floating point value of the element at</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the floating point value</doc>
-          <type name="gdouble" c:type="gdouble"/>
-        </return-value>
-        <parameters>
-          <parameter name="index_" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the index of the element to retrieve</doc>
-            <type name="guint" c:type="guint"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_element" c:identifier="json_array_get_element">
-        <doc xml:whitespace="preserve">Retrieves the #JsonNode containing the value of the element at @index_
-inside a #JsonArray.</doc>
-        <return-value transfer-ownership="full">
-          <doc xml:whitespace="preserve">a pointer to the #JsonNode at the requested index</doc>
-          <type name="Node" c:type="JsonNode*"/>
-        </return-value>
-        <parameters>
-          <parameter name="index_" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the index of the element to retrieve</doc>
-            <type name="guint" c:type="guint"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_elements" c:identifier="json_array_get_elements">
-        <doc xml:whitespace="preserve">Gets the elements of a #JsonArray as a list of #JsonNode&lt;!-- --&gt;s.
-containing the elements of the array. The contents of the list are
-owned by the array and should never be modified or freed. Use
-g_list_free() on the returned list when done using it</doc>
-        <return-value transfer-ownership="container">
-          <doc xml:whitespace="preserve">a #GList</doc>
-          <type name="GLib.List" c:type="GList*">
-            <type name="Node"/>
-          </type>
-        </return-value>
-      </method>
-      <method name="get_int_element"
-              c:identifier="json_array_get_int_element"
-              version="0.8">
-        <doc xml:whitespace="preserve">Conveniently retrieves the integer value of the element at @index_
-inside @array</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the integer value</doc>
-          <type name="gint64" c:type="gint64"/>
-        </return-value>
-        <parameters>
-          <parameter name="index_" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the index of the element to retrieve</doc>
-            <type name="guint" c:type="guint"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_length" c:identifier="json_array_get_length">
-        <doc xml:whitespace="preserve">Retrieves the length of a #JsonArray</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the length of the array</doc>
-          <type name="guint" c:type="guint"/>
-        </return-value>
-      </method>
-      <method name="get_null_element"
-              c:identifier="json_array_get_null_element"
-              version="0.8">
-        <doc xml:whitespace="preserve">Conveniently retrieves whether the element at @index_ is set to null</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">%TRUE if the element is null</doc>
-          <type name="gboolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="index_" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the index of the element to retrieve</doc>
-            <type name="guint" c:type="guint"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_object_element"
-              c:identifier="json_array_get_object_element"
-              version="0.8">
-        <doc xml:whitespace="preserve">Conveniently retrieves the object from the element at @index_
-inside @array</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the object</doc>
-          <type name="Object" c:type="JsonObject*"/>
-        </return-value>
-        <parameters>
-          <parameter name="index_" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the index of the element to retrieve</doc>
-            <type name="guint" c:type="guint"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_string_element"
-              c:identifier="json_array_get_string_element"
-              version="0.8">
-        <doc xml:whitespace="preserve">Conveniently retrieves the string value of the element at @index_
-inside @array
-the #JsonArray and should not be modified or freed</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the string value; the returned string is owned by</doc>
-          <type name="utf8" c:type="gchar*"/>
-        </return-value>
-        <parameters>
-          <parameter name="index_" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the index of the element to retrieve</doc>
-            <type name="guint" c:type="guint"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="ref" c:identifier="json_array_ref">
-        <doc xml:whitespace="preserve">Increase by one the reference count of a #JsonArray.
-increased by one.</doc>
-        <return-value transfer-ownership="full">
-          <doc xml:whitespace="preserve">the passed #JsonArray, with the reference count</doc>
-          <type name="Array" c:type="JsonArray*"/>
-        </return-value>
-      </method>
-      <method name="remove_element" c:identifier="json_array_remove_element">
-        <doc xml:whitespace="preserve">Removes the #JsonNode inside @array at @index_ freeing its allocated
-resources.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="index_" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the position of the element to be removed</doc>
-            <type name="guint" c:type="guint"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="unref" c:identifier="json_array_unref">
-        <doc xml:whitespace="preserve">Decreases by one the reference count of a #JsonArray. If the
-reference count reaches zero, the array is destroyed and all
-its allocated resources are freed.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </method>
-    </record>
-    <callback name="ArrayForeach" c:type="JsonArrayForeach" version="0.8">
-      <doc xml:whitespace="preserve">The function to be passed to json_array_foreach_element(). You
-should not add or remove elements to and from @array within
-this function. It is safe to change the value of @element_node.</doc>
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="array" transfer-ownership="none">
-          <doc xml:whitespace="preserve">the iterated #JsonArray</doc>
-          <type name="Array" c:type="JsonArray*"/>
-        </parameter>
-        <parameter name="index_" transfer-ownership="none">
-          <doc xml:whitespace="preserve">the index of the element</doc>
-          <type name="guint" c:type="guint"/>
-        </parameter>
-        <parameter name="element_node" transfer-ownership="none">
-          <doc xml:whitespace="preserve">a #JsonNode containing the value at @index_</doc>
-          <type name="Node" c:type="JsonNode*"/>
-        </parameter>
-        <parameter name="user_data" transfer-ownership="none" closure="3">
-          <doc xml:whitespace="preserve">data passed to the function</doc>
-          <type name="gpointer" c:type="gpointer"/>
-        </parameter>
-      </parameters>
-    </callback>
-    <callback name="BoxedDeserializeFunc"
-              c:type="JsonBoxedDeserializeFunc"
-              version="0.10"
-              introspectable="0">
-      <doc xml:whitespace="preserve">Deserializes the contents of the passed #JsonNode into a #GBoxed</doc>
-      <return-value>
-        <doc xml:whitespace="preserve">the newly created boxed type</doc>
-        <type name="gpointer" c:type="gpointer"/>
-      </return-value>
-      <parameters>
-        <parameter name="node" transfer-ownership="none">
-          <doc xml:whitespace="preserve">a #JsonNode</doc>
-          <type name="Node" c:type="JsonNode*"/>
-        </parameter>
-      </parameters>
-    </callback>
-    <callback name="BoxedSerializeFunc"
-              c:type="JsonBoxedSerializeFunc"
-              version="0.10">
-      <doc xml:whitespace="preserve">Serializes the passed #GBoxed and stores it inside a #JsonNode</doc>
-      <return-value transfer-ownership="full">
-        <doc xml:whitespace="preserve">the newly created #JsonNode</doc>
-        <type name="Node" c:type="JsonNode*"/>
-      </return-value>
-      <parameters>
-        <parameter name="boxed" transfer-ownership="none">
-          <doc xml:whitespace="preserve">a #GBoxed</doc>
-          <type name="gpointer" c:type="gconstpointer"/>
-        </parameter>
-      </parameters>
-    </callback>
-    <class name="Builder"
-           c:symbol-prefix="builder"
-           c:type="JsonBuilder"
-           version="0.12"
-           parent="GObject.Object"
-           glib:type-name="JsonBuilder"
-           glib:get-type="json_builder_get_type"
-           glib:type-struct="BuilderClass">
-      <doc xml:whitespace="preserve">The &lt;structname&gt;JsonBuilder&lt;/structname&gt; structure contains only
-private data and shouls be accessed using the provided API</doc>
-      <constructor name="new" c:identifier="json_builder_new">
-        <doc xml:whitespace="preserve">Creates a new #JsonBuilder. You can use this object to generate a
-JSON tree and obtain the root #JsonNode&lt;!-- --&gt;s.</doc>
-        <return-value transfer-ownership="full">
-          <doc xml:whitespace="preserve">the newly created #JsonBuilder instance</doc>
-          <type name="Builder" c:type="JsonBuilder*"/>
-        </return-value>
-      </constructor>
-      <method name="add_boolean_value"
-              c:identifier="json_builder_add_boolean_value">
-        <doc xml:whitespace="preserve">If called after json_builder_set_member_name(), sets @value as member of the
-most recent opened object, otherwise @value is added as element of the most
-recent opened array.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the #JsonBuilder, or %NULL if the call was inconsistent</doc>
-          <type name="Builder" c:type="JsonBuilder*"/>
-        </return-value>
-        <parameters>
-          <parameter name="value" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the value of the member or element</doc>
-            <type name="gboolean" c:type="gboolean"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="add_double_value"
-              c:identifier="json_builder_add_double_value">
-        <doc xml:whitespace="preserve">If called after json_builder_set_member_name(), sets @value as member of the
-most recent opened object, otherwise @value is added as element of the most
-recent opened array.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the #JsonBuilder, or %NULL if the call was inconsistent</doc>
-          <type name="Builder" c:type="JsonBuilder*"/>
-        </return-value>
-        <parameters>
-          <parameter name="value" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the value of the member or element</doc>
-            <type name="gdouble" c:type="gdouble"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="add_int_value" c:identifier="json_builder_add_int_value">
-        <doc xml:whitespace="preserve">If called after json_builder_set_member_name(), sets @value as member of the
-most recent opened object, otherwise @value is added as element of the most
-recent opened array.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the #JsonBuilder, or %NULL if the call was inconsistent</doc>
-          <type name="Builder" c:type="JsonBuilder*"/>
-        </return-value>
-        <parameters>
-          <parameter name="value" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the value of the member or element</doc>
-            <type name="gint64" c:type="gint64"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="add_null_value" c:identifier="json_builder_add_null_value">
-        <doc xml:whitespace="preserve">If called after json_builder_set_member_name(), sets null as member of the
-most recent opened object, otherwise null is added as element of the most
-recent opened array.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the #JsonBuilder, or %NULL if the call was inconsistent</doc>
-          <type name="Builder" c:type="JsonBuilder*"/>
-        </return-value>
-      </method>
-      <method name="add_string_value"
-              c:identifier="json_builder_add_string_value">
-        <doc xml:whitespace="preserve">If called after json_builder_set_member_name(), sets @value as member of the
-most recent opened object, otherwise @value is added as element of the most
-recent opened array.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the #JsonBuilder, or %NULL if the call was inconsistent</doc>
-          <type name="Builder" c:type="JsonBuilder*"/>
-        </return-value>
-        <parameters>
-          <parameter name="value" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the value of the member or element</doc>
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="add_value" c:identifier="json_builder_add_value">
-        <doc xml:whitespace="preserve">If called after json_builder_set_member_name(), sets @node as member of the
-most recent opened object, otherwise @node is added as element of the most
-recent opened array.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the #JsonBuilder, or %NULL if the call was inconsistent</doc>
-          <type name="Builder" c:type="JsonBuilder*"/>
-        </return-value>
-        <parameters>
-          <parameter name="node" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the value of the member or element</doc>
-            <type name="Node" c:type="JsonNode*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="begin_array" c:identifier="json_builder_begin_array">
-        <doc xml:whitespace="preserve">Opens a subarray inside the given @builder. When done adding members to
-the subarray, json_builder_end_array() must be called.
-Can be called for first or only if the call is associated to an object member
-or an array element.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the #JsonBuilder, or %NULL if the call was inconsistent</doc>
-          <type name="Builder" c:type="JsonBuilder*"/>
-        </return-value>
-      </method>
-      <method name="begin_object" c:identifier="json_builder_begin_object">
-        <doc xml:whitespace="preserve">Opens a subobject inside the given @builder. When done adding members to
-the subobject, json_builder_end_object() must be called.
-Can be called for first or only if the call is associated to an object member
-or an array element.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the #JsonBuilder, or %NULL if the call was inconsistent</doc>
-          <type name="Builder" c:type="JsonBuilder*"/>
-        </return-value>
-      </method>
-      <method name="end_array" c:identifier="json_builder_end_array">
-        <doc xml:whitespace="preserve">Closes the subarray inside the given @builder that was opened by the most
-recent call to json_builder_begin_array().
-Cannot be called after json_builder_set_member_name().</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the #JsonBuilder, or %NULL if the call was inconsistent</doc>
-          <type name="Builder" c:type="JsonBuilder*"/>
-        </return-value>
-      </method>
-      <method name="end_object" c:identifier="json_builder_end_object">
-        <doc xml:whitespace="preserve">Closes the subobject inside the given @builder that was opened by the most
-recent call to json_builder_begin_object().
-Cannot be called after json_builder_set_member_name().</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the #JsonBuilder, or %NULL if the call was inconsistent</doc>
-          <type name="Builder" c:type="JsonBuilder*"/>
-        </return-value>
-      </method>
-      <method name="get_root" c:identifier="json_builder_get_root">
-        <doc xml:whitespace="preserve">Returns the root of the current constructed tree, if the build is complete
-(ie: all opened objects, object members and arrays are being closed).
-Free the returned value with json_node_free().</doc>
-        <return-value transfer-ownership="full">
-          <doc xml:whitespace="preserve">the #JsonNode, or %NULL if the build is not complete.</doc>
-          <type name="Node" c:type="JsonNode*"/>
-        </return-value>
-      </method>
-      <method name="reset" c:identifier="json_builder_reset">
-        <doc xml:whitespace="preserve">Resets the state of the @builder back to its initial state.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </method>
-      <method name="set_member_name"
-              c:identifier="json_builder_set_member_name">
-        <doc xml:whitespace="preserve">Set the name of the next member in an object. The next call must add a value,
-open an object or an array.
-Can be called only if the call is associated to an object.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the #JsonBuilder, or %NULL if the call was inconsistent</doc>
-          <type name="Builder" c:type="JsonBuilder*"/>
-        </return-value>
-        <parameters>
-          <parameter name="member_name" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the name of the member</doc>
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <field name="parent_instance">
-        <type name="GObject.Object" c:type="GObject"/>
-      </field>
-      <field name="priv">
-        <type name="BuilderPrivate" c:type="JsonBuilderPrivate*"/>
-      </field>
-    </class>
-    <record name="BuilderClass"
-            c:type="JsonBuilderClass"
-            glib:is-gtype-struct-for="Builder"
-            version="0.12">
-      <doc xml:whitespace="preserve">The &lt;structname&gt;JsonBuilder&lt;/structname&gt; structure contains only
-private data</doc>
-      <field name="parent_class">
-        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
-      </field>
-      <field name="_json_reserved1" introspectable="0">
-        <callback name="_json_reserved1">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-      <field name="_json_reserved2" introspectable="0">
-        <callback name="_json_reserved2">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-    </record>
-    <record name="BuilderPrivate" c:type="JsonBuilderPrivate" disguised="1">
-    </record>
-    <class name="Generator"
-           c:symbol-prefix="generator"
-           c:type="JsonGenerator"
-           parent="GObject.Object"
-           glib:type-name="JsonGenerator"
-           glib:get-type="json_generator_get_type"
-           glib:type-struct="GeneratorClass">
-      <doc xml:whitespace="preserve">JSON data streams generator. The contents of the #JsonGenerator structure
-are private and should only be accessed via the provided API.</doc>
-      <constructor name="new" c:identifier="json_generator_new">
-        <doc xml:whitespace="preserve">Creates a new #JsonGenerator. You can use this object to generate a
-JSON data stream starting from a data object model composed by
-#JsonNode&lt;!-- --&gt;s.</doc>
-        <return-value transfer-ownership="full">
-          <doc xml:whitespace="preserve">the newly created #JsonGenerator instance</doc>
-          <type name="Generator" c:type="JsonGenerator*"/>
-        </return-value>
-      </constructor>
-      <method name="set_root" c:identifier="json_generator_set_root">
-        <doc xml:whitespace="preserve">Sets @node as the root of the JSON data stream to be serialized by
-the #JsonGenerator.
-&lt;note&gt;The node is copied by the generator object, so it can be safely
-freed after calling this function.&lt;/note&gt;</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="node" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #JsonNode</doc>
-            <type name="Node" c:type="JsonNode*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="to_data" c:identifier="json_generator_to_data">
-        <doc xml:whitespace="preserve">Generates a JSON data stream from @generator and returns it as a
-buffer.
-Use g_free() to free the allocated resources.</doc>
-        <return-value transfer-ownership="full">
-          <doc xml:whitespace="preserve">a newly allocated buffer holding a JSON data stream.</doc>
-          <type name="utf8" c:type="gchar*"/>
-        </return-value>
-        <parameters>
-          <parameter name="length"
-                     direction="out"
-                     caller-allocates="0"
-                     transfer-ownership="full">
-            <doc xml:whitespace="preserve">return location for the length of the returned buffer, or %NULL</doc>
-            <type name="gulong" c:type="gsize*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="to_file" c:identifier="json_generator_to_file" throws="1">
-        <doc xml:whitespace="preserve">Creates a JSON data stream and puts it inside @filename, overwriting the
-current file contents. This operation is atomic.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">%TRUE if saving was successful.</doc>
-          <type name="gboolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="filename" transfer-ownership="none">
-            <doc xml:whitespace="preserve">path to the target file</doc>
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="to_stream"
-              c:identifier="json_generator_to_stream"
-              version="0.12"
-              throws="1">
-        <doc xml:whitespace="preserve">Outputs JSON data and streams it (synchronously) to @stream.
-on failure. In case of error, the #GError will be filled accordingly</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">%TRUE if the write operation was successful, and %FALSE</doc>
-          <type name="gboolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="stream" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #GOutputStream</doc>
-            <type name="Gio.OutputStream" c:type="GOutputStream*"/>
-          </parameter>
-          <parameter name="cancellable"
-                     transfer-ownership="none"
-                     allow-none="1">
-            <doc xml:whitespace="preserve">a #GCancellable, or %NULL</doc>
-            <type name="Gio.Cancellable" c:type="GCancellable*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <property name="indent" writable="1" transfer-ownership="none">
-        <doc xml:whitespace="preserve">Number of spaces to be used to indent when pretty printing.</doc>
-        <type name="guint"/>
-      </property>
-      <property name="indent-char"
-                version="0.6"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">The character that should be used when indenting in pretty print.</doc>
-        <type name="guint"/>
-      </property>
-      <property name="pretty" writable="1" transfer-ownership="none">
-        <doc xml:whitespace="preserve">Whether the output should be "pretty-printed", with indentation and
-newlines. The indentation level can be controlled by using the
-JsonGenerator:indent property</doc>
-        <type name="gboolean"/>
-      </property>
-      <property name="root"
-                version="0.4"
-                writable="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">The root #JsonNode to be used when constructing a JSON data
-stream.</doc>
-        <type name="Node"/>
-      </property>
-      <field name="parent_instance">
-        <type name="GObject.Object" c:type="GObject"/>
-      </field>
-      <field name="priv">
-        <type name="GeneratorPrivate" c:type="JsonGeneratorPrivate*"/>
-      </field>
-    </class>
-    <record name="GeneratorClass"
-            c:type="JsonGeneratorClass"
-            glib:is-gtype-struct-for="Generator">
-      <doc xml:whitespace="preserve">#JsonGenerator class</doc>
-      <field name="parent_class">
-        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
-      </field>
-      <field name="_json_reserved1" introspectable="0">
-        <callback name="_json_reserved1">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-      <field name="_json_reserved2" introspectable="0">
-        <callback name="_json_reserved2">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-      <field name="_json_reserved3" introspectable="0">
-        <callback name="_json_reserved3">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-      <field name="_json_reserved4" introspectable="0">
-        <callback name="_json_reserved4">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-    </record>
-    <record name="GeneratorPrivate"
-            c:type="JsonGeneratorPrivate"
-            disguised="1">
-    </record>
-    <record name="Node"
-            c:type="JsonNode"
-            glib:type-name="JsonNode"
-            glib:get-type="json_node_get_type"
-            c:symbol-prefix="node">
-      <doc xml:whitespace="preserve">A generic container of JSON data types. The contents of the #JsonNode
-structure are private and should only be accessed via the provided
-functions and never directly.</doc>
-      <constructor name="new" c:identifier="json_node_new">
-        <doc xml:whitespace="preserve">Creates a new #JsonNode of @type.</doc>
-        <return-value transfer-ownership="full">
-          <doc xml:whitespace="preserve">the newly created #JsonNode</doc>
-          <type name="Node" c:type="JsonNode*"/>
-        </return-value>
-        <parameters>
-          <parameter name="type" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #JsonNodeType</doc>
-            <type name="NodeType" c:type="JsonNodeType"/>
-          </parameter>
-        </parameters>
-      </constructor>
-      <method name="copy" c:identifier="json_node_copy">
-        <doc xml:whitespace="preserve">Copies @node. If the node contains complex data types then the reference
-count of the objects is increased.</doc>
-        <return-value transfer-ownership="full">
-          <doc xml:whitespace="preserve">the copied #JsonNode</doc>
-          <type name="Node" c:type="JsonNode*"/>
-        </return-value>
-      </method>
-      <method name="dup_array" c:identifier="json_node_dup_array">
-        <return-value transfer-ownership="full">
-          <type name="Array" c:type="JsonArray*"/>
-        </return-value>
-      </method>
-      <method name="dup_object" c:identifier="json_node_dup_object">
-        <doc xml:whitespace="preserve">Retrieves the #JsonObject inside @node. The reference count of
-the returned object is increased.</doc>
-        <return-value transfer-ownership="full">
-          <doc xml:whitespace="preserve">the #JsonObject</doc>
-          <type name="Object" c:type="JsonObject*"/>
-        </return-value>
-      </method>
-      <method name="dup_string" c:identifier="json_node_dup_string">
-        <doc xml:whitespace="preserve">Gets a copy of the string value stored inside a #JsonNode
-of the #JsonNode contents. Use g_free() to free the allocated resources</doc>
-        <return-value transfer-ownership="full">
-          <doc xml:whitespace="preserve">a newly allocated string containing a copy</doc>
-          <type name="utf8" c:type="gchar*"/>
-        </return-value>
-      </method>
-      <method name="free" c:identifier="json_node_free">
-        <doc xml:whitespace="preserve">Frees the resources allocated by @node.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </method>
-      <method name="get_array" c:identifier="json_node_get_array">
-        <doc xml:whitespace="preserve">Retrieves the #JsonArray stored inside a #JsonNode</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the #JsonArray</doc>
-          <type name="Array" c:type="JsonArray*"/>
-        </return-value>
-      </method>
-      <method name="get_boolean" c:identifier="json_node_get_boolean">
-        <doc xml:whitespace="preserve">Gets the boolean value stored inside a #JsonNode</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">a boolean value.</doc>
-          <type name="gboolean" c:type="gboolean"/>
-        </return-value>
-      </method>
-      <method name="get_double" c:identifier="json_node_get_double">
-        <doc xml:whitespace="preserve">Gets the double value stored inside a #JsonNode</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">a double value.</doc>
-          <type name="gdouble" c:type="gdouble"/>
-        </return-value>
-      </method>
-      <method name="get_int" c:identifier="json_node_get_int">
-        <doc xml:whitespace="preserve">Gets the integer value stored inside a #JsonNode</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">an integer value.</doc>
-          <type name="gint64" c:type="gint64"/>
-        </return-value>
-      </method>
-      <method name="get_node_type"
-              c:identifier="json_node_get_node_type"
-              version="0.8">
-        <doc xml:whitespace="preserve">Retrieves the #JsonNodeType of @node</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the type of the node</doc>
-          <type name="NodeType" c:type="JsonNodeType"/>
-        </return-value>
-      </method>
-      <method name="get_object" c:identifier="json_node_get_object">
-        <doc xml:whitespace="preserve">Retrieves the #JsonObject stored inside a #JsonNode</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the #JsonObject</doc>
-          <type name="Object" c:type="JsonObject*"/>
-        </return-value>
-      </method>
-      <method name="get_parent" c:identifier="json_node_get_parent">
-        <doc xml:whitespace="preserve">Retrieves the parent #JsonNode of @node.</doc>
-        <return-value transfer-ownership="full">
-          <doc xml:whitespace="preserve">the parent node, or %NULL if @node is the root node</doc>
-          <type name="Node" c:type="JsonNode*"/>
-        </return-value>
-      </method>
-      <method name="get_string" c:identifier="json_node_get_string">
-        <doc xml:whitespace="preserve">Gets the string value stored inside a #JsonNode</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">a string value.</doc>
-          <type name="utf8" c:type="gchar*"/>
-        </return-value>
-      </method>
-      <method name="get_value" c:identifier="json_node_get_value">
-        <doc xml:whitespace="preserve">Retrieves a value from a #JsonNode and copies into @value. When done
-using it, call g_value_unset() on the #GValue.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="value" transfer-ownership="none">
-            <doc xml:whitespace="preserve">return location for an uninitialized value</doc>
-            <type name="GObject.Value" c:type="GValue*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_value_type"
-              c:identifier="json_node_get_value_type"
-              version="0.4">
-        <doc xml:whitespace="preserve">Returns the #GType of the payload of the node.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">a #GType for the payload.</doc>
-          <type name="GType" c:type="GType"/>
-        </return-value>
-      </method>
-      <method name="is_null" c:identifier="json_node_is_null" version="0.8">
-        <doc xml:whitespace="preserve">Checks whether @node is a %JSON_NODE_NULL
-&lt;note&gt;A null node is not the same as a %NULL #JsonNode&lt;/note&gt;</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">%TRUE if the node is null</doc>
-          <type name="gboolean" c:type="gboolean"/>
-        </return-value>
-      </method>
-      <method name="set_array" c:identifier="json_node_set_array">
-        <doc xml:whitespace="preserve">Sets @array inside @node and increases the #JsonArray reference count</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="array" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #JsonArray</doc>
-            <type name="Array" c:type="JsonArray*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_boolean" c:identifier="json_node_set_boolean">
-        <doc xml:whitespace="preserve">Sets @value as the boolean content of the @node, replacing any existing
-content.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="value" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a boolean value</doc>
-            <type name="gboolean" c:type="gboolean"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_double" c:identifier="json_node_set_double">
-        <doc xml:whitespace="preserve">Sets @value as the double content of the @node, replacing any existing
-content.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="value" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a double value</doc>
-            <type name="gdouble" c:type="gdouble"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_int" c:identifier="json_node_set_int">
-        <doc xml:whitespace="preserve">Sets @value as the integer content of the @node, replacing any existing
-content.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="value" transfer-ownership="none">
-            <doc xml:whitespace="preserve">an integer value</doc>
-            <type name="gint64" c:type="gint64"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_object" c:identifier="json_node_set_object">
-        <doc xml:whitespace="preserve">Sets @objects inside @node. The reference count of @object is increased.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="object" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #JsonObject</doc>
-            <type name="Object" c:type="JsonObject*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_parent"
-              c:identifier="json_node_set_parent"
-              version="0.8">
-        <doc xml:whitespace="preserve">Sets the parent #JsonNode of @node</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="parent" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the parent #JsonNode of @node</doc>
-            <type name="Node" c:type="JsonNode*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_string" c:identifier="json_node_set_string">
-        <doc xml:whitespace="preserve">Sets @value as the string content of the @node, replacing any existing
-content.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="value" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a string value</doc>
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_value" c:identifier="json_node_set_value">
-        <doc xml:whitespace="preserve">Sets @value inside @node. The passed #GValue is copied into the #JsonNode</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="value" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the #GValue to set</doc>
-            <type name="GObject.Value" c:type="GValue*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="take_array" c:identifier="json_node_take_array">
-        <doc xml:whitespace="preserve">Sets @array into @node without increasing the #JsonArray reference count.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="array" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #JsonArray</doc>
-            <type name="Array" c:type="JsonArray*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="take_object" c:identifier="json_node_take_object">
-        <doc xml:whitespace="preserve">Sets @object inside @node. The reference count of @object is not increased.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="object" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #JsonObject</doc>
-            <type name="Object" c:type="JsonObject*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="type_name" c:identifier="json_node_type_name">
-        <doc xml:whitespace="preserve">Retrieves the user readable name of the data type contained by @node.
-is owned by the node and should never be modified or freed</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">a string containing the name of the type. The returned string</doc>
-          <type name="utf8" c:type="gchar*"/>
-        </return-value>
-      </method>
-    </record>
-    <enumeration name="NodeType" c:type="JsonNodeType">
-      <doc xml:whitespace="preserve">Indicates the content of a #JsonNode.</doc>
-      <member name="object" value="0" c:identifier="JSON_NODE_OBJECT"/>
-      <member name="array" value="1" c:identifier="JSON_NODE_ARRAY"/>
-      <member name="value" value="2" c:identifier="JSON_NODE_VALUE"/>
-      <member name="null" value="3" c:identifier="JSON_NODE_NULL"/>
-    </enumeration>
-    <record name="Object"
-            c:type="JsonObject"
-            glib:type-name="JsonObject"
-            glib:get-type="json_object_get_type"
-            c:symbol-prefix="object">
-      <doc xml:whitespace="preserve">A JSON object type. The contents of the #JsonObject structure are private
-and should only be accessed by the provided API</doc>
-      <constructor name="new" c:identifier="json_object_new">
-        <doc xml:whitespace="preserve">Creates a new #JsonObject, an JSON object type representation.</doc>
-        <return-value transfer-ownership="full">
-          <doc xml:whitespace="preserve">the newly created #JsonObject</doc>
-          <type name="Object" c:type="JsonObject*"/>
-        </return-value>
-      </constructor>
-      <method name="add_member"
-              c:identifier="json_object_add_member"
-              deprecated="Use json_object_set_member() instead"
-              deprecated-version="0.8">
-        <doc xml:whitespace="preserve">Adds a member named @member_name and containing @node into a #JsonObject.
-The object will take ownership of the #JsonNode.
-This function will return if the @object already contains a member</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="member_name" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the name of the member</doc>
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="node" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the value of the member</doc>
-            <type name="Node" c:type="JsonNode*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="dup_member"
-              c:identifier="json_object_dup_member"
-              version="0.6">
-        <doc xml:whitespace="preserve">Retrieves a copy of the #JsonNode containing the value of @member_name
-inside a #JsonObject
-object member or %NULL. Use json_node_free() when done.</doc>
-        <return-value transfer-ownership="full">
-          <doc xml:whitespace="preserve">(transfer full) a copy of the node for the requested</doc>
-          <type name="Node" c:type="JsonNode*"/>
-        </return-value>
-        <parameters>
-          <parameter name="member_name" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the name of the JSON object member to access</doc>
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="foreach_member"
-              c:identifier="json_object_foreach_member"
-              version="0.8">
-        <doc xml:whitespace="preserve">Iterates over all members of @object and calls @func on
-each one of them.
-It is safe to change the value of a #JsonNode of the @object
-from within the iterator @func, but it is not safe to add or
-remove members from the @object.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="func"
-                     transfer-ownership="none"
-                     scope="call"
-                     closure="1">
-            <doc xml:whitespace="preserve">the function to be called on each member</doc>
-            <type name="ObjectForeach" c:type="JsonObjectForeach"/>
-          </parameter>
-          <parameter name="data" transfer-ownership="none">
-            <doc xml:whitespace="preserve">data to be passed to the function</doc>
-            <type name="gpointer" c:type="gpointer"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_array_member"
-              c:identifier="json_object_get_array_member"
-              version="0.8">
-        <doc xml:whitespace="preserve">Convenience function that retrieves the array
-stored in @member_name of @object</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the array inside the object's member</doc>
-          <type name="Array" c:type="JsonArray*"/>
-        </return-value>
-        <parameters>
-          <parameter name="member_name" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the name of the member</doc>
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_boolean_member"
-              c:identifier="json_object_get_boolean_member"
-              version="0.8">
-        <doc xml:whitespace="preserve">Convenience function that retrieves the boolean value
-stored in @member_name of @object</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the boolean value of the object's member</doc>
-          <type name="gboolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="member_name" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the name of the member</doc>
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_double_member"
-              c:identifier="json_object_get_double_member"
-              version="0.8">
-        <doc xml:whitespace="preserve">Convenience function that retrieves the floating point value
-stored in @member_name of @object</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the floating point value of the object's member</doc>
-          <type name="gdouble" c:type="gdouble"/>
-        </return-value>
-        <parameters>
-          <parameter name="member_name" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the name of the member</doc>
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_int_member"
-              c:identifier="json_object_get_int_member"
-              version="0.8">
-        <doc xml:whitespace="preserve">Convenience function that retrieves the integer value
-stored in @member_name of @object</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the integer value of the object's member</doc>
-          <type name="gint64" c:type="gint64"/>
-        </return-value>
-        <parameters>
-          <parameter name="member_name" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the name of the member</doc>
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_member" c:identifier="json_object_get_member">
-        <doc xml:whitespace="preserve">Retrieves the #JsonNode containing the value of @member_name inside
-a #JsonObject.
-member, or %NULL</doc>
-        <return-value transfer-ownership="full">
-          <doc xml:whitespace="preserve">a pointer to the node for the requested object</doc>
-          <type name="Node" c:type="JsonNode*"/>
-        </return-value>
-        <parameters>
-          <parameter name="member_name" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the name of the JSON object member to access</doc>
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_members" c:identifier="json_object_get_members">
-        <doc xml:whitespace="preserve">Retrieves all the names of the members of a #JsonObject. You can
-obtain the value for each member using json_object_get_member().
-of member names. The content of the list is owned by the #JsonObject
-and should never be modified or freed. When you have finished using
-the returned list, use g_list_free() to free the resources it has
-allocated.</doc>
-        <return-value transfer-ownership="container">
-          <doc xml:whitespace="preserve">a #GList</doc>
-          <type name="GLib.List" c:type="GList*">
-            <type name="utf8"/>
-          </type>
-        </return-value>
-      </method>
-      <method name="get_null_member"
-              c:identifier="json_object_get_null_member"
-              version="0.8">
-        <doc xml:whitespace="preserve">Convenience function that checks whether the value
-stored in @member_name of @object is null</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">%TRUE if the value is null</doc>
-          <type name="gboolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="member_name" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the name of the member</doc>
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_object_member"
-              c:identifier="json_object_get_object_member"
-              version="0.8">
-        <doc xml:whitespace="preserve">Convenience function that retrieves the object
-stored in @member_name of @object</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the object inside the object's member</doc>
-          <type name="Object" c:type="JsonObject*"/>
-        </return-value>
-        <parameters>
-          <parameter name="member_name" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the name of the member</doc>
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_size" c:identifier="json_object_get_size">
-        <doc xml:whitespace="preserve">Retrieves the number of members of a #JsonObject.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the number of members</doc>
-          <type name="guint" c:type="guint"/>
-        </return-value>
-      </method>
-      <method name="get_string_member"
-              c:identifier="json_object_get_string_member"
-              version="0.8">
-        <doc xml:whitespace="preserve">Convenience function that retrieves the string value
-stored in @member_name of @object</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the string value of the object's member</doc>
-          <type name="utf8" c:type="gchar*"/>
-        </return-value>
-        <parameters>
-          <parameter name="member_name" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the name of the member</doc>
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_values" c:identifier="json_object_get_values">
-        <doc xml:whitespace="preserve">Retrieves all the values of the members of a #JsonObject.
-#JsonNode&lt;!-- --&gt;s. The content of the list is owned by the #JsonObject
-and should never be modified or freed. When you have finished using the
-returned list, use g_list_free() to free the resources it has allocated.</doc>
-        <return-value transfer-ownership="container">
-          <doc xml:whitespace="preserve">a #GList of</doc>
-          <type name="GLib.List" c:type="GList*">
-            <type name="Node"/>
-          </type>
-        </return-value>
-      </method>
-      <method name="has_member" c:identifier="json_object_has_member">
-        <doc xml:whitespace="preserve">Checks whether @object has a member named @member_name.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">%TRUE if the JSON object has the requested member</doc>
-          <type name="gboolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="member_name" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the name of a JSON object member</doc>
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="ref" c:identifier="json_object_ref">
-        <doc xml:whitespace="preserve">Increase by one the reference count of a #JsonObject.
-increased by one.</doc>
-        <return-value transfer-ownership="full">
-          <doc xml:whitespace="preserve">the passed #JsonObject, with the reference count</doc>
-          <type name="Object" c:type="JsonObject*"/>
-        </return-value>
-      </method>
-      <method name="remove_member" c:identifier="json_object_remove_member">
-        <doc xml:whitespace="preserve">Removes @member_name from @object, freeing its allocated resources.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="member_name" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the name of the member to remove</doc>
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_array_member"
-              c:identifier="json_object_set_array_member"
-              version="0.8">
-        <doc xml:whitespace="preserve">Convenience function for setting an array @value of
-The @object will take ownership of the passed #JsonArray</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="member_name" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the name of the member</doc>
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="value" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the value of the member</doc>
-            <type name="Array" c:type="JsonArray*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_boolean_member"
-              c:identifier="json_object_set_boolean_member"
-              version="0.8">
-        <doc xml:whitespace="preserve">Convenience function for setting a boolean @value of</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="member_name" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the name of the member</doc>
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="value" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the value of the member</doc>
-            <type name="gboolean" c:type="gboolean"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_double_member"
-              c:identifier="json_object_set_double_member"
-              version="0.8">
-        <doc xml:whitespace="preserve">Convenience function for setting a floating point @value
-of @member_name inside @object.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="member_name" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the name of the member</doc>
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="value" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the value of the member</doc>
-            <type name="gdouble" c:type="gdouble"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_int_member"
-              c:identifier="json_object_set_int_member"
-              version="0.8">
-        <doc xml:whitespace="preserve">Convenience function for setting an integer @value of</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="member_name" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the name of the member</doc>
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="value" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the value of the member</doc>
-            <type name="gint64" c:type="gint64"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_member"
-              c:identifier="json_object_set_member"
-              version="0.8">
-        <doc xml:whitespace="preserve">Sets @node as the value of @member_name inside @object.
-If @object already contains a member called @member_name then
-the member's current value is overwritten. Otherwise, a new
-member is added to @object.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="member_name" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the name of the member</doc>
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="node" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the value of the member</doc>
-            <type name="Node" c:type="JsonNode*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_null_member"
-              c:identifier="json_object_set_null_member"
-              version="0.8">
-        <doc xml:whitespace="preserve">Convenience function for setting a null @value of</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="member_name" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the name of the member</doc>
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_object_member"
-              c:identifier="json_object_set_object_member"
-              version="0.8">
-        <doc xml:whitespace="preserve">Convenience function for setting an object @value of
-The @object will take ownership of the passed #JsonObject</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="member_name" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the name of the member</doc>
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="value" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the value of the member</doc>
-            <type name="Object" c:type="JsonObject*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_string_member"
-              c:identifier="json_object_set_string_member"
-              version="0.8">
-        <doc xml:whitespace="preserve">Convenience function for setting a string @value of</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="member_name" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the name of the member</doc>
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="value" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the value of the member</doc>
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="unref" c:identifier="json_object_unref">
-        <doc xml:whitespace="preserve">Decreases by one the reference count of a #JsonObject. If the
-reference count reaches zero, the object is destroyed and all
-its allocated resources are freed.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </method>
-    </record>
-    <callback name="ObjectForeach" c:type="JsonObjectForeach" version="0.8">
-      <doc xml:whitespace="preserve">The function to be passed to json_object_foreach_member(). You
-should not add or remove members to and from @object within
-this function. It is safe to change the value of @member_node.</doc>
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="object" transfer-ownership="none">
-          <doc xml:whitespace="preserve">the iterated #JsonObject</doc>
-          <type name="Object" c:type="JsonObject*"/>
-        </parameter>
-        <parameter name="member_name" transfer-ownership="none">
-          <doc xml:whitespace="preserve">the name of the member</doc>
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-        <parameter name="member_node" transfer-ownership="none">
-          <doc xml:whitespace="preserve">a #JsonNode containing the @member_name value</doc>
-          <type name="Node" c:type="JsonNode*"/>
-        </parameter>
-        <parameter name="user_data" transfer-ownership="none" closure="3">
-          <doc xml:whitespace="preserve">data passed to the function</doc>
-          <type name="gpointer" c:type="gpointer"/>
-        </parameter>
-      </parameters>
-    </callback>
-    <class name="Parser"
-           c:symbol-prefix="parser"
-           c:type="JsonParser"
-           parent="GObject.Object"
-           glib:type-name="JsonParser"
-           glib:get-type="json_parser_get_type"
-           glib:type-struct="ParserClass">
-      <doc xml:whitespace="preserve">JSON data streams parser. The contents of the #JsonParser structure are
-private and should only be accessed via the provided API.</doc>
-      <constructor name="new" c:identifier="json_parser_new">
-        <doc xml:whitespace="preserve">Creates a new #JsonParser instance. You can use the #JsonParser to
-load a JSON stream from either a file or a buffer and then walk the
-hierarchy using the data types API.
-to release all the memory it allocates.</doc>
-        <return-value transfer-ownership="full">
-          <doc xml:whitespace="preserve">the newly created #JsonParser. Use g_object_unref()</doc>
-          <type name="Parser" c:type="JsonParser*"/>
-        </return-value>
-      </constructor>
-      <function name="error_quark" c:identifier="json_parser_error_quark">
-        <return-value transfer-ownership="none">
-          <type name="GLib.Quark" c:type="GQuark"/>
-        </return-value>
-      </function>
-      <method name="get_current_line"
-              c:identifier="json_parser_get_current_line">
-        <doc xml:whitespace="preserve">Retrieves the line currently parsed, starting from 1.
-This function has defined behaviour only while parsing; calling this
-function from outside the signal handlers emitted by #JsonParser will
-yield 0.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the currently parsed line, or 0.</doc>
-          <type name="guint" c:type="guint"/>
-        </return-value>
-      </method>
-      <method name="get_current_pos"
-              c:identifier="json_parser_get_current_pos">
-        <doc xml:whitespace="preserve">Retrieves the current position inside the current line, starting
-from 0.
-This function has defined behaviour only while parsing; calling this
-function from outside the signal handlers emitted by #JsonParser will
-yield 0.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the position in the current line, or 0.</doc>
-          <type name="guint" c:type="guint"/>
-        </return-value>
-      </method>
-      <method name="get_root" c:identifier="json_parser_get_root">
-        <doc xml:whitespace="preserve">Retrieves the top level node from the parsed JSON stream.
-node is owned by the #JsonParser and should never be modified
-or freed.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the root #JsonNode . The returned</doc>
-          <type name="Node" c:type="JsonNode*"/>
-        </return-value>
-      </method>
-      <method name="has_assignment"
-              c:identifier="json_parser_has_assignment"
-              version="0.4">
-        <doc xml:whitespace="preserve">A JSON data stream might sometimes contain an assignment, like:
-|[
-]|
-even though it would technically constitute a violation of the RFC.
-#JsonParser will ignore the left hand identifier and parse the right
-hand value of the assignment. #JsonParser will record, though, the
-existence of the assignment in the data stream and the variable name
-used.
-used in the assignment. The string is owned by #JsonParser and should
-never be modified or freed.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">%TRUE if there was an assignment, %FALSE otherwise. If</doc>
-          <type name="gboolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="variable_name"
-                     direction="out"
-                     caller-allocates="0"
-                     transfer-ownership="full"
-                     allow-none="1">
-            <doc xml:whitespace="preserve">Return location for the variable name, or %NULL</doc>
-            <type name="utf8" c:type="gchar**"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="load_from_data"
-              c:identifier="json_parser_load_from_data"
-              throws="1">
-        <doc xml:whitespace="preserve">Loads a JSON stream from a buffer and parses it. You can call this function
-multiple times with the same #JsonParser object, but the contents of the
-parser will be destroyed each time.
-of error, @error is set accordingly and %FALSE is returned</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">%TRUE if the buffer was succesfully parser. In case</doc>
-          <type name="gboolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="data" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the buffer to parse</doc>
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="length" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the length of the buffer, or -1</doc>
-            <type name="glong" c:type="gssize"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="load_from_file"
-              c:identifier="json_parser_load_from_file"
-              throws="1">
-        <doc xml:whitespace="preserve">Loads a JSON stream from the content of @filename and parses it. See
-json_parser_load_from_data().
-In case of error, @error is set accordingly and %FALSE is returned</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">%TRUE if the file was successfully loaded and parsed.</doc>
-          <type name="gboolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="filename" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the path for the file to parse</doc>
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="load_from_stream"
-              c:identifier="json_parser_load_from_stream"
-              version="0.12"
-              throws="1">
-        <doc xml:whitespace="preserve">Loads the contents of an input stream and parses them.
-If @cancellable is not %NULL, then the operation can be cancelled by
-triggering the @cancellable object from another thread. If the
-operation was cancelled, the error %G_IO_ERROR_CANCELLED will be set
-on the passed @error.
-parsed, and %FALSE otherwise</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">%TRUE if the data stream was successfully read and</doc>
-          <type name="gboolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="stream" transfer-ownership="none">
-            <doc xml:whitespace="preserve">an open #GInputStream</doc>
-            <type name="Gio.InputStream" c:type="GInputStream*"/>
-          </parameter>
-          <parameter name="cancellable"
-                     transfer-ownership="none"
-                     allow-none="1">
-            <doc xml:whitespace="preserve">a #GCancellable, or %NULL</doc>
-            <type name="Gio.Cancellable" c:type="GCancellable*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="load_from_stream_async"
-              c:identifier="json_parser_load_from_stream_async"
-              version="0.12">
-        <doc xml:whitespace="preserve">Asynchronously reads the contents of @stream.
-For more details, see json_parser_load_from_stream() which is the
-synchronous version of this call.
-When the operation is finished, @callback will be called. You should
-then call json_parser_load_from_stream_finish() to get the result
-of the operation.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="stream" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #GInputStream</doc>
-            <type name="Gio.InputStream" c:type="GInputStream*"/>
-          </parameter>
-          <parameter name="cancellable"
-                     transfer-ownership="none"
-                     allow-none="1">
-            <doc xml:whitespace="preserve">a #GCancellable, or %NULL</doc>
-            <type name="Gio.Cancellable" c:type="GCancellable*"/>
-          </parameter>
-          <parameter name="callback"
-                     transfer-ownership="none"
-                     scope="async"
-                     closure="3">
-            <doc xml:whitespace="preserve">a #GAsyncReadyCallback to call when the request is satisfied</doc>
-            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
-          </parameter>
-          <parameter name="user_data" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the data to pass to @callback</doc>
-            <type name="gpointer" c:type="gpointer"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="load_from_stream_finish"
-              c:identifier="json_parser_load_from_stream_finish"
-              version="0.12"
-              throws="1">
-        <doc xml:whitespace="preserve">Finishes an asynchronous stream loading started with
-json_parser_load_from_stream_async().
-and parsed, and %FALSE otherwise. In case of error, the #GError will be
-filled accordingly.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">%TRUE if the content of the stream was successfully retrieves</doc>
-          <type name="gboolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="result" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #GAsyncResult</doc>
-            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <field name="parent_instance">
-        <type name="GObject.Object" c:type="GObject"/>
-      </field>
-      <field name="priv">
-        <type name="ParserPrivate" c:type="JsonParserPrivate*"/>
-      </field>
-      <glib:signal name="array-element">
-        <doc xml:whitespace="preserve">The ::array-element signal is emitted each time the #JsonParser
-has successfully parsed a single element of a #JsonArray. The
-array and element index are passed to the signal handlers.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none"/>
-        </return-value>
-        <parameters>
-          <parameter name="object" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #JsonArray</doc>
-            <type name="Array"/>
-          </parameter>
-          <parameter name="p0" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the index of the newly parsed element</doc>
-            <type name="gint"/>
-          </parameter>
-        </parameters>
-      </glib:signal>
-      <glib:signal name="array-end">
-        <doc xml:whitespace="preserve">The ::array-end signal is emitted each time the #JsonParser
-has successfully parsed an entire #JsonArray</doc>
-        <return-value transfer-ownership="none">
-          <type name="none"/>
-        </return-value>
-        <parameters>
-          <parameter name="object" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the parsed #JsonArray</doc>
-            <type name="Array"/>
-          </parameter>
-        </parameters>
-      </glib:signal>
-      <glib:signal name="array-start">
-        <doc xml:whitespace="preserve">The ::array-start signal is emitted each time the #JsonParser
-starts parsing a #JsonArray</doc>
-        <return-value transfer-ownership="none">
-          <type name="none"/>
-        </return-value>
-      </glib:signal>
-      <glib:signal name="error">
-        <doc xml:whitespace="preserve">The ::error signal is emitted each time a #JsonParser encounters
-an error in a JSON stream.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none"/>
-        </return-value>
-        <parameters>
-          <parameter name="object" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a pointer to the #GError</doc>
-            <type name="gpointer"/>
-          </parameter>
-        </parameters>
-      </glib:signal>
-      <glib:signal name="object-end">
-        <doc xml:whitespace="preserve">The ::object-end signal is emitted each time the #JsonParser
-has successfully parsed an entire #JsonObject.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none"/>
-        </return-value>
-        <parameters>
-          <parameter name="object" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the parsed #JsonObject</doc>
-            <type name="Object"/>
-          </parameter>
-        </parameters>
-      </glib:signal>
-      <glib:signal name="object-member">
-        <doc xml:whitespace="preserve">The ::object-member signal is emitted each time the #JsonParser
-has successfully parsed a single member of a #JsonObject. The
-object and member are passed to the signal handlers.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none"/>
-        </return-value>
-        <parameters>
-          <parameter name="object" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #JsonObject</doc>
-            <type name="Object"/>
-          </parameter>
-          <parameter name="p0" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the name of the newly parsed member</doc>
-            <type name="utf8"/>
-          </parameter>
-        </parameters>
-      </glib:signal>
-      <glib:signal name="object-start">
-        <doc xml:whitespace="preserve">The ::object-start signal is emitted each time the #JsonParser
-starts parsing a #JsonObject.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none"/>
-        </return-value>
-      </glib:signal>
-      <glib:signal name="parse-end">
-        <doc xml:whitespace="preserve">The ::parse-end signal is emitted when the parser successfully
-finished parsing a JSON data stream</doc>
-        <return-value transfer-ownership="none">
-          <type name="none"/>
-        </return-value>
-      </glib:signal>
-      <glib:signal name="parse-start">
-        <doc xml:whitespace="preserve">The ::parse-start signal is emitted when the parser began parsing
-a JSON data stream.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none"/>
-        </return-value>
-      </glib:signal>
-    </class>
-    <record name="ParserClass"
-            c:type="JsonParserClass"
-            glib:is-gtype-struct-for="Parser">
-      <doc xml:whitespace="preserve">#JsonParser class.</doc>
-      <field name="parent_class">
-        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
-      </field>
-      <field name="parse_start">
-        <callback name="parse_start">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="parser" transfer-ownership="none">
-              <type name="Parser" c:type="JsonParser*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="object_start">
-        <callback name="object_start">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="parser" transfer-ownership="none">
-              <type name="Parser" c:type="JsonParser*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="object_member">
-        <callback name="object_member">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="parser" transfer-ownership="none">
-              <type name="Parser" c:type="JsonParser*"/>
-            </parameter>
-            <parameter name="object" transfer-ownership="none">
-              <type name="Object" c:type="JsonObject*"/>
-            </parameter>
-            <parameter name="member_name" transfer-ownership="none">
-              <type name="utf8" c:type="gchar*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="object_end">
-        <callback name="object_end">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="parser" transfer-ownership="none">
-              <type name="Parser" c:type="JsonParser*"/>
-            </parameter>
-            <parameter name="object" transfer-ownership="none">
-              <type name="Object" c:type="JsonObject*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="array_start">
-        <callback name="array_start">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="parser" transfer-ownership="none">
-              <type name="Parser" c:type="JsonParser*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="array_element">
-        <callback name="array_element">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="parser" transfer-ownership="none">
-              <type name="Parser" c:type="JsonParser*"/>
-            </parameter>
-            <parameter name="array" transfer-ownership="none">
-              <type name="Array" c:type="JsonArray*"/>
-            </parameter>
-            <parameter name="index_" transfer-ownership="none">
-              <type name="gint" c:type="gint"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="array_end">
-        <callback name="array_end">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="parser" transfer-ownership="none">
-              <type name="Parser" c:type="JsonParser*"/>
-            </parameter>
-            <parameter name="array" transfer-ownership="none">
-              <type name="Array" c:type="JsonArray*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="parse_end">
-        <callback name="parse_end">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="parser" transfer-ownership="none">
-              <type name="Parser" c:type="JsonParser*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="error">
-        <callback name="error">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="parser" transfer-ownership="none">
-              <type name="Parser" c:type="JsonParser*"/>
-            </parameter>
-            <parameter name="error" transfer-ownership="none">
-              <type name="GLib.Error" c:type="GError*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="_json_reserved1" introspectable="0">
-        <callback name="_json_reserved1">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-      <field name="_json_reserved2" introspectable="0">
-        <callback name="_json_reserved2">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-      <field name="_json_reserved3" introspectable="0">
-        <callback name="_json_reserved3">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-      <field name="_json_reserved4" introspectable="0">
-        <callback name="_json_reserved4">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-      <field name="_json_reserved5" introspectable="0">
-        <callback name="_json_reserved5">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-      <field name="_json_reserved6" introspectable="0">
-        <callback name="_json_reserved6">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-      <field name="_json_reserved7" introspectable="0">
-        <callback name="_json_reserved7">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-      <field name="_json_reserved8" introspectable="0">
-        <callback name="_json_reserved8">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-    </record>
-    <enumeration name="ParserError" c:type="JsonParserError">
-      <doc xml:whitespace="preserve">Error enumeration for #JsonParser
-This enumeration can be extended at later date</doc>
-      <member name="parse" value="0" c:identifier="JSON_PARSER_ERROR_PARSE"/>
-      <member name="trailing_comma"
-              value="1"
-              c:identifier="JSON_PARSER_ERROR_TRAILING_COMMA"/>
-      <member name="missing_comma"
-              value="2"
-              c:identifier="JSON_PARSER_ERROR_MISSING_COMMA"/>
-      <member name="missing_colon"
-              value="3"
-              c:identifier="JSON_PARSER_ERROR_MISSING_COLON"/>
-      <member name="invalid_bareword"
-              value="4"
-              c:identifier="JSON_PARSER_ERROR_INVALID_BAREWORD"/>
-      <member name="unknown"
-              value="5"
-              c:identifier="JSON_PARSER_ERROR_UNKNOWN"/>
-    </enumeration>
-    <record name="ParserPrivate" c:type="JsonParserPrivate" disguised="1">
-    </record>
-    <class name="Reader"
-           c:symbol-prefix="reader"
-           c:type="JsonReader"
-           version="0.12"
-           parent="GObject.Object"
-           glib:type-name="JsonReader"
-           glib:get-type="json_reader_get_type"
-           glib:type-struct="ReaderClass">
-      <doc xml:whitespace="preserve">The &lt;structname&gt;JsonReader&lt;/structname&gt; structure contains only
-private data and should only be accessed using the provided API</doc>
-      <constructor name="new" c:identifier="json_reader_new" version="0.12">
-        <doc xml:whitespace="preserve">Creates a new #JsonReader. You can use this object to read the contents of
-the JSON tree starting from @node
-release the allocated resources when done</doc>
-        <return-value transfer-ownership="full">
-          <doc xml:whitespace="preserve">the newly created #JsonReader. Use g_object_unref() to</doc>
-          <type name="Reader" c:type="JsonReader*"/>
-        </return-value>
-        <parameters>
-          <parameter name="node" transfer-ownership="none" allow-none="1">
-            <doc xml:whitespace="preserve">a #JsonNode, or %NULL</doc>
-            <type name="Node" c:type="JsonNode*"/>
-          </parameter>
-        </parameters>
-      </constructor>
-      <function name="error_quark" c:identifier="json_reader_error_quark">
-        <return-value transfer-ownership="none">
-          <type name="GLib.Quark" c:type="GQuark"/>
-        </return-value>
-      </function>
-      <method name="count_elements"
-              c:identifier="json_reader_count_elements"
-              version="0.12">
-        <doc xml:whitespace="preserve">Counts the elements of the current position, if @reader is
-positioned on an array
-the #JsonReader is set in an error state</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the number of elements, or -1. In case of failure</doc>
-          <type name="gint" c:type="gint"/>
-        </return-value>
-      </method>
-      <method name="count_members"
-              c:identifier="json_reader_count_members"
-              version="0.12">
-        <doc xml:whitespace="preserve">Counts the members of the current position, if @reader is
-positioned on an object
-the #JsonReader is set in an error state</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the number of members, or -1. In case of failure</doc>
-          <type name="gint" c:type="gint"/>
-        </return-value>
-      </method>
-      <method name="end_element"
-              c:identifier="json_reader_end_element"
-              version="0.12">
-        <doc xml:whitespace="preserve">Moves the cursor back to the previous node after being positioned
-inside an array
-This function resets the error state of @reader, if any was set</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </method>
-      <method name="end_member"
-              c:identifier="json_reader_end_member"
-              version="0.12">
-        <doc xml:whitespace="preserve">Moves the cursor back to the previous node after being positioned
-inside an object
-This function resets the error state of @reader, if any was set</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </method>
-      <method name="get_boolean_value"
-              c:identifier="json_reader_get_boolean_value"
-              version="0.12">
-        <doc xml:whitespace="preserve">Retrieves the boolean value of the current position of @reader</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the boolean value</doc>
-          <type name="gboolean" c:type="gboolean"/>
-        </return-value>
-      </method>
-      <method name="get_double_value"
-              c:identifier="json_reader_get_double_value"
-              version="0.12">
-        <doc xml:whitespace="preserve">Retrieves the floating point value of the current position of @reader</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the floating point value</doc>
-          <type name="gdouble" c:type="gdouble"/>
-        </return-value>
-      </method>
-      <method name="get_error"
-              c:identifier="json_reader_get_error"
-              version="0.12">
-        <doc xml:whitespace="preserve">Retrieves the #GError currently set on @reader, if the #JsonReader
-is in error state</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the pointer to the error, or %NULL</doc>
-          <type name="GLib.Error" c:type="GError*"/>
-        </return-value>
-      </method>
-      <method name="get_int_value"
-              c:identifier="json_reader_get_int_value"
-              version="0.12">
-        <doc xml:whitespace="preserve">Retrieves the integer value of the current position of @reader</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the integer value</doc>
-          <type name="gint64" c:type="gint64"/>
-        </return-value>
-      </method>
-      <method name="get_null_value"
-              c:identifier="json_reader_get_null_value"
-              version="0.12">
-        <doc xml:whitespace="preserve">Checks whether the value of the current position of @reader is 'null'</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">%TRUE if 'null' is set, and %FALSE otherwise</doc>
-          <type name="gboolean" c:type="gboolean"/>
-        </return-value>
-      </method>
-      <method name="get_string_value"
-              c:identifier="json_reader_get_string_value"
-              version="0.12">
-        <doc xml:whitespace="preserve">Retrieves the string value of the current position of @reader</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">the string value</doc>
-          <type name="utf8" c:type="gchar*"/>
-        </return-value>
-      </method>
-      <method name="get_value"
-              c:identifier="json_reader_get_value"
-              version="0.12">
-        <doc xml:whitespace="preserve">Retrieves the #JsonNode of the current position of @reader
-is owned by the #JsonReader and it should not be modified or freed
-directly</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">a #JsonNode, or %NULL. The returned node</doc>
-          <type name="Node" c:type="JsonNode*"/>
-        </return-value>
-      </method>
-      <method name="is_array"
-              c:identifier="json_reader_is_array"
-              version="0.12">
-        <doc xml:whitespace="preserve">Checks whether the @reader is currently on an array
-otherwise</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">%TRUE if the #JsonReader is on an array, and %FALSE</doc>
-          <type name="gboolean" c:type="gboolean"/>
-        </return-value>
-      </method>
-      <method name="is_object"
-              c:identifier="json_reader_is_object"
-              version="0.12">
-        <doc xml:whitespace="preserve">Checks whether the @reader is currently on an object
-otherwise</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">%TRUE if the #JsonReader is on an object, and %FALSE</doc>
-          <type name="gboolean" c:type="gboolean"/>
-        </return-value>
-      </method>
-      <method name="is_value"
-              c:identifier="json_reader_is_value"
-              version="0.12">
-        <doc xml:whitespace="preserve">Checks whether the @reader is currently on a value
-otherwise</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">%TRUE if the #JsonReader is on a value, and %FALSE</doc>
-          <type name="gboolean" c:type="gboolean"/>
-        </return-value>
-      </method>
-      <method name="read_element"
-              c:identifier="json_reader_read_element"
-              version="0.12">
-        <doc xml:whitespace="preserve">Advances the cursor of @reader to the element @index_ of array at the
-current position.
-You can use the json_reader_get_value* family of functions to retrieve
-the value of the element; for instance:
-|[
-json_reader_read_element (reader, 0);
-int_value = json_reader_get_int_value (reader);
-]|
-After reading the value, json_reader_end_element() should be called to
-reposition the cursor inside the #JsonReader, e.g.:
-|[
-json_reader_read_element (reader, 1);
-str_value = json_reader_get_string_value (reader);
-json_reader_end_element (reader);
-json_reader_read_element (reader, 2);
-str_value = json_reader_get_string_value (reader);
-json_reader_end_element (reader);
-]|
-If @reader is not currently on an array, or if the @index_ is bigger than
-the size of the array, the #JsonReader will be put in an error state until
-json_reader_end_element() is called.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">%TRUE on success, and %FALSE otherwise</doc>
-          <type name="gboolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="index_" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the index of the element</doc>
-            <type name="guint" c:type="guint"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="read_member"
-              c:identifier="json_reader_read_member"
-              version="0.12">
-        <doc xml:whitespace="preserve">Advances the cursor of @reader to the @member_name of the object at the
-current position.
-You can use the json_reader_get_value* family of functions to retrieve
-the value of the member; for instance:
-|[
-json_reader_read_member (reader, "width");
-width = json_reader_get_int_value (reader);
-]|
-After reading the value, json_reader_end_member() should be called to
-reposition the cursor inside the #JsonReader, e.g.:
-|[
-json_reader_read_member (reader, "author");
-author = json_reader_get_string_value (reader);
-json_reader_end_element (reader);
-json_reader_read_element (reader, "title");
-title = json_reader_get_string_value (reader);
-json_reader_end_element (reader);
-]|
-If @reader is not currently on an object, or if the @member_name is not
-defined in the object, the #JsonReader will be put in an error state until
-json_reader_end_member() is called.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">%TRUE on success, and %FALSE otherwise</doc>
-          <type name="gboolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="member_name" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the name of the member to read</doc>
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_root"
-              c:identifier="json_reader_set_root"
-              version="0.12">
-        <doc xml:whitespace="preserve">Sets the root #JsonNode to be read by @reader. The @reader will take
-a copy of @root
-If another #JsonNode is currently set as root, it will be replaced.</doc>
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="root" transfer-ownership="none" allow-none="1">
-            <doc xml:whitespace="preserve">a #JsonNode</doc>
-            <type name="Node" c:type="JsonNode*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <property name="root"
-                version="0.12"
-                writable="1"
-                construct="1"
-                transfer-ownership="none">
-        <doc xml:whitespace="preserve">The root of the JSON tree that the #JsonReader should read.</doc>
-        <type name="Node"/>
-      </property>
-      <field name="parent_instance">
-        <type name="GObject.Object" c:type="GObject"/>
-      </field>
-      <field name="priv">
-        <type name="ReaderPrivate" c:type="JsonReaderPrivate*"/>
-      </field>
-    </class>
-    <record name="ReaderClass"
-            c:type="JsonReaderClass"
-            glib:is-gtype-struct-for="Reader"
-            version="0.12">
-      <doc xml:whitespace="preserve">The &lt;structname&gt;JsonReaderClass&lt;/structname&gt; structure contains only
-private data</doc>
-      <field name="parent_class">
-        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
-      </field>
-      <field name="_json_padding0" introspectable="0">
-        <callback name="_json_padding0">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-      <field name="_json_padding1" introspectable="0">
-        <callback name="_json_padding1">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-      <field name="_json_padding2" introspectable="0">
-        <callback name="_json_padding2">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-      <field name="_json_padding3" introspectable="0">
-        <callback name="_json_padding3">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-      <field name="_json_padding4" introspectable="0">
-        <callback name="_json_padding4">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-        </callback>
-      </field>
-    </record>
-    <enumeration name="ReaderError" version="0.12" c:type="JsonReaderError">
-      <doc xml:whitespace="preserve">Error codes enumeration for #JsonReader errors</doc>
-      <member name="no_array"
-              value="0"
-              c:identifier="JSON_READER_ERROR_NO_ARRAY"/>
-      <member name="invalid_index"
-              value="1"
-              c:identifier="JSON_READER_ERROR_INVALID_INDEX"/>
-      <member name="no_object"
-              value="2"
-              c:identifier="JSON_READER_ERROR_NO_OBJECT"/>
-      <member name="invalid_member"
-              value="3"
-              c:identifier="JSON_READER_ERROR_INVALID_MEMBER"/>
-    </enumeration>
-    <record name="ReaderPrivate" c:type="JsonReaderPrivate" disguised="1">
-    </record>
-    <interface name="Serializable"
-               c:symbol-prefix="serializable"
-               c:type="JsonSerializable"
-               glib:type-name="JsonSerializable"
-               glib:get-type="json_serializable_get_type"
-               glib:type-struct="SerializableIface">
-      <virtual-method name="deserialize_property"
-                      invoker="deserialize_property">
-        <doc xml:whitespace="preserve">Asks a #JsonSerializable implementation to deserialize the
-property contained inside @property_node into @value.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">%TRUE if the property was successfully deserialized.</doc>
-          <type name="gboolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="property_name" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the name of the property</doc>
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="value" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a pointer to an uninitialized #GValue</doc>
-            <type name="GObject.Value" c:type="GValue*"/>
-          </parameter>
-          <parameter name="pspec" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #GParamSpec</doc>
-            <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
-          </parameter>
-          <parameter name="property_node" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #JsonNode containing the serialized property</doc>
-            <type name="Node" c:type="JsonNode*"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <virtual-method name="serialize_property" invoker="serialize_property">
-        <doc xml:whitespace="preserve">Asks a #JsonSerializable implementation to serialize a #GObject
-property into a #JsonNode object.</doc>
-        <return-value transfer-ownership="full">
-          <doc xml:whitespace="preserve">a #JsonNode containing the serialized property</doc>
-          <type name="Node" c:type="JsonNode*"/>
-        </return-value>
-        <parameters>
-          <parameter name="property_name" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the name of the property</doc>
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="value" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the value of the property</doc>
-            <type name="GObject.Value" c:type="GValue*"/>
-          </parameter>
-          <parameter name="pspec" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #GParamSpec</doc>
-            <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <method name="default_deserialize_property"
-              c:identifier="json_serializable_default_deserialize_property"
-              version="0.10">
-        <doc xml:whitespace="preserve">Calls the default implementation of the #JsonSerializable
-deserialize_property() virtual function
-This function can be used inside a custom implementation
-of the deserialize_property() virtual function in lieu of:
-|[
-JsonSerializable *iface;
-gboolean res;
-iface = g_type_default_interface_peek (JSON_TYPE_SERIALIZABLE);
-res = iface-&gt;deserialize_property (serializable, property_name,
-value,
-pspec,
-property_node);
-]|</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">%TRUE if the property was successfully deserialized.</doc>
-          <type name="gboolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="property_name" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the name of the property</doc>
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="value" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a pointer to an uninitialized #GValue</doc>
-            <type name="GObject.Value" c:type="GValue*"/>
-          </parameter>
-          <parameter name="pspec" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #GParamSpec</doc>
-            <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
-          </parameter>
-          <parameter name="property_node" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #JsonNode containing the serialized property</doc>
-            <type name="Node" c:type="JsonNode*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="default_serialize_property"
-              c:identifier="json_serializable_default_serialize_property"
-              version="0.10">
-        <doc xml:whitespace="preserve">Calls the default implementation of the #JsonSerializable
-serialize_property() virtual function
-This function can be used inside a custom implementation
-of the serialize_property() virtual function in lieu of:
-|[
-JsonSerializable *iface;
-JsonNode *node;
-iface = g_type_default_interface_peek (JSON_TYPE_SERIALIZABLE);
-node = iface-&gt;serialize_property (serializable, property_name,
-value,
-pspec);
-]|
-property</doc>
-        <return-value transfer-ownership="full">
-          <doc xml:whitespace="preserve">a #JsonNode containing the serialized</doc>
-          <type name="Node" c:type="JsonNode*"/>
-        </return-value>
-        <parameters>
-          <parameter name="property_name" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the name of the property</doc>
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="value" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the value of the property</doc>
-            <type name="GObject.Value" c:type="GValue*"/>
-          </parameter>
-          <parameter name="pspec" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #GParamSpec</doc>
-            <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="deserialize_property"
-              c:identifier="json_serializable_deserialize_property">
-        <doc xml:whitespace="preserve">Asks a #JsonSerializable implementation to deserialize the
-property contained inside @property_node into @value.</doc>
-        <return-value transfer-ownership="none">
-          <doc xml:whitespace="preserve">%TRUE if the property was successfully deserialized.</doc>
-          <type name="gboolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="property_name" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the name of the property</doc>
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="value" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a pointer to an uninitialized #GValue</doc>
-            <type name="GObject.Value" c:type="GValue*"/>
-          </parameter>
-          <parameter name="pspec" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #GParamSpec</doc>
-            <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
-          </parameter>
-          <parameter name="property_node" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #JsonNode containing the serialized property</doc>
-            <type name="Node" c:type="JsonNode*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="serialize_property"
-              c:identifier="json_serializable_serialize_property">
-        <doc xml:whitespace="preserve">Asks a #JsonSerializable implementation to serialize a #GObject
-property into a #JsonNode object.</doc>
-        <return-value transfer-ownership="full">
-          <doc xml:whitespace="preserve">a #JsonNode containing the serialized property</doc>
-          <type name="Node" c:type="JsonNode*"/>
-        </return-value>
-        <parameters>
-          <parameter name="property_name" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the name of the property</doc>
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="value" transfer-ownership="none">
-            <doc xml:whitespace="preserve">the value of the property</doc>
-            <type name="GObject.Value" c:type="GValue*"/>
-          </parameter>
-          <parameter name="pspec" transfer-ownership="none">
-            <doc xml:whitespace="preserve">a #GParamSpec</doc>
-            <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
-          </parameter>
-        </parameters>
-      </method>
-    </interface>
-    <record name="SerializableIface"
-            c:type="JsonSerializableIface"
-            glib:is-gtype-struct-for="Serializable">
-      <doc xml:whitespace="preserve">Interface that allows serializing and deserializing #GObject&lt;!-- --&gt;s
-with properties storing complex data types. The json_serialize_gobject()
-function will check if the passed #GObject implements this interface,
-so it can also be used to override the default property serialization
-sequence.</doc>
-      <field name="g_iface">
-        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
-      </field>
-      <field name="serialize_property">
-        <callback name="serialize_property">
-          <return-value transfer-ownership="full">
-            <doc xml:whitespace="preserve">a #JsonNode containing the serialized property</doc>
-            <type name="Node" c:type="JsonNode*"/>
-          </return-value>
-          <parameters>
-            <parameter name="serializable" transfer-ownership="none">
-              <type name="Serializable" c:type="JsonSerializable*"/>
-            </parameter>
-            <parameter name="property_name" transfer-ownership="none">
-              <doc xml:whitespace="preserve">the name of the property</doc>
-              <type name="utf8" c:type="gchar*"/>
-            </parameter>
-            <parameter name="value" transfer-ownership="none">
-              <doc xml:whitespace="preserve">the value of the property</doc>
-              <type name="GObject.Value" c:type="GValue*"/>
-            </parameter>
-            <parameter name="pspec" transfer-ownership="none">
-              <doc xml:whitespace="preserve">a #GParamSpec</doc>
-              <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="deserialize_property">
-        <callback name="deserialize_property">
-          <return-value transfer-ownership="none">
-            <doc xml:whitespace="preserve">%TRUE if the property was successfully deserialized.</doc>
-            <type name="gboolean" c:type="gboolean"/>
-          </return-value>
-          <parameters>
-            <parameter name="serializable" transfer-ownership="none">
-              <type name="Serializable" c:type="JsonSerializable*"/>
-            </parameter>
-            <parameter name="property_name" transfer-ownership="none">
-              <doc xml:whitespace="preserve">the name of the property</doc>
-              <type name="utf8" c:type="gchar*"/>
-            </parameter>
-            <parameter name="value" transfer-ownership="none">
-              <doc xml:whitespace="preserve">a pointer to an uninitialized #GValue</doc>
-              <type name="GObject.Value" c:type="GValue*"/>
-            </parameter>
-            <parameter name="pspec" transfer-ownership="none">
-              <doc xml:whitespace="preserve">a #GParamSpec</doc>
-              <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
-            </parameter>
-            <parameter name="property_node" transfer-ownership="none">
-              <doc xml:whitespace="preserve">a #JsonNode containing the serialized property</doc>
-              <type name="Node" c:type="JsonNode*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-    </record>
-    <function name="boxed_can_deserialize"
-              c:identifier="json_boxed_can_deserialize"
-              version="0.10">
-      <doc xml:whitespace="preserve">Checks whether it is possible to deserialize a #GBoxed of
-type @gboxed_type from a #JsonNode of type @node_type</doc>
-      <return-value transfer-ownership="none">
-        <doc xml:whitespace="preserve">%TRUE if the type can be deserialized, %FALSE otherwise</doc>
-        <type name="gboolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="gboxed_type" transfer-ownership="none">
-          <doc xml:whitespace="preserve">a boxed type</doc>
-          <type name="GType" c:type="GType"/>
-        </parameter>
-        <parameter name="node_type" transfer-ownership="none">
-          <doc xml:whitespace="preserve">a #JsonNode type</doc>
-          <type name="NodeType" c:type="JsonNodeType"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="boxed_can_serialize"
-              c:identifier="json_boxed_can_serialize"
-              version="0.10">
-      <doc xml:whitespace="preserve">Checks whether it is possible to serialize a #GBoxed of
-type @gboxed_type into a #JsonNode. The type of the
-#JsonNode is placed inside @node_type if the function
-returns %TRUE and it's undefined otherwise.
-and %FALSE otherwise.</doc>
-      <return-value transfer-ownership="none">
-        <doc xml:whitespace="preserve">%TRUE if the type can be serialized,</doc>
-        <type name="gboolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="gboxed_type" transfer-ownership="none">
-          <doc xml:whitespace="preserve">a boxed type</doc>
-          <type name="GType" c:type="GType"/>
-        </parameter>
-        <parameter name="node_type"
-                   direction="out"
-                   caller-allocates="1"
-                   transfer-ownership="none">
-          <doc xml:whitespace="preserve">the #JsonNode type to which the boxed type can be serialized into</doc>
-          <type name="NodeType" c:type="JsonNodeType*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="boxed_deserialize"
-              c:identifier="json_boxed_deserialize"
-              version="0.10">
-      <doc xml:whitespace="preserve">Deserializes @node into a #GBoxed of @gboxed_type
-g_boxed_free() to release the resources allocated by this
-function</doc>
-      <return-value transfer-ownership="full">
-        <doc xml:whitespace="preserve">the newly allocated #GBoxed. Use</doc>
-        <type name="gpointer" c:type="gpointer"/>
-      </return-value>
-      <parameters>
-        <parameter name="gboxed_type" transfer-ownership="none">
-          <doc xml:whitespace="preserve">a boxed type</doc>
-          <type name="GType" c:type="GType"/>
-        </parameter>
-        <parameter name="node" transfer-ownership="none">
-          <doc xml:whitespace="preserve">a #JsonNode</doc>
-          <type name="Node" c:type="JsonNode*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="boxed_register_deserialize_func"
-              c:identifier="json_boxed_register_deserialize_func"
-              version="0.10"
-              introspectable="0">
-      <doc xml:whitespace="preserve">Registers a deserialization function for a #GBoxed of type @gboxed_type
-from a #JsonNode of type @node_type</doc>
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="gboxed_type" transfer-ownership="none">
-          <doc xml:whitespace="preserve">a boxed type</doc>
-          <type name="GType" c:type="GType"/>
-        </parameter>
-        <parameter name="node_type" transfer-ownership="none">
-          <doc xml:whitespace="preserve">a node type</doc>
-          <type name="NodeType" c:type="JsonNodeType"/>
-        </parameter>
-        <parameter name="deserialize_func" transfer-ownership="none">
-          <doc xml:whitespace="preserve">deserialization function for @boxed_type from a #JsonNode of type @node_type</doc>
-          <type name="BoxedDeserializeFunc" c:type="JsonBoxedDeserializeFunc"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="boxed_register_serialize_func"
-              c:identifier="json_boxed_register_serialize_func"
-              version="0.10"
-              introspectable="0">
-      <doc xml:whitespace="preserve">Registers a serialization function for a #GBoxed of type @gboxed_type
-to a #JsonNode of type @node_type</doc>
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="gboxed_type" transfer-ownership="none">
-          <doc xml:whitespace="preserve">a boxed type</doc>
-          <type name="GType" c:type="GType"/>
-        </parameter>
-        <parameter name="node_type" transfer-ownership="none">
-          <doc xml:whitespace="preserve">a node type</doc>
-          <type name="NodeType" c:type="JsonNodeType"/>
-        </parameter>
-        <parameter name="serialize_func" transfer-ownership="none">
-          <doc xml:whitespace="preserve">serialization function for @boxed_type into a #JsonNode of type @node_type</doc>
-          <type name="BoxedSerializeFunc" c:type="JsonBoxedSerializeFunc"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="boxed_serialize"
-              c:identifier="json_boxed_serialize"
-              version="0.10">
-      <doc xml:whitespace="preserve">Serializes @boxed, a pointer to a #GBoxed of type @gboxed_type,
-into a #JsonNode
-boxed type, or %NULL if serialization either failed or was not possible</doc>
-      <return-value transfer-ownership="full">
-        <doc xml:whitespace="preserve">a #JsonNode with the serialization of the</doc>
-        <type name="Node" c:type="JsonNode*"/>
-      </return-value>
-      <parameters>
-        <parameter name="gboxed_type" transfer-ownership="none">
-          <doc xml:whitespace="preserve">a boxed type</doc>
-          <type name="GType" c:type="GType"/>
-        </parameter>
-        <parameter name="boxed" transfer-ownership="none">
-          <doc xml:whitespace="preserve">a pointer to a #GBoxed of type @gboxed_type</doc>
-          <type name="gpointer" c:type="gconstpointer"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="construct_gobject"
-              c:identifier="json_construct_gobject"
-              version="0.4"
-              deprecated="Use json_gobject_from_data() instead"
-              deprecated-version="0.10"
-              throws="1">
-      <doc xml:whitespace="preserve">Deserializes a JSON data stream and creates the corresponding
-#GObject class. If @gtype implements the #JsonSerializableIface
-interface, it will be asked to deserialize all the JSON members
-into the respective properties; otherwise, the default implementation
-will be used to translate the compatible JSON native types.</doc>
-      <return-value transfer-ownership="full">
-        <doc xml:whitespace="preserve">a #GObject or %NULL</doc>
-        <type name="GObject.Object" c:type="GObject*"/>
-      </return-value>
-      <parameters>
-        <parameter name="gtype" transfer-ownership="none">
-          <doc xml:whitespace="preserve">the #GType of object to construct</doc>
-          <type name="GType" c:type="GType"/>
-        </parameter>
-        <parameter name="data" transfer-ownership="none">
-          <doc xml:whitespace="preserve">a JSON data stream</doc>
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-        <parameter name="length" transfer-ownership="none">
-          <doc xml:whitespace="preserve">length of the data stream</doc>
-          <type name="gulong" c:type="gsize"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="gobject_deserialize"
-              c:identifier="json_gobject_deserialize"
-              version="0.10">
-      <doc xml:whitespace="preserve">Creates a new #GObject of type @gtype, and constructs it
-using the members of the passed #JsonObject
-instance. Use g_object_unref() to free the resources
-allocated by this function</doc>
-      <return-value transfer-ownership="full">
-        <doc xml:whitespace="preserve">The newly created #GObject</doc>
-        <type name="GObject.Object" c:type="GObject*"/>
-      </return-value>
-      <parameters>
-        <parameter name="gtype" transfer-ownership="none">
-          <doc xml:whitespace="preserve">the type of the #GObject to create</doc>
-          <type name="GType" c:type="GType"/>
-        </parameter>
-        <parameter name="node" transfer-ownership="none">
-          <doc xml:whitespace="preserve">a #JsonNode of type %JSON_NODE_OBJECT describing the instance of type @gtype</doc>
-          <type name="Node" c:type="JsonNode*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="gobject_from_data"
-              c:identifier="json_gobject_from_data"
-              version="0.10"
-              throws="1">
-      <doc xml:whitespace="preserve">Deserializes a JSON data stream and creates the corresponding
-#GObject class. If @gtype implements the #JsonSerializableIface
-interface, it will be asked to deserialize all the JSON members
-into the respective properties; otherwise, the default implementation
-will be used to translate the compatible JSON native types.</doc>
-      <return-value transfer-ownership="full">
-        <doc xml:whitespace="preserve">a #GObject or %NULL</doc>
-        <type name="GObject.Object" c:type="GObject*"/>
-      </return-value>
-      <parameters>
-        <parameter name="gtype" transfer-ownership="none">
-          <doc xml:whitespace="preserve">the #GType of object to construct</doc>
-          <type name="GType" c:type="GType"/>
-        </parameter>
-        <parameter name="data" transfer-ownership="none">
-          <doc xml:whitespace="preserve">a JSON data stream</doc>
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-        <parameter name="length" transfer-ownership="none">
-          <doc xml:whitespace="preserve">length of the data stream, or -1 if it is NUL-terminated</doc>
-          <type name="glong" c:type="gssize"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="gobject_serialize"
-              c:identifier="json_gobject_serialize"
-              version="0.10">
-      <doc xml:whitespace="preserve">Creates a #JsonNode representing the passed #GObject
-instance. Each member of the returned JSON object will
-map to a property of the #GObject
-of type %JSON_NODE_OBJECT. Use json_node_free() to free
-the resources allocated by this function</doc>
-      <return-value transfer-ownership="full">
-        <doc xml:whitespace="preserve">the newly created #JsonNode</doc>
-        <type name="Node" c:type="JsonNode*"/>
-      </return-value>
-      <parameters>
-        <parameter name="gobject" transfer-ownership="none">
-          <doc xml:whitespace="preserve">a #GObject</doc>
-          <type name="GObject.Object" c:type="GObject*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="gobject_to_data"
-              c:identifier="json_gobject_to_data"
-              version="0.10">
-      <doc xml:whitespace="preserve">Serializes a #GObject into a JSON data stream, iterating recursively
-over each property.
-If @gobject implements the #JsonSerializableIface interface, it will
-be asked to serialize all its properties; otherwise, the default
-implementation will be use to translate the compatible types into
-JSON native types.</doc>
-      <return-value transfer-ownership="full">
-        <doc xml:whitespace="preserve">a JSON data stream representing the passed #GObject</doc>
-        <type name="utf8" c:type="gchar*"/>
-      </return-value>
-      <parameters>
-        <parameter name="gobject" transfer-ownership="none">
-          <doc xml:whitespace="preserve">a #GObject</doc>
-          <type name="GObject.Object" c:type="GObject*"/>
-        </parameter>
-        <parameter name="length"
-                   direction="out"
-                   caller-allocates="0"
-                   transfer-ownership="full">
-          <doc xml:whitespace="preserve">return value for the length of the buffer, or %NULL</doc>
-          <type name="gulong" c:type="gsize*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="serialize_gobject"
-              c:identifier="json_serialize_gobject"
-              deprecated="Use json_gobject_to_data() instead"
-              deprecated-version="0.10">
-      <doc xml:whitespace="preserve">Serializes a #GObject into a JSON data stream. If @gobject implements
-the #JsonSerializableIface interface, it will be asked to serizalize all
-its properties; otherwise, the default implementation will be use to
-translate the compatible types into JSON native types.</doc>
-      <return-value transfer-ownership="full">
-        <doc xml:whitespace="preserve">a JSON data stream representing the passed #GObject</doc>
-        <type name="utf8" c:type="gchar*"/>
-      </return-value>
-      <parameters>
-        <parameter name="gobject" transfer-ownership="none">
-          <doc xml:whitespace="preserve">a #GObject</doc>
-          <type name="GObject.Object" c:type="GObject*"/>
-        </parameter>
-        <parameter name="length"
-                   direction="out"
-                   caller-allocates="0"
-                   transfer-ownership="full">
-          <doc xml:whitespace="preserve">return value for the length of the buffer, or %NULL</doc>
-          <type name="gulong" c:type="gsize*"/>
-        </parameter>
-      </parameters>
-    </function>
-  </namespace>
-</repository>
diff --git a/extra/clutter/json/ffi/ffi.factor b/extra/clutter/json/ffi/ffi.factor
deleted file mode 100644 (file)
index 5a9d118..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-! Copyright (C) 2010 Anton Gorenko.
-! See http://factorcode.org/license.txt for BSD license.
-USING: alien alien.libraries alien.syntax combinators
-gobject-introspection kernel system vocabs.loader ;
-IN: clutter.json.ffi
-
-<<
-"gobject.ffi" require
-"gio.ffi" require
->>
-
-LIBRARY: clutter.json
-
-<<
-"clutter.json" {
-    { [ os winnt? ] [ drop ] }
-    { [ os macosx? ] [ drop ] }
-    { [ os unix? ] [ "libclutter-glx-1.0.so" cdecl add-library ] }
-} cond
->>
-
-GIR: vocab:clutter/json/Json-1.0.gir
-
diff --git a/extra/clutter/json/json.factor b/extra/clutter/json/json.factor
deleted file mode 100644 (file)
index 9530483..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-! Copyright (C) 2010 Anton Gorenko.
-! See http://factorcode.org/license.txt for BSD license.
-USING: clutter.json.ffi ;
-IN: clutter.json
-
diff --git a/extra/clutter/summary.txt b/extra/clutter/summary.txt
deleted file mode 100644 (file)
index e7b8c48..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Clutter binding
diff --git a/extra/clutter/tags.txt b/extra/clutter/tags.txt
deleted file mode 100755 (executable)
index bb863cf..0000000
+++ /dev/null
@@ -1 +0,0 @@
-bindings
diff --git a/extra/gir/samples/lowlevel/gstreamer/authors.txt b/extra/gir/samples/lowlevel/gstreamer/authors.txt
deleted file mode 100644 (file)
index ce9bcc8..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Anton Gorenko
\ No newline at end of file
diff --git a/extra/gir/samples/lowlevel/gstreamer/gstreamer.factor b/extra/gir/samples/lowlevel/gstreamer/gstreamer.factor
deleted file mode 100644 (file)
index 7508386..0000000
+++ /dev/null
@@ -1,63 +0,0 @@
-! Copyright (C) 2010 Anton Gorenko.
-! See http://factorcode.org/license.txt for BSD license.
-USING: alien.c-types alien.strings fry byte-arrays classes.struct
-io.encodings.utf8 kernel locals math prettyprint 
-gstreamer.ffi glib.ffi gobject.ffi gtk.ffi ;
-IN: gir.samples.lowlevel.gstreamer
-
-! CONSTANT: uri "http://www.xiph.org/vorbis/listen/compilation-ogg-q4.ogg"
-CONSTANT: uri "http://tinyvid.tv/file/3gocxnjott7wr.ogg"
-
-:: gstreamer-win ( -- window )
-    f f gst_init
-    "playbin" "player" [ utf8 string>alien ] bi@ gst_element_factory_make :> pipeline
-
-    GValue <struct> :> value
-    value G_TYPE_STRING g_value_init drop
-    value uri utf8 string>alien g_value_set_string
-    
-    pipeline "uri" utf8 string>alien value g_object_set_property
-        
-    ! pipeline GST_STATE_PLAYING gst_element_set_state drop
-
-    GTK_WINDOW_TOPLEVEL gtk_window_new :> window
-
-    window
-    [ "GStreamer" utf8 string>alien gtk_window_set_title ]
-    [ 300 200 gtk_window_set_default_size ]
-    [ GTK_WIN_POS_CENTER gtk_window_set_position ] tri
-
-    gtk_fixed_new :> frame
-    window frame gtk_container_add
-    
-    "Start" utf8 string>alien gtk_button_new_with_label :> button
-    button 140 30 gtk_widget_set_size_request
-    frame button 80 60 gtk_fixed_put
-
-    button "clicked" utf8 string>alien
-    [ nip GST_STATE_PLAYING gst_element_set_state drop ] GtkButton:clicked
-    pipeline f 0 g_signal_connect_data drop
-
-    window "destroy" utf8 string>alien
-    [ 
-        nip [ GST_STATE_NULL gst_element_set_state drop ]
-        [ gst_object_unref ] bi
-    ] GtkObject:destroy
-    pipeline f 0 g_signal_connect_data drop
-    
-    window ;
-
-:: gstreamer-main ( -- )
-    f f gtk_init
-    gstreamer-win :> window
-
-    window "destroy" utf8 string>alien
-    [ 2drop gtk_main_quit ] GtkObject:destroy
-    f f 0 g_signal_connect_data drop
-
-    window gtk_widget_show_all
-    
-    gtk_main ;
-
-MAIN: gstreamer-main
-
diff --git a/extra/gstreamer/Gst-0.10.gir b/extra/gstreamer/Gst-0.10.gir
deleted file mode 100644 (file)
index d187fe1..0000000
+++ /dev/null
@@ -1,22063 +0,0 @@
-<?xml version="1.0"?>
-<!-- This file was automatically generated from C sources - DO NOT EDIT!
-To affect the contents of this file, edit the original C definitions,
-and/or use gtk-doc annotations.  -->
-<repository version="1.0"
-            xmlns="http://www.gtk.org/introspection/core/1.0"
-            xmlns:c="http://www.gtk.org/introspection/c/1.0"
-            xmlns:glib="http://www.gtk.org/introspection/glib/1.0">
-  <include name="GLib" version="2.0"/>
-  <include name="GModule" version="2.0"/>
-  <include name="GObject" version="2.0"/>
-  <include name="libxml2" version="2.0"/>
-  <package name="glib-2.0"/>
-  <package name="gmodule-no-export-2.0"/>
-  <package name="gobject-2.0"/>
-  <package name="gthread-2.0"/>
-  <package name="libxml-2.0"/>
-  <c:include name="gst/gst.h"/>
-  <namespace name="Gst"
-             version="0.10"
-             shared-library="libgstreamer-0.10.so.0"
-             c:prefix="Gst">
-    <alias name="ClockID" target="any" c:type="GstClockID"/>
-    <alias name="ClockTime" target="uint64" c:type="GstClockTime"/>
-    <alias name="ClockTimeDiff" target="int64" c:type="GstClockTimeDiff"/>
-    <enumeration name="ActivateMode"
-                 doc="The status of a GstPad. After activating a pad, which usually happens when the
-parent element goes from READY to PAUSED, the GstActivateMode defines if the
-pad operates in push or pull mode."
-                 c:type="GstActivateMode">
-      <member name="none" value="0" c:identifier="GST_ACTIVATE_NONE"/>
-      <member name="push" value="1" c:identifier="GST_ACTIVATE_PUSH"/>
-      <member name="pull" value="2" c:identifier="GST_ACTIVATE_PULL"/>
-    </enumeration>
-    <record name="AllocTrace"
-            c:type="GstAllocTrace"
-            doc="The main tracing object">
-      <field name="name" writable="1">
-        <type name="utf8" c:type="gchar*"/>
-      </field>
-      <field name="flags" writable="1">
-        <type name="int" c:type="gint"/>
-      </field>
-      <field name="live" writable="1">
-        <type name="int" c:type="gint"/>
-      </field>
-      <field name="mem_live" writable="1">
-        <type name="GLib.SList" c:type="GSList*"/>
-      </field>
-      <method name="print"
-              c:identifier="gst_alloc_trace_print"
-              doc="Print the status of the given GstAllocTrace.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </method>
-      <method name="set_flags"
-              c:identifier="gst_alloc_trace_set_flags"
-              doc="Enable the given features on the given GstAllocTrace object.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="flags" transfer-ownership="none">
-            <type name="AllocTraceFlags" c:type="GstAllocTraceFlags"/>
-          </parameter>
-        </parameters>
-      </method>
-    </record>
-    <bitfield name="AllocTraceFlags"
-              doc="Flags indicating which tracing feature to enable."
-              c:type="GstAllocTraceFlags">
-      <member name="live" value="1" c:identifier="GST_ALLOC_TRACE_LIVE"/>
-      <member name="mem_live"
-              value="2"
-              c:identifier="GST_ALLOC_TRACE_MEM_LIVE"/>
-    </bitfield>
-    <bitfield name="AssocFlags"
-              doc="that marks a place where one can randomly seek to.
-is one that marks a place where one can relatively seek to.
-Flags for an association entry."
-              c:type="GstAssocFlags">
-      <member name="none" value="0" c:identifier="GST_ASSOCIATION_FLAG_NONE"/>
-      <member name="key_unit"
-              value="1"
-              c:identifier="GST_ASSOCIATION_FLAG_KEY_UNIT"/>
-      <member name="delta_unit"
-              value="2"
-              c:identifier="GST_ASSOCIATION_FLAG_DELTA_UNIT"/>
-      <member name="last"
-              value="256"
-              c:identifier="GST_ASSOCIATION_FLAG_LAST"/>
-    </bitfield>
-    <constant name="BUFFER_COPY_ALL" value="0">
-      <type name="int"/>
-    </constant>
-    <constant name="BUFFER_OFFSET_NONE" value="-1">
-      <type name="int"/>
-    </constant>
-    <constant name="BUFFER_TRACE_NAME" value="GstBuffer">
-      <type name="utf8"/>
-    </constant>
-    <class name="Bin"
-           c:type="GstBin"
-           doc="The GstBin base class. Subclasses can access these fields provided
-the LOCK is taken."
-           parent="Element"
-           glib:type-name="GstBin"
-           glib:get-type="gst_bin_get_type"
-           glib:type-struct="BinClass">
-      <implements name="ChildProxy"/>
-      <constructor name="new"
-                   c:identifier="gst_bin_new"
-                   doc="Creates a new bin with the given name.">
-        <return-value transfer-ownership="full">
-          <type name="Bin" c:type="GstElement*"/>
-        </return-value>
-        <parameters>
-          <parameter name="name" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </constructor>
-      <virtual-method name="add_element">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="element" transfer-ownership="none">
-            <type name="Element" c:type="GstElement*"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <virtual-method name="remove_element">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="element" transfer-ownership="none">
-            <type name="Element" c:type="GstElement*"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <virtual-method name="handle_message">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="message" transfer-ownership="none">
-            <type name="Message" c:type="GstMessage*"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <method name="add"
-              c:identifier="gst_bin_add"
-              doc="Adds the given element to the bin.  Sets the element&apos;s parent, and thus
-takes ownership of the element. An element can only be added to one bin.
-If the element&apos;s pads are linked to other pads, the pads will be unlinked
-before the element is added to the bin.
-MT safe.
-the bin does not want to accept the element.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="element" transfer-ownership="none">
-            <type name="Element" c:type="GstElement*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="remove"
-              c:identifier="gst_bin_remove"
-              doc="Removes the element from the bin, unparenting it as well.
-Unparenting the element means that the element will be dereferenced,
-so if the bin holds the only reference to the element, the element
-will be freed in the process of removing it from the bin.  If you
-want the element to still exist after removing, you need to call
-gst_object_ref() before removing it from the bin.
-If the element&apos;s pads are linked to other pads, the pads will be unlinked
-before the element is removed from the bin.
-MT safe.
-the bin does not want to remove the element.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="element" transfer-ownership="none">
-            <type name="Element" c:type="GstElement*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_by_name"
-              c:identifier="gst_bin_get_by_name"
-              doc="Gets the element with the given name from a bin. This
-function recurses into child bins.
-Returns NULL if no element with the given name is found in the bin.
-MT safe.  Caller owns returned reference.">
-        <return-value transfer-ownership="full">
-          <type name="Element" c:type="GstElement*"/>
-        </return-value>
-        <parameters>
-          <parameter name="name" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_by_name_recurse_up"
-              c:identifier="gst_bin_get_by_name_recurse_up"
-              doc="Gets the element with the given name from this bin. If the
-element is not found, a recursion is performed on the parent bin.
-Returns NULL if:
-- no element with the given name is found in the bin
-MT safe.  Caller owns returned reference.">
-        <return-value transfer-ownership="full">
-          <type name="Element" c:type="GstElement*"/>
-        </return-value>
-        <parameters>
-          <parameter name="name" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_by_interface"
-              c:identifier="gst_bin_get_by_interface"
-              doc="Looks for an element inside the bin that implements the given
-interface. If such an element is found, it returns the element.
-You can cast this element to the given interface afterwards.  If you want
-all elements that implement the interface, use
-gst_bin_iterate_all_by_interface(). This function recurses into child bins.
-MT safe.  Caller owns returned reference.">
-        <return-value transfer-ownership="full">
-          <type name="Element" c:type="GstElement*"/>
-        </return-value>
-        <parameters>
-          <parameter name="iface" transfer-ownership="none">
-            <type name="GType" c:type="GType"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="iterate_elements"
-              c:identifier="gst_bin_iterate_elements"
-              doc="Gets an iterator for the elements in this bin.
-Each element yielded by the iterator will have its refcount increased, so
-unref after use.
-MT safe.  Caller owns returned value.">
-        <return-value transfer-ownership="full">
-          <type name="Iterator" c:type="GstIterator*"/>
-        </return-value>
-      </method>
-      <method name="iterate_sorted"
-              c:identifier="gst_bin_iterate_sorted"
-              doc="Gets an iterator for the elements in this bin in topologically
-sorted order. This means that the elements are returned from
-the most downstream elements (sinks) to the sources.
-This function is used internally to perform the state changes
-of the bin elements and for clock selection.
-Each element yielded by the iterator will have its refcount increased, so
-unref after use.
-MT safe.  Caller owns returned value.">
-        <return-value transfer-ownership="full">
-          <type name="Iterator" c:type="GstIterator*"/>
-        </return-value>
-      </method>
-      <method name="iterate_recurse"
-              c:identifier="gst_bin_iterate_recurse"
-              doc="Gets an iterator for the elements in this bin.
-This iterator recurses into GstBin children.
-Each element yielded by the iterator will have its refcount increased, so
-unref after use.
-MT safe.  Caller owns returned value.">
-        <return-value transfer-ownership="full">
-          <type name="Iterator" c:type="GstIterator*"/>
-        </return-value>
-      </method>
-      <method name="iterate_sinks"
-              c:identifier="gst_bin_iterate_sinks"
-              doc="Gets an iterator for all elements in the bin that have the
-#GST_ELEMENT_IS_SINK flag set.
-Each element yielded by the iterator will have its refcount increased, so
-unref after use.
-MT safe.  Caller owns returned value.">
-        <return-value transfer-ownership="full">
-          <type name="Iterator" c:type="GstIterator*"/>
-        </return-value>
-      </method>
-      <method name="iterate_sources"
-              c:identifier="gst_bin_iterate_sources"
-              doc="Gets an iterator for all elements in the bin that have no sinkpads and have
-the #GST_ELEMENT_IS_SINK flag unset.
-Each element yielded by the iterator will have its refcount increased, so
-unref after use.
-MT safe.  Caller owns returned value.">
-        <return-value transfer-ownership="full">
-          <type name="Iterator" c:type="GstIterator*"/>
-        </return-value>
-      </method>
-      <method name="iterate_all_by_interface"
-              c:identifier="gst_bin_iterate_all_by_interface"
-              doc="Looks for all elements inside the bin that implements the given
-interface. You can safely cast all returned elements to the given interface.
-The function recurses inside child bins. The iterator will yield a series
-of #GstElement that should be unreffed after use.
-Each element yielded by the iterator will have its refcount increased, so
-unref after use.
-MT safe.  Caller owns returned value.
-implementing the given interface, or NULL">
-        <return-value transfer-ownership="full">
-          <type name="Iterator" c:type="GstIterator*"/>
-        </return-value>
-        <parameters>
-          <parameter name="iface" transfer-ownership="none">
-            <type name="GType" c:type="GType"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="recalculate_latency"
-              c:identifier="gst_bin_recalculate_latency"
-              doc="Query @bin for the current latency using and reconfigures this latency to all the
-elements with a LATENCY event.
-This method is typically called on the pipeline when a #GST_MESSAGE_LATENCY
-is posted on the bus.
-This function simply emits the &apos;do-latency&apos; signal so any custom latency
-calculations will be performed."
-              version="0.10.22.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-      </method>
-      <method name="add_many"
-              c:identifier="gst_bin_add_many"
-              doc="Adds a NULL-terminated list of elements to a bin.  This function is
-equivalent to calling gst_bin_add() for each member of the list. The return
-value of each gst_bin_add() is ignored.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="element_1" transfer-ownership="none">
-            <type name="Element" c:type="GstElement*"/>
-          </parameter>
-          <parameter transfer-ownership="none">
-            <varargs>
-            </varargs>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="remove_many"
-              c:identifier="gst_bin_remove_many"
-              doc="Remove a list of elements from a bin. This function is equivalent
-to calling gst_bin_remove() with each member of the list.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="element_1" transfer-ownership="none">
-            <type name="Element" c:type="GstElement*"/>
-          </parameter>
-          <parameter transfer-ownership="none">
-            <varargs>
-            </varargs>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="find_unlinked_pad"
-              c:identifier="gst_bin_find_unlinked_pad"
-              doc="Recursively looks for elements with an unlinked pad of the given
-direction within the specified bin and returns an unlinked pad
-if one is found, or NULL otherwise. If a pad is found, the caller
-owns a reference to it and should use gst_object_unref() on the
-pad when it is not needed any longer."
-              version="0.10.20">
-        <return-value transfer-ownership="full">
-          <type name="Pad" c:type="GstPad*"/>
-        </return-value>
-        <parameters>
-          <parameter name="direction" transfer-ownership="none">
-            <type name="PadDirection" c:type="GstPadDirection"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="find_unconnected_pad"
-              c:identifier="gst_bin_find_unconnected_pad"
-              doc="Recursively looks for elements with an unlinked pad of the given
-direction within the specified bin and returns an unlinked pad
-if one is found, or NULL otherwise. If a pad is found, the caller
-owns a reference to it and should use gst_object_unref() on the
-pad when it is not needed any longer."
-              version="0.10.3"
-              deprecated="use gst_bin_find_unlinked_pad() instead.">
-        <return-value transfer-ownership="full">
-          <type name="Pad" c:type="GstPad*"/>
-        </return-value>
-        <parameters>
-          <parameter name="direction" transfer-ownership="none">
-            <type name="PadDirection" c:type="GstPadDirection"/>
-          </parameter>
-        </parameters>
-      </method>
-      <property name="async-handling" writable="1">
-        <type name="boolean" c:type="gboolean"/>
-      </property>
-      <field name="element">
-        <type name="Element" c:type="GstElement"/>
-      </field>
-      <field name="numchildren">
-        <type name="int" c:type="gint"/>
-      </field>
-      <field name="children">
-        <type name="GLib.List" c:type="GList*"/>
-      </field>
-      <field name="children_cookie">
-        <type name="uint32" c:type="guint32"/>
-      </field>
-      <field name="child_bus">
-        <type name="Bus" c:type="GstBus*"/>
-      </field>
-      <field name="messages">
-        <type name="GLib.List" c:type="GList*"/>
-      </field>
-      <field name="polling">
-        <type name="boolean" c:type="gboolean"/>
-      </field>
-      <field name="state_dirty">
-        <type name="boolean" c:type="gboolean"/>
-      </field>
-      <field name="clock_dirty">
-        <type name="boolean" c:type="gboolean"/>
-      </field>
-      <field name="provided_clock">
-        <type name="Clock" c:type="GstClock*"/>
-      </field>
-      <field name="clock_provider">
-        <type name="Element" c:type="GstElement*"/>
-      </field>
-      <field name="priv">
-        <type name="BinPrivate" c:type="GstBinPrivate*"/>
-      </field>
-      <field name="_gst_reserved">
-        <array zero-terminated="0" c:type="gpointer" fixed-size="3">
-          <type name="any"/>
-        </array>
-      </field>
-      <glib:signal name="do-latency"
-                   doc="Will be emitted when the bin needs to perform latency calculations. This
-signal is only emited for toplevel bins or when async-handling is
-enabled.
-Only one signal handler is invoked. If no signals are connected, the
-default handler is invoked, which will query and distribute the lowest
-possible latency to all sinks.
-Connect to this signal if the default latency calculations are not
-sufficient, like when you need different latencies for different sinks in
-the same pipeline."
-                   version="0.10.22">
-        <return-value transfer-ownership="full">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-      </glib:signal>
-      <glib:signal name="element-added"
-                   doc="Will be emitted after the element was added to the bin.">
-        <return-value transfer-ownership="full">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="element" transfer-ownership="none">
-            <type name="Element" c:type="GstElement"/>
-          </parameter>
-        </parameters>
-      </glib:signal>
-      <glib:signal name="element-removed"
-                   doc="Will be emitted after the element was removed from the bin.">
-        <return-value transfer-ownership="full">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="element" transfer-ownership="none">
-            <type name="Element" c:type="GstElement"/>
-          </parameter>
-        </parameters>
-      </glib:signal>
-    </class>
-    <record name="BinClass"
-            c:type="GstBinClass"
-            glib:is-gtype-struct-for="Bin"
-            doc="Subclasses can override the @add_element and @remove_element to
-update the list of children in the bin.
-The @handle_message method can be overridden to implement custom
-message handling.  @handle_message takes ownership of the message, just like
-#gst_element_post_message.">
-      <field name="parent_class">
-        <type name="ElementClass" c:type="GstElementClass"/>
-      </field>
-      <field name="pool">
-        <type name="GLib.ThreadPool" c:type="GThreadPool*"/>
-      </field>
-      <field name="element_added">
-        <callback name="element_added" c:type="element_added">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="bin" transfer-ownership="none">
-              <type name="Bin" c:type="GstBin*"/>
-            </parameter>
-            <parameter name="child" transfer-ownership="none">
-              <type name="Element" c:type="GstElement*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="element_removed">
-        <callback name="element_removed" c:type="element_removed">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="bin" transfer-ownership="none">
-              <type name="Bin" c:type="GstBin*"/>
-            </parameter>
-            <parameter name="child" transfer-ownership="none">
-              <type name="Element" c:type="GstElement*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="add_element">
-        <callback name="add_element" c:type="add_element">
-          <return-value transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </return-value>
-          <parameters>
-            <parameter name="bin" transfer-ownership="none">
-              <type name="Bin" c:type="GstBin*"/>
-            </parameter>
-            <parameter name="element" transfer-ownership="none">
-              <type name="Element" c:type="GstElement*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="remove_element">
-        <callback name="remove_element" c:type="remove_element">
-          <return-value transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </return-value>
-          <parameters>
-            <parameter name="bin" transfer-ownership="none">
-              <type name="Bin" c:type="GstBin*"/>
-            </parameter>
-            <parameter name="element" transfer-ownership="none">
-              <type name="Element" c:type="GstElement*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="handle_message">
-        <callback name="handle_message" c:type="handle_message">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="bin" transfer-ownership="none">
-              <type name="Bin" c:type="GstBin*"/>
-            </parameter>
-            <parameter name="message" transfer-ownership="none">
-              <type name="Message" c:type="GstMessage*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="do_latency">
-        <callback name="do_latency" c:type="do_latency">
-          <return-value transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </return-value>
-          <parameters>
-            <parameter name="bin" transfer-ownership="none">
-              <type name="Bin" c:type="GstBin*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="_gst_reserved">
-        <array zero-terminated="0" c:type="gpointer" fixed-size="3">
-          <type name="any"/>
-        </array>
-      </field>
-    </record>
-    <bitfield name="BinFlags"
-              doc="Derived classes can use this as first value in a list of flags.
-GstBinFlags are a set of flags specific to bins. Most are set/used
-internally. They can be checked using the GST_OBJECT_FLAG_IS_SET () macro,
-and (un)set using GST_OBJECT_FLAG_SET () and GST_OBJECT_FLAG_UNSET ()."
-              c:type="GstBinFlags">
-      <member name="bin_flag_last"
-              value="33554432"
-              c:identifier="GST_BIN_FLAG_LAST"/>
-    </bitfield>
-    <record name="BinPrivate" c:type="GstBinPrivate">
-    </record>
-    <record name="Buffer"
-            c:type="GstBuffer"
-            doc="timestamp is not known or relevant.
-when the duration is not known or relevant.
-For video frames, this is the frame number of this buffer.
-For audio samples, this is the offset of the first sample in this buffer.
-For file data or compressed data this is the byte offset of the first
-byte in this buffer.
-format as @offset.
-When the buffer is freed, this data will freed with @free_func.
-to g_free(). Since 0.10.22.
-The structure of a #GstBuffer. Use the associated macros to access the public
-variables.">
-      <field name="mini_object" writable="1">
-        <type name="MiniObject" c:type="GstMiniObject"/>
-      </field>
-      <field name="data" writable="1">
-        <type name="any" c:type="guint8*"/>
-      </field>
-      <field name="size" writable="1">
-        <type name="uint" c:type="guint"/>
-      </field>
-      <field name="timestamp" writable="1">
-        <type name="ClockTime" c:type="GstClockTime"/>
-      </field>
-      <field name="duration" writable="1">
-        <type name="ClockTime" c:type="GstClockTime"/>
-      </field>
-      <field name="caps" writable="1">
-        <type name="Caps" c:type="GstCaps*"/>
-      </field>
-      <field name="offset" writable="1">
-        <type name="uint64" c:type="guint64"/>
-      </field>
-      <field name="offset_end" writable="1">
-        <type name="uint64" c:type="guint64"/>
-      </field>
-      <field name="malloc_data" writable="1">
-        <type name="any" c:type="guint8*"/>
-      </field>
-      <field name="free_func" writable="1">
-        <type name="GLib.FreeFunc" c:type="GFreeFunc"/>
-      </field>
-      <field name="parent" writable="1">
-        <type name="Buffer" c:type="GstBuffer*"/>
-      </field>
-      <field name="_gst_reserved" writable="1">
-        <array zero-terminated="0" c:type="gpointer" fixed-size="2">
-          <type name="any"/>
-        </array>
-      </field>
-      <constructor name="new"
-                   c:identifier="gst_buffer_new"
-                   doc="Creates a newly allocated buffer without any data.
-MT safe.">
-        <return-value transfer-ownership="full">
-          <type name="Buffer" c:type="GstBuffer*"/>
-        </return-value>
-      </constructor>
-      <constructor name="new_and_alloc"
-                   c:identifier="gst_buffer_new_and_alloc"
-                   doc="Creates a newly allocated buffer with data of the given size.
-The buffer memory is not cleared. If the requested amount of
-memory can&apos;t be allocated, the program will abort. Use
-gst_buffer_try_new_and_alloc() if you want to handle this case
-gracefully or have gotten the size to allocate from an untrusted
-source such as a media stream.
-Note that when @size == 0, the buffer data pointer will be NULL.
-MT safe.">
-        <return-value transfer-ownership="full">
-          <type name="Buffer" c:type="GstBuffer*"/>
-        </return-value>
-        <parameters>
-          <parameter name="size" transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
-          </parameter>
-        </parameters>
-      </constructor>
-      <method name="copy_metadata"
-              c:identifier="gst_buffer_copy_metadata"
-              doc="Copies the metadata from @src into @dest. The data, size and mallocdata
-fields are not copied.
-all the metadata fields.
-This function is typically called from a custom buffer copy function after
-creating @dest and setting the data, size, mallocdata."
-              version="0.10.13">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="src" transfer-ownership="none">
-            <type name="Buffer" c:type="GstBuffer*"/>
-          </parameter>
-          <parameter name="flags" transfer-ownership="none">
-            <type name="BufferCopyFlags" c:type="GstBufferCopyFlags"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="is_metadata_writable"
-              c:identifier="gst_buffer_is_metadata_writable"
-              doc="Similar to gst_buffer_is_writable, but this only ensures that the
-refcount of the buffer is 1, indicating that the caller is the sole
-owner and can change the buffer metadata, such as caps and timestamps.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-      </method>
-      <method name="make_metadata_writable"
-              c:identifier="gst_buffer_make_metadata_writable"
-              doc="Similar to gst_buffer_make_writable, but does not ensure that the buffer
-data array is writable. Instead, this just ensures that the returned buffer
-is solely owned by the caller, by creating a subbuffer of the original
-buffer if necessary.
-After calling this function, @buf should not be referenced anymore. The
-result of this function has guaranteed writable metadata.">
-        <return-value transfer-ownership="full">
-          <type name="Buffer" c:type="GstBuffer*"/>
-        </return-value>
-      </method>
-      <method name="get_caps"
-              c:identifier="gst_buffer_get_caps"
-              doc="Gets the media type of the buffer. This can be NULL if there
-is no media type attached to this buffer.
-Returns NULL if there were no caps on this buffer.">
-        <return-value transfer-ownership="full">
-          <type name="Caps" c:type="GstCaps*"/>
-        </return-value>
-      </method>
-      <method name="set_caps"
-              c:identifier="gst_buffer_set_caps"
-              doc="Sets the media type on the buffer. The refcount of the caps will
-be increased and any previous caps on the buffer will be
-unreffed.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="caps" transfer-ownership="none">
-            <type name="Caps" c:type="GstCaps*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="create_sub"
-              c:identifier="gst_buffer_create_sub"
-              doc="begins.
-Creates a sub-buffer from @parent at @offset and @size.
-This sub-buffer uses the actual memory space of the parent buffer.
-This function will copy the offset and timestamp fields when the
-offset is 0. If not, they will be set to #GST_CLOCK_TIME_NONE and
-#GST_BUFFER_OFFSET_NONE.
-If @offset equals 0 and @size equals the total size of @buffer, the
-duration and offset end fields are also copied. If not they will be set
-to #GST_CLOCK_TIME_NONE and #GST_BUFFER_OFFSET_NONE.
-MT safe.
-Returns NULL if the arguments were invalid.">
-        <return-value transfer-ownership="full">
-          <type name="Buffer" c:type="GstBuffer*"/>
-        </return-value>
-        <parameters>
-          <parameter name="offset" transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
-          </parameter>
-          <parameter name="size" transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="is_span_fast"
-              c:identifier="gst_buffer_is_span_fast"
-              doc="Determines whether a gst_buffer_span() can be done without copying
-the contents, that is, whether the data areas are contiguous sub-buffers of
-the same buffer.
-MT safe.
-FALSE if a copy would be required.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="buf2" transfer-ownership="none">
-            <type name="Buffer" c:type="GstBuffer*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="span"
-              c:identifier="gst_buffer_span"
-              doc="buffer should start.
-Creates a new buffer that consists of part of buf1 and buf2.
-Logically, buf1 and buf2 are concatenated into a single larger
-buffer, and a new buffer is created at the given offset inside
-this space, with a given length.
-If the two source buffers are children of the same larger buffer,
-and are contiguous, the new buffer will be a child of the shared
-parent, and thus no copying is necessary. you can use
-gst_buffer_is_span_fast() to determine if a memcpy will be needed.
-MT safe.
-Returns NULL if the arguments are invalid.">
-        <return-value transfer-ownership="full">
-          <type name="Buffer" c:type="GstBuffer*"/>
-        </return-value>
-        <parameters>
-          <parameter name="offset" transfer-ownership="none">
-            <type name="uint32" c:type="guint32"/>
-          </parameter>
-          <parameter name="buf2" transfer-ownership="none">
-            <type name="Buffer" c:type="GstBuffer*"/>
-          </parameter>
-          <parameter name="len" transfer-ownership="none">
-            <type name="uint32" c:type="guint32"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="merge"
-              c:identifier="gst_buffer_merge"
-              doc="Create a new buffer that is the concatenation of the two source
-buffers.  The original source buffers will not be modified or
-unref&apos;d.  Make sure you unref the source buffers if they are not used
-anymore afterwards.
-If the buffers point to contiguous areas of memory, the buffer
-is created without copying the data.">
-        <return-value transfer-ownership="full">
-          <type name="Buffer" c:type="GstBuffer*"/>
-        </return-value>
-        <parameters>
-          <parameter name="buf2" transfer-ownership="none">
-            <type name="Buffer" c:type="GstBuffer*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="join"
-              c:identifier="gst_buffer_join"
-              doc="Create a new buffer that is the concatenation of the two source
-buffers, and unrefs the original source buffers.
-If the buffers point to contiguous areas of memory, the buffer
-is created without copying the data.
-This is a convenience function for C programmers. See also
-gst_buffer_merge(), which does the same thing without
-unreffing the input parameters. Language bindings without
-explicit reference counting should not wrap this function.">
-        <return-value transfer-ownership="full">
-          <type name="Buffer" c:type="GstBuffer*"/>
-        </return-value>
-        <parameters>
-          <parameter name="buf2" transfer-ownership="none">
-            <type name="Buffer" c:type="GstBuffer*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="stamp"
-              c:identifier="gst_buffer_stamp"
-              doc="Copies additional information (the timestamp, duration, and offset start
-and end) from one buffer to the other.
-This function does not copy any buffer flags or caps and is equivalent to
-gst_buffer_copy_metadata(@dest, @src, GST_BUFFER_COPY_TIMESTAMPS).
-control."
-              deprecated="use gst_buffer_copy_metadata() instead, it provides more">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="src" transfer-ownership="none">
-            <type name="Buffer" c:type="GstBuffer*"/>
-          </parameter>
-        </parameters>
-      </method>
-    </record>
-    <record name="BufferClass" c:type="GstBufferClass">
-      <field name="mini_object_class" writable="1">
-        <type name="MiniObjectClass" c:type="GstMiniObjectClass"/>
-      </field>
-    </record>
-    <bitfield name="BufferCopyFlags"
-              doc="offset and offset_end should be copied
-A set of flags that can be provided to the gst_buffer_copy_metadata()
-function to specify which metadata fields should be copied."
-              version="0.10.13"
-              c:type="GstBufferCopyFlags">
-      <member name="flags" value="1" c:identifier="GST_BUFFER_COPY_FLAGS"/>
-      <member name="timestamps"
-              value="2"
-              c:identifier="GST_BUFFER_COPY_TIMESTAMPS"/>
-      <member name="caps" value="4" c:identifier="GST_BUFFER_COPY_CAPS"/>
-    </bitfield>
-    <bitfield name="BufferFlag"
-              doc="the buffer should not be modified. The metadata might still be modified.
-displayed.
-This typically occurs after a seek or a dropped buffer from a live or
-network source.
-stream and contains media neutral data (elements can switch to optimized code
-path that ignores the buffer content).
-A set of buffer flags used to describe properties of a #GstBuffer."
-              c:type="GstBufferFlag">
-      <member name="readonly"
-              value="1"
-              c:identifier="GST_BUFFER_FLAG_READONLY"/>
-      <member name="preroll"
-              value="16"
-              c:identifier="GST_BUFFER_FLAG_PREROLL"/>
-      <member name="discont"
-              value="32"
-              c:identifier="GST_BUFFER_FLAG_DISCONT"/>
-      <member name="in_caps"
-              value="64"
-              c:identifier="GST_BUFFER_FLAG_IN_CAPS"/>
-      <member name="gap" value="128" c:identifier="GST_BUFFER_FLAG_GAP"/>
-      <member name="delta_unit"
-              value="256"
-              c:identifier="GST_BUFFER_FLAG_DELTA_UNIT"/>
-      <member name="media1" value="512" c:identifier="GST_BUFFER_FLAG_MEDIA1"/>
-      <member name="media2"
-              value="1024"
-              c:identifier="GST_BUFFER_FLAG_MEDIA2"/>
-      <member name="media3"
-              value="2048"
-              c:identifier="GST_BUFFER_FLAG_MEDIA3"/>
-      <member name="last" value="4096" c:identifier="GST_BUFFER_FLAG_LAST"/>
-    </bitfield>
-    <record name="BufferList"
-            c:type="GstBufferList"
-            doc="Opaque list of grouped buffers."
-            version="0.10.24">
-      <constructor name="new"
-                   c:identifier="gst_buffer_list_new"
-                   doc="Creates a new, empty #GstBufferList. The caller is responsible for unreffing
-the returned #GstBufferList."
-                   version="0.10.24">
-        <return-value transfer-ownership="full" doc="after usage.">
-          <type name="BufferList" c:type="GstBufferList*"/>
-        </return-value>
-      </constructor>
-      <method name="n_groups"
-              c:identifier="gst_buffer_list_n_groups"
-              doc="Returns the number of groups in @list."
-              version="0.10.24">
-        <return-value transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
-        </return-value>
-      </method>
-      <method name="foreach"
-              c:identifier="gst_buffer_list_foreach"
-              doc="Call @func with @data for each buffer in @list.
-of @func define if this function returns or if the remaining buffers in a
-group should be skipped."
-              version="0.10.24">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="func"
-                     transfer-ownership="none"
-                     scope="call"
-                     closure="2">
-            <type name="BufferListFunc" c:type="GstBufferListFunc"/>
-          </parameter>
-          <parameter name="user_data" transfer-ownership="none">
-            <type name="any" c:type="gpointer"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get"
-              c:identifier="gst_buffer_list_get"
-              doc="Get the buffer at @idx in @group.
-Note that this function is not efficient for iterating over the entire list.
-Use an iterator or gst_buffer_list_foreach() instead.
-buffer remains valid as long as @list is valid."
-              version="0.10.24">
-        <return-value transfer-ownership="full">
-          <type name="Buffer" c:type="GstBuffer*"/>
-        </return-value>
-        <parameters>
-          <parameter name="group" transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
-          </parameter>
-          <parameter name="idx" transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="iterate"
-              c:identifier="gst_buffer_list_iterate"
-              doc="Iterate the buffers in @list. The owner of the iterator must also be the
-owner of a reference to @list while the returned iterator is in use.
-gst_buffer_list_iterator_free() after usage"
-              version="0.10.24">
-        <return-value transfer-ownership="full">
-          <type name="BufferListIterator" c:type="GstBufferListIterator*"/>
-        </return-value>
-      </method>
-    </record>
-    <record name="BufferListClass" c:type="GstBufferListClass">
-    </record>
-    <callback name="BufferListDoFunction"
-              c:type="GstBufferListDoFunction"
-              doc="A function for accessing the last buffer returned by
-gst_buffer_list_iterator_next(). The function can leave @buffer in the list,
-replace @buffer in the list or remove @buffer from the list, depending on
-the return value. If the function returns NULL, @buffer will be removed from
-the list, otherwise @buffer will be replaced with the returned buffer.
-The last buffer returned by gst_buffer_list_iterator_next() will be replaced
-with the buffer returned from the function. The function takes ownership of
-unreffed. If NULL is returned, the buffer will be removed from the list. The
-list must be writable.
-from the list"
-              version="0.10.24">
-      <return-value transfer-ownership="full">
-        <type name="Buffer" c:type="GstBuffer*"/>
-      </return-value>
-      <parameters>
-        <parameter name="buffer" transfer-ownership="none">
-          <type name="Buffer" c:type="GstBuffer*"/>
-        </parameter>
-        <parameter name="user_data" transfer-ownership="none" closure="1">
-          <type name="any" c:type="gpointer"/>
-        </parameter>
-      </parameters>
-    </callback>
-    <callback name="BufferListFunc"
-              c:type="GstBufferListFunc"
-              doc="A function that will be called from gst_buffer_list_foreach(). The @buffer
-field will point to a the reference of the buffer at @idx in @group.
-When this function returns #GST_BUFFER_LIST_CONTINUE, the next buffer will be
-returned. When #GST_BUFFER_LIST_SKIP_GROUP is returned, all remaining buffers
-in the current group will be skipped and the first buffer of the next group
-is returned (if any). When GST_BUFFER_LIST_END is returned,
-gst_buffer_list_foreach() will return.
-When @buffer is set to NULL, the item will be removed from the bufferlist.
-When @buffer has been made writable, the new buffer reference can be assigned
-to @buffer. This function is responsible for unreffing the old buffer when
-removing or modifying."
-              version="0.10.24">
-      <return-value transfer-ownership="full">
-        <type name="BufferListItem" c:type="GstBufferListItem"/>
-      </return-value>
-      <parameters>
-        <parameter name="buffer" transfer-ownership="none">
-          <type name="Buffer" c:type="GstBuffer**"/>
-        </parameter>
-        <parameter name="group" transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
-        </parameter>
-        <parameter name="idx" transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
-        </parameter>
-        <parameter name="user_data" transfer-ownership="none" closure="3">
-          <type name="any" c:type="gpointer"/>
-        </parameter>
-      </parameters>
-    </callback>
-    <enumeration name="BufferListItem"
-                 doc="The result of the #GstBufferListFunc."
-                 version="0.10.24"
-                 c:type="GstBufferListItem">
-      <member name="continue"
-              value="0"
-              c:identifier="GST_BUFFER_LIST_CONTINUE"/>
-      <member name="skip_group"
-              value="1"
-              c:identifier="GST_BUFFER_LIST_SKIP_GROUP"/>
-      <member name="end" value="2" c:identifier="GST_BUFFER_LIST_END"/>
-    </enumeration>
-    <record name="BufferListIterator"
-            c:type="GstBufferListIterator"
-            doc="Opaque iterator for a #GstBufferList."
-            version="0.10.24">
-      <method name="free"
-              c:identifier="gst_buffer_list_iterator_free"
-              doc="Free the iterator."
-              version="0.10.24">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </method>
-      <method name="n_buffers"
-              c:identifier="gst_buffer_list_iterator_n_buffers"
-              doc="Returns the number of buffers left to iterate in the current group. I.e. the
-number of calls that can be made to gst_buffer_list_iterator_next() before
-it returns NULL.
-This function will not move the implicit cursor or in any other way affect
-the state of the iterator @it."
-              version="0.10.24">
-        <return-value transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
-        </return-value>
-      </method>
-      <method name="next"
-              c:identifier="gst_buffer_list_iterator_next"
-              doc="Returns the next buffer in the list iterated with @it. If the iterator is at
-the end of a group, NULL will be returned. This function may be called
-repeatedly to iterate through the current group.
-The caller will not get a new ref to the returned #GstBuffer and must not
-unref it."
-              version="0.10.24">
-        <return-value transfer-ownership="full">
-          <type name="Buffer" c:type="GstBuffer*"/>
-        </return-value>
-      </method>
-      <method name="next_group"
-              c:identifier="gst_buffer_list_iterator_next_group"
-              doc="Advance the iterator @it to the first buffer in the next group. If the
-iterator is at the last group, FALSE will be returned. This function may be
-called repeatedly to iterate through the groups in a buffer list.
-the iterator was already at the last group"
-              version="0.10.24">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-      </method>
-      <method name="add"
-              c:identifier="gst_buffer_list_iterator_add"
-              doc="Inserts @buffer into the #GstBufferList iterated with @it. The buffer is
-inserted into the current group, immediately before the buffer that would be
-returned by gst_buffer_list_iterator_next(). The buffer is inserted before
-the implicit cursor, a subsequent call to gst_buffer_list_iterator_next()
-will return the buffer after the inserted buffer, if any.
-This function takes ownership of @buffer."
-              version="0.10.24">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="buffer" transfer-ownership="none">
-            <type name="Buffer" c:type="GstBuffer*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="add_group"
-              c:identifier="gst_buffer_list_iterator_add_group"
-              doc="Inserts a new, empty group into the #GstBufferList iterated with @it. The
-group is inserted immediately before the group that would be returned by
-gst_buffer_list_iterator_next_group(). A subsequent call to
-gst_buffer_list_iterator_next_group() will advance the iterator to the group
-after the inserted group, if any."
-              version="0.10.24">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </method>
-      <method name="remove"
-              c:identifier="gst_buffer_list_iterator_remove"
-              doc="Removes the last buffer returned by gst_buffer_list_iterator_next() from
-the #GstBufferList iterated with @it. gst_buffer_list_iterator_next() must
-have been called on @it before this function is called. This function can
-only be called once per call to gst_buffer_list_iterator_next().
-The removed buffer is unreffed."
-              version="0.10.24">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </method>
-      <method name="steal"
-              c:identifier="gst_buffer_list_iterator_steal"
-              doc="Returns the last buffer returned by gst_buffer_list_iterator_next() without
-modifying the refcount of the buffer."
-              version="0.10.24">
-        <return-value transfer-ownership="full">
-          <type name="Buffer" c:type="GstBuffer*"/>
-        </return-value>
-      </method>
-      <method name="take"
-              c:identifier="gst_buffer_list_iterator_take"
-              doc="Replaces the last buffer returned by gst_buffer_list_iterator_next() with
-this function is called. gst_buffer_list_iterator_remove() must not have been
-called since the last call to gst_buffer_list_iterator_next().
-This function unrefs the replaced buffer if it has not been stolen with
-gst_buffer_list_iterator_steal() and takes ownership of @buffer (i.e. the
-refcount of @buffer is not increased)."
-              version="0.10.24">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="buffer" transfer-ownership="none">
-            <type name="Buffer" c:type="GstBuffer*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="do"
-              c:identifier="gst_buffer_list_iterator_do"
-              doc="Calls the given function for the last buffer returned by
-gst_buffer_list_iterator_next(). gst_buffer_list_iterator_next() must have
-been called on @it before this function is called.
-gst_buffer_list_iterator_remove() and gst_buffer_list_iterator_steal() must
-not have been called since the last call to gst_buffer_list_iterator_next().
-See #GstBufferListDoFunction for more details."
-              version="0.10.24">
-        <return-value transfer-ownership="full">
-          <type name="Buffer" c:type="GstBuffer*"/>
-        </return-value>
-        <parameters>
-          <parameter name="do_func"
-                     transfer-ownership="none"
-                     scope="call"
-                     closure="2">
-            <type name="BufferListDoFunction"
-                  c:type="GstBufferListDoFunction"/>
-          </parameter>
-          <parameter name="user_data" transfer-ownership="none">
-            <type name="any" c:type="gpointer"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="merge_group"
-              c:identifier="gst_buffer_list_iterator_merge_group"
-              doc="Merge a buffer list group into a normal #GstBuffer by copying its metadata
-and memcpying its data into consecutive memory. All buffers in the current
-group after the implicit cursor will be merged into one new buffer. The
-metadata of the new buffer will be a copy of the metadata of the buffer that
-would be returned by gst_buffer_list_iterator_next(). If there is no buffer
-in the current group after the implicit cursor, NULL will be returned.
-This function will not move the implicit cursor or in any other way affect
-the state of the iterator @it or the list."
-              version="0.10.24">
-        <return-value transfer-ownership="full" doc="after usage, or NULL">
-          <type name="Buffer" c:type="GstBuffer*"/>
-        </return-value>
-      </method>
-    </record>
-    <enumeration name="BufferingMode"
-                 doc="The different types of buffering methods."
-                 c:type="GstBufferingMode">
-      <member name="stream" value="0" c:identifier="GST_BUFFERING_STREAM"/>
-      <member name="download" value="1" c:identifier="GST_BUFFERING_DOWNLOAD"/>
-      <member name="timeshift"
-              value="2"
-              c:identifier="GST_BUFFERING_TIMESHIFT"/>
-      <member name="live" value="3" c:identifier="GST_BUFFERING_LIVE"/>
-    </enumeration>
-    <class name="Bus"
-           c:type="GstBus"
-           doc="The opaque #GstBus data structure."
-           parent="Object"
-           glib:type-name="GstBus"
-           glib:get-type="gst_bus_get_type"
-           glib:type-struct="BusClass">
-      <constructor name="new"
-                   c:identifier="gst_bus_new"
-                   doc="Creates a new #GstBus instance.">
-        <return-value transfer-ownership="full">
-          <type name="Bus" c:type="GstBus*"/>
-        </return-value>
-      </constructor>
-      <method name="post"
-              c:identifier="gst_bus_post"
-              doc="Post a message on the given bus. Ownership of the message
-is taken by the bus.
-MT safe.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="message" transfer-ownership="none">
-            <type name="Message" c:type="GstMessage*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="have_pending"
-              c:identifier="gst_bus_have_pending"
-              doc="Check if there are pending messages on the bus that
-should be handled.
-otherwise.
-MT safe.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-      </method>
-      <method name="peek"
-              c:identifier="gst_bus_peek"
-              doc="Peek the message on the top of the bus&apos; queue. The message will remain
-on the bus&apos; message queue. A reference is returned, and needs to be unreffed
-by the caller.
-MT safe.">
-        <return-value transfer-ownership="full">
-          <type name="Message" c:type="GstMessage*"/>
-        </return-value>
-      </method>
-      <method name="pop"
-              c:identifier="gst_bus_pop"
-              doc="Get a message from the bus.
-The message is taken from the bus and needs to be unreffed with
-gst_message_unref() after usage.
-MT safe.">
-        <return-value transfer-ownership="full">
-          <type name="Message" c:type="GstMessage*"/>
-        </return-value>
-      </method>
-      <method name="pop_filtered"
-              c:identifier="gst_bus_pop_filtered"
-              doc="Get a message matching @type from the bus.  Will discard all messages on
-the bus that do not match @type and that have been posted before the first
-message that does match @type.  If there is no message matching @type on
-the bus, all messages will be discarded.
-the bus is empty or there is no message matching @type.
-The message is taken from the bus and needs to be unreffed with
-gst_message_unref() after usage.
-MT safe."
-              version="0.10.15">
-        <return-value transfer-ownership="full">
-          <type name="Message" c:type="GstMessage*"/>
-        </return-value>
-        <parameters>
-          <parameter name="types" transfer-ownership="none">
-            <type name="MessageType" c:type="GstMessageType"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="timed_pop"
-              c:identifier="gst_bus_timed_pop"
-              doc="Get a message from the bus, waiting up to the specified timeout.
-If @timeout is 0, this function behaves like gst_bus_pop(). If @timeout is
-#GST_CLOCK_TIME_NONE, this function will block forever until a message was
-posted on the bus.
-or NULL if the bus is empty after the timeout expired.
-The message is taken from the bus and needs to be unreffed with
-gst_message_unref() after usage.
-MT safe."
-              version="0.10.12">
-        <return-value transfer-ownership="full">
-          <type name="Message" c:type="GstMessage*"/>
-        </return-value>
-        <parameters>
-          <parameter name="timeout" transfer-ownership="none">
-            <type name="ClockTime" c:type="GstClockTime"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="timed_pop_filtered"
-              c:identifier="gst_bus_timed_pop_filtered"
-              doc="Get a message from the bus whose type matches the message type mask @types,
-waiting up to the specified timeout (and discarding any messages that do not
-match the mask provided).
-If @timeout is 0, this function behaves like gst_bus_pop_filtered(). If
-matching message was posted on the bus.
-message was found on the bus until the timeout expired.
-The message is taken from the bus and needs to be unreffed with
-gst_message_unref() after usage.
-MT safe."
-              version="0.10.15">
-        <return-value transfer-ownership="full">
-          <type name="Message" c:type="GstMessage*"/>
-        </return-value>
-        <parameters>
-          <parameter name="timeout" transfer-ownership="none">
-            <type name="ClockTime" c:type="GstClockTime"/>
-          </parameter>
-          <parameter name="types" transfer-ownership="none">
-            <type name="MessageType" c:type="GstMessageType"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_flushing"
-              c:identifier="gst_bus_set_flushing"
-              doc="If @flushing, flush out and unref any messages queued in the bus. Releases
-references to the message origin objects. Will flush future messages until
-gst_bus_set_flushing() sets @flushing to #FALSE.
-MT safe.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="flushing" transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_sync_handler"
-              c:identifier="gst_bus_set_sync_handler"
-              doc="Sets the synchronous handler on the bus. The function will be called
-every time a new message is posted on the bus. Note that the function
-will be called in the same thread context as the posting object. This
-function is usually only called by the creator of the bus. Applications
-should handle messages asynchronously using the gst_bus watch and poll
-functions.
-You cannot replace an existing sync_handler. You can pass NULL to this
-function, which will clear the existing handler.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="func"
-                     transfer-ownership="none"
-                     scope="call"
-                     closure="2">
-            <type name="BusSyncHandler" c:type="GstBusSyncHandler"/>
-          </parameter>
-          <parameter name="data" transfer-ownership="none">
-            <type name="any" c:type="gpointer"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="create_watch"
-              c:identifier="gst_bus_create_watch"
-              doc="Create watch for this bus. The GSource will be dispatched whenever
-a message is on the bus. After the GSource is dispatched, the
-message is popped off the bus and unreffed.">
-        <return-value transfer-ownership="full">
-          <type name="GLib.Source" c:type="GSource*"/>
-        </return-value>
-      </method>
-      <method name="add_watch_full"
-              c:identifier="gst_bus_add_watch_full"
-              doc="Adds a bus watch to the default main context with the given @priority.
-This function is used to receive asynchronous messages in the main loop.
-There can only be a single bus watch per bus, you must remove it before you
-can set a new one.
-When @func is called, the message belongs to the caller; if you want to
-keep a copy of it, call gst_message_ref() before leaving @func.
-The watch can be removed using g_source_remove() or by returning FALSE
-from @func.
-MT safe.">
-        <return-value transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
-        </return-value>
-        <parameters>
-          <parameter name="priority" transfer-ownership="none">
-            <type name="int" c:type="gint"/>
-          </parameter>
-          <parameter name="func"
-                     transfer-ownership="none"
-                     scope="notified"
-                     closure="3"
-                     destroy="4">
-            <type name="BusFunc" c:type="GstBusFunc"/>
-          </parameter>
-          <parameter name="user_data" transfer-ownership="none">
-            <type name="any" c:type="gpointer"/>
-          </parameter>
-          <parameter name="notify" transfer-ownership="none" scope="call">
-            <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="add_watch"
-              c:identifier="gst_bus_add_watch"
-              doc="Adds a bus watch to the default main context with the default priority.
-This function is used to receive asynchronous messages in the main loop.
-There can only be a single bus watch per bus, you must remove it before you
-can set a new one.
-The watch can be removed using g_source_remove() or by returning FALSE
-from @func.
-MT safe.">
-        <return-value transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
-        </return-value>
-        <parameters>
-          <parameter name="func"
-                     transfer-ownership="none"
-                     scope="call"
-                     closure="2">
-            <type name="BusFunc" c:type="GstBusFunc"/>
-          </parameter>
-          <parameter name="user_data" transfer-ownership="none">
-            <type name="any" c:type="gpointer"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="poll"
-              c:identifier="gst_bus_poll"
-              doc="poll for.
-indefinitely.
-Poll the bus for messages. Will block while waiting for messages to come.
-You can specify a maximum time to poll with the @timeout parameter. If
-All messages not in @events will be popped off the bus and will be ignored.
-Because poll is implemented using the &quot;message&quot; signal enabled by
-gst_bus_add_signal_watch(), calling gst_bus_poll() will cause the &quot;message&quot;
-signal to be emitted for every message that poll sees. Thus a &quot;message&quot;
-signal handler will see the same messages that this function sees -- neither
-will steal messages from the other.
-This function will run a main loop from the default main context when
-polling.
-You should never use this function, since it is pure evil. This is
-especially true for GUI applications based on Gtk+ or Qt, but also for any
-other non-trivial application that uses the GLib main loop. As this function
-runs a GLib main loop, any callback attached to the default GLib main
-context may be invoked. This could be timeouts, GUI events, I/O events etc.;
-even if gst_bus_poll() is called with a 0 timeout. Any of these callbacks
-may do things you do not expect, e.g. destroy the main application window or
-some other resource; change other application state; display a dialog and
-run another main loop until the user clicks it away. In short, using this
-function may add a lot of complexity to your code through unexpected
-re-entrancy and unexpected changes to your application&apos;s state.
-For 0 timeouts use gst_bus_pop_filtered() instead of this function; for
-other short timeouts use gst_bus_timed_pop_filtered(); everything else is
-better handled by setting up an asynchronous bus watch and doing things
-from there.
-The message is taken from the bus and needs to be unreffed with
-gst_message_unref() after usage.">
-        <return-value transfer-ownership="full">
-          <type name="Message" c:type="GstMessage*"/>
-        </return-value>
-        <parameters>
-          <parameter name="events" transfer-ownership="none">
-            <type name="MessageType" c:type="GstMessageType"/>
-          </parameter>
-          <parameter name="timeout" transfer-ownership="none">
-            <type name="ClockTimeDiff" c:type="GstClockTimeDiff"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="async_signal_func"
-              c:identifier="gst_bus_async_signal_func"
-              doc="A helper #GstBusFunc that can be used to convert all asynchronous messages
-into signals.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="message" transfer-ownership="none">
-            <type name="Message" c:type="GstMessage*"/>
-          </parameter>
-          <parameter name="data" transfer-ownership="none">
-            <type name="any" c:type="gpointer"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="sync_signal_handler"
-              c:identifier="gst_bus_sync_signal_handler"
-              doc="A helper GstBusSyncHandler that can be used to convert all synchronous
-messages into signals.">
-        <return-value transfer-ownership="full">
-          <type name="BusSyncReply" c:type="GstBusSyncReply"/>
-        </return-value>
-        <parameters>
-          <parameter name="message" transfer-ownership="none">
-            <type name="Message" c:type="GstMessage*"/>
-          </parameter>
-          <parameter name="data" transfer-ownership="none">
-            <type name="any" c:type="gpointer"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="add_signal_watch"
-              c:identifier="gst_bus_add_signal_watch"
-              doc="Adds a bus signal watch to the default main context with the default
-priority.
-After calling this statement, the bus will emit the &quot;message&quot; signal for each
-message posted on the bus.
-This function may be called multiple times. To clean up, the caller is
-responsible for calling gst_bus_remove_signal_watch() as many times as this
-function is called.
-MT safe.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </method>
-      <method name="add_signal_watch_full"
-              c:identifier="gst_bus_add_signal_watch_full"
-              doc="Adds a bus signal watch to the default main context with the given priority.
-After calling this statement, the bus will emit the &quot;message&quot; signal for each
-message posted on the bus when the main loop is running.
-This function may be called multiple times. To clean up, the caller is
-responsible for calling gst_bus_remove_signal_watch() as many times as this
-function is called.
-There can only be a single bus watch per bus, you most remove all signal watch
-before you can set another type of watch.
-MT safe.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="priority" transfer-ownership="none">
-            <type name="int" c:type="gint"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="remove_signal_watch"
-              c:identifier="gst_bus_remove_signal_watch"
-              doc="Removes a signal watch previously added with gst_bus_add_signal_watch().
-MT safe.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </method>
-      <method name="enable_sync_message_emission"
-              c:identifier="gst_bus_enable_sync_message_emission"
-              doc="Instructs GStreamer to emit the &quot;sync-message&quot; signal after running the bus&apos;s
-sync handler. This function is here so that code can ensure that they can
-synchronously receive messages without having to affect what the bin&apos;s sync
-handler is.
-This function may be called multiple times. To clean up, the caller is
-responsible for calling gst_bus_disable_sync_message_emission() as many times
-as this function is called.
-While this function looks similar to gst_bus_add_signal_watch(), it is not
-exactly the same -- this function enables &lt;emphasis&gt;synchronous&lt;/emphasis&gt; emission of
-signals when messages arrive; gst_bus_add_signal_watch() adds an idle callback
-to pop messages off the bus &lt;emphasis&gt;asynchronously&lt;/emphasis&gt;. The sync-message signal
-comes from the thread of whatever object posted the message; the &quot;message&quot;
-signal is marshalled to the main thread via the main loop.
-MT safe.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </method>
-      <method name="disable_sync_message_emission"
-              c:identifier="gst_bus_disable_sync_message_emission"
-              doc="gst_bus_enable_sync_message_emission()
-Instructs GStreamer to stop emitting the &quot;sync-message&quot; signal for this bus.
-See gst_bus_enable_sync_message_emission() for more information.
-In the event that multiple pieces of code have called
-gst_bus_enable_sync_message_emission(), the sync-message emissions will only
-be stopped after all calls to gst_bus_enable_sync_message_emission() were
-&quot;cancelled&quot; by calling this function. In this way the semantics are exactly
-the same as gst_object_ref() that which calls enable should also call
-disable.
-MT safe.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </method>
-      <field name="object">
-        <type name="Object" c:type="GstObject"/>
-      </field>
-      <field name="queue">
-        <type name="GLib.Queue" c:type="GQueue*"/>
-      </field>
-      <field name="queue_lock">
-        <type name="GLib.Mutex" c:type="GMutex*"/>
-      </field>
-      <field name="sync_handler">
-        <type name="BusSyncHandler" c:type="GstBusSyncHandler"/>
-      </field>
-      <field name="sync_handler_data">
-        <type name="any" c:type="gpointer"/>
-      </field>
-      <field name="signal_watch_id">
-        <type name="uint" c:type="guint"/>
-      </field>
-      <field name="num_signal_watchers">
-        <type name="uint" c:type="guint"/>
-      </field>
-      <field name="priv">
-        <type name="BusPrivate" c:type="GstBusPrivate*"/>
-      </field>
-      <field name="_gst_reserved">
-        <array zero-terminated="0" c:type="gpointer" fixed-size="3">
-          <type name="any"/>
-        </array>
-      </field>
-      <glib:signal name="message"
-                   doc="A message has been posted on the bus. This signal is emitted from a
-GSource added to the mainloop. this signal will only be emitted when
-there is a mainloop running.">
-        <return-value transfer-ownership="full">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="message" transfer-ownership="none">
-            <type name="Message" c:type="GstMessage"/>
-          </parameter>
-        </parameters>
-      </glib:signal>
-      <glib:signal name="sync-message"
-                   doc="A message has been posted on the bus. This signal is emitted from the
-thread that posted the message so one has to be careful with locking.
-This signal will not be emitted by default, you have to set up
-gst_bus_sync_signal_handler() as a sync handler if you want this
-signal to be emitted when a message is posted on the bus, like this:
-&lt;programlisting&gt;
-gst_bus_set_sync_handler (bus, gst_bus_sync_signal_handler, yourdata);
-&lt;/programlisting&gt;">
-        <return-value transfer-ownership="full">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="message" transfer-ownership="none">
-            <type name="Message" c:type="GstMessage"/>
-          </parameter>
-        </parameters>
-      </glib:signal>
-    </class>
-    <record name="BusClass"
-            c:type="GstBusClass"
-            glib:is-gtype-struct-for="Bus">
-      <field name="parent_class">
-        <type name="ObjectClass" c:type="GstObjectClass"/>
-      </field>
-      <field name="message">
-        <callback name="message" c:type="message">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="bus" transfer-ownership="none">
-              <type name="Bus" c:type="GstBus*"/>
-            </parameter>
-            <parameter name="message" transfer-ownership="none">
-              <type name="Message" c:type="GstMessage*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="sync_message">
-        <callback name="sync_message" c:type="sync_message">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="bus" transfer-ownership="none">
-              <type name="Bus" c:type="GstBus*"/>
-            </parameter>
-            <parameter name="message" transfer-ownership="none">
-              <type name="Message" c:type="GstMessage*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="_gst_reserved">
-        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
-          <type name="any"/>
-        </array>
-      </field>
-    </record>
-    <bitfield name="BusFlags"
-              doc="The standard flags that a bus may have."
-              c:type="GstBusFlags">
-      <member name="flushing" value="16" c:identifier="GST_BUS_FLUSHING"/>
-      <member name="flag_last" value="32" c:identifier="GST_BUS_FLAG_LAST"/>
-    </bitfield>
-    <callback name="BusFunc"
-              c:type="GstBusFunc"
-              doc="Specifies the type of function passed to gst_bus_add_watch() or
-gst_bus_add_watch_full(), which is called from the mainloop when a message
-is available on the bus.
-The message passed to the function will be unreffed after execution of this
-function so it should not be freed in the function.
-Note that this function is used as a GSourceFunc which means that returning
-FALSE will remove the GSource from the mainloop.">
-      <return-value transfer-ownership="none">
-        <type name="boolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="bus" transfer-ownership="none">
-          <type name="Bus" c:type="GstBus*"/>
-        </parameter>
-        <parameter name="message" transfer-ownership="none">
-          <type name="Message" c:type="GstMessage*"/>
-        </parameter>
-        <parameter name="data" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
-        </parameter>
-      </parameters>
-    </callback>
-    <record name="BusPrivate" c:type="GstBusPrivate">
-    </record>
-    <callback name="BusSyncHandler"
-              c:type="GstBusSyncHandler"
-              doc="Handler will be invoked synchronously, when a new message has been injected
-into the bus. This function is mostly used internally. Only one sync handler
-can be attached to a given bus.
-If the handler returns GST_BUS_DROP, it should unref the message, else the
-message should not be unreffed by the sync handler.">
-      <return-value transfer-ownership="full">
-        <type name="BusSyncReply" c:type="GstBusSyncReply"/>
-      </return-value>
-      <parameters>
-        <parameter name="bus" transfer-ownership="none">
-          <type name="Bus" c:type="GstBus*"/>
-        </parameter>
-        <parameter name="message" transfer-ownership="none">
-          <type name="Message" c:type="GstMessage*"/>
-        </parameter>
-        <parameter name="data" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
-        </parameter>
-      </parameters>
-    </callback>
-    <enumeration name="BusSyncReply"
-                 doc="The result values for a GstBusSyncHandler."
-                 c:type="GstBusSyncReply">
-      <member name="drop" value="0" c:identifier="GST_BUS_DROP"/>
-      <member name="pass" value="1" c:identifier="GST_BUS_PASS"/>
-      <member name="async" value="2" c:identifier="GST_BUS_ASYNC"/>
-    </enumeration>
-    <constant name="CAN_INLINE" value="1">
-      <type name="int"/>
-    </constant>
-    <constant name="CLOCK_ENTRY_TRACE_NAME" value="GstClockEntry">
-      <type name="utf8"/>
-    </constant>
-    <constant name="CLOCK_TIME_NONE" value="-1">
-      <type name="int"/>
-    </constant>
-    <record name="Caps"
-            c:type="GstCaps"
-            doc="Object describing media types."
-            glib:type-name="GstCaps"
-            glib:get-type="gst_caps_get_type">
-      <field name="type" writable="1">
-        <type name="GType" c:type="GType"/>
-      </field>
-      <field name="refcount" writable="1">
-        <type name="int" c:type="gint"/>
-      </field>
-      <field name="flags" writable="1">
-        <type name="CapsFlags" c:type="GstCapsFlags"/>
-      </field>
-      <field name="structs" writable="1">
-        <type name="GLib.PtrArray" c:type="GPtrArray*"/>
-      </field>
-      <field name="_gst_reserved" writable="1">
-        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
-          <type name="any"/>
-        </array>
-      </field>
-      <constructor name="new_empty"
-                   c:identifier="gst_caps_new_empty"
-                   doc="Creates a new #GstCaps that is empty.  That is, the returned
-#GstCaps contains no media formats.
-Caller is responsible for unreffing the returned caps.">
-        <return-value transfer-ownership="full">
-          <type name="Caps" c:type="GstCaps*"/>
-        </return-value>
-      </constructor>
-      <constructor name="new_any"
-                   c:identifier="gst_caps_new_any"
-                   doc="Creates a new #GstCaps that indicates that it is compatible with
-any media format.">
-        <return-value transfer-ownership="full">
-          <type name="Caps" c:type="GstCaps*"/>
-        </return-value>
-      </constructor>
-      <constructor name="new_simple"
-                   c:identifier="gst_caps_new_simple"
-                   doc="Creates a new #GstCaps that contains one #GstStructure.  The
-structure is defined by the arguments, which have the same format
-as gst_structure_new().
-Caller is responsible for unreffing the returned caps.">
-        <return-value transfer-ownership="full">
-          <type name="Caps" c:type="GstCaps*"/>
-        </return-value>
-        <parameters>
-          <parameter name="media_type" transfer-ownership="none">
-            <type name="utf8" c:type="char*"/>
-          </parameter>
-          <parameter name="fieldname" transfer-ownership="none">
-            <type name="utf8" c:type="char*"/>
-          </parameter>
-          <parameter transfer-ownership="none">
-            <varargs>
-            </varargs>
-          </parameter>
-        </parameters>
-      </constructor>
-      <constructor name="new_full"
-                   c:identifier="gst_caps_new_full"
-                   doc="Creates a new #GstCaps and adds all the structures listed as
-arguments.  The list must be NULL-terminated.  The structures
-are not copied; the returned #GstCaps owns the structures.">
-        <return-value transfer-ownership="full">
-          <type name="Caps" c:type="GstCaps*"/>
-        </return-value>
-        <parameters>
-          <parameter name="struct1" transfer-ownership="none">
-            <type name="Structure" c:type="GstStructure*"/>
-          </parameter>
-          <parameter transfer-ownership="none">
-            <varargs>
-            </varargs>
-          </parameter>
-        </parameters>
-      </constructor>
-      <method name="ref"
-              c:identifier="gst_caps_ref"
-              doc="Add a reference to a #GstCaps object.
-From this point on, until the caller calls gst_caps_unref() or
-gst_caps_make_writable(), it is guaranteed that the caps object will not
-change. This means its structures won&apos;t change, etc. To use a #GstCaps
-object, you must always have a refcount on it -- either the one made
-implicitly by e.g. gst_caps_new_simple(), or via taking one explicitly with
-this function.">
-        <return-value transfer-ownership="full">
-          <type name="Caps" c:type="GstCaps*"/>
-        </return-value>
-      </method>
-      <method name="copy"
-              c:identifier="gst_caps_copy"
-              doc="Creates a new #GstCaps as a copy of the old @caps. The new caps will have a
-refcount of 1, owned by the caller. The structures are copied as well.
-Note that this function is the semantic equivalent of a gst_caps_ref()
-followed by a gst_caps_make_writable(). If you only want to hold on to a
-reference to the data, you should use gst_caps_ref().
-When you are finished with the caps, call gst_caps_unref() on it.">
-        <return-value transfer-ownership="full">
-          <type name="Caps" c:type="GstCaps*"/>
-        </return-value>
-      </method>
-      <method name="make_writable"
-              c:identifier="gst_caps_make_writable"
-              doc="Returns a writable copy of @caps.
-If there is only one reference count on @caps, the caller must be the owner,
-and so this function will return the caps object unchanged. If on the other
-hand there is more than one reference on the object, a new caps object will
-be returned. The caller&apos;s reference on @caps will be removed, and instead the
-caller will own a reference to the returned object.
-In short, this function unrefs the caps in the argument and refs the caps
-that it returns. Don&apos;t access the argument after calling this function. See">
-        <return-value transfer-ownership="full">
-          <type name="Caps" c:type="GstCaps*"/>
-        </return-value>
-      </method>
-      <method name="unref"
-              c:identifier="gst_caps_unref"
-              doc="Unref a #GstCaps and and free all its structures and the
-structures&apos; values when the refcount reaches 0.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </method>
-      <method name="append"
-              c:identifier="gst_caps_append"
-              doc="Appends the structures contained in @caps2 to @caps1. The structures in
-freed. If either caps is ANY, the resulting caps will be ANY.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="caps2" transfer-ownership="none">
-            <type name="Caps" c:type="GstCaps*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="merge"
-              c:identifier="gst_caps_merge"
-              doc="Appends the structures contained in @caps2 to @caps1 if they are not yet
-expressed by @caps1. The structures in @caps2 are not copied -- they are
-transferred to @caps1, and then @caps2 is freed.
-If either caps is ANY, the resulting caps will be ANY."
-              version="0.10.10">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="caps2" transfer-ownership="none">
-            <type name="Caps" c:type="GstCaps*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="append_structure"
-              c:identifier="gst_caps_append_structure"
-              doc="Appends @structure to @caps.  The structure is not copied; @caps
-becomes the owner of @structure.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="structure" transfer-ownership="none">
-            <type name="Structure" c:type="GstStructure*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="remove_structure"
-              c:identifier="gst_caps_remove_structure"
-              doc="removes the stucture with the given index from the list of structures
-contained in @caps.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="idx" transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="merge_structure"
-              c:identifier="gst_caps_merge_structure"
-              doc="Appends @structure to @caps if its not already expressed by @caps.  The
-structure is not copied; @caps becomes the owner of @structure.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="structure" transfer-ownership="none">
-            <type name="Structure" c:type="GstStructure*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_size"
-              c:identifier="gst_caps_get_size"
-              doc="Gets the number of structures contained in @caps.">
-        <return-value transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
-        </return-value>
-      </method>
-      <method name="get_structure"
-              c:identifier="gst_caps_get_structure"
-              doc="Finds the structure in @caps that has the index @index, and
-returns it.
-non-const GstStructure *.  This is for programming convenience --
-the caller should be aware that structures inside a constant
-#GstCaps should not be modified. However, if you know the caps
-are writable, either because you have just copied them or made
-them writable with gst_caps_make_writable(), you may modify the
-structure returned in the usual way, e.g. with functions like
-gst_structure_set().
-You do not need to free or unref the structure returned, it
-belongs to the #GstCaps.">
-        <return-value transfer-ownership="full">
-          <type name="Structure" c:type="GstStructure*"/>
-        </return-value>
-        <parameters>
-          <parameter name="index" transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="copy_nth"
-              c:identifier="gst_caps_copy_nth"
-              doc="Creates a new #GstCaps and appends a copy of the nth structure
-contained in @caps.">
-        <return-value transfer-ownership="full">
-          <type name="Caps" c:type="GstCaps*"/>
-        </return-value>
-        <parameters>
-          <parameter name="nth" transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="truncate"
-              c:identifier="gst_caps_truncate"
-              doc="Destructively discard all but the first structure from @caps. Useful when
-fixating. @caps must be writable.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </method>
-      <method name="set_value"
-              c:identifier="gst_caps_set_value"
-              doc="Sets the given @field on all structures of @caps to the given @value.
-This is a convenience function for calling gst_structure_set_value() on
-all structures of @caps."
-              version="0.10.26">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="field" transfer-ownership="none">
-            <type name="utf8" c:type="char*"/>
-          </parameter>
-          <parameter name="value" transfer-ownership="none">
-            <type name="GObject.Value" c:type="GValue*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_simple"
-              c:identifier="gst_caps_set_simple"
-              doc="Sets fields in a #GstCaps.  The arguments must be passed in the same
-manner as gst_structure_set(), and be NULL-terminated.
-&lt;note&gt;Prior to GStreamer version 0.10.26, this function failed when
-of GStreamer, you may only call this function when GST_CAPS_IS_SIMPLE()
-is %TRUE for @caps.&lt;/note&gt;">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="field" transfer-ownership="none">
-            <type name="utf8" c:type="char*"/>
-          </parameter>
-          <parameter transfer-ownership="none">
-            <varargs>
-            </varargs>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="is_any"
-              c:identifier="gst_caps_is_any"
-              doc="Determines if @caps represents any media format.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-      </method>
-      <method name="is_empty"
-              c:identifier="gst_caps_is_empty"
-              doc="Determines if @caps represents no media formats.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-      </method>
-      <method name="is_fixed"
-              c:identifier="gst_caps_is_fixed"
-              doc="Fixed #GstCaps describe exactly one format, that is, they have exactly
-one structure, and each field in the structure describes a fixed type.
-Examples of non-fixed types are GST_TYPE_INT_RANGE and GST_TYPE_LIST.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-      </method>
-      <method name="is_always_compatible"
-              c:identifier="gst_caps_is_always_compatible"
-              doc="A given #GstCaps structure is always compatible with another if
-every media format that is in the first is also contained in the
-second.  That is, @caps1 is a subset of @caps2.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="caps2" transfer-ownership="none">
-            <type name="Caps" c:type="GstCaps*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="is_subset"
-              c:identifier="gst_caps_is_subset"
-              doc="Checks if all caps represented by @subset are also represented by @superset.
-&lt;note&gt;This function does not work reliably if optional properties for caps
-are included on one caps and omitted on the other.&lt;/note&gt;">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="superset" transfer-ownership="none">
-            <type name="Caps" c:type="GstCaps*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="is_equal"
-              c:identifier="gst_caps_is_equal"
-              doc="Checks if the given caps represent the same set of caps.
-&lt;note&gt;This function does not work reliably if optional properties for caps
-are included on one caps and omitted on the other.&lt;/note&gt;
-This function deals correctly with passing NULL for any of the caps.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="caps2" transfer-ownership="none">
-            <type name="Caps" c:type="GstCaps*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="is_equal_fixed"
-              c:identifier="gst_caps_is_equal_fixed"
-              doc="Tests if two #GstCaps are equal.  This function only works on fixed
-#GstCaps.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="caps2" transfer-ownership="none">
-            <type name="Caps" c:type="GstCaps*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="can_intersect"
-              c:identifier="gst_caps_can_intersect"
-              doc="Tries intersecting @caps1 and @caps2 and reports wheter the result would not
-be empty"
-              version="0.10.25">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="caps2" transfer-ownership="none">
-            <type name="Caps" c:type="GstCaps*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="intersect"
-              c:identifier="gst_caps_intersect"
-              doc="Creates a new #GstCaps that contains all the formats that are common
-to both @caps1 and @caps2.">
-        <return-value transfer-ownership="full">
-          <type name="Caps" c:type="GstCaps*"/>
-        </return-value>
-        <parameters>
-          <parameter name="caps2" transfer-ownership="none">
-            <type name="Caps" c:type="GstCaps*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="subtract"
-              c:identifier="gst_caps_subtract"
-              doc="Subtracts the @subtrahend from the @minuend.
-&lt;note&gt;This function does not work reliably if optional properties for caps
-are included on one caps and omitted on the other.&lt;/note&gt;">
-        <return-value transfer-ownership="full">
-          <type name="Caps" c:type="GstCaps*"/>
-        </return-value>
-        <parameters>
-          <parameter name="subtrahend" transfer-ownership="none">
-            <type name="Caps" c:type="GstCaps*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="union"
-              c:identifier="gst_caps_union"
-              doc="Creates a new #GstCaps that contains all the formats that are in
-either @caps1 and @caps2.">
-        <return-value transfer-ownership="full">
-          <type name="Caps" c:type="GstCaps*"/>
-        </return-value>
-        <parameters>
-          <parameter name="caps2" transfer-ownership="none">
-            <type name="Caps" c:type="GstCaps*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="normalize"
-              c:identifier="gst_caps_normalize"
-              doc="Creates a new #GstCaps that represents the same set of formats as">
-        <return-value transfer-ownership="full">
-          <type name="Caps" c:type="GstCaps*"/>
-        </return-value>
-      </method>
-      <method name="do_simplify"
-              c:identifier="gst_caps_do_simplify"
-              doc="Modifies the given @caps inplace into a representation that represents the
-same set of formats, but in a simpler form.  Component structures that are
-identical are merged.  Component structures that have values that can be
-merged are also merged.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-      </method>
-      <method name="save_thyself"
-              c:identifier="gst_caps_save_thyself"
-              doc="Serializes a #GstCaps to XML and adds it as a child node of @parent.">
-        <return-value transfer-ownership="full">
-          <type name="libxml2.NodePtr" c:type="xmlNodePtr"/>
-        </return-value>
-        <parameters>
-          <parameter name="parent" transfer-ownership="none">
-            <type name="libxml2.NodePtr" c:type="xmlNodePtr"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="replace"
-              c:identifier="gst_caps_replace"
-              doc="Replaces *caps with @newcaps.  Unrefs the #GstCaps in the location
-pointed to by @caps, if applicable, then modifies @caps to point to
-This function does not take any locks so you might want to lock
-the object owning @caps pointer.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="newcaps" transfer-ownership="none">
-            <type name="Caps" c:type="GstCaps*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="to_string"
-              c:identifier="gst_caps_to_string"
-              doc="Converts @caps to a string representation.  This string representation
-can be converted back to a #GstCaps by gst_caps_from_string().
-For debugging purposes its easier to do something like this:
-|[
-GST_LOG (&quot;caps are %&quot; GST_PTR_FORMAT, caps);
-]|
-This prints the caps in human readble form.">
-        <return-value transfer-ownership="full">
-          <type name="utf8" c:type="gchar*"/>
-        </return-value>
-      </method>
-    </record>
-    <bitfield name="CapsFlags"
-              doc="anything.
-Extra flags for a caps."
-              c:type="GstCapsFlags">
-      <member name="caps_flags_any"
-              value="1"
-              c:identifier="GST_CAPS_FLAGS_ANY"/>
-    </bitfield>
-    <interface name="ChildProxy"
-               c:type="GstChildProxy"
-               doc="Opaque #GstChildProxy data structure."
-               glib:type-name="GstChildProxy"
-               glib:get-type="gst_child_proxy_get_type"
-               glib:type-struct="ChildProxyInterface">
-      <prerequisite name="Object"/>
-      <virtual-method name="get_child_by_index" invoker="get_child_by_index">
-        <return-value transfer-ownership="full">
-          <type name="Object" c:type="GstObject*"/>
-        </return-value>
-        <parameters>
-          <parameter name="index" transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <virtual-method name="get_children_count" invoker="get_children_count">
-        <return-value transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
-        </return-value>
-      </virtual-method>
-      <method name="get_child_by_name"
-              c:identifier="gst_child_proxy_get_child_by_name"
-              doc="Looks up a child element by the given name.
-Implementors can use #GstObject together with gst_object_get_name()
-MT safe.">
-        <return-value transfer-ownership="full">
-          <type name="Object" c:type="GstObject*"/>
-        </return-value>
-        <parameters>
-          <parameter name="name" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_child_by_index"
-              c:identifier="gst_child_proxy_get_child_by_index"
-              doc="Fetches a child by its number.
-after usage.
-MT safe.">
-        <return-value transfer-ownership="full" doc="Unref">
-          <type name="Object" c:type="GstObject*"/>
-        </return-value>
-        <parameters>
-          <parameter name="index" transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_children_count"
-              c:identifier="gst_child_proxy_get_children_count"
-              doc="Gets the number of child objects this parent contains.
-MT safe.">
-        <return-value transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
-        </return-value>
-      </method>
-      <glib:signal name="child-added">
-        <return-value transfer-ownership="full">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="object" transfer-ownership="none">
-            <type name="GObject.Object" c:type="GObject"/>
-          </parameter>
-        </parameters>
-      </glib:signal>
-      <glib:signal name="child-removed">
-        <return-value transfer-ownership="full">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="object" transfer-ownership="none">
-            <type name="GObject.Object" c:type="GObject"/>
-          </parameter>
-        </parameters>
-      </glib:signal>
-    </interface>
-    <record name="ChildProxyInterface"
-            c:type="GstChildProxyInterface"
-            glib:is-gtype-struct-for="ChildProxy"
-            doc="#GstChildProxy interface.">
-      <field name="parent">
-        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
-      </field>
-      <field name="get_child_by_index">
-        <callback name="get_child_by_index" c:type="get_child_by_index">
-          <return-value transfer-ownership="full">
-            <type name="Object" c:type="GstObject*"/>
-          </return-value>
-          <parameters>
-            <parameter name="parent" transfer-ownership="none">
-              <type name="ChildProxy" c:type="GstChildProxy*"/>
-            </parameter>
-            <parameter name="index" transfer-ownership="none">
-              <type name="uint" c:type="guint"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="get_children_count">
-        <callback name="get_children_count" c:type="get_children_count">
-          <return-value transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
-          </return-value>
-          <parameters>
-            <parameter name="parent" transfer-ownership="none">
-              <type name="ChildProxy" c:type="GstChildProxy*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="child_added">
-        <callback name="child_added" c:type="child_added">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="parent" transfer-ownership="none">
-              <type name="ChildProxy" c:type="GstChildProxy*"/>
-            </parameter>
-            <parameter name="child" transfer-ownership="none">
-              <type name="Object" c:type="GstObject*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="child_removed">
-        <callback name="child_removed" c:type="child_removed">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="parent" transfer-ownership="none">
-              <type name="ChildProxy" c:type="GstChildProxy*"/>
-            </parameter>
-            <parameter name="child" transfer-ownership="none">
-              <type name="Object" c:type="GstObject*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="_gst_reserved">
-        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
-          <type name="any"/>
-        </array>
-      </field>
-    </record>
-    <class name="Clock"
-           c:type="GstClock"
-           doc="#GstClock base structure. The values of this structure are
-protected for subclasses, use the methods to use the #GstClock."
-           parent="Object"
-           glib:type-name="GstClock"
-           glib:get-type="gst_clock_get_type"
-           glib:type-struct="ClockClass">
-      <function name="id_ref"
-                c:identifier="gst_clock_id_ref"
-                doc="Increase the refcount of given @id.
-MT safe.">
-        <return-value transfer-ownership="full">
-          <type name="ClockID" c:type="GstClockID"/>
-        </return-value>
-        <parameters>
-          <parameter name="id" transfer-ownership="none">
-            <type name="ClockID" c:type="GstClockID"/>
-          </parameter>
-        </parameters>
-      </function>
-      <function name="id_unref"
-                c:identifier="gst_clock_id_unref"
-                doc="Unref given @id. When the refcount reaches 0 the
-#GstClockID will be freed.
-MT safe.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="id" transfer-ownership="none">
-            <type name="ClockID" c:type="GstClockID"/>
-          </parameter>
-        </parameters>
-      </function>
-      <function name="id_compare_func"
-                c:identifier="gst_clock_id_compare_func">
-        <return-value transfer-ownership="none">
-          <type name="int" c:type="gint"/>
-        </return-value>
-        <parameters>
-          <parameter name="id1" transfer-ownership="none">
-            <type name="any" c:type="gconstpointer"/>
-          </parameter>
-          <parameter name="id2" transfer-ownership="none">
-            <type name="any" c:type="gconstpointer"/>
-          </parameter>
-        </parameters>
-      </function>
-      <function name="id_get_time" c:identifier="gst_clock_id_get_time">
-        <return-value transfer-ownership="full">
-          <type name="ClockTime" c:type="GstClockTime"/>
-        </return-value>
-        <parameters>
-          <parameter name="id" transfer-ownership="none">
-            <type name="ClockID" c:type="GstClockID"/>
-          </parameter>
-        </parameters>
-      </function>
-      <function name="id_wait" c:identifier="gst_clock_id_wait">
-        <return-value transfer-ownership="full">
-          <type name="ClockReturn" c:type="GstClockReturn"/>
-        </return-value>
-        <parameters>
-          <parameter name="id" transfer-ownership="none">
-            <type name="ClockID" c:type="GstClockID"/>
-          </parameter>
-          <parameter name="jitter" transfer-ownership="none">
-            <type name="ClockTimeDiff" c:type="GstClockTimeDiff*"/>
-          </parameter>
-        </parameters>
-      </function>
-      <function name="id_wait_async"
-                c:identifier="gst_clock_id_wait_async"
-                doc="Register a callback on the given #GstClockID @id with the given
-function and user_data. When passing a #GstClockID with an invalid
-time to this function, the callback will be called immediately
-with  a time set to GST_CLOCK_TIME_NONE. The callback will
-be called when the time of @id has been reached.
-The callback @func can be invoked from any thread, either provided by the
-core or from a streaming thread. The application should be prepared for this.
-MT safe.">
-        <return-value transfer-ownership="full">
-          <type name="ClockReturn" c:type="GstClockReturn"/>
-        </return-value>
-        <parameters>
-          <parameter name="id" transfer-ownership="none">
-            <type name="ClockID" c:type="GstClockID"/>
-          </parameter>
-          <parameter name="func"
-                     transfer-ownership="none"
-                     scope="call"
-                     closure="2">
-            <type name="ClockCallback" c:type="GstClockCallback"/>
-          </parameter>
-          <parameter name="user_data" transfer-ownership="none">
-            <type name="any" c:type="gpointer"/>
-          </parameter>
-        </parameters>
-      </function>
-      <function name="id_unschedule"
-                c:identifier="gst_clock_id_unschedule"
-                doc="Cancel an outstanding request with @id. This can either
-be an outstanding async notification or a pending sync notification.
-After this call, @id cannot be used anymore to receive sync or
-async notifications, you need to create a new #GstClockID.
-MT safe.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="id" transfer-ownership="none">
-            <type name="ClockID" c:type="GstClockID"/>
-          </parameter>
-        </parameters>
-      </function>
-      <virtual-method name="change_resolution">
-        <return-value transfer-ownership="full">
-          <type name="ClockTime" c:type="GstClockTime"/>
-        </return-value>
-        <parameters>
-          <parameter name="old_resolution" transfer-ownership="none">
-            <type name="ClockTime" c:type="GstClockTime"/>
-          </parameter>
-          <parameter name="new_resolution" transfer-ownership="none">
-            <type name="ClockTime" c:type="GstClockTime"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <virtual-method name="get_resolution" invoker="get_resolution">
-        <return-value transfer-ownership="full">
-          <type name="ClockTime" c:type="GstClockTime"/>
-        </return-value>
-      </virtual-method>
-      <virtual-method name="get_internal_time" invoker="get_internal_time">
-        <return-value transfer-ownership="full">
-          <type name="ClockTime" c:type="GstClockTime"/>
-        </return-value>
-      </virtual-method>
-      <virtual-method name="wait">
-        <return-value transfer-ownership="full">
-          <type name="ClockReturn" c:type="GstClockReturn"/>
-        </return-value>
-        <parameters>
-          <parameter name="entry" transfer-ownership="none">
-            <type name="ClockEntry" c:type="GstClockEntry*"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <virtual-method name="wait_async">
-        <return-value transfer-ownership="full">
-          <type name="ClockReturn" c:type="GstClockReturn"/>
-        </return-value>
-        <parameters>
-          <parameter name="entry" transfer-ownership="none">
-            <type name="ClockEntry" c:type="GstClockEntry*"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <virtual-method name="unschedule">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="entry" transfer-ownership="none">
-            <type name="ClockEntry" c:type="GstClockEntry*"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <virtual-method name="wait_jitter">
-        <return-value transfer-ownership="full">
-          <type name="ClockReturn" c:type="GstClockReturn"/>
-        </return-value>
-        <parameters>
-          <parameter name="entry" transfer-ownership="none">
-            <type name="ClockEntry" c:type="GstClockEntry*"/>
-          </parameter>
-          <parameter name="jitter" transfer-ownership="none">
-            <type name="ClockTimeDiff" c:type="GstClockTimeDiff*"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <method name="set_resolution" c:identifier="gst_clock_set_resolution">
-        <return-value transfer-ownership="full">
-          <type name="ClockTime" c:type="GstClockTime"/>
-        </return-value>
-        <parameters>
-          <parameter name="resolution" transfer-ownership="none">
-            <type name="ClockTime" c:type="GstClockTime"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_resolution" c:identifier="gst_clock_get_resolution">
-        <return-value transfer-ownership="full">
-          <type name="ClockTime" c:type="GstClockTime"/>
-        </return-value>
-      </method>
-      <method name="get_time" c:identifier="gst_clock_get_time">
-        <return-value transfer-ownership="full">
-          <type name="ClockTime" c:type="GstClockTime"/>
-        </return-value>
-      </method>
-      <method name="set_calibration" c:identifier="gst_clock_set_calibration">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="internal" transfer-ownership="none">
-            <type name="ClockTime" c:type="GstClockTime"/>
-          </parameter>
-          <parameter name="external" transfer-ownership="none">
-            <type name="ClockTime" c:type="GstClockTime"/>
-          </parameter>
-          <parameter name="rate_num" transfer-ownership="none">
-            <type name="ClockTime" c:type="GstClockTime"/>
-          </parameter>
-          <parameter name="rate_denom" transfer-ownership="none">
-            <type name="ClockTime" c:type="GstClockTime"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_calibration" c:identifier="gst_clock_get_calibration">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="internal" transfer-ownership="none">
-            <type name="ClockTime" c:type="GstClockTime*"/>
-          </parameter>
-          <parameter name="external" transfer-ownership="none">
-            <type name="ClockTime" c:type="GstClockTime*"/>
-          </parameter>
-          <parameter name="rate_num" transfer-ownership="none">
-            <type name="ClockTime" c:type="GstClockTime*"/>
-          </parameter>
-          <parameter name="rate_denom" transfer-ownership="none">
-            <type name="ClockTime" c:type="GstClockTime*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_master" c:identifier="gst_clock_set_master">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="master" transfer-ownership="none">
-            <type name="Clock" c:type="GstClock*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_master" c:identifier="gst_clock_get_master">
-        <return-value transfer-ownership="full">
-          <type name="Clock" c:type="GstClock*"/>
-        </return-value>
-      </method>
-      <method name="add_observation" c:identifier="gst_clock_add_observation">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="slave" transfer-ownership="none">
-            <type name="ClockTime" c:type="GstClockTime"/>
-          </parameter>
-          <parameter name="master" transfer-ownership="none">
-            <type name="ClockTime" c:type="GstClockTime"/>
-          </parameter>
-          <parameter name="r_squared"
-                     direction="out"
-                     transfer-ownership="full">
-            <type name="double" c:type="gdouble*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_internal_time"
-              c:identifier="gst_clock_get_internal_time">
-        <return-value transfer-ownership="full">
-          <type name="ClockTime" c:type="GstClockTime"/>
-        </return-value>
-      </method>
-      <method name="adjust_unlocked" c:identifier="gst_clock_adjust_unlocked">
-        <return-value transfer-ownership="full">
-          <type name="ClockTime" c:type="GstClockTime"/>
-        </return-value>
-        <parameters>
-          <parameter name="internal" transfer-ownership="none">
-            <type name="ClockTime" c:type="GstClockTime"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="unadjust_unlocked"
-              c:identifier="gst_clock_unadjust_unlocked">
-        <return-value transfer-ownership="full">
-          <type name="ClockTime" c:type="GstClockTime"/>
-        </return-value>
-        <parameters>
-          <parameter name="external" transfer-ownership="none">
-            <type name="ClockTime" c:type="GstClockTime"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="new_single_shot_id"
-              c:identifier="gst_clock_new_single_shot_id">
-        <return-value transfer-ownership="full">
-          <type name="ClockID" c:type="GstClockID"/>
-        </return-value>
-        <parameters>
-          <parameter name="time" transfer-ownership="none">
-            <type name="ClockTime" c:type="GstClockTime"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="new_periodic_id" c:identifier="gst_clock_new_periodic_id">
-        <return-value transfer-ownership="full">
-          <type name="ClockID" c:type="GstClockID"/>
-        </return-value>
-        <parameters>
-          <parameter name="start_time" transfer-ownership="none">
-            <type name="ClockTime" c:type="GstClockTime"/>
-          </parameter>
-          <parameter name="interval" transfer-ownership="none">
-            <type name="ClockTime" c:type="GstClockTime"/>
-          </parameter>
-        </parameters>
-      </method>
-      <property name="stats" writable="1">
-        <type name="boolean" c:type="gboolean"/>
-      </property>
-      <property name="timeout" writable="1">
-        <type name="uint64" c:type="guint64"/>
-      </property>
-      <property name="window-size" writable="1">
-        <type name="int" c:type="gint"/>
-      </property>
-      <property name="window-threshold" writable="1">
-        <type name="int" c:type="gint"/>
-      </property>
-      <field name="object">
-        <type name="Object" c:type="GstObject"/>
-      </field>
-      <field name="slave_lock">
-        <type name="GLib.Mutex" c:type="GMutex*"/>
-      </field>
-      <field name="internal_calibration">
-        <type name="ClockTime" c:type="GstClockTime"/>
-      </field>
-      <field name="external_calibration">
-        <type name="ClockTime" c:type="GstClockTime"/>
-      </field>
-      <field name="rate_numerator">
-        <type name="ClockTime" c:type="GstClockTime"/>
-      </field>
-      <field name="rate_denominator">
-        <type name="ClockTime" c:type="GstClockTime"/>
-      </field>
-      <field name="last_time">
-        <type name="ClockTime" c:type="GstClockTime"/>
-      </field>
-      <field name="entries">
-        <type name="GLib.List" c:type="GList*"/>
-      </field>
-      <field name="entries_changed">
-        <type name="GLib.Cond" c:type="GCond*"/>
-      </field>
-      <field name="resolution">
-        <type name="ClockTime" c:type="GstClockTime"/>
-      </field>
-      <field name="stats">
-        <type name="boolean" c:type="gboolean"/>
-      </field>
-      <field name="master">
-        <type name="Clock" c:type="GstClock*"/>
-      </field>
-      <field name="filling">
-        <type name="boolean" c:type="gboolean"/>
-      </field>
-      <field name="window_size">
-        <type name="int" c:type="gint"/>
-      </field>
-      <field name="window_threshold">
-        <type name="int" c:type="gint"/>
-      </field>
-      <field name="time_index">
-        <type name="int" c:type="gint"/>
-      </field>
-      <field name="timeout">
-        <type name="ClockTime" c:type="GstClockTime"/>
-      </field>
-      <field name="times">
-        <type name="ClockTime" c:type="GstClockTime*"/>
-      </field>
-      <field name="clockid">
-        <type name="ClockID" c:type="GstClockID"/>
-      </field>
-      <union name="ABI" c:type="ABI">
-        <field name="priv" writable="1">
-          <type name="ClockPrivate" c:type="GstClockPrivate*"/>
-        </field>
-        <field name="_gst_reserved" writable="1">
-          <array zero-terminated="0" c:type="GstClockTime" fixed-size="4">
-            <type name="ClockTime"/>
-          </array>
-        </field>
-      </union>
-    </class>
-    <callback name="ClockCallback"
-              c:type="GstClockCallback"
-              doc="The function prototype of the callback.">
-      <return-value transfer-ownership="none">
-        <type name="boolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="clock" transfer-ownership="none">
-          <type name="Clock" c:type="GstClock*"/>
-        </parameter>
-        <parameter name="time" transfer-ownership="none">
-          <type name="ClockTime" c:type="GstClockTime"/>
-        </parameter>
-        <parameter name="id" transfer-ownership="none">
-          <type name="ClockID" c:type="GstClockID"/>
-        </parameter>
-        <parameter name="user_data"
-                   transfer-ownership="none"
-                   closure="3"
-                   doc="function">
-          <type name="any" c:type="gpointer"/>
-        </parameter>
-      </parameters>
-    </callback>
-    <record name="ClockClass"
-            c:type="GstClockClass"
-            glib:is-gtype-struct-for="Clock"
-            doc="be acceptable. The new resolution should be returned.
-implement @wait_jitter instead.
-GStreamer clock class. Override the vmethods to implement the clock
-functionality.">
-      <field name="parent_class">
-        <type name="ObjectClass" c:type="GstObjectClass"/>
-      </field>
-      <field name="change_resolution">
-        <callback name="change_resolution" c:type="change_resolution">
-          <return-value transfer-ownership="full">
-            <type name="ClockTime" c:type="GstClockTime"/>
-          </return-value>
-          <parameters>
-            <parameter name="clock" transfer-ownership="none">
-              <type name="Clock" c:type="GstClock*"/>
-            </parameter>
-            <parameter name="old_resolution" transfer-ownership="none">
-              <type name="ClockTime" c:type="GstClockTime"/>
-            </parameter>
-            <parameter name="new_resolution" transfer-ownership="none">
-              <type name="ClockTime" c:type="GstClockTime"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="get_resolution">
-        <callback name="get_resolution" c:type="get_resolution">
-          <return-value transfer-ownership="full">
-            <type name="ClockTime" c:type="GstClockTime"/>
-          </return-value>
-          <parameters>
-            <parameter name="clock" transfer-ownership="none">
-              <type name="Clock" c:type="GstClock*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="get_internal_time">
-        <callback name="get_internal_time" c:type="get_internal_time">
-          <return-value transfer-ownership="full">
-            <type name="ClockTime" c:type="GstClockTime"/>
-          </return-value>
-          <parameters>
-            <parameter name="clock" transfer-ownership="none">
-              <type name="Clock" c:type="GstClock*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="wait">
-        <callback name="wait" c:type="wait">
-          <return-value transfer-ownership="full">
-            <type name="ClockReturn" c:type="GstClockReturn"/>
-          </return-value>
-          <parameters>
-            <parameter name="clock" transfer-ownership="none">
-              <type name="Clock" c:type="GstClock*"/>
-            </parameter>
-            <parameter name="entry" transfer-ownership="none">
-              <type name="ClockEntry" c:type="GstClockEntry*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="wait_async">
-        <callback name="wait_async" c:type="wait_async">
-          <return-value transfer-ownership="full">
-            <type name="ClockReturn" c:type="GstClockReturn"/>
-          </return-value>
-          <parameters>
-            <parameter name="clock" transfer-ownership="none">
-              <type name="Clock" c:type="GstClock*"/>
-            </parameter>
-            <parameter name="entry" transfer-ownership="none">
-              <type name="ClockEntry" c:type="GstClockEntry*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="unschedule">
-        <callback name="unschedule" c:type="unschedule">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="clock" transfer-ownership="none">
-              <type name="Clock" c:type="GstClock*"/>
-            </parameter>
-            <parameter name="entry" transfer-ownership="none">
-              <type name="ClockEntry" c:type="GstClockEntry*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="wait_jitter">
-        <callback name="wait_jitter" c:type="wait_jitter">
-          <return-value transfer-ownership="full">
-            <type name="ClockReturn" c:type="GstClockReturn"/>
-          </return-value>
-          <parameters>
-            <parameter name="clock" transfer-ownership="none">
-              <type name="Clock" c:type="GstClock*"/>
-            </parameter>
-            <parameter name="entry" transfer-ownership="none">
-              <type name="ClockEntry" c:type="GstClockEntry*"/>
-            </parameter>
-            <parameter name="jitter" transfer-ownership="none">
-              <type name="ClockTimeDiff" c:type="GstClockTimeDiff*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="_gst_reserved">
-        <array zero-terminated="0" c:type="gpointer" fixed-size="3">
-          <type name="any"/>
-        </array>
-      </field>
-    </record>
-    <record name="ClockEntry"
-            c:type="GstClockEntry"
-            doc="All pending timeouts or periodic notifies are converted into
-an entry.">
-      <field name="refcount" writable="1">
-        <type name="int" c:type="gint"/>
-      </field>
-      <field name="clock" writable="1">
-        <type name="Clock" c:type="GstClock*"/>
-      </field>
-      <field name="type" writable="1">
-        <type name="ClockEntryType" c:type="GstClockEntryType"/>
-      </field>
-      <field name="time" writable="1">
-        <type name="ClockTime" c:type="GstClockTime"/>
-      </field>
-      <field name="interval" writable="1">
-        <type name="ClockTime" c:type="GstClockTime"/>
-      </field>
-      <field name="status" writable="1">
-        <type name="ClockReturn" c:type="GstClockReturn"/>
-      </field>
-      <field name="func" writable="1">
-        <type name="ClockCallback" c:type="GstClockCallback"/>
-      </field>
-      <field name="user_data" writable="1">
-        <type name="any" c:type="gpointer"/>
-      </field>
-    </record>
-    <enumeration name="ClockEntryType"
-                 doc="The type of the clock entry"
-                 c:type="GstClockEntryType">
-      <member name="single" value="0" c:identifier="GST_CLOCK_ENTRY_SINGLE"/>
-      <member name="periodic"
-              value="1"
-              c:identifier="GST_CLOCK_ENTRY_PERIODIC"/>
-    </enumeration>
-    <bitfield name="ClockFlags"
-              doc="The capabilities of this clock"
-              c:type="GstClockFlags">
-      <member name="can_do_single_sync"
-              value="16"
-              c:identifier="GST_CLOCK_FLAG_CAN_DO_SINGLE_SYNC"/>
-      <member name="can_do_single_async"
-              value="32"
-              c:identifier="GST_CLOCK_FLAG_CAN_DO_SINGLE_ASYNC"/>
-      <member name="can_do_periodic_sync"
-              value="64"
-              c:identifier="GST_CLOCK_FLAG_CAN_DO_PERIODIC_SYNC"/>
-      <member name="can_do_periodic_async"
-              value="128"
-              c:identifier="GST_CLOCK_FLAG_CAN_DO_PERIODIC_ASYNC"/>
-      <member name="can_set_resolution"
-              value="256"
-              c:identifier="GST_CLOCK_FLAG_CAN_SET_RESOLUTION"/>
-      <member name="can_set_master"
-              value="512"
-              c:identifier="GST_CLOCK_FLAG_CAN_SET_MASTER"/>
-      <member name="last" value="4096" c:identifier="GST_CLOCK_FLAG_LAST"/>
-    </bitfield>
-    <record name="ClockPrivate" c:type="GstClockPrivate">
-    </record>
-    <enumeration name="ClockReturn"
-                 doc="The return value of a clock operation."
-                 c:type="GstClockReturn">
-      <member name="ok" value="0" c:identifier="GST_CLOCK_OK"/>
-      <member name="early" value="1" c:identifier="GST_CLOCK_EARLY"/>
-      <member name="unscheduled"
-              value="2"
-              c:identifier="GST_CLOCK_UNSCHEDULED"/>
-      <member name="busy" value="3" c:identifier="GST_CLOCK_BUSY"/>
-      <member name="badtime" value="4" c:identifier="GST_CLOCK_BADTIME"/>
-      <member name="error" value="5" c:identifier="GST_CLOCK_ERROR"/>
-      <member name="unsupported"
-              value="6"
-              c:identifier="GST_CLOCK_UNSUPPORTED"/>
-    </enumeration>
-    <enumeration name="ClockType"
-                 doc="point
-The different kind of clocks."
-                 c:type="GstClockType">
-      <member name="realtime"
-              value="0"
-              c:identifier="GST_CLOCK_TYPE_REALTIME"/>
-      <member name="monotonic"
-              value="1"
-              c:identifier="GST_CLOCK_TYPE_MONOTONIC"/>
-    </enumeration>
-    <callback name="CopyFunction"
-              c:type="GstCopyFunction"
-              doc="A function to create a copy of some object or
-increase its reference count."
-              version="0.10.25">
-      <return-value transfer-ownership="none">
-        <type name="any" c:type="gpointer"/>
-      </return-value>
-      <parameters>
-        <parameter name="object" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
-        </parameter>
-      </parameters>
-    </callback>
-    <enumeration name="CoreError"
-                 doc="category.  Make sure you add a custom message to the error call.
-deciding where to go while developing code.
-this functionality yet.
-Core errors are errors inside the core GStreamer library."
-                 c:type="GstCoreError"
-                 glib:error-quark="gst_core_error_quark">
-      <member name="failed" value="1" c:identifier="GST_CORE_ERROR_FAILED"/>
-      <member name="too_lazy"
-              value="2"
-              c:identifier="GST_CORE_ERROR_TOO_LAZY"/>
-      <member name="not_implemented"
-              value="3"
-              c:identifier="GST_CORE_ERROR_NOT_IMPLEMENTED"/>
-      <member name="state_change"
-              value="4"
-              c:identifier="GST_CORE_ERROR_STATE_CHANGE"/>
-      <member name="pad" value="5" c:identifier="GST_CORE_ERROR_PAD"/>
-      <member name="thread" value="6" c:identifier="GST_CORE_ERROR_THREAD"/>
-      <member name="negotiation"
-              value="7"
-              c:identifier="GST_CORE_ERROR_NEGOTIATION"/>
-      <member name="event" value="8" c:identifier="GST_CORE_ERROR_EVENT"/>
-      <member name="seek" value="9" c:identifier="GST_CORE_ERROR_SEEK"/>
-      <member name="caps" value="10" c:identifier="GST_CORE_ERROR_CAPS"/>
-      <member name="tag" value="11" c:identifier="GST_CORE_ERROR_TAG"/>
-      <member name="missing_plugin"
-              value="12"
-              c:identifier="GST_CORE_ERROR_MISSING_PLUGIN"/>
-      <member name="clock" value="13" c:identifier="GST_CORE_ERROR_CLOCK"/>
-      <member name="disabled"
-              value="14"
-              c:identifier="GST_CORE_ERROR_DISABLED"/>
-      <member name="num_errors"
-              value="15"
-              c:identifier="GST_CORE_ERROR_NUM_ERRORS"/>
-    </enumeration>
-    <constant name="DEBUG_BG_MASK" value="240">
-      <type name="int"/>
-    </constant>
-    <constant name="DEBUG_FG_MASK" value="15">
-      <type name="int"/>
-    </constant>
-    <constant name="DEBUG_FORMAT_MASK" value="65280">
-      <type name="int"/>
-    </constant>
-    <glib:boxed c:type="GstDate"
-                glib:name="Date"
-                glib:type-name="GstDate"
-                glib:get-type="gst_date_get_type">
-    </glib:boxed>
-    <record name="DebugCategory"
-            c:type="GstDebugCategory"
-            doc="This is the struct that describes the categories. Once initialized with
-#GST_DEBUG_CATEGORY_INIT, its values can&apos;t be changed anymore.">
-      <field name="threshold" writable="1">
-        <type name="int" c:type="gint"/>
-      </field>
-      <field name="color" writable="1">
-        <type name="uint" c:type="guint"/>
-      </field>
-      <field name="name" writable="1">
-        <type name="utf8" c:type="gchar*"/>
-      </field>
-      <field name="description" writable="1">
-        <type name="utf8" c:type="gchar*"/>
-      </field>
-      <method name="free"
-              c:identifier="gst_debug_category_free"
-              doc="Removes and frees the category and all associated resources.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </method>
-      <method name="set_threshold"
-              c:identifier="gst_debug_category_set_threshold"
-              doc="Sets the threshold of the category to the given level. Debug information will
-only be output if the threshold is lower or equal to the level of the
-debugging message.
-&lt;note&gt;&lt;para&gt;
-Do not use this function in production code, because other functions may
-change the threshold of categories as side effect. It is however a nice
-function to use when debugging (even from gdb).
-&lt;/para&gt;&lt;/note&gt;">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="level" transfer-ownership="none">
-            <type name="DebugLevel" c:type="GstDebugLevel"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="reset_threshold"
-              c:identifier="gst_debug_category_reset_threshold"
-              doc="Resets the threshold of the category to the default level. Debug information
-will only be output if the threshold is lower or equal to the level of the
-debugging message.
-Use this function to set the threshold back to where it was after using
-gst_debug_category_set_threshold().">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </method>
-      <method name="get_threshold"
-              c:identifier="gst_debug_category_get_threshold"
-              doc="Returns the threshold of a #GstDebugCategory.">
-        <return-value transfer-ownership="full">
-          <type name="DebugLevel" c:type="GstDebugLevel"/>
-        </return-value>
-      </method>
-      <method name="get_name"
-              c:identifier="gst_debug_category_get_name"
-              doc="Returns the name of a debug category.">
-        <return-value transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </return-value>
-      </method>
-      <method name="get_color"
-              c:identifier="gst_debug_category_get_color"
-              doc="Returns the color of a debug category used when printing output in this
-category.">
-        <return-value transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
-        </return-value>
-      </method>
-      <method name="get_description"
-              c:identifier="gst_debug_category_get_description"
-              doc="Returns the description of a debug category.">
-        <return-value transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </return-value>
-      </method>
-    </record>
-    <enumeration name="DebugColorFlags"
-                 doc="These are some terminal style flags you can use when creating your
-debugging categories to make them stand out in debugging output."
-                 c:type="GstDebugColorFlags">
-      <member name="fg_black" value="0" c:identifier="GST_DEBUG_FG_BLACK"/>
-      <member name="fg_red" value="1" c:identifier="GST_DEBUG_FG_RED"/>
-      <member name="fg_green" value="2" c:identifier="GST_DEBUG_FG_GREEN"/>
-      <member name="fg_yellow" value="3" c:identifier="GST_DEBUG_FG_YELLOW"/>
-      <member name="fg_blue" value="4" c:identifier="GST_DEBUG_FG_BLUE"/>
-      <member name="fg_magenta" value="5" c:identifier="GST_DEBUG_FG_MAGENTA"/>
-      <member name="fg_cyan" value="6" c:identifier="GST_DEBUG_FG_CYAN"/>
-      <member name="fg_white" value="7" c:identifier="GST_DEBUG_FG_WHITE"/>
-      <member name="bg_black" value="0" c:identifier="GST_DEBUG_BG_BLACK"/>
-      <member name="bg_red" value="16" c:identifier="GST_DEBUG_BG_RED"/>
-      <member name="bg_green" value="32" c:identifier="GST_DEBUG_BG_GREEN"/>
-      <member name="bg_yellow" value="48" c:identifier="GST_DEBUG_BG_YELLOW"/>
-      <member name="bg_blue" value="64" c:identifier="GST_DEBUG_BG_BLUE"/>
-      <member name="bg_magenta"
-              value="80"
-              c:identifier="GST_DEBUG_BG_MAGENTA"/>
-      <member name="bg_cyan" value="96" c:identifier="GST_DEBUG_BG_CYAN"/>
-      <member name="bg_white" value="112" c:identifier="GST_DEBUG_BG_WHITE"/>
-      <member name="bold" value="256" c:identifier="GST_DEBUG_BOLD"/>
-      <member name="underline" value="512" c:identifier="GST_DEBUG_UNDERLINE"/>
-    </enumeration>
-    <callback name="DebugFuncPtr" c:type="GstDebugFuncPtr">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-    </callback>
-    <bitfield name="DebugGraphDetails"
-              doc="Available details for pipeline graphs produced by GST_DEBUG_BIN_TO_DOT_FILE()
-and GST_DEBUG_BIN_TO_DOT_FILE_WITH_TS()."
-              version="0.10.15"
-              c:type="GstDebugGraphDetails">
-      <member name="media_type"
-              value="1"
-              c:identifier="GST_DEBUG_GRAPH_SHOW_MEDIA_TYPE"/>
-      <member name="caps_details"
-              value="2"
-              c:identifier="GST_DEBUG_GRAPH_SHOW_CAPS_DETAILS"/>
-      <member name="non_default_params"
-              value="4"
-              c:identifier="GST_DEBUG_GRAPH_SHOW_NON_DEFAULT_PARAMS"/>
-      <member name="states"
-              value="8"
-              c:identifier="GST_DEBUG_GRAPH_SHOW_STATES"/>
-      <member name="all" value="15" c:identifier="GST_DEBUG_GRAPH_SHOW_ALL"/>
-    </bitfield>
-    <enumeration name="DebugLevel"
-                 doc="debugging output.
-that stops the application from keeping working correctly.
-An examples is gst_element_error, which outputs a message with this priority.
-It does not mean that the application is terminating as with g_errror.
-that could lead to problems or weird behaviour later on. An example of this
-would be clocking issues (&quot;your computer is pretty slow&quot;) or broken input
-data (&quot;Can&apos;t synchronize to stream.&quot;)
-updated about what is happening.
-Examples where this should be used are when a typefind function has
-successfully determined the type of the stream or when an mp3 plugin detects
-the format to be used. (&quot;This file has mono sound.&quot;)
-happens that is not the expected default behavior.
-An example would be notifications about state changes or receiving/sending of
-events.
-useful to know. As a rule of thumb a pipeline that is iterating as expected
-should never output anzthing else but LOG messages.
-Examples for this are referencing/dereferencing of objects or cothread switches.
-in the executed code path is not fully implemented or handled yet. Note
-that this does not replace proper error handling in any way, the purpose
-of this message is to make it easier to spot incomplete/unfinished pieces
-data as memory dumps in the log. They will be displayed as hexdump with
-The level defines the importance of a debugging message. The more important a
-message is, the greater the probability that the debugging system outputs it."
-                 c:type="GstDebugLevel">
-      <member name="none" value="0" c:identifier="GST_LEVEL_NONE"/>
-      <member name="error" value="1" c:identifier="GST_LEVEL_ERROR"/>
-      <member name="warning" value="2" c:identifier="GST_LEVEL_WARNING"/>
-      <member name="info" value="3" c:identifier="GST_LEVEL_INFO"/>
-      <member name="debug" value="4" c:identifier="GST_LEVEL_DEBUG"/>
-      <member name="log" value="5" c:identifier="GST_LEVEL_LOG"/>
-      <member name="fixme" value="6" c:identifier="GST_LEVEL_FIXME"/>
-      <member name="memdump" value="9" c:identifier="GST_LEVEL_MEMDUMP"/>
-      <member name="count" value="10" c:identifier="GST_LEVEL_COUNT"/>
-    </enumeration>
-    <record name="DebugMessage" c:type="GstDebugMessage">
-      <method name="get"
-              c:identifier="gst_debug_message_get"
-              doc="Gets the string representation of a #GstDebugMessage. This function is used
-in debug handlers to extract the message.">
-        <return-value transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </return-value>
-      </method>
-    </record>
-    <constant name="ERROR_SYSTEM" value="system error: %s">
-      <type name="utf8"/>
-    </constant>
-    <constant name="EVENT_TRACE_NAME" value="GstEvent">
-      <type name="utf8"/>
-    </constant>
-    <constant name="EVENT_TYPE_BOTH" value="0">
-      <type name="int"/>
-    </constant>
-    <constant name="EVENT_TYPE_SHIFT" value="4">
-      <type name="int"/>
-    </constant>
-    <class name="Element"
-           c:type="GstElement"
-           doc="gst_element_set_state() and gst_element_get_state()
-the element is in the correct state.
-#GST_STATE_VOID_PENDING if the element is in the correct state
-parent element or the application. A #GstPipeline has a bus of its own.
-element by the toplevel #GstPipeline.
-PLAYING. Subtracting @base_time from the current clock time in the PLAYING
-state will yield the running_time against the clock.
-GStreamer element abstract base class."
-           parent="Object"
-           abstract="1"
-           glib:type-name="GstElement"
-           glib:get-type="gst_element_get_type"
-           glib:type-struct="ElementClass">
-      <function name="register"
-                c:identifier="gst_element_register"
-                doc="element (note that passing NULL only works in GStreamer 0.10.13 and later)
-Create a new elementfactory capable of instantiating objects of the">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="plugin" transfer-ownership="none">
-            <type name="Plugin" c:type="GstPlugin*"/>
-          </parameter>
-          <parameter name="name" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="rank" transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
-          </parameter>
-          <parameter name="type" transfer-ownership="none">
-            <type name="GType" c:type="GType"/>
-          </parameter>
-        </parameters>
-      </function>
-      <function name="make_from_uri"
-                c:identifier="gst_element_make_from_uri"
-                doc="Creates an element for handling the given URI.">
-        <return-value transfer-ownership="full">
-          <type name="Element" c:type="GstElement*"/>
-        </return-value>
-        <parameters>
-          <parameter name="type" transfer-ownership="none">
-            <type name="URIType" c:type="GstURIType"/>
-          </parameter>
-          <parameter name="uri" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="elementname" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </function>
-      <function name="state_get_name"
-                c:identifier="gst_element_state_get_name"
-                doc="Gets a string representing the given state.">
-        <return-value transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </return-value>
-        <parameters>
-          <parameter name="state" transfer-ownership="none">
-            <type name="State" c:type="GstState"/>
-          </parameter>
-        </parameters>
-      </function>
-      <function name="state_change_return_get_name"
-                c:identifier="gst_element_state_change_return_get_name"
-                doc="Gets a string representing the given state change result."
-                version="0.10.11">
-        <return-value transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </return-value>
-        <parameters>
-          <parameter name="state_ret" transfer-ownership="none">
-            <type name="StateChangeReturn" c:type="GstStateChangeReturn"/>
-          </parameter>
-        </parameters>
-      </function>
-      <virtual-method name="request_new_pad">
-        <return-value transfer-ownership="full">
-          <type name="Pad" c:type="GstPad*"/>
-        </return-value>
-        <parameters>
-          <parameter name="templ" transfer-ownership="none">
-            <type name="PadTemplate" c:type="GstPadTemplate*"/>
-          </parameter>
-          <parameter name="name" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <virtual-method name="release_pad">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="pad" transfer-ownership="none">
-            <type name="Pad" c:type="GstPad*"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <virtual-method name="get_state" invoker="get_state">
-        <return-value transfer-ownership="full">
-          <type name="StateChangeReturn" c:type="GstStateChangeReturn"/>
-        </return-value>
-        <parameters>
-          <parameter name="state" transfer-ownership="none">
-            <type name="State" c:type="GstState*"/>
-          </parameter>
-          <parameter name="pending" transfer-ownership="none">
-            <type name="State" c:type="GstState*"/>
-          </parameter>
-          <parameter name="timeout" transfer-ownership="none">
-            <type name="ClockTime" c:type="GstClockTime"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <virtual-method name="set_state" invoker="set_state">
-        <return-value transfer-ownership="full">
-          <type name="StateChangeReturn" c:type="GstStateChangeReturn"/>
-        </return-value>
-        <parameters>
-          <parameter name="state" transfer-ownership="none">
-            <type name="State" c:type="GstState"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <virtual-method name="change_state" invoker="change_state">
-        <return-value transfer-ownership="full">
-          <type name="StateChangeReturn" c:type="GstStateChangeReturn"/>
-        </return-value>
-        <parameters>
-          <parameter name="transition" transfer-ownership="none">
-            <type name="StateChange" c:type="GstStateChange"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <virtual-method name="set_bus" invoker="set_bus">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="bus" transfer-ownership="none">
-            <type name="Bus" c:type="GstBus*"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <virtual-method name="provide_clock" invoker="provide_clock">
-        <return-value transfer-ownership="full">
-          <type name="Clock" c:type="GstClock*"/>
-        </return-value>
-      </virtual-method>
-      <virtual-method name="set_clock" invoker="set_clock">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="clock" transfer-ownership="none">
-            <type name="Clock" c:type="GstClock*"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <virtual-method name="get_index" invoker="get_index">
-        <return-value transfer-ownership="full">
-          <type name="Index" c:type="GstIndex*"/>
-        </return-value>
-      </virtual-method>
-      <virtual-method name="set_index" invoker="set_index">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="index" transfer-ownership="none">
-            <type name="Index" c:type="GstIndex*"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <virtual-method name="send_event" invoker="send_event">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="event" transfer-ownership="none">
-            <type name="Event" c:type="GstEvent*"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <virtual-method name="get_query_types" invoker="get_query_types">
-        <return-value transfer-ownership="none">
-          <type name="QueryType" c:type="GstQueryType*"/>
-        </return-value>
-      </virtual-method>
-      <virtual-method name="query" invoker="query">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="query" transfer-ownership="none">
-            <type name="Query" c:type="GstQuery*"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <method name="requires_clock"
-              c:identifier="gst_element_requires_clock"
-              doc="Query if the element requires a clock.
-MT safe.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-      </method>
-      <method name="provides_clock"
-              c:identifier="gst_element_provides_clock"
-              doc="Query if the element provides a clock. A #GstClock provided by an
-element can be used as the global #GstClock for the pipeline.
-An element that can provide a clock is only required to do so in the PAUSED
-state, this means when it is fully negotiated and has allocated the resources
-to operate the clock.
-MT safe.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-      </method>
-      <method name="provide_clock"
-              c:identifier="gst_element_provide_clock"
-              doc="Get the clock provided by the given element.
-&lt;note&gt;An element is only required to provide a clock in the PAUSED
-state. Some elements can provide a clock in other states.&lt;/note&gt;
-if no clock could be provided.  Unref after usage.
-MT safe.">
-        <return-value transfer-ownership="full">
-          <type name="Clock" c:type="GstClock*"/>
-        </return-value>
-      </method>
-      <method name="get_clock"
-              c:identifier="gst_element_get_clock"
-              doc="Gets the currently configured clock of the element. This is the clock as was
-last set with gst_element_set_clock().
-MT safe.">
-        <return-value transfer-ownership="full">
-          <type name="Clock" c:type="GstClock*"/>
-        </return-value>
-      </method>
-      <method name="set_clock"
-              c:identifier="gst_element_set_clock"
-              doc="Sets the clock for the element. This function increases the
-refcount on the clock. Any previously set clock on the object
-is unreffed.
-clock when it, for example, is not able to slave its internal clock to the
-MT safe.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="clock" transfer-ownership="none">
-            <type name="Clock" c:type="GstClock*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_base_time"
-              c:identifier="gst_element_set_base_time"
-              doc="Set the base time of an element. See gst_element_get_base_time().
-MT safe.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="time" transfer-ownership="none">
-            <type name="ClockTime" c:type="GstClockTime"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_base_time"
-              c:identifier="gst_element_get_base_time"
-              doc="Returns the base time of the element. The base time is the
-absolute time of the clock when this element was last put to
-PLAYING. Subtracting the base time from the clock time gives
-the running time of the element.
-MT safe.">
-        <return-value transfer-ownership="full">
-          <type name="ClockTime" c:type="GstClockTime"/>
-        </return-value>
-      </method>
-      <method name="set_start_time"
-              c:identifier="gst_element_set_start_time"
-              doc="Set the start time of an element. The start time of the element is the
-running time of the element when it last went to the PAUSED state. In READY
-or after a flushing seek, it is set to 0.
-Toplevel elements like #GstPipeline will manage the start_time and
-base_time on its children. Setting the start_time to #GST_CLOCK_TIME_NONE
-on such a toplevel element will disable the distribution of the base_time to
-the children and can be useful if the application manages the base_time
-itself, for example if you want to synchronize capture from multiple
-pipelines, and you can also ensure that the pipelines have the same clock.
-MT safe."
-              version="0.10.24">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="time" transfer-ownership="none">
-            <type name="ClockTime" c:type="GstClockTime"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_start_time"
-              c:identifier="gst_element_get_start_time"
-              doc="Returns the start time of the element. The start time is the
-running time of the clock when this element was last put to PAUSED.
-Usually the start_time is managed by a toplevel element such as
-#GstPipeline.
-MT safe."
-              version="0.10.24">
-        <return-value transfer-ownership="full">
-          <type name="ClockTime" c:type="GstClockTime"/>
-        </return-value>
-      </method>
-      <method name="is_indexable"
-              c:identifier="gst_element_is_indexable"
-              doc="Queries if the element can be indexed.
-MT safe.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-      </method>
-      <method name="set_index"
-              c:identifier="gst_element_set_index"
-              doc="Set @index on the element. The refcount of the index
-will be increased, any previously set index is unreffed.
-MT safe.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="index" transfer-ownership="none">
-            <type name="Index" c:type="GstIndex*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_index"
-              c:identifier="gst_element_get_index"
-              doc="Gets the index from the element.
-element. unref after usage.
-MT safe.">
-        <return-value transfer-ownership="full">
-          <type name="Index" c:type="GstIndex*"/>
-        </return-value>
-      </method>
-      <method name="set_bus"
-              c:identifier="gst_element_set_bus"
-              doc="Sets the bus of the element. Increases the refcount on the bus.
-For internal use only, unless you&apos;re testing elements.
-MT safe.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="bus" transfer-ownership="none">
-            <type name="Bus" c:type="GstBus*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_bus"
-              c:identifier="gst_element_get_bus"
-              doc="Returns the bus of the element. Note that only a #GstPipeline will provide a
-bus for the application.
-MT safe.">
-        <return-value transfer-ownership="full">
-          <type name="Bus" c:type="GstBus*"/>
-        </return-value>
-      </method>
-      <method name="add_pad"
-              c:identifier="gst_element_add_pad"
-              doc="Adds a pad (link point) to @element. @pad&apos;s parent will be set to @element;
-see gst_object_set_parent() for refcounting information.
-Pads are not automatically activated so elements should perform the needed
-steps to activate the pad in case this pad is added in the PAUSED or PLAYING
-state. See gst_pad_set_active() for more information about activating pads.
-The pad and the element should be unlocked when calling this function.
-This function will emit the #GstElement::pad-added signal on the element.
-a pad with the same name already existed or the pad already had another
-parent.
-MT safe.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="pad" transfer-ownership="none">
-            <type name="Pad" c:type="GstPad*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="remove_pad"
-              c:identifier="gst_element_remove_pad"
-              doc="Removes @pad from @element. @pad will be destroyed if it has not been
-referenced elsewhere using gst_object_unparent().
-This function is used by plugin developers and should not be used
-by applications. Pads that were dynamically requested from elements
-with gst_element_get_request_pad() should be released with the
-gst_element_release_request_pad() function instead.
-Pads are not automatically deactivated so elements should perform the needed
-steps to deactivate the pad in case this pad is removed in the PAUSED or
-PLAYING state. See gst_pad_set_active() for more information about
-deactivating pads.
-The pad and the element should be unlocked when calling this function.
-This function will emit the #GstElement::pad-removed signal on the element.
-pad does not belong to the provided element.
-MT safe.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="pad" transfer-ownership="none">
-            <type name="Pad" c:type="GstPad*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="no_more_pads"
-              c:identifier="gst_element_no_more_pads"
-              doc="Use this function to signal that the element does not expect any more pads
-to show up in the current pipeline. This function should be called whenever
-pads have been added by the element itself. Elements with #GST_PAD_SOMETIMES
-pad templates use this in combination with autopluggers to figure out that
-the element is done initializing its pads.
-This function emits the #GstElement::no-more-pads signal.
-MT safe.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </method>
-      <method name="get_pad"
-              c:identifier="gst_element_get_pad"
-              doc="Retrieves a pad from @element by name. Tries gst_element_get_static_pad()
-first, then gst_element_get_request_pad().
-to the result pad should be released with gst_object_unref() in case of a static pad
-or gst_element_release_request_pad() in case of a request pad.
-Use gst_element_get_static_pad() or gst_element_get_request_pad() instead.
-depending on the type of the pad."
-              deprecated="This function is deprecated as it&apos;s unclear if the reference">
-        <return-value transfer-ownership="full">
-          <type name="Pad" c:type="GstPad*"/>
-        </return-value>
-        <parameters>
-          <parameter name="name" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_static_pad"
-              c:identifier="gst_element_get_static_pad"
-              doc="Retrieves a pad from @element by name. This version only retrieves
-already-existing (i.e. &apos;static&apos;) pads.
-usage.
-MT safe.">
-        <return-value transfer-ownership="full">
-          <type name="Pad" c:type="GstPad*"/>
-        </return-value>
-        <parameters>
-          <parameter name="name" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_request_pad"
-              c:identifier="gst_element_get_request_pad"
-              doc="Retrieves a pad from the element by name. This version only retrieves
-request pads. The pad should be released with
-gst_element_release_request_pad().">
-        <return-value transfer-ownership="full">
-          <type name="Pad" c:type="GstPad*"/>
-        </return-value>
-        <parameters>
-          <parameter name="name" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="release_request_pad"
-              c:identifier="gst_element_release_request_pad"
-              doc="Makes the element free the previously requested pad as obtained
-with gst_element_get_request_pad().
-This does not unref the pad. If the pad was created by using
-gst_element_get_request_pad(), gst_element_release_request_pad() needs to be
-followed by gst_object_unref() to free the @pad.
-MT safe.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="pad" transfer-ownership="none">
-            <type name="Pad" c:type="GstPad*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="iterate_pads"
-              c:identifier="gst_element_iterate_pads"
-              doc="Retrieves an iterattor of @element&apos;s pads. The iterator should
-be freed after usage.
-MT safe.">
-        <return-value transfer-ownership="full">
-          <type name="Iterator" c:type="GstIterator*"/>
-        </return-value>
-      </method>
-      <method name="iterate_src_pads"
-              c:identifier="gst_element_iterate_src_pads"
-              doc="Retrieves an iterator of @element&apos;s source pads.
-MT safe.">
-        <return-value transfer-ownership="full">
-          <type name="Iterator" c:type="GstIterator*"/>
-        </return-value>
-      </method>
-      <method name="iterate_sink_pads"
-              c:identifier="gst_element_iterate_sink_pads"
-              doc="Retrieves an iterator of @element&apos;s sink pads.
-MT safe.">
-        <return-value transfer-ownership="full">
-          <type name="Iterator" c:type="GstIterator*"/>
-        </return-value>
-      </method>
-      <method name="send_event"
-              c:identifier="gst_element_send_event"
-              doc="Sends an event to an element. If the element doesn&apos;t implement an
-event handler, the event will be pushed on a random linked sink pad for
-upstream events or a random linked source pad for downstream events.
-This function takes owership of the provided event so you should
-gst_event_ref() it if you want to reuse the event after this call.
-MT safe.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="event" transfer-ownership="none">
-            <type name="Event" c:type="GstEvent*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="seek"
-              c:identifier="gst_element_seek"
-              doc="Sends a seek event to an element. See gst_event_new_seek() for the details of
-the parameters. The seek event is sent to the element using
-gst_element_send_event().
-MT safe.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="rate" transfer-ownership="none">
-            <type name="double" c:type="gdouble"/>
-          </parameter>
-          <parameter name="format" transfer-ownership="none">
-            <type name="Format" c:type="GstFormat"/>
-          </parameter>
-          <parameter name="flags" transfer-ownership="none">
-            <type name="SeekFlags" c:type="GstSeekFlags"/>
-          </parameter>
-          <parameter name="cur_type" transfer-ownership="none">
-            <type name="SeekType" c:type="GstSeekType"/>
-          </parameter>
-          <parameter name="cur" transfer-ownership="none">
-            <type name="int64" c:type="gint64"/>
-          </parameter>
-          <parameter name="stop_type" transfer-ownership="none">
-            <type name="SeekType" c:type="GstSeekType"/>
-          </parameter>
-          <parameter name="stop" transfer-ownership="none">
-            <type name="int64" c:type="gint64"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_query_types"
-              c:identifier="gst_element_get_query_types"
-              doc="Get an array of query types from the element.
-If the element doesn&apos;t implement a query types function,
-the query will be forwarded to the peer of a random linked sink pad.
-be freed or modified.
-MT safe.">
-        <return-value transfer-ownership="none">
-          <type name="QueryType" c:type="GstQueryType*"/>
-        </return-value>
-      </method>
-      <method name="query"
-              c:identifier="gst_element_query"
-              doc="Performs a query on the given element.
-For elements that don&apos;t implement a query handler, this function
-forwards the query to a random srcpad or to the peer of a
-random linked sinkpad of this element.
-MT safe.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="query" transfer-ownership="none">
-            <type name="Query" c:type="GstQuery*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="post_message"
-              c:identifier="gst_element_post_message"
-              doc="Post a message on the element&apos;s #GstBus. This function takes ownership of the
-message; if you want to access the message after this call, you should add an
-additional reference before calling.
-%FALSE if the element did not have a bus.
-MT safe.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="message" transfer-ownership="none">
-            <type name="Message" c:type="GstMessage*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="message_full"
-              c:identifier="gst_element_message_full"
-              doc="default message connected to code, or %NULL
-default debugging information, or %NULL
-Post an error, warning or info message on the bus from inside an element.
-#GST_MESSAGE_INFO.
-MT safe.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="type" transfer-ownership="none">
-            <type name="MessageType" c:type="GstMessageType"/>
-          </parameter>
-          <parameter name="domain" transfer-ownership="none">
-            <type name="GLib.Quark" c:type="GQuark"/>
-          </parameter>
-          <parameter name="code" transfer-ownership="none">
-            <type name="int" c:type="gint"/>
-          </parameter>
-          <parameter name="text" transfer-ownership="full">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="debug" transfer-ownership="full">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="file" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="function" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="line" transfer-ownership="none">
-            <type name="int" c:type="gint"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="is_locked_state"
-              c:identifier="gst_element_is_locked_state"
-              doc="Checks if the state of an element is locked.
-If the state of an element is locked, state changes of the parent don&apos;t
-affect the element.
-This way you can leave currently unused elements inside bins. Just lock their
-state before changing the state from #GST_STATE_NULL.
-MT safe.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-      </method>
-      <method name="set_locked_state"
-              c:identifier="gst_element_set_locked_state"
-              doc="Locks the state of an element, so state changes of the parent don&apos;t affect
-this element anymore.
-MT safe.
-or the elements state-locking needed no change.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="locked_state" transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="sync_state_with_parent"
-              c:identifier="gst_element_sync_state_with_parent"
-              doc="Tries to change the state of the element to the same as its parent.
-If this function returns FALSE, the state of element is undefined.
-MT safe.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-      </method>
-      <method name="get_state"
-              c:identifier="gst_element_get_state"
-              doc="Can be %NULL.
-state change or %GST_CLOCK_TIME_NONE for infinite timeout.
-Gets the state of the element.
-For elements that performed an ASYNC state change, as reported by
-gst_element_set_state(), this function will block up to the
-specified timeout value for the state change to complete.
-If the element completes the state change or goes into
-an error, this function returns immediately with a return value of
-%GST_STATE_CHANGE_SUCCESS or %GST_STATE_CHANGE_FAILURE respectively.
-For elements that did not return %GST_STATE_CHANGE_ASYNC, this function
-returns the current and pending state immediately.
-This function returns %GST_STATE_CHANGE_NO_PREROLL if the element
-successfully changed its state but is not able to provide data yet.
-This mostly happens for live sources that only produce data in
-%GST_STATE_PLAYING. While the state change return is equivalent to
-%GST_STATE_CHANGE_SUCCESS, it is returned to the application to signal that
-some sink elements might not be able to complete their state change because
-an element is not producing data to complete the preroll. When setting the
-element to playing, the preroll will complete and playback will start.
-and the last state change succeeded, %GST_STATE_CHANGE_ASYNC if the
-element is still performing a state change or
-%GST_STATE_CHANGE_FAILURE if the last state change failed.
-MT safe.">
-        <return-value transfer-ownership="full">
-          <type name="StateChangeReturn" c:type="GstStateChangeReturn"/>
-        </return-value>
-        <parameters>
-          <parameter name="state"
-                     direction="out"
-                     transfer-ownership="full"
-                     doc="a pointer to #GstState to hold the state. Can be %NULL.">
-            <type name="State" c:type="GstState*"/>
-          </parameter>
-          <parameter name="pending"
-                     direction="out"
-                     transfer-ownership="full"
-                     doc="a pointer to #GstState to hold the pending state.">
-            <type name="State" c:type="GstState*"/>
-          </parameter>
-          <parameter name="timeout" transfer-ownership="none">
-            <type name="ClockTime" c:type="GstClockTime"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_state"
-              c:identifier="gst_element_set_state"
-              doc="Sets the state of the element. This function will try to set the
-requested state by going through all the intermediary states and calling
-the class&apos;s state change function for each.
-This function can return #GST_STATE_CHANGE_ASYNC, in which case the
-element will perform the remainder of the state change asynchronously in
-another thread.
-An application can use gst_element_get_state() to wait for the completion
-of the state change or it can wait for a state change message on the bus.
-State changes to %GST_STATE_READY or %GST_STATE_NULL never return
-#GST_STATE_CHANGE_ASYNC.
-MT safe.">
-        <return-value transfer-ownership="full">
-          <type name="StateChangeReturn" c:type="GstStateChangeReturn"/>
-        </return-value>
-        <parameters>
-          <parameter name="state" transfer-ownership="none">
-            <type name="State" c:type="GstState"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="abort_state"
-              c:identifier="gst_element_abort_state"
-              doc="Abort the state change of the element. This function is used
-by elements that do asynchronous state changes and find out
-something is wrong.
-This function should be called with the STATE_LOCK held.
-MT safe.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </method>
-      <method name="change_state"
-              c:identifier="gst_element_change_state"
-              doc="Perform @transition on @element.
-This function must be called with STATE_LOCK held and is mainly used
-internally.">
-        <return-value transfer-ownership="full">
-          <type name="StateChangeReturn" c:type="GstStateChangeReturn"/>
-        </return-value>
-        <parameters>
-          <parameter name="transition" transfer-ownership="none">
-            <type name="StateChange" c:type="GstStateChange"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="continue_state"
-              c:identifier="gst_element_continue_state"
-              doc="Commit the state change of the element and proceed to the next
-pending state if any. This function is used
-by elements that do asynchronous state changes.
-The core will normally call this method automatically when an
-element returned %GST_STATE_CHANGE_SUCCESS from the state change function.
-If after calling this method the element still has not reached
-the pending state, the next state change is performed.
-This method is used internally and should normally not be called by plugins
-or applications.
-MT safe.">
-        <return-value transfer-ownership="full">
-          <type name="StateChangeReturn" c:type="GstStateChangeReturn"/>
-        </return-value>
-        <parameters>
-          <parameter name="ret" transfer-ownership="none">
-            <type name="StateChangeReturn" c:type="GstStateChangeReturn"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="lost_state"
-              c:identifier="gst_element_lost_state"
-              doc="Brings the element to the lost state. This function calls
-gst_element_lost_state_full() with the new_base_time set to %TRUE.
-This function is used internally and should normally not be called from
-plugins or applications.
-MT safe.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </method>
-      <method name="lost_state_full"
-              c:identifier="gst_element_lost_state_full"
-              doc="Brings the element to the lost state. The current state of the
-element is copied to the pending state so that any call to
-gst_element_get_state() will return %GST_STATE_CHANGE_ASYNC.
-An ASYNC_START message is posted with indication to distribute a new
-base_time to the element when @new_base_time is %TRUE.
-If the element was PLAYING, it will go to PAUSED. The element
-will be restored to its PLAYING state by the parent pipeline when it
-prerolls again.
-This is mostly used for elements that lost their preroll buffer
-in the %GST_STATE_PAUSED or %GST_STATE_PLAYING state after a flush,
-they will go to their pending state again when a new preroll buffer is
-queued. This function can only be called when the element is currently
-not in error or an async state change.
-This function is used internally and should normally not be called from
-plugins or applications.
-MT safe."
-              version="0.10.24">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="new_base_time" transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_factory"
-              c:identifier="gst_element_get_factory"
-              doc="Retrieves the factory that was used to create this element.
-no refcounting is needed.">
-        <return-value transfer-ownership="full">
-          <type name="ElementFactory" c:type="GstElementFactory*"/>
-        </return-value>
-      </method>
-      <method name="implements_interface"
-              c:identifier="gst_element_implements_interface"
-              doc="Test whether the given element implements a certain interface of type
-iface_type, and test whether it is supported for this specific instance.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="iface_type"
-                     transfer-ownership="none"
-                     doc="type of the interface which we want to be implemented">
-            <type name="GType" c:type="GType"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="create_all_pads"
-              c:identifier="gst_element_create_all_pads"
-              doc="Creates a pad for each pad template that is always available.
-This function is only useful during object intialization of
-subclasses of #GstElement.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </method>
-      <method name="get_compatible_pad"
-              c:identifier="gst_element_get_compatible_pad"
-              doc="Looks for an unlinked pad to which the given pad can link. It is not
-guaranteed that linking the pads will work, though it should work in most
-cases.
-found. gst_object_unref() after usage.">
-        <return-value transfer-ownership="full">
-          <type name="Pad" c:type="GstPad*"/>
-        </return-value>
-        <parameters>
-          <parameter name="pad" transfer-ownership="none">
-            <type name="Pad" c:type="GstPad*"/>
-          </parameter>
-          <parameter name="caps" transfer-ownership="none">
-            <type name="Caps" c:type="GstCaps*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_compatible_pad_template"
-              c:identifier="gst_element_get_compatible_pad_template"
-              doc="Retrieves a pad template from @element that is compatible with @compattempl.
-Pads from compatible templates can be linked together.
-unreferencing is necessary.">
-        <return-value transfer-ownership="full">
-          <type name="PadTemplate" c:type="GstPadTemplate*"/>
-        </return-value>
-        <parameters>
-          <parameter name="compattempl" transfer-ownership="none">
-            <type name="PadTemplate" c:type="GstPadTemplate*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="link"
-              c:identifier="gst_element_link"
-              doc="Links @src to @dest. The link must be from source to
-destination; the other direction will not be tried. The function looks for
-existing pads that aren&apos;t linked yet. It will request new pads if necessary.
-Such pads need to be released manualy when unlinking.
-If multiple links are possible, only one is established.
-Make sure you have added your elements to a bin or pipeline with
-gst_bin_add() before trying to link them.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="dest" transfer-ownership="none">
-            <type name="Element" c:type="GstElement*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="link_many"
-              c:identifier="gst_element_link_many"
-              doc="Chain together a series of elements. Uses gst_element_link().
-Make sure you have added your elements to a bin or pipeline with
-gst_bin_add() before trying to link them.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="element_2" transfer-ownership="none">
-            <type name="Element" c:type="GstElement*"/>
-          </parameter>
-          <parameter transfer-ownership="none">
-            <varargs>
-            </varargs>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="link_filtered"
-              c:identifier="gst_element_link_filtered"
-              doc="Links @src to @dest using the given caps as filtercaps.
-The link must be from source to
-destination; the other direction will not be tried. The function looks for
-existing pads that aren&apos;t linked yet. It will request new pads if necessary.
-If multiple links are possible, only one is established.
-Make sure you have added your elements to a bin or pipeline with
-gst_bin_add() before trying to link them.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="dest" transfer-ownership="none">
-            <type name="Element" c:type="GstElement*"/>
-          </parameter>
-          <parameter name="filter" transfer-ownership="none">
-            <type name="Caps" c:type="GstCaps*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="unlink"
-              c:identifier="gst_element_unlink"
-              doc="Unlinks all source pads of the source element with all sink pads
-of the sink element to which they are linked.
-If the link has been made using gst_element_link(), it could have created an
-requestpad, which has to be released using gst_element_release_request_pad().">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="dest" transfer-ownership="none">
-            <type name="Element" c:type="GstElement*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="unlink_many"
-              c:identifier="gst_element_unlink_many"
-              doc="Unlinks a series of elements. Uses gst_element_unlink().">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="element_2" transfer-ownership="none">
-            <type name="Element" c:type="GstElement*"/>
-          </parameter>
-          <parameter transfer-ownership="none">
-            <varargs>
-            </varargs>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="link_pads"
-              c:identifier="gst_element_link_pads"
-              doc="or NULL for any pad.
-Links the two named pads of the source and destination elements.
-Side effect is that if one of the pads has no parent, it becomes a
-child of the parent of the other element.  If they have different
-parents, the link fails.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="srcpadname" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="dest" transfer-ownership="none">
-            <type name="Element" c:type="GstElement*"/>
-          </parameter>
-          <parameter name="destpadname" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="unlink_pads"
-              c:identifier="gst_element_unlink_pads"
-              doc="Unlinks the two named pads of the source and destination elements.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="srcpadname" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="dest" transfer-ownership="none">
-            <type name="Element" c:type="GstElement*"/>
-          </parameter>
-          <parameter name="destpadname" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="link_pads_filtered"
-              c:identifier="gst_element_link_pads_filtered"
-              doc="Links the two named pads of the source and destination elements. Side effect
-is that if one of the pads has no parent, it becomes a child of the parent of
-the other element. If they have different parents, the link fails. If @caps
-is not #NULL, makes sure that the caps of the link is a subset of @caps.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="srcpadname" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="dest" transfer-ownership="none">
-            <type name="Element" c:type="GstElement*"/>
-          </parameter>
-          <parameter name="destpadname" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="filter" transfer-ownership="none">
-            <type name="Caps" c:type="GstCaps*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="seek_simple" c:identifier="gst_element_seek_simple">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="format" transfer-ownership="none">
-            <type name="Format" c:type="GstFormat"/>
-          </parameter>
-          <parameter name="seek_flags" transfer-ownership="none">
-            <type name="SeekFlags" c:type="GstSeekFlags"/>
-          </parameter>
-          <parameter name="seek_pos" transfer-ownership="none">
-            <type name="int64" c:type="gint64"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="query_position"
-              c:identifier="gst_element_query_position"
-              doc="On return contains the #GstFormat used.
-Queries an element for the stream position.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="format" transfer-ownership="none">
-            <type name="Format" c:type="GstFormat*"/>
-          </parameter>
-          <parameter name="cur" direction="out" transfer-ownership="full">
-            <type name="int64" c:type="gint64*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="query_duration"
-              c:identifier="gst_element_query_duration"
-              doc="On return contains the #GstFormat used.
-Queries an element for the total stream duration.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="format"
-                     direction="inout"
-                     transfer-ownership="full"
-                     doc="a pointer to the #GstFormat asked for.">
-            <type name="Format" c:type="GstFormat*"/>
-          </parameter>
-          <parameter name="duration"
-                     direction="out"
-                     transfer-ownership="full"
-                     doc="A location in which to store the total duration, or NULL.">
-            <type name="int64" c:type="gint64*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="query_convert"
-              c:identifier="gst_element_query_convert"
-              doc="Queries an element to convert @src_val in @src_format to @dest_format.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="src_format" transfer-ownership="none">
-            <type name="Format" c:type="GstFormat"/>
-          </parameter>
-          <parameter name="src_val" transfer-ownership="none">
-            <type name="int64" c:type="gint64"/>
-          </parameter>
-          <parameter name="dest_format" transfer-ownership="none">
-            <type name="Format" c:type="GstFormat*"/>
-          </parameter>
-          <parameter name="dest_val" direction="out" transfer-ownership="full">
-            <type name="int64" c:type="gint64*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="found_tags_for_pad"
-              c:identifier="gst_element_found_tags_for_pad"
-              doc="Posts a message to the bus that new tags were found and pushes the
-tags as event. Takes ownership of the @list.
-This is a utility method for elements. Applications should use the
-#GstTagSetter interface.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="pad" transfer-ownership="none">
-            <type name="Pad" c:type="GstPad*"/>
-          </parameter>
-          <parameter name="list" transfer-ownership="none">
-            <type name="TagList" c:type="GstTagList*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="found_tags"
-              c:identifier="gst_element_found_tags"
-              doc="Posts a message to the bus that new tags were found, and pushes an event
-to all sourcepads. Takes ownership of the @list.
-This is a utility method for elements. Applications should use the
-#GstTagSetter interface.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="list" transfer-ownership="none">
-            <type name="TagList" c:type="GstTagList*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <field name="object">
-        <type name="Object" c:type="GstObject"/>
-      </field>
-      <field name="state_lock">
-        <type name="GLib.StaticRecMutex" c:type="GStaticRecMutex*"/>
-      </field>
-      <field name="state_cond">
-        <type name="GLib.Cond" c:type="GCond*"/>
-      </field>
-      <field name="state_cookie">
-        <type name="uint32" c:type="guint32"/>
-      </field>
-      <field name="current_state">
-        <type name="State" c:type="GstState"/>
-      </field>
-      <field name="next_state">
-        <type name="State" c:type="GstState"/>
-      </field>
-      <field name="pending_state">
-        <type name="State" c:type="GstState"/>
-      </field>
-      <field name="last_return">
-        <type name="StateChangeReturn" c:type="GstStateChangeReturn"/>
-      </field>
-      <field name="bus">
-        <type name="Bus" c:type="GstBus*"/>
-      </field>
-      <field name="clock">
-        <type name="Clock" c:type="GstClock*"/>
-      </field>
-      <field name="base_time">
-        <type name="ClockTimeDiff" c:type="GstClockTimeDiff"/>
-      </field>
-      <field name="numpads">
-        <type name="uint16" c:type="guint16"/>
-      </field>
-      <field name="pads">
-        <type name="GLib.List" c:type="GList*"/>
-      </field>
-      <field name="numsrcpads">
-        <type name="uint16" c:type="guint16"/>
-      </field>
-      <field name="srcpads">
-        <type name="GLib.List" c:type="GList*"/>
-      </field>
-      <field name="numsinkpads">
-        <type name="uint16" c:type="guint16"/>
-      </field>
-      <field name="sinkpads">
-        <type name="GLib.List" c:type="GList*"/>
-      </field>
-      <field name="pads_cookie">
-        <type name="uint32" c:type="guint32"/>
-      </field>
-      <union name="abidata" c:type="abidata">
-        <record name="ABI" c:type="ABI">
-          <field name="target_state" writable="1">
-            <type name="State" c:type="GstState"/>
-          </field>
-          <field name="start_time" writable="1">
-            <type name="ClockTime" c:type="GstClockTime"/>
-          </field>
-        </record>
-        <field name="_gst_reserved" writable="1">
-          <array zero-terminated="0" c:type="gpointer" fixed-size="4">
-            <type name="any"/>
-          </array>
-        </field>
-      </union>
-      <glib:signal name="no-more-pads"
-                   doc="This signals that the element will not generate more dynamic pads.">
-        <return-value transfer-ownership="full">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </glib:signal>
-      <glib:signal name="pad-added"
-                   doc="a new #GstPad has been added to the element.">
-        <return-value transfer-ownership="full">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="new_pad" transfer-ownership="none">
-            <type name="Pad" c:type="GstPad"/>
-          </parameter>
-        </parameters>
-      </glib:signal>
-      <glib:signal name="pad-removed"
-                   doc="a #GstPad has been removed from the element">
-        <return-value transfer-ownership="full">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="old_pad" transfer-ownership="none">
-            <type name="Pad" c:type="GstPad"/>
-          </parameter>
-        </parameters>
-      </glib:signal>
-    </class>
-    <record name="ElementClass"
-            c:type="GstElementClass"
-            glib:is-gtype-struct-for="Element"
-            doc="GStreamer element class. Override the vmethods to implement the element
-functionality.">
-      <field name="parent_class">
-        <type name="ObjectClass" c:type="GstObjectClass"/>
-      </field>
-      <field name="details">
-        <type name="ElementDetails" c:type="GstElementDetails"/>
-      </field>
-      <field name="elementfactory">
-        <type name="ElementFactory" c:type="GstElementFactory*"/>
-      </field>
-      <field name="padtemplates">
-        <type name="GLib.List" c:type="GList*"/>
-      </field>
-      <field name="numpadtemplates">
-        <type name="int" c:type="gint"/>
-      </field>
-      <field name="pad_templ_cookie">
-        <type name="uint32" c:type="guint32"/>
-      </field>
-      <field name="pad_added">
-        <callback name="pad_added" c:type="pad_added">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="element" transfer-ownership="none">
-              <type name="Element" c:type="GstElement*"/>
-            </parameter>
-            <parameter name="pad" transfer-ownership="none">
-              <type name="Pad" c:type="GstPad*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="pad_removed">
-        <callback name="pad_removed" c:type="pad_removed">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="element" transfer-ownership="none">
-              <type name="Element" c:type="GstElement*"/>
-            </parameter>
-            <parameter name="pad" transfer-ownership="none">
-              <type name="Pad" c:type="GstPad*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="no_more_pads">
-        <callback name="no_more_pads" c:type="no_more_pads">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="element" transfer-ownership="none">
-              <type name="Element" c:type="GstElement*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="request_new_pad">
-        <callback name="request_new_pad" c:type="request_new_pad">
-          <return-value transfer-ownership="full">
-            <type name="Pad" c:type="GstPad*"/>
-          </return-value>
-          <parameters>
-            <parameter name="element" transfer-ownership="none">
-              <type name="Element" c:type="GstElement*"/>
-            </parameter>
-            <parameter name="templ" transfer-ownership="none">
-              <type name="PadTemplate" c:type="GstPadTemplate*"/>
-            </parameter>
-            <parameter name="name" transfer-ownership="none">
-              <type name="utf8" c:type="gchar*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="release_pad">
-        <callback name="release_pad" c:type="release_pad">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="element" transfer-ownership="none">
-              <type name="Element" c:type="GstElement*"/>
-            </parameter>
-            <parameter name="pad" transfer-ownership="none">
-              <type name="Pad" c:type="GstPad*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="get_state">
-        <callback name="get_state" c:type="get_state">
-          <return-value transfer-ownership="full">
-            <type name="StateChangeReturn" c:type="GstStateChangeReturn"/>
-          </return-value>
-          <parameters>
-            <parameter name="element" transfer-ownership="none">
-              <type name="Element" c:type="GstElement*"/>
-            </parameter>
-            <parameter name="state" transfer-ownership="none">
-              <type name="State" c:type="GstState*"/>
-            </parameter>
-            <parameter name="pending" transfer-ownership="none">
-              <type name="State" c:type="GstState*"/>
-            </parameter>
-            <parameter name="timeout" transfer-ownership="none">
-              <type name="ClockTime" c:type="GstClockTime"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="set_state">
-        <callback name="set_state" c:type="set_state">
-          <return-value transfer-ownership="full">
-            <type name="StateChangeReturn" c:type="GstStateChangeReturn"/>
-          </return-value>
-          <parameters>
-            <parameter name="element" transfer-ownership="none">
-              <type name="Element" c:type="GstElement*"/>
-            </parameter>
-            <parameter name="state" transfer-ownership="none">
-              <type name="State" c:type="GstState"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="change_state">
-        <callback name="change_state" c:type="change_state">
-          <return-value transfer-ownership="full">
-            <type name="StateChangeReturn" c:type="GstStateChangeReturn"/>
-          </return-value>
-          <parameters>
-            <parameter name="element" transfer-ownership="none">
-              <type name="Element" c:type="GstElement*"/>
-            </parameter>
-            <parameter name="transition" transfer-ownership="none">
-              <type name="StateChange" c:type="GstStateChange"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="set_bus">
-        <callback name="set_bus" c:type="set_bus">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="element" transfer-ownership="none">
-              <type name="Element" c:type="GstElement*"/>
-            </parameter>
-            <parameter name="bus" transfer-ownership="none">
-              <type name="Bus" c:type="GstBus*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="provide_clock">
-        <callback name="provide_clock" c:type="provide_clock">
-          <return-value transfer-ownership="full">
-            <type name="Clock" c:type="GstClock*"/>
-          </return-value>
-          <parameters>
-            <parameter name="element" transfer-ownership="none">
-              <type name="Element" c:type="GstElement*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="set_clock">
-        <callback name="set_clock" c:type="set_clock">
-          <return-value transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </return-value>
-          <parameters>
-            <parameter name="element" transfer-ownership="none">
-              <type name="Element" c:type="GstElement*"/>
-            </parameter>
-            <parameter name="clock" transfer-ownership="none">
-              <type name="Clock" c:type="GstClock*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="get_index">
-        <callback name="get_index" c:type="get_index">
-          <return-value transfer-ownership="full">
-            <type name="Index" c:type="GstIndex*"/>
-          </return-value>
-          <parameters>
-            <parameter name="element" transfer-ownership="none">
-              <type name="Element" c:type="GstElement*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="set_index">
-        <callback name="set_index" c:type="set_index">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="element" transfer-ownership="none">
-              <type name="Element" c:type="GstElement*"/>
-            </parameter>
-            <parameter name="index" transfer-ownership="none">
-              <type name="Index" c:type="GstIndex*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="send_event">
-        <callback name="send_event" c:type="send_event">
-          <return-value transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </return-value>
-          <parameters>
-            <parameter name="element" transfer-ownership="none">
-              <type name="Element" c:type="GstElement*"/>
-            </parameter>
-            <parameter name="event" transfer-ownership="none">
-              <type name="Event" c:type="GstEvent*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="get_query_types">
-        <callback name="get_query_types" c:type="get_query_types">
-          <return-value transfer-ownership="none">
-            <type name="QueryType" c:type="GstQueryType*"/>
-          </return-value>
-          <parameters>
-            <parameter name="element" transfer-ownership="none">
-              <type name="Element" c:type="GstElement*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="query">
-        <callback name="query" c:type="query">
-          <return-value transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </return-value>
-          <parameters>
-            <parameter name="element" transfer-ownership="none">
-              <type name="Element" c:type="GstElement*"/>
-            </parameter>
-            <parameter name="query" transfer-ownership="none">
-              <type name="Query" c:type="GstQuery*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="_gst_reserved">
-        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
-          <type name="any"/>
-        </array>
-      </field>
-      <method name="add_pad_template"
-              c:identifier="gst_element_class_add_pad_template"
-              doc="Adds a padtemplate to an element class. This is mainly used in the _base_init
-functions of classes.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="templ" transfer-ownership="none">
-            <type name="PadTemplate" c:type="GstPadTemplate*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_pad_template"
-              c:identifier="gst_element_class_get_pad_template"
-              doc="Retrieves a padtemplate from @element_class with the given name.
-&lt;note&gt;If you use this function in the #GInstanceInitFunc of an object class
-that has subclasses, make sure to pass the g_class parameter of the
-#GInstanceInitFunc here.&lt;/note&gt;
-No unreferencing is necessary.">
-        <return-value transfer-ownership="full">
-          <type name="PadTemplate" c:type="GstPadTemplate*"/>
-        </return-value>
-        <parameters>
-          <parameter name="name" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_pad_template_list"
-              c:identifier="gst_element_class_get_pad_template_list"
-              doc="Retrieves a list of the pad templates associated with @element_class. The
-list must not be modified by the calling code.
-&lt;note&gt;If you use this function in the #GInstanceInitFunc of an object class
-that has subclasses, make sure to pass the g_class parameter of the
-#GInstanceInitFunc here.&lt;/note&gt;">
-        <return-value transfer-ownership="full">
-          <type name="GLib.List" c:type="GList*"/>
-        </return-value>
-      </method>
-      <method name="set_details"
-              c:identifier="gst_element_class_set_details"
-              doc="Sets the detailed information for a #GstElementClass.
-&lt;note&gt;This function is for use in _base_init functions only.&lt;/note&gt;
-The @details are copied."
-              deprecated="Use gst_element_class_set_details_simple() instead.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="details" transfer-ownership="none">
-            <type name="ElementDetails" c:type="GstElementDetails*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_details_simple"
-              c:identifier="gst_element_class_set_details_simple"
-              doc="separated with slashes (&apos;/&apos;). See draft-klass.txt of the design docs
-Sets the detailed information for a #GstElementClass. Simpler version of
-gst_element_class_set_details() that generates less linker overhead.
-&lt;note&gt;This function is for use in _base_init functions only.&lt;/note&gt;
-The detail parameter strings are copied into the #GstElementDetails for
-the element class."
-              version="0.10.14">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="longname" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="classification" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="description" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="author"
-                     transfer-ownership="none"
-                     doc="Use \n to separate">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="install_std_props"
-              c:identifier="gst_element_class_install_std_props"
-              doc="in a NULL terminated
-further &apos;name&apos;, &apos;id&apos;, &apos;flags&apos; triplets and terminated by NULL.
-Adds a list of standardized properties with types to the @klass.
-the id is for the property switch in your get_prop method, and
-the flags determine readability / writeability.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="first_name" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter transfer-ownership="none">
-            <varargs>
-            </varargs>
-          </parameter>
-        </parameters>
-      </method>
-    </record>
-    <record name="ElementDetails"
-            c:type="GstElementDetails"
-            doc="separated with slashes (&apos;/&apos;). See draft-klass.txt of the design docs
-for more details and common types
-This struct defines the public information about a #GstElement. It contains
-meta-data about the element that is mostly for the benefit of editors.
-The @klass member can be used by applications to filter elements based
-on functionality.">
-      <field name="longname" writable="1">
-        <type name="utf8" c:type="gchar*"/>
-      </field>
-      <field name="klass" writable="1">
-        <type name="utf8" c:type="gchar*"/>
-      </field>
-      <field name="description" writable="1">
-        <type name="utf8" c:type="gchar*"/>
-      </field>
-      <field name="author" writable="1">
-        <type name="utf8" c:type="gchar*"/>
-      </field>
-      <field name="_gst_reserved" writable="1">
-        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
-          <type name="any"/>
-        </array>
-      </field>
-    </record>
-    <class name="ElementFactory"
-           c:type="GstElementFactory"
-           doc="The opaque #GstElementFactory data structure."
-           parent="PluginFeature"
-           glib:type-name="GstElementFactory"
-           glib:get-type="gst_element_factory_get_type"
-           glib:type-struct="ElementFactoryClass">
-      <function name="find"
-                c:identifier="gst_element_factory_find"
-                doc="Search for an element factory of the given name. Refs the returned
-element factory; caller is responsible for unreffing.">
-        <return-value transfer-ownership="full">
-          <type name="ElementFactory" c:type="GstElementFactory*"/>
-        </return-value>
-        <parameters>
-          <parameter name="name" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </function>
-      <function name="make"
-                c:identifier="gst_element_factory_make"
-                doc="Create a new element of the type defined by the given element factory.
-If name is NULL, then the element will receive a guaranteed unique name,
-consisting of the element factory name and a number.
-If name is given, it will be given the name supplied.">
-        <return-value transfer-ownership="full">
-          <type name="Element" c:type="GstElement*"/>
-        </return-value>
-        <parameters>
-          <parameter name="factoryname" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="name" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </function>
-      <method name="get_element_type"
-              c:identifier="gst_element_factory_get_element_type"
-              doc="Get the #GType for elements managed by this factory. The type can
-only be retrieved if the element factory is loaded, which can be
-assured with gst_plugin_feature_load().
-the factory is not loaded.">
-        <return-value transfer-ownership="none">
-          <type name="GType" c:type="GType"/>
-        </return-value>
-      </method>
-      <method name="get_longname"
-              c:identifier="gst_element_factory_get_longname"
-              doc="Gets the longname for this factory">
-        <return-value transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </return-value>
-      </method>
-      <method name="get_klass"
-              c:identifier="gst_element_factory_get_klass"
-              doc="Gets the class for this factory.">
-        <return-value transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </return-value>
-      </method>
-      <method name="get_description"
-              c:identifier="gst_element_factory_get_description"
-              doc="Gets the description for this factory.">
-        <return-value transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </return-value>
-      </method>
-      <method name="get_author"
-              c:identifier="gst_element_factory_get_author"
-              doc="Gets the author for this factory.">
-        <return-value transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </return-value>
-      </method>
-      <method name="get_num_pad_templates"
-              c:identifier="gst_element_factory_get_num_pad_templates"
-              doc="Gets the number of pad_templates in this factory.">
-        <return-value transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
-        </return-value>
-      </method>
-      <method name="get_static_pad_templates"
-              c:identifier="gst_element_factory_get_static_pad_templates"
-              doc="Gets the #GList of #GstStaticPadTemplate for this factory.">
-        <return-value transfer-ownership="none">
-          <type name="GLib.List" c:type="GList*"/>
-        </return-value>
-      </method>
-      <method name="get_uri_type"
-              c:identifier="gst_element_factory_get_uri_type"
-              doc="Gets the type of URIs the element supports or #GST_URI_UNKNOWN if none.">
-        <return-value transfer-ownership="none">
-          <type name="int" c:type="gint"/>
-        </return-value>
-      </method>
-      <method name="get_uri_protocols"
-              c:identifier="gst_element_factory_get_uri_protocols"
-              doc="Gets a NULL-terminated array of protocols this element supports or NULL if
-no protocols are supported. You may not change the contents of the returned
-array, as it is still owned by the element factory. Use g_strdupv() to
-make a copy of the protocol string array if you need to.">
-        <return-value transfer-ownership="full">
-          <array c:type="gchar**">
-            <type name="utf8"/>
-          </array>
-        </return-value>
-      </method>
-      <method name="has_interface"
-              c:identifier="gst_element_factory_has_interface"
-              doc="Check if @factory implements the interface with name @interfacename."
-              version="0.10.14">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="interfacename" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="create"
-              c:identifier="gst_element_factory_create"
-              doc="Create a new element of the type defined by the given elementfactory.
-It will be given the name supplied, since all elements require a name as
-their first argument.">
-        <return-value transfer-ownership="full">
-          <type name="Element" c:type="GstElement*"/>
-        </return-value>
-        <parameters>
-          <parameter name="name" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="can_src_caps"
-              c:identifier="gst_element_factory_can_src_caps"
-              doc="Checks if the factory can source the given capability.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="caps" transfer-ownership="none">
-            <type name="Caps" c:type="GstCaps*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="can_sink_caps"
-              c:identifier="gst_element_factory_can_sink_caps"
-              doc="Checks if the factory can sink the given capability.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="caps" transfer-ownership="none">
-            <type name="Caps" c:type="GstCaps*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <field name="parent">
-        <type name="PluginFeature" c:type="GstPluginFeature"/>
-      </field>
-      <field name="type">
-        <type name="GType" c:type="GType"/>
-      </field>
-      <field name="details">
-        <type name="ElementDetails" c:type="GstElementDetails"/>
-      </field>
-      <field name="staticpadtemplates">
-        <type name="GLib.List" c:type="GList*"/>
-      </field>
-      <field name="numpadtemplates">
-        <type name="uint" c:type="guint"/>
-      </field>
-      <field name="uri_type">
-        <type name="uint" c:type="guint"/>
-      </field>
-      <field name="uri_protocols">
-        <type name="utf8" c:type="gchar**"/>
-      </field>
-      <field name="interfaces">
-        <type name="GLib.List" c:type="GList*"/>
-      </field>
-      <field name="_gst_reserved">
-        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
-          <type name="any"/>
-        </array>
-      </field>
-    </class>
-    <record name="ElementFactoryClass"
-            c:type="GstElementFactoryClass"
-            glib:is-gtype-struct-for="ElementFactory">
-      <field name="parent_class">
-        <type name="PluginFeatureClass" c:type="GstPluginFeatureClass"/>
-      </field>
-      <field name="_gst_reserved">
-        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
-          <type name="any"/>
-        </array>
-      </field>
-    </record>
-    <bitfield name="ElementFlags"
-              doc="gst_bin_remove() on a child already being removed immediately returns FALSE
-The standard flags that an element may have."
-              c:type="GstElementFlags">
-      <member name="locked_state"
-              value="16"
-              c:identifier="GST_ELEMENT_LOCKED_STATE"/>
-      <member name="is_sink" value="32" c:identifier="GST_ELEMENT_IS_SINK"/>
-      <member name="unparenting"
-              value="64"
-              c:identifier="GST_ELEMENT_UNPARENTING"/>
-      <member name="flag_last"
-              value="1048576"
-              c:identifier="GST_ELEMENT_FLAG_LAST"/>
-    </bitfield>
-    <record name="Event" c:type="GstEvent" doc="A #GstEvent.">
-      <field name="mini_object" writable="1">
-        <type name="MiniObject" c:type="GstMiniObject"/>
-      </field>
-      <field name="type" writable="1">
-        <type name="EventType" c:type="GstEventType"/>
-      </field>
-      <field name="timestamp" writable="1">
-        <type name="uint64" c:type="guint64"/>
-      </field>
-      <field name="src" writable="1">
-        <type name="Object" c:type="GstObject*"/>
-      </field>
-      <field name="structure" writable="1">
-        <type name="Structure" c:type="GstStructure*"/>
-      </field>
-      <union name="abidata" c:type="abidata">
-        <field name="seqnum" writable="1">
-          <type name="uint32" c:type="guint32"/>
-        </field>
-        <field name="_gst_reserved" writable="1">
-          <type name="any" c:type="gpointer"/>
-        </field>
-      </union>
-      <constructor name="new_custom"
-                   c:identifier="gst_event_new_custom"
-                   doc="the structure.
-Create a new custom-typed event. This can be used for anything not
-handled by other event-specific functions to pass an event to another
-element.
-Make sure to allocate an event type with the #GST_EVENT_MAKE_TYPE macro,
-assigning a free number and filling in the correct direction and
-serialization flags.
-New custom events can also be created by subclassing the event type if
-needed.">
-        <return-value transfer-ownership="full">
-          <type name="Event" c:type="GstEvent*"/>
-        </return-value>
-        <parameters>
-          <parameter name="type" transfer-ownership="none">
-            <type name="EventType" c:type="GstEventType"/>
-          </parameter>
-          <parameter name="structure" transfer-ownership="none">
-            <type name="Structure" c:type="GstStructure*"/>
-          </parameter>
-        </parameters>
-      </constructor>
-      <constructor name="new_flush_start"
-                   c:identifier="gst_event_new_flush_start"
-                   doc="Allocate a new flush start event. The flush start event can be sent
-upstream and downstream and travels out-of-bounds with the dataflow.
-It marks pads as being flushing and will make them return
-#GST_FLOW_WRONG_STATE when used for data flow with gst_pad_push(),
-gst_pad_chain(), gst_pad_alloc_buffer(), gst_pad_get_range() and
-gst_pad_pull_range(). Any event (except a #GST_EVENT_FLUSH_STOP) received
-on a flushing pad will return %FALSE immediately.
-Elements should unlock any blocking functions and exit their streaming
-functions as fast as possible when this event is received.
-This event is typically generated after a seek to flush out all queued data
-in the pipeline so that the new media is played as soon as possible.">
-        <return-value transfer-ownership="full">
-          <type name="Event" c:type="GstEvent*"/>
-        </return-value>
-      </constructor>
-      <constructor name="new_flush_stop"
-                   c:identifier="gst_event_new_flush_stop"
-                   doc="Allocate a new flush stop event. The flush stop event can be sent
-upstream and downstream and travels serialized with the dataflow.
-It is typically sent after sending a FLUSH_START event to make the
-pads accept data again.
-Elements can process this event synchronized with the dataflow since
-the preceeding FLUSH_START event stopped the dataflow.
-This event is typically generated to complete a seek and to resume
-dataflow.">
-        <return-value transfer-ownership="full">
-          <type name="Event" c:type="GstEvent*"/>
-        </return-value>
-      </constructor>
-      <constructor name="new_eos"
-                   c:identifier="gst_event_new_eos"
-                   doc="Create a new EOS event. The eos event can only travel downstream
-synchronized with the buffer flow. Elements that receive the EOS
-event on a pad can return #GST_FLOW_UNEXPECTED as a #GstFlowReturn
-when data after the EOS event arrives.
-The EOS event will travel down to the sink elements in the pipeline
-which will then post the #GST_MESSAGE_EOS on the bus after they have
-finished playing any buffered data.
-When all sinks have posted an EOS message, an EOS message is
-forwarded to the application.
-The EOS event itself will not cause any state transitions of the pipeline.">
-        <return-value transfer-ownership="full">
-          <type name="Event" c:type="GstEvent*"/>
-        </return-value>
-      </constructor>
-      <constructor name="new_new_segment"
-                   c:identifier="gst_event_new_new_segment"
-                   doc="Allocate a new newsegment event with the given format/values tripplets
-This method calls gst_event_new_new_segment_full() passing a default
-value of 1.0 for applied_rate">
-        <return-value transfer-ownership="full">
-          <type name="Event" c:type="GstEvent*"/>
-        </return-value>
-        <parameters>
-          <parameter name="update" transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </parameter>
-          <parameter name="rate" transfer-ownership="none">
-            <type name="double" c:type="gdouble"/>
-          </parameter>
-          <parameter name="format" transfer-ownership="none">
-            <type name="Format" c:type="GstFormat"/>
-          </parameter>
-          <parameter name="start" transfer-ownership="none">
-            <type name="int64" c:type="gint64"/>
-          </parameter>
-          <parameter name="stop" transfer-ownership="none">
-            <type name="int64" c:type="gint64"/>
-          </parameter>
-          <parameter name="position" transfer-ownership="none">
-            <type name="int64" c:type="gint64"/>
-          </parameter>
-        </parameters>
-      </constructor>
-      <constructor name="new_new_segment_full"
-                   c:identifier="gst_event_new_new_segment_full"
-                   doc="Allocate a new newsegment event with the given format/values triplets.
-The newsegment event marks the range of buffers to be processed. All
-data not within the segment range is not to be processed. This can be
-used intelligently by plugins to apply more efficient methods of skipping
-unneeded data. The valid range is expressed with the @start and @stop
-values.
-The position value of the segment is used in conjunction with the start
-value to convert the buffer timestamps into the stream time. This is
-usually done in sinks to report the current stream_time.
-is a valid @stop given, it must be greater or equal the @start, including
-when the indicated playback @rate is &lt; 0.
-The @applied_rate value provides information about any rate adjustment that
-has already been made to the timestamps and content on the buffers of the
-stream. (@rate * @applied_rate) should always equal the rate that has been
-requested for playback. For example, if an element has an input segment
-with intended playback @rate of 2.0 and applied_rate of 1.0, it can adjust
-incoming timestamps and buffer content by half and output a newsegment event
-with @rate of 1.0 and @applied_rate of 2.0
-After a newsegment event, the buffer stream time is calculated with:
-position + (TIMESTAMP(buf) - start) * ABS (rate * applied_rate)"
-                   version="0.10.6">
-        <return-value transfer-ownership="full">
-          <type name="Event" c:type="GstEvent*"/>
-        </return-value>
-        <parameters>
-          <parameter name="update" transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </parameter>
-          <parameter name="rate" transfer-ownership="none">
-            <type name="double" c:type="gdouble"/>
-          </parameter>
-          <parameter name="applied_rate" transfer-ownership="none">
-            <type name="double" c:type="gdouble"/>
-          </parameter>
-          <parameter name="format" transfer-ownership="none">
-            <type name="Format" c:type="GstFormat"/>
-          </parameter>
-          <parameter name="start" transfer-ownership="none">
-            <type name="int64" c:type="gint64"/>
-          </parameter>
-          <parameter name="stop" transfer-ownership="none">
-            <type name="int64" c:type="gint64"/>
-          </parameter>
-          <parameter name="position" transfer-ownership="none">
-            <type name="int64" c:type="gint64"/>
-          </parameter>
-        </parameters>
-      </constructor>
-      <constructor name="new_tag"
-                   c:identifier="gst_event_new_tag"
-                   doc="Generates a metadata tag event from the given @taglist.">
-        <return-value transfer-ownership="full">
-          <type name="Event" c:type="GstEvent*"/>
-        </return-value>
-        <parameters>
-          <parameter name="taglist" transfer-ownership="none">
-            <type name="TagList" c:type="GstTagList*"/>
-          </parameter>
-        </parameters>
-      </constructor>
-      <constructor name="new_buffer_size"
-                   c:identifier="gst_event_new_buffer_size"
-                   doc="Create a new buffersize event. The event is sent downstream and notifies
-elements that they should provide a buffer of the specified dimensions.
-When the @async flag is set, a thread boundary is prefered.">
-        <return-value transfer-ownership="full">
-          <type name="Event" c:type="GstEvent*"/>
-        </return-value>
-        <parameters>
-          <parameter name="format" transfer-ownership="none">
-            <type name="Format" c:type="GstFormat"/>
-          </parameter>
-          <parameter name="minsize" transfer-ownership="none">
-            <type name="int64" c:type="gint64"/>
-          </parameter>
-          <parameter name="maxsize" transfer-ownership="none">
-            <type name="int64" c:type="gint64"/>
-          </parameter>
-          <parameter name="async" transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </parameter>
-        </parameters>
-      </constructor>
-      <constructor name="new_qos"
-                   c:identifier="gst_event_new_qos"
-                   doc="Allocate a new qos event with the given values.
-The QOS event is generated in an element that wants an upstream
-element to either reduce or increase its rate because of
-high/low CPU load or other resource usage such as network performance.
-Typically sinks generate these events for each buffer they receive.
-element that generated the QoS event (usually the sink). The value is
-generally computed based on more long term statistics about the streams
-timestamps compared to the clock.
-A value &lt; 1.0 indicates that the upstream element is producing data faster
-than real-time. A value &gt; 1.0 indicates that the upstream element is not
-producing data fast enough. 1.0 is the ideal @proportion value. The
-proportion value can safely be used to lower or increase the quality of
-the element.
-buffer that caused the element to generate the QOS event. A negative value
-means that the buffer with @timestamp arrived in time. A positive value
-indicates how late the buffer with @timestamp was.
-to generate the QOS event. It is expressed in running time and thus an ever
-increasing value.
-The upstream element can use the @diff and @timestamp values to decide
-whether to process more buffers. For possitive @diff, all buffers with
-timestamp &lt;= @timestamp + @diff will certainly arrive late in the sink
-as well. A (negative) @diff value so that @timestamp + @diff would yield a
-result smaller than 0 is not allowed.
-The application can use general event probes to intercept the QoS
-event and implement custom application specific QoS handling.">
-        <return-value transfer-ownership="full">
-          <type name="Event" c:type="GstEvent*"/>
-        </return-value>
-        <parameters>
-          <parameter name="proportion" transfer-ownership="none">
-            <type name="double" c:type="gdouble"/>
-          </parameter>
-          <parameter name="diff" transfer-ownership="none">
-            <type name="ClockTimeDiff" c:type="GstClockTimeDiff"/>
-          </parameter>
-          <parameter name="timestamp" transfer-ownership="none">
-            <type name="ClockTime" c:type="GstClockTime"/>
-          </parameter>
-        </parameters>
-      </constructor>
-      <constructor name="new_seek"
-                   c:identifier="gst_event_new_seek"
-                   doc="Allocate a new seek event with the given parameters.
-The seek event configures playback of the pipeline between @start to @stop
-at the speed given in @rate, also called a playback segment.
-The @start and @stop values are expressed in @format.
-A @rate of 1.0 means normal playback rate, 2.0 means double speed.
-Negatives values means backwards playback. A value of 0.0 for the
-rate is not allowed and should be accomplished instead by PAUSING the
-pipeline.
-A pipeline has a default playback segment configured with a start
-position of 0, a stop position of -1 and a rate of 1.0. The currently
-configured playback segment can be queried with #GST_QUERY_SEGMENT.
-start and stop fields in playback segment. Adjustments can be made relative
-or absolute to the last configured values. A type of #GST_SEEK_TYPE_NONE
-means that the position should not be updated.
-When the rate is positive and @start has been updated, playback will start
-from the newly configured start position.
-For negative rates, playback will start from the newly configured stop
-position (if any). If the stop position if updated, it must be different from
--1 for negative rates.
-It is not possible to seek relative to the current playback position, to do
-this, PAUSE the pipeline, query the current playback position with
-#GST_QUERY_POSITION and update the playback segment current position with a
-#GST_SEEK_TYPE_SET to the desired position.">
-        <return-value transfer-ownership="full">
-          <type name="Event" c:type="GstEvent*"/>
-        </return-value>
-        <parameters>
-          <parameter name="rate" transfer-ownership="none">
-            <type name="double" c:type="gdouble"/>
-          </parameter>
-          <parameter name="format" transfer-ownership="none">
-            <type name="Format" c:type="GstFormat"/>
-          </parameter>
-          <parameter name="flags" transfer-ownership="none">
-            <type name="SeekFlags" c:type="GstSeekFlags"/>
-          </parameter>
-          <parameter name="start_type" transfer-ownership="none">
-            <type name="SeekType" c:type="GstSeekType"/>
-          </parameter>
-          <parameter name="start" transfer-ownership="none">
-            <type name="int64" c:type="gint64"/>
-          </parameter>
-          <parameter name="stop_type" transfer-ownership="none">
-            <type name="SeekType" c:type="GstSeekType"/>
-          </parameter>
-          <parameter name="stop" transfer-ownership="none">
-            <type name="int64" c:type="gint64"/>
-          </parameter>
-        </parameters>
-      </constructor>
-      <constructor name="new_navigation"
-                   c:identifier="gst_event_new_navigation"
-                   doc="structure.
-Create a new navigation event from the given description.">
-        <return-value transfer-ownership="full">
-          <type name="Event" c:type="GstEvent*"/>
-        </return-value>
-        <parameters>
-          <parameter name="structure" transfer-ownership="none">
-            <type name="Structure" c:type="GstStructure*"/>
-          </parameter>
-        </parameters>
-      </constructor>
-      <constructor name="new_latency"
-                   c:identifier="gst_event_new_latency"
-                   doc="Create a new latency event. The event is sent upstream from the sinks and
-notifies elements that they should add an additional @latency to the
-running time before synchronising against the clock.
-The latency is mostly used in live sinks and is always expressed in
-the time format."
-                   version="0.10.12">
-        <return-value transfer-ownership="full">
-          <type name="Event" c:type="GstEvent*"/>
-        </return-value>
-        <parameters>
-          <parameter name="latency" transfer-ownership="none">
-            <type name="ClockTime" c:type="GstClockTime"/>
-          </parameter>
-        </parameters>
-      </constructor>
-      <constructor name="new_step"
-                   c:identifier="gst_event_new_step"
-                   doc="Create a new step event. The purpose of the step event is to instruct a sink
-to skip @amount (expressed in @format) of media. It can be used to implement
-stepping through the video frame by frame or for doing fast trick modes.
-A rate of &lt;= 0.0 is not allowed, pause the pipeline or reverse the playback
-direction of the pipeline to get the same effect.
-The @flush flag will clear any pending data in the pipeline before starting
-the step operation.
-The @intermediate flag instructs the pipeline that this step operation is
-part of a larger step operation."
-                   version="0.10.24">
-        <return-value transfer-ownership="full">
-          <type name="Event" c:type="GstEvent*"/>
-        </return-value>
-        <parameters>
-          <parameter name="format" transfer-ownership="none">
-            <type name="Format" c:type="GstFormat"/>
-          </parameter>
-          <parameter name="amount" transfer-ownership="none">
-            <type name="uint64" c:type="guint64"/>
-          </parameter>
-          <parameter name="rate" transfer-ownership="none">
-            <type name="double" c:type="gdouble"/>
-          </parameter>
-          <parameter name="flush" transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </parameter>
-          <parameter name="intermediate" transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </parameter>
-        </parameters>
-      </constructor>
-      <constructor name="new_sink_message"
-                   c:identifier="gst_event_new_sink_message"
-                   doc="Create a new sink-message event. The purpose of the sink-message event is
-to instruct a sink to post the message contained in the event synchronized
-with the stream."
-                   version="0.10.26">
-        <return-value transfer-ownership="full">
-          <type name="Event" c:type="GstEvent*"/>
-        </return-value>
-        <parameters>
-          <parameter name="msg" transfer-ownership="none">
-            <type name="Message" c:type="GstMessage*"/>
-          </parameter>
-        </parameters>
-      </constructor>
-      <method name="get_structure"
-              c:identifier="gst_event_get_structure"
-              doc="Access the structure of the event.
-owned by the event, which means that you should not free it and
-that the pointer becomes invalid when you free the event.
-MT safe.">
-        <return-value transfer-ownership="none">
-          <type name="Structure" c:type="GstStructure*"/>
-        </return-value>
-      </method>
-      <method name="has_name"
-              c:identifier="gst_event_has_name"
-              doc="Checks if @event has the given @name. This function is usually used to
-check the name of a custom event."
-              version="0.10.20">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="name" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_seqnum"
-              c:identifier="gst_event_get_seqnum"
-              doc="Retrieve the sequence number of a event.
-Events have ever-incrementing sequence numbers, which may also be set
-explicitly via gst_event_set_seqnum(). Sequence numbers are typically used to
-indicate that a event corresponds to some other set of events or messages,
-for example an EOS event corresponding to a SEEK event. It is considered good
-practice to make this correspondence when possible, though it is not
-required.
-Note that events and messages share the same sequence number incrementor;
-two events or messages will never not have the same sequence number unless
-that correspondence was made explicitly.
-MT safe."
-              version="0.10.22">
-        <return-value transfer-ownership="none">
-          <type name="uint32" c:type="guint32"/>
-        </return-value>
-      </method>
-      <method name="set_seqnum"
-              c:identifier="gst_event_set_seqnum"
-              doc="Set the sequence number of a event.
-This function might be called by the creator of a event to indicate that the
-event relates to other events or messages. See gst_event_get_seqnum() for
-more information.
-MT safe."
-              version="0.10.22">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="seqnum" transfer-ownership="none">
-            <type name="uint32" c:type="guint32"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="parse_new_segment"
-              c:identifier="gst_event_parse_new_segment"
-              doc="Get the update flag, rate, format, start, stop and position in the
-newsegment event. In general, gst_event_parse_new_segment_full() should
-be used instead of this, to also retrieve the applied_rate value of the
-segment. See gst_event_new_new_segment_full() for a full description
-of the newsegment event.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="update" direction="out" transfer-ownership="full">
-            <type name="boolean" c:type="gboolean*"/>
-          </parameter>
-          <parameter name="rate" direction="out" transfer-ownership="full">
-            <type name="double" c:type="gdouble*"/>
-          </parameter>
-          <parameter name="format" transfer-ownership="none">
-            <type name="Format" c:type="GstFormat*"/>
-          </parameter>
-          <parameter name="start" direction="out" transfer-ownership="full">
-            <type name="int64" c:type="gint64*"/>
-          </parameter>
-          <parameter name="stop" direction="out" transfer-ownership="full">
-            <type name="int64" c:type="gint64*"/>
-          </parameter>
-          <parameter name="position" direction="out" transfer-ownership="full">
-            <type name="int64" c:type="gint64*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="parse_new_segment_full"
-              c:identifier="gst_event_parse_new_segment_full"
-              doc="Get the update, rate, applied_rate, format, start, stop and
-position in the newsegment event. See gst_event_new_new_segment_full()
-for a full description of the newsegment event."
-              version="0.10.6">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="update" direction="out" transfer-ownership="full">
-            <type name="boolean" c:type="gboolean*"/>
-          </parameter>
-          <parameter name="rate" direction="out" transfer-ownership="full">
-            <type name="double" c:type="gdouble*"/>
-          </parameter>
-          <parameter name="applied_rate"
-                     direction="out"
-                     transfer-ownership="full">
-            <type name="double" c:type="gdouble*"/>
-          </parameter>
-          <parameter name="format" transfer-ownership="none">
-            <type name="Format" c:type="GstFormat*"/>
-          </parameter>
-          <parameter name="start" direction="out" transfer-ownership="full">
-            <type name="int64" c:type="gint64*"/>
-          </parameter>
-          <parameter name="stop" direction="out" transfer-ownership="full">
-            <type name="int64" c:type="gint64*"/>
-          </parameter>
-          <parameter name="position" direction="out" transfer-ownership="full">
-            <type name="int64" c:type="gint64*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="parse_tag"
-              c:identifier="gst_event_parse_tag"
-              doc="Parses a tag @event and stores the results in the given @taglist location.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="taglist" transfer-ownership="none">
-            <type name="TagList" c:type="GstTagList**"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="parse_buffer_size"
-              c:identifier="gst_event_parse_buffer_size"
-              doc="Get the format, minsize, maxsize and async-flag in the buffersize event.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="format" transfer-ownership="none">
-            <type name="Format" c:type="GstFormat*"/>
-          </parameter>
-          <parameter name="minsize" direction="out" transfer-ownership="full">
-            <type name="int64" c:type="gint64*"/>
-          </parameter>
-          <parameter name="maxsize" direction="out" transfer-ownership="full">
-            <type name="int64" c:type="gint64*"/>
-          </parameter>
-          <parameter name="async" direction="out" transfer-ownership="full">
-            <type name="boolean" c:type="gboolean*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="parse_qos"
-              c:identifier="gst_event_parse_qos"
-              doc="Get the proportion, diff and timestamp in the qos event. See
-gst_event_new_qos() for more information about the different QoS values.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="proportion"
-                     direction="out"
-                     transfer-ownership="full">
-            <type name="double" c:type="gdouble*"/>
-          </parameter>
-          <parameter name="diff" transfer-ownership="none">
-            <type name="ClockTimeDiff" c:type="GstClockTimeDiff*"/>
-          </parameter>
-          <parameter name="timestamp" transfer-ownership="none">
-            <type name="ClockTime" c:type="GstClockTime*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="parse_seek"
-              c:identifier="gst_event_parse_seek"
-              doc="Parses a seek @event and stores the results in the given result locations.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="rate" direction="out" transfer-ownership="full">
-            <type name="double" c:type="gdouble*"/>
-          </parameter>
-          <parameter name="format" transfer-ownership="none">
-            <type name="Format" c:type="GstFormat*"/>
-          </parameter>
-          <parameter name="flags" transfer-ownership="none">
-            <type name="SeekFlags" c:type="GstSeekFlags*"/>
-          </parameter>
-          <parameter name="start_type" transfer-ownership="none">
-            <type name="SeekType" c:type="GstSeekType*"/>
-          </parameter>
-          <parameter name="start" direction="out" transfer-ownership="full">
-            <type name="int64" c:type="gint64*"/>
-          </parameter>
-          <parameter name="stop_type" transfer-ownership="none">
-            <type name="SeekType" c:type="GstSeekType*"/>
-          </parameter>
-          <parameter name="stop" direction="out" transfer-ownership="full">
-            <type name="int64" c:type="gint64*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="parse_latency"
-              c:identifier="gst_event_parse_latency"
-              doc="Get the latency in the latency event."
-              version="0.10.12">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="latency" transfer-ownership="none">
-            <type name="ClockTime" c:type="GstClockTime*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="parse_step"
-              c:identifier="gst_event_parse_step"
-              doc="Parse the step event."
-              version="0.10.24">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="format" transfer-ownership="none">
-            <type name="Format" c:type="GstFormat*"/>
-          </parameter>
-          <parameter name="amount" direction="out" transfer-ownership="full">
-            <type name="uint64" c:type="guint64*"/>
-          </parameter>
-          <parameter name="rate" direction="out" transfer-ownership="full">
-            <type name="double" c:type="gdouble*"/>
-          </parameter>
-          <parameter name="flush" direction="out" transfer-ownership="full">
-            <type name="boolean" c:type="gboolean*"/>
-          </parameter>
-          <parameter name="intermediate"
-                     direction="out"
-                     transfer-ownership="full">
-            <type name="boolean" c:type="gboolean*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="parse_sink_message"
-              c:identifier="gst_event_parse_sink_message"
-              doc="Parse the sink-message event. Unref @msg after usage."
-              version="0.10.26">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="msg" transfer-ownership="none">
-            <type name="Message" c:type="GstMessage**"/>
-          </parameter>
-        </parameters>
-      </method>
-    </record>
-    <record name="EventClass" c:type="GstEventClass">
-      <field name="mini_object_class" writable="1">
-        <type name="MiniObjectClass" c:type="GstMiniObjectClass"/>
-      </field>
-      <field name="_gst_reserved" writable="1">
-        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
-          <type name="any"/>
-        </array>
-      </field>
-    </record>
-    <bitfield name="EventType"
-              doc="without a NEWSEGMENT event.
-send messages that should be emitted in sync with
-rendering.
-that the downstream elements are being starved of or
-flooded with data.
-user requests, such as mouse or keyboard movements,
-to upstream elements.
-data flow.
-In-band when travelling downstream.
-#GstEventType lists the standard event types that can be sent in a pipeline.
-The custom event types can be used for private messages between elements
-that can&apos;t be expressed using normal
-GStreamer buffer passing semantics. Custom events carry an arbitrary
-#GstStructure.
-Specific custom events are distinguished by the name of the structure."
-              c:type="GstEventType">
-      <member name="unknown" value="0" c:identifier="GST_EVENT_UNKNOWN"/>
-      <member name="flush_start"
-              value="19"
-              c:identifier="GST_EVENT_FLUSH_START"/>
-      <member name="flush_stop"
-              value="39"
-              c:identifier="GST_EVENT_FLUSH_STOP"/>
-      <member name="eos" value="86" c:identifier="GST_EVENT_EOS"/>
-      <member name="newsegment"
-              value="102"
-              c:identifier="GST_EVENT_NEWSEGMENT"/>
-      <member name="tag" value="118" c:identifier="GST_EVENT_TAG"/>
-      <member name="buffersize"
-              value="134"
-              c:identifier="GST_EVENT_BUFFERSIZE"/>
-      <member name="sink_message"
-              value="150"
-              c:identifier="GST_EVENT_SINK_MESSAGE"/>
-      <member name="qos" value="241" c:identifier="GST_EVENT_QOS"/>
-      <member name="seek" value="257" c:identifier="GST_EVENT_SEEK"/>
-      <member name="navigation"
-              value="273"
-              c:identifier="GST_EVENT_NAVIGATION"/>
-      <member name="latency" value="289" c:identifier="GST_EVENT_LATENCY"/>
-      <member name="step" value="305" c:identifier="GST_EVENT_STEP"/>
-      <member name="custom_upstream"
-              value="513"
-              c:identifier="GST_EVENT_CUSTOM_UPSTREAM"/>
-      <member name="custom_downstream"
-              value="518"
-              c:identifier="GST_EVENT_CUSTOM_DOWNSTREAM"/>
-      <member name="custom_downstream_oob"
-              value="514"
-              c:identifier="GST_EVENT_CUSTOM_DOWNSTREAM_OOB"/>
-      <member name="custom_both"
-              value="519"
-              c:identifier="GST_EVENT_CUSTOM_BOTH"/>
-      <member name="custom_both_oob"
-              value="515"
-              c:identifier="GST_EVENT_CUSTOM_BOTH_OOB"/>
-    </bitfield>
-    <bitfield name="EventTypeFlags"
-              doc="flow.
-#GstEventTypeFlags indicate the aspects of the different #GstEventType
-values. You can get the type flags of a #GstEventType with the
-gst_event_type_get_flags() function."
-              c:type="GstEventTypeFlags">
-      <member name="upstream"
-              value="1"
-              c:identifier="GST_EVENT_TYPE_UPSTREAM"/>
-      <member name="downstream"
-              value="2"
-              c:identifier="GST_EVENT_TYPE_DOWNSTREAM"/>
-      <member name="serialized"
-              value="4"
-              c:identifier="GST_EVENT_TYPE_SERIALIZED"/>
-    </bitfield>
-    <constant name="FOURCC_FORMAT" value="c%c%c%c">
-      <type name="utf8"/>
-    </constant>
-    <callback name="FilterFunc"
-              c:type="GstFilterFunc"
-              doc="Function prototype for a filter callback taht can be use in gst_filter_run().
-The function should apply its filtering to @obj. Additional data passed to
-gst_filter_run() are in @data.">
-      <return-value transfer-ownership="none">
-        <type name="boolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="obj" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
-        </parameter>
-        <parameter name="user_data" transfer-ownership="none" closure="1">
-          <type name="any" c:type="gpointer"/>
-        </parameter>
-      </parameters>
-    </callback>
-    <enumeration name="FlowReturn"
-                 doc="sent yet) (unused/unimplemented).
-this error should post an error message with more
-details.
-this (and higher) to define custom success
-codes. Since 0.10.7.
-custom success code to this to avoid compiler
-warnings). Since 0.10.29.
-this (and lower) to define custom error codes.
-Since 0.10.7.
-custom error code to this to avoid compiler
-warnings). Since 0.10.29.
-The result of passing data to a pad.
-Note that the custom return values should not be exposed outside of the
-element scope and are available since 0.10.7."
-                 c:type="GstFlowReturn">
-      <member name="custom_success_2"
-              value="102"
-              c:identifier="GST_FLOW_CUSTOM_SUCCESS_2"/>
-      <member name="custom_success_1"
-              value="101"
-              c:identifier="GST_FLOW_CUSTOM_SUCCESS_1"/>
-      <member name="custom_success"
-              value="100"
-              c:identifier="GST_FLOW_CUSTOM_SUCCESS"/>
-      <member name="resend" value="1" c:identifier="GST_FLOW_RESEND"/>
-      <member name="ok" value="0" c:identifier="GST_FLOW_OK"/>
-      <member name="not_linked" value="-1" c:identifier="GST_FLOW_NOT_LINKED"/>
-      <member name="wrong_state"
-              value="-2"
-              c:identifier="GST_FLOW_WRONG_STATE"/>
-      <member name="unexpected" value="-3" c:identifier="GST_FLOW_UNEXPECTED"/>
-      <member name="not_negotiated"
-              value="-4"
-              c:identifier="GST_FLOW_NOT_NEGOTIATED"/>
-      <member name="error" value="-5" c:identifier="GST_FLOW_ERROR"/>
-      <member name="not_supported"
-              value="-6"
-              c:identifier="GST_FLOW_NOT_SUPPORTED"/>
-      <member name="custom_error"
-              value="-100"
-              c:identifier="GST_FLOW_CUSTOM_ERROR"/>
-      <member name="custom_error_1"
-              value="-101"
-              c:identifier="GST_FLOW_CUSTOM_ERROR_1"/>
-      <member name="custom_error_2"
-              value="-102"
-              c:identifier="GST_FLOW_CUSTOM_ERROR_2"/>
-    </enumeration>
-    <enumeration name="Format"
-                 doc="samples for raw audio, frames/fields for raw video (some, but not all,
-elements support this; use @GST_FORMAT_TIME if you don&apos;t have a good
-reason to query for samples/frames)
-May 2009)
-this as of May 2009)
-Standard predefined formats"
-                 c:type="GstFormat">
-      <member name="undefined" value="0" c:identifier="GST_FORMAT_UNDEFINED"/>
-      <member name="default" value="1" c:identifier="GST_FORMAT_DEFAULT"/>
-      <member name="bytes" value="2" c:identifier="GST_FORMAT_BYTES"/>
-      <member name="time" value="3" c:identifier="GST_FORMAT_TIME"/>
-      <member name="buffers" value="4" c:identifier="GST_FORMAT_BUFFERS"/>
-      <member name="percent" value="5" c:identifier="GST_FORMAT_PERCENT"/>
-    </enumeration>
-    <record name="FormatDefinition"
-            c:type="GstFormatDefinition"
-            doc="A format definition">
-      <field name="value" writable="1">
-        <type name="Format" c:type="GstFormat"/>
-      </field>
-      <field name="nick" writable="1">
-        <type name="utf8" c:type="gchar*"/>
-      </field>
-      <field name="description" writable="1">
-        <type name="utf8" c:type="gchar*"/>
-      </field>
-      <field name="quark" writable="1">
-        <type name="GLib.Quark" c:type="GQuark"/>
-      </field>
-    </record>
-    <glib:boxed c:type="GstGError"
-                glib:name="GError"
-                glib:type-name="GstGError"
-                glib:get-type="gst_g_error_get_type">
-    </glib:boxed>
-    <class name="GhostPad"
-           c:type="GstGhostPad"
-           doc="Opaque #GstGhostPad structure."
-           parent="ProxyPad"
-           glib:type-name="GstGhostPad"
-           glib:get-type="gst_ghost_pad_get_type"
-           glib:type-struct="GhostPadClass">
-      <constructor name="new"
-                   c:identifier="gst_ghost_pad_new"
-                   doc="Create a new ghostpad with @target as the target. The direction will be taken
-from the target pad. @target must be unlinked.
-Will ref the target.">
-        <return-value transfer-ownership="full">
-          <type name="GhostPad" c:type="GstPad*"/>
-        </return-value>
-        <parameters>
-          <parameter name="name" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="target" transfer-ownership="none">
-            <type name="Pad" c:type="GstPad*"/>
-          </parameter>
-        </parameters>
-      </constructor>
-      <constructor name="new_no_target"
-                   c:identifier="gst_ghost_pad_new_no_target"
-                   doc="Create a new ghostpad without a target with the given direction.
-A target can be set on the ghostpad later with the
-gst_ghost_pad_set_target() function.
-The created ghostpad will not have a padtemplate.">
-        <return-value transfer-ownership="full">
-          <type name="GhostPad" c:type="GstPad*"/>
-        </return-value>
-        <parameters>
-          <parameter name="name" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="dir" transfer-ownership="none">
-            <type name="PadDirection" c:type="GstPadDirection"/>
-          </parameter>
-        </parameters>
-      </constructor>
-      <constructor name="new_from_template"
-                   c:identifier="gst_ghost_pad_new_from_template"
-                   doc="Create a new ghostpad with @target as the target. The direction will be taken
-from the target pad. The template used on the ghostpad will be @template.
-Will ref the target."
-                   version="0.10.10">
-        <return-value transfer-ownership="full">
-          <type name="GhostPad" c:type="GstPad*"/>
-        </return-value>
-        <parameters>
-          <parameter name="name" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="target" transfer-ownership="none">
-            <type name="Pad" c:type="GstPad*"/>
-          </parameter>
-          <parameter name="templ" transfer-ownership="none">
-            <type name="PadTemplate" c:type="GstPadTemplate*"/>
-          </parameter>
-        </parameters>
-      </constructor>
-      <constructor name="new_no_target_from_template"
-                   c:identifier="gst_ghost_pad_new_no_target_from_template"
-                   doc="Create a new ghostpad based on @templ, without setting a target. The
-direction will be taken from the @templ."
-                   version="0.10.10">
-        <return-value transfer-ownership="full">
-          <type name="GhostPad" c:type="GstPad*"/>
-        </return-value>
-        <parameters>
-          <parameter name="name" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="templ" transfer-ownership="none">
-            <type name="PadTemplate" c:type="GstPadTemplate*"/>
-          </parameter>
-        </parameters>
-      </constructor>
-      <method name="get_target"
-              c:identifier="gst_ghost_pad_get_target"
-              doc="Get the target pad of @gpad. Unref target pad after usage.
-has no target set. Unref target pad after usage.">
-        <return-value transfer-ownership="full">
-          <type name="Pad" c:type="GstPad*"/>
-        </return-value>
-      </method>
-      <method name="set_target"
-              c:identifier="gst_ghost_pad_set_target"
-              doc="Set the new target of the ghostpad @gpad. Any existing target
-is unlinked and links to the new target are established. if @newtarget is
-NULL the target will be cleared.
-when the internal pads could not be linked.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="newtarget" transfer-ownership="none">
-            <type name="Pad" c:type="GstPad*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="construct"
-              c:identifier="gst_ghost_pad_construct"
-              doc="Finish initialization of a newly allocated ghost pad.
-This function is most useful in language bindings and when subclassing
-#GstGhostPad; plugin and application developers normally will not call this
-function. Call this function directly after a call to g_object_new
-(GST_TYPE_GHOST_PAD, &quot;direction&quot;, @dir, ..., NULL)."
-              version="0.10.22">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-      </method>
-      <field name="pad">
-        <type name="ProxyPad" c:type="GstProxyPad"/>
-      </field>
-      <field name="priv">
-        <type name="GhostPadPrivate" c:type="GstGhostPadPrivate*"/>
-      </field>
-    </class>
-    <record name="GhostPadClass"
-            c:type="GstGhostPadClass"
-            glib:is-gtype-struct-for="GhostPad">
-      <field name="parent_class">
-        <type name="ProxyPadClass" c:type="GstProxyPadClass"/>
-      </field>
-      <field name="_gst_reserved">
-        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
-          <type name="any"/>
-        </array>
-      </field>
-    </record>
-    <record name="GhostPadPrivate" c:type="GstGhostPadPrivate">
-    </record>
-    <constant name="INDEX_ID_INVALID" value="-1">
-      <type name="int"/>
-    </constant>
-    <interface name="ImplementsInterface"
-               c:type="GstImplementsInterface"
-               doc="Opaque #GstImplementsInterface structure."
-               glib:type-name="GstImplementsInterface"
-               glib:get-type="gst_implements_interface_get_type"
-               glib:type-struct="ImplementsInterfaceClass">
-      <prerequisite name="Element"/>
-      <virtual-method name="supported">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="iface_type" transfer-ownership="none">
-            <type name="GType" c:type="GType"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-    </interface>
-    <record name="ImplementsInterfaceClass"
-            c:type="GstImplementsInterfaceClass"
-            glib:is-gtype-struct-for="ImplementsInterface">
-      <field name="parent">
-        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
-      </field>
-      <field name="supported">
-        <callback name="supported" c:type="supported">
-          <return-value transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </return-value>
-          <parameters>
-            <parameter name="iface" transfer-ownership="none">
-              <type name="ImplementsInterface"
-                    c:type="GstImplementsInterface*"/>
-            </parameter>
-            <parameter name="iface_type" transfer-ownership="none">
-              <type name="GType" c:type="GType"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="_gst_reserved">
-        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
-          <type name="any"/>
-        </array>
-      </field>
-    </record>
-    <class name="Index"
-           c:type="GstIndex"
-           doc="Opaque #GstIndex structure."
-           parent="Object"
-           glib:type-name="GstIndex"
-           glib:get-type="gst_index_get_type"
-           glib:type-struct="IndexClass">
-      <constructor name="new"
-                   c:identifier="gst_index_new"
-                   doc="Create a new tileindex object">
-        <return-value transfer-ownership="full">
-          <type name="Index" c:type="GstIndex*"/>
-        </return-value>
-      </constructor>
-      <virtual-method name="get_writer_id">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="writer_id"
-                     direction="out"
-                     transfer-ownership="full">
-            <type name="int" c:type="gint*"/>
-          </parameter>
-          <parameter name="writer_string" transfer-ownership="full">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <virtual-method name="commit" invoker="commit">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="id" transfer-ownership="none">
-            <type name="int" c:type="gint"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <virtual-method name="add_entry">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="entry" transfer-ownership="none">
-            <type name="IndexEntry" c:type="GstIndexEntry*"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <virtual-method name="get_assoc_entry">
-        <return-value transfer-ownership="full">
-          <type name="IndexEntry" c:type="GstIndexEntry*"/>
-        </return-value>
-        <parameters>
-          <parameter name="id" transfer-ownership="none">
-            <type name="int" c:type="gint"/>
-          </parameter>
-          <parameter name="method" transfer-ownership="none">
-            <type name="IndexLookupMethod" c:type="GstIndexLookupMethod"/>
-          </parameter>
-          <parameter name="flags" transfer-ownership="none">
-            <type name="AssocFlags" c:type="GstAssocFlags"/>
-          </parameter>
-          <parameter name="format" transfer-ownership="none">
-            <type name="Format" c:type="GstFormat"/>
-          </parameter>
-          <parameter name="value" transfer-ownership="none">
-            <type name="int64" c:type="gint64"/>
-          </parameter>
-          <parameter name="func" transfer-ownership="none">
-            <type name="GLib.CompareDataFunc" c:type="GCompareDataFunc"/>
-          </parameter>
-          <parameter name="user_data" transfer-ownership="none" closure="7">
-            <type name="any" c:type="gpointer"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <method name="commit"
-              c:identifier="gst_index_commit"
-              doc="Tell the index that the writer with the given id is done
-with this index and is not going to write any more entries
-to it.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="id" transfer-ownership="none">
-            <type name="int" c:type="gint"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_group"
-              c:identifier="gst_index_get_group"
-              doc="Get the id of the current group.">
-        <return-value transfer-ownership="none">
-          <type name="int" c:type="gint"/>
-        </return-value>
-      </method>
-      <method name="new_group"
-              c:identifier="gst_index_new_group"
-              doc="Create a new group for the given index. It will be
-set as the current group.">
-        <return-value transfer-ownership="none">
-          <type name="int" c:type="gint"/>
-        </return-value>
-      </method>
-      <method name="set_group"
-              c:identifier="gst_index_set_group"
-              doc="Set the current groupnumber to the given argument.
-did not exist.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="groupnum" transfer-ownership="none">
-            <type name="int" c:type="gint"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_certainty"
-              c:identifier="gst_index_set_certainty"
-              doc="Set the certainty of the given index.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="certainty" transfer-ownership="none">
-            <type name="IndexCertainty" c:type="GstIndexCertainty"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_certainty"
-              c:identifier="gst_index_get_certainty"
-              doc="Get the certainty of the given index.">
-        <return-value transfer-ownership="full">
-          <type name="IndexCertainty" c:type="GstIndexCertainty"/>
-        </return-value>
-      </method>
-      <method name="set_filter"
-              c:identifier="gst_index_set_filter"
-              doc="Lets the app register a custom filter function so that
-it can select what entries should be stored in the index.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="filter"
-                     transfer-ownership="none"
-                     scope="call"
-                     closure="2">
-            <type name="IndexFilter" c:type="GstIndexFilter"/>
-          </parameter>
-          <parameter name="user_data" transfer-ownership="none">
-            <type name="any" c:type="gpointer"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_filter_full"
-              c:identifier="gst_index_set_filter_full"
-              doc="Lets the app register a custom filter function so that
-it can select what entries should be stored in the index.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="filter"
-                     transfer-ownership="none"
-                     scope="notified"
-                     closure="2"
-                     destroy="3">
-            <type name="IndexFilter" c:type="GstIndexFilter"/>
-          </parameter>
-          <parameter name="user_data" transfer-ownership="none">
-            <type name="any" c:type="gpointer"/>
-          </parameter>
-          <parameter name="user_data_destroy"
-                     transfer-ownership="none"
-                     scope="call">
-            <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_resolver"
-              c:identifier="gst_index_set_resolver"
-              doc="Lets the app register a custom function to map index
-ids to writer descriptions.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="resolver"
-                     transfer-ownership="none"
-                     scope="call"
-                     closure="2">
-            <type name="IndexResolver" c:type="GstIndexResolver"/>
-          </parameter>
-          <parameter name="user_data" transfer-ownership="none">
-            <type name="any" c:type="gpointer"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_resolver_full"
-              c:identifier="gst_index_set_resolver_full"
-              doc="Lets the app register a custom function to map index
-ids to writer descriptions."
-              version="0.10.18">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="resolver"
-                     transfer-ownership="none"
-                     scope="notified"
-                     closure="2"
-                     destroy="3">
-            <type name="IndexResolver" c:type="GstIndexResolver"/>
-          </parameter>
-          <parameter name="user_data" transfer-ownership="none">
-            <type name="any" c:type="gpointer"/>
-          </parameter>
-          <parameter name="user_data_destroy"
-                     transfer-ownership="none"
-                     scope="call">
-            <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_writer_id"
-              c:identifier="gst_index_get_writer_id"
-              doc="Before entries can be added to the index, a writer
-should obtain a unique id. The methods to add new entries
-to the index require this id as an argument.
-The application can implement a custom function to map the writer object
-to a string. That string will be used to register or look up an id
-in the index.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="writer" transfer-ownership="none">
-            <type name="Object" c:type="GstObject*"/>
-          </parameter>
-          <parameter name="id" direction="out" transfer-ownership="full">
-            <type name="int" c:type="gint*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="add_format"
-              c:identifier="gst_index_add_format"
-              doc="Adds a format entry into the index. This function is
-used to map dynamic GstFormat ids to their original
-format key.">
-        <return-value transfer-ownership="full">
-          <type name="IndexEntry" c:type="GstIndexEntry*"/>
-        </return-value>
-        <parameters>
-          <parameter name="id" transfer-ownership="none">
-            <type name="int" c:type="gint"/>
-          </parameter>
-          <parameter name="format" transfer-ownership="none">
-            <type name="Format" c:type="GstFormat"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="add_associationv"
-              c:identifier="gst_index_add_associationv"
-              doc="Associate given format/value pairs with each other.">
-        <return-value transfer-ownership="full">
-          <type name="IndexEntry" c:type="GstIndexEntry*"/>
-        </return-value>
-        <parameters>
-          <parameter name="id" transfer-ownership="none">
-            <type name="int" c:type="gint"/>
-          </parameter>
-          <parameter name="flags" transfer-ownership="none">
-            <type name="AssocFlags" c:type="GstAssocFlags"/>
-          </parameter>
-          <parameter name="n" transfer-ownership="none">
-            <type name="int" c:type="gint"/>
-          </parameter>
-          <parameter name="list" transfer-ownership="none">
-            <type name="IndexAssociation" c:type="GstIndexAssociation*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="add_association"
-              c:identifier="gst_index_add_association"
-              doc="Associate given format/value pairs with each other.
-Be sure to pass gint64 values to this functions varargs,
-you might want to use a gint64 cast to be sure.">
-        <return-value transfer-ownership="full">
-          <type name="IndexEntry" c:type="GstIndexEntry*"/>
-        </return-value>
-        <parameters>
-          <parameter name="id" transfer-ownership="none">
-            <type name="int" c:type="gint"/>
-          </parameter>
-          <parameter name="flags" transfer-ownership="none">
-            <type name="AssocFlags" c:type="GstAssocFlags"/>
-          </parameter>
-          <parameter name="format" transfer-ownership="none">
-            <type name="Format" c:type="GstFormat"/>
-          </parameter>
-          <parameter name="value" transfer-ownership="none">
-            <type name="int64" c:type="gint64"/>
-          </parameter>
-          <parameter transfer-ownership="none">
-            <varargs>
-            </varargs>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="add_object"
-              c:identifier="gst_index_add_object"
-              doc="Add the given object to the index with the given key.
-This function is not yet implemented.">
-        <return-value transfer-ownership="full">
-          <type name="IndexEntry" c:type="GstIndexEntry*"/>
-        </return-value>
-        <parameters>
-          <parameter name="id" transfer-ownership="none">
-            <type name="int" c:type="gint"/>
-          </parameter>
-          <parameter name="key" transfer-ownership="full">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="type" transfer-ownership="none">
-            <type name="GType" c:type="GType"/>
-          </parameter>
-          <parameter name="object" transfer-ownership="none">
-            <type name="any" c:type="gpointer"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="add_id"
-              c:identifier="gst_index_add_id"
-              doc="Add an id entry into the index.">
-        <return-value transfer-ownership="full">
-          <type name="IndexEntry" c:type="GstIndexEntry*"/>
-        </return-value>
-        <parameters>
-          <parameter name="id" transfer-ownership="none">
-            <type name="int" c:type="gint"/>
-          </parameter>
-          <parameter name="description" transfer-ownership="full">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_assoc_entry"
-              c:identifier="gst_index_get_assoc_entry"
-              doc="Finds the given format/value in the index
-value was not found.">
-        <return-value transfer-ownership="full">
-          <type name="IndexEntry" c:type="GstIndexEntry*"/>
-        </return-value>
-        <parameters>
-          <parameter name="id" transfer-ownership="none">
-            <type name="int" c:type="gint"/>
-          </parameter>
-          <parameter name="method" transfer-ownership="none">
-            <type name="IndexLookupMethod" c:type="GstIndexLookupMethod"/>
-          </parameter>
-          <parameter name="flags" transfer-ownership="none">
-            <type name="AssocFlags" c:type="GstAssocFlags"/>
-          </parameter>
-          <parameter name="format" transfer-ownership="none">
-            <type name="Format" c:type="GstFormat"/>
-          </parameter>
-          <parameter name="value" transfer-ownership="none">
-            <type name="int64" c:type="gint64"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_assoc_entry_full"
-              c:identifier="gst_index_get_assoc_entry_full"
-              doc="Finds the given format/value in the index with the given
-compare function and user_data.
-value was not found.">
-        <return-value transfer-ownership="full">
-          <type name="IndexEntry" c:type="GstIndexEntry*"/>
-        </return-value>
-        <parameters>
-          <parameter name="id" transfer-ownership="none">
-            <type name="int" c:type="gint"/>
-          </parameter>
-          <parameter name="method" transfer-ownership="none">
-            <type name="IndexLookupMethod" c:type="GstIndexLookupMethod"/>
-          </parameter>
-          <parameter name="flags" transfer-ownership="none">
-            <type name="AssocFlags" c:type="GstAssocFlags"/>
-          </parameter>
-          <parameter name="format" transfer-ownership="none">
-            <type name="Format" c:type="GstFormat"/>
-          </parameter>
-          <parameter name="value" transfer-ownership="none">
-            <type name="int64" c:type="gint64"/>
-          </parameter>
-          <parameter name="func"
-                     transfer-ownership="none"
-                     scope="call"
-                     closure="7">
-            <type name="GLib.CompareDataFunc" c:type="GCompareDataFunc"/>
-          </parameter>
-          <parameter name="user_data" transfer-ownership="none">
-            <type name="any" c:type="gpointer"/>
-          </parameter>
-        </parameters>
-      </method>
-      <property name="resolver" writable="1">
-        <type name="IndexResolver" c:type="GstIndexResolver"/>
-      </property>
-      <field name="object">
-        <type name="Object" c:type="GstObject"/>
-      </field>
-      <field name="groups">
-        <type name="GLib.List" c:type="GList*"/>
-      </field>
-      <field name="curgroup">
-        <type name="IndexGroup" c:type="GstIndexGroup*"/>
-      </field>
-      <field name="maxgroup">
-        <type name="int" c:type="gint"/>
-      </field>
-      <field name="method">
-        <type name="IndexResolverMethod" c:type="GstIndexResolverMethod"/>
-      </field>
-      <field name="resolver">
-        <type name="IndexResolver" c:type="GstIndexResolver"/>
-      </field>
-      <field name="resolver_user_data">
-        <type name="any" c:type="gpointer"/>
-      </field>
-      <field name="filter">
-        <type name="IndexFilter" c:type="GstIndexFilter"/>
-      </field>
-      <field name="filter_user_data">
-        <type name="any" c:type="gpointer"/>
-      </field>
-      <field name="filter_user_data_destroy">
-        <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
-      </field>
-      <field name="writers">
-        <type name="GLib.HashTable" c:type="GHashTable*"/>
-      </field>
-      <field name="last_id">
-        <type name="int" c:type="gint"/>
-      </field>
-      <field name="resolver_user_data_destroy">
-        <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
-      </field>
-      <field name="_gst_reserved">
-        <array zero-terminated="0" c:type="gpointer" fixed-size="3">
-          <type name="any"/>
-        </array>
-      </field>
-      <glib:signal name="entry-added">
-        <return-value transfer-ownership="full">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="object" transfer-ownership="none">
-            <type name="IndexEntry" c:type="GstIndexEntry"/>
-          </parameter>
-        </parameters>
-      </glib:signal>
-    </class>
-    <record name="IndexAssociation"
-            c:type="GstIndexAssociation"
-            doc="An association in an entry.">
-      <field name="format" writable="1">
-        <type name="Format" c:type="GstFormat"/>
-      </field>
-      <field name="value" writable="1">
-        <type name="int64" c:type="gint64"/>
-      </field>
-    </record>
-    <enumeration name="IndexCertainty"
-                 doc="The certainty of a group in the index."
-                 c:type="GstIndexCertainty">
-      <member name="unknown" value="0" c:identifier="GST_INDEX_UNKNOWN"/>
-      <member name="certain" value="1" c:identifier="GST_INDEX_CERTAIN"/>
-      <member name="fuzzy" value="2" c:identifier="GST_INDEX_FUZZY"/>
-    </enumeration>
-    <record name="IndexClass"
-            c:type="GstIndexClass"
-            glib:is-gtype-struct-for="Index">
-      <field name="parent_class">
-        <type name="ObjectClass" c:type="GstObjectClass"/>
-      </field>
-      <field name="get_writer_id">
-        <callback name="get_writer_id" c:type="get_writer_id">
-          <return-value transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </return-value>
-          <parameters>
-            <parameter name="index" transfer-ownership="none">
-              <type name="Index" c:type="GstIndex*"/>
-            </parameter>
-            <parameter name="writer_id"
-                       direction="out"
-                       transfer-ownership="full">
-              <type name="int" c:type="gint*"/>
-            </parameter>
-            <parameter name="writer_string" transfer-ownership="full">
-              <type name="utf8" c:type="gchar*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="commit">
-        <callback name="commit" c:type="commit">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="index" transfer-ownership="none">
-              <type name="Index" c:type="GstIndex*"/>
-            </parameter>
-            <parameter name="id" transfer-ownership="none">
-              <type name="int" c:type="gint"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="add_entry">
-        <callback name="add_entry" c:type="add_entry">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="index" transfer-ownership="none">
-              <type name="Index" c:type="GstIndex*"/>
-            </parameter>
-            <parameter name="entry" transfer-ownership="none">
-              <type name="IndexEntry" c:type="GstIndexEntry*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="get_assoc_entry">
-        <callback name="get_assoc_entry" c:type="get_assoc_entry">
-          <return-value transfer-ownership="full">
-            <type name="IndexEntry" c:type="GstIndexEntry*"/>
-          </return-value>
-          <parameters>
-            <parameter name="index" transfer-ownership="none">
-              <type name="Index" c:type="GstIndex*"/>
-            </parameter>
-            <parameter name="id" transfer-ownership="none">
-              <type name="int" c:type="gint"/>
-            </parameter>
-            <parameter name="method" transfer-ownership="none">
-              <type name="IndexLookupMethod" c:type="GstIndexLookupMethod"/>
-            </parameter>
-            <parameter name="flags" transfer-ownership="none">
-              <type name="AssocFlags" c:type="GstAssocFlags"/>
-            </parameter>
-            <parameter name="format" transfer-ownership="none">
-              <type name="Format" c:type="GstFormat"/>
-            </parameter>
-            <parameter name="value" transfer-ownership="none">
-              <type name="int64" c:type="gint64"/>
-            </parameter>
-            <parameter name="func" transfer-ownership="none">
-              <type name="GLib.CompareDataFunc" c:type="GCompareDataFunc"/>
-            </parameter>
-            <parameter name="user_data" transfer-ownership="none" closure="7">
-              <type name="any" c:type="gpointer"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="entry_added">
-        <callback name="entry_added" c:type="entry_added">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="index" transfer-ownership="none">
-              <type name="Index" c:type="GstIndex*"/>
-            </parameter>
-            <parameter name="entry" transfer-ownership="none">
-              <type name="IndexEntry" c:type="GstIndexEntry*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="_gst_reserved">
-        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
-          <type name="any"/>
-        </array>
-      </field>
-    </record>
-    <record name="IndexEntry"
-            c:type="GstIndexEntry"
-            doc="The basic element of an index."
-            glib:type-name="GstIndexEntry"
-            glib:get-type="gst_index_entry_get_type">
-      <field name="type" writable="1">
-        <type name="IndexEntryType" c:type="GstIndexEntryType"/>
-      </field>
-      <field name="id" writable="1">
-        <type name="int" c:type="gint"/>
-      </field>
-      <union name="data" c:type="data">
-        <record name="id" c:type="id">
-          <field name="description" writable="1">
-            <type name="utf8" c:type="gchar*"/>
-          </field>
-        </record>
-        <record name="assoc" c:type="assoc">
-          <field name="nassocs" writable="1">
-            <type name="int" c:type="gint"/>
-          </field>
-          <field name="assocs" writable="1">
-            <type name="IndexAssociation" c:type="GstIndexAssociation*"/>
-          </field>
-          <field name="flags" writable="1">
-            <type name="AssocFlags" c:type="GstAssocFlags"/>
-          </field>
-        </record>
-        <record name="object" c:type="object">
-          <field name="key" writable="1">
-            <type name="utf8" c:type="gchar*"/>
-          </field>
-          <field name="type" writable="1">
-            <type name="GType" c:type="GType"/>
-          </field>
-          <field name="object" writable="1">
-            <type name="any" c:type="gpointer"/>
-          </field>
-        </record>
-        <record name="format" c:type="format">
-          <field name="format" writable="1">
-            <type name="Format" c:type="GstFormat"/>
-          </field>
-          <field name="key" writable="1">
-            <type name="utf8" c:type="gchar*"/>
-          </field>
-        </record>
-      </union>
-      <method name="copy"
-              c:identifier="gst_index_entry_copy"
-              doc="Copies an entry and returns the result.">
-        <return-value transfer-ownership="full">
-          <type name="IndexEntry" c:type="GstIndexEntry*"/>
-        </return-value>
-      </method>
-      <method name="free"
-              c:identifier="gst_index_entry_free"
-              doc="Free the memory used by the given entry.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </method>
-      <method name="assoc_map"
-              c:identifier="gst_index_entry_assoc_map"
-              doc="Gets alternative formats associated with the indexentry.
-format.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="format" transfer-ownership="none">
-            <type name="Format" c:type="GstFormat"/>
-          </parameter>
-          <parameter name="value" direction="out" transfer-ownership="full">
-            <type name="int64" c:type="gint64*"/>
-          </parameter>
-        </parameters>
-      </method>
-    </record>
-    <enumeration name="IndexEntryType"
-                 doc="The different types of entries in the index."
-                 c:type="GstIndexEntryType">
-      <member name="id" value="0" c:identifier="GST_INDEX_ENTRY_ID"/>
-      <member name="association"
-              value="1"
-              c:identifier="GST_INDEX_ENTRY_ASSOCIATION"/>
-      <member name="object" value="2" c:identifier="GST_INDEX_ENTRY_OBJECT"/>
-      <member name="format" value="3" c:identifier="GST_INDEX_ENTRY_FORMAT"/>
-    </enumeration>
-    <class name="IndexFactory"
-           c:type="GstIndexFactory"
-           doc="The GstIndexFactory object"
-           parent="PluginFeature"
-           glib:type-name="GstIndexFactory"
-           glib:get-type="gst_index_factory_get_type"
-           glib:type-struct="IndexFactoryClass">
-      <constructor name="new"
-                   c:identifier="gst_index_factory_new"
-                   doc="Create a new indexfactory with the given parameters">
-        <return-value transfer-ownership="full">
-          <type name="IndexFactory" c:type="GstIndexFactory*"/>
-        </return-value>
-        <parameters>
-          <parameter name="name" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="longdesc" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="type" transfer-ownership="none">
-            <type name="GType" c:type="GType"/>
-          </parameter>
-        </parameters>
-      </constructor>
-      <function name="find"
-                c:identifier="gst_index_factory_find"
-                doc="Search for an indexfactory of the given name.">
-        <return-value transfer-ownership="full">
-          <type name="IndexFactory" c:type="GstIndexFactory*"/>
-        </return-value>
-        <parameters>
-          <parameter name="name" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </function>
-      <function name="make"
-                c:identifier="gst_index_factory_make"
-                doc="Create a new #GstIndex instance from the
-indexfactory with the given name.">
-        <return-value transfer-ownership="full">
-          <type name="Index" c:type="GstIndex*"/>
-        </return-value>
-        <parameters>
-          <parameter name="name" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </function>
-      <method name="destroy"
-              c:identifier="gst_index_factory_destroy"
-              doc="Removes the index from the global list.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </method>
-      <method name="create"
-              c:identifier="gst_index_factory_create"
-              doc="Create a new #GstIndex instance from the
-given indexfactory.">
-        <return-value transfer-ownership="full">
-          <type name="Index" c:type="GstIndex*"/>
-        </return-value>
-      </method>
-      <field name="feature">
-        <type name="PluginFeature" c:type="GstPluginFeature"/>
-      </field>
-      <field name="longdesc">
-        <type name="utf8" c:type="gchar*"/>
-      </field>
-      <field name="type">
-        <type name="GType" c:type="GType"/>
-      </field>
-      <field name="_gst_reserved">
-        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
-          <type name="any"/>
-        </array>
-      </field>
-    </class>
-    <record name="IndexFactoryClass"
-            c:type="GstIndexFactoryClass"
-            glib:is-gtype-struct-for="IndexFactory">
-      <field name="parent">
-        <type name="PluginFeatureClass" c:type="GstPluginFeatureClass"/>
-      </field>
-      <field name="_gst_reserved">
-        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
-          <type name="any"/>
-        </array>
-      </field>
-    </record>
-    <callback name="IndexFilter"
-              c:type="GstIndexFilter"
-              doc="Function to filter out entries in the index.
-to the index, %FALSE otherwise.">
-      <return-value transfer-ownership="none">
-        <type name="boolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="index" transfer-ownership="none">
-          <type name="Index" c:type="GstIndex*"/>
-        </parameter>
-        <parameter name="entry" transfer-ownership="none">
-          <type name="IndexEntry" c:type="GstIndexEntry*"/>
-        </parameter>
-        <parameter name="user_data" transfer-ownership="none" closure="2">
-          <type name="any" c:type="gpointer"/>
-        </parameter>
-      </parameters>
-    </callback>
-    <bitfield name="IndexFlags"
-              doc="Flags for this index"
-              c:type="GstIndexFlags">
-      <member name="writable" value="16" c:identifier="GST_INDEX_WRITABLE"/>
-      <member name="readable" value="32" c:identifier="GST_INDEX_READABLE"/>
-      <member name="flag_last"
-              value="4096"
-              c:identifier="GST_INDEX_FLAG_LAST"/>
-    </bitfield>
-    <record name="IndexGroup"
-            c:type="GstIndexGroup"
-            doc="A group of related entries in an index.">
-      <field name="groupnum" writable="1">
-        <type name="int" c:type="gint"/>
-      </field>
-      <field name="entries" writable="1">
-        <type name="GLib.List" c:type="GList*"/>
-      </field>
-      <field name="certainty" writable="1">
-        <type name="IndexCertainty" c:type="GstIndexCertainty"/>
-      </field>
-      <field name="peergroup" writable="1">
-        <type name="int" c:type="gint"/>
-      </field>
-    </record>
-    <enumeration name="IndexLookupMethod"
-                 doc="Specify the method to find an index entry in the index."
-                 c:type="GstIndexLookupMethod">
-      <member name="exact" value="0" c:identifier="GST_INDEX_LOOKUP_EXACT"/>
-      <member name="before" value="1" c:identifier="GST_INDEX_LOOKUP_BEFORE"/>
-      <member name="after" value="2" c:identifier="GST_INDEX_LOOKUP_AFTER"/>
-    </enumeration>
-    <callback name="IndexResolver"
-              c:type="GstIndexResolver"
-              doc="Function to resolve ids to writer descriptions.">
-      <return-value transfer-ownership="none">
-        <type name="boolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="index" transfer-ownership="none">
-          <type name="Index" c:type="GstIndex*"/>
-        </parameter>
-        <parameter name="writer" transfer-ownership="none">
-          <type name="Object" c:type="GstObject*"/>
-        </parameter>
-        <parameter name="writer_string" transfer-ownership="none">
-          <array c:type="gchar**">
-            <type name="utf8"/>
-          </array>
-        </parameter>
-        <parameter name="user_data" transfer-ownership="none" closure="3">
-          <type name="any" c:type="gpointer"/>
-        </parameter>
-      </parameters>
-    </callback>
-    <enumeration name="IndexResolverMethod"
-                 doc="The method used to resolve index writers"
-                 c:type="GstIndexResolverMethod">
-      <member name="custom"
-              value="0"
-              c:identifier="GST_INDEX_RESOLVER_CUSTOM"/>
-      <member name="gtype" value="1" c:identifier="GST_INDEX_RESOLVER_GTYPE"/>
-      <member name="path" value="2" c:identifier="GST_INDEX_RESOLVER_PATH"/>
-    </enumeration>
-    <record name="Iterator"
-            c:type="GstIterator"
-            doc="created.
-#GstIterator base structure. The values of this structure are
-protected for subclasses, use the methods to use the #GstIterator.">
-      <field name="next" writable="1">
-        <type name="IteratorNextFunction" c:type="GstIteratorNextFunction"/>
-      </field>
-      <field name="item" writable="1">
-        <type name="IteratorItemFunction" c:type="GstIteratorItemFunction"/>
-      </field>
-      <field name="resync" writable="1">
-        <type name="IteratorResyncFunction"
-              c:type="GstIteratorResyncFunction"/>
-      </field>
-      <field name="free" writable="1">
-        <type name="IteratorFreeFunction" c:type="GstIteratorFreeFunction"/>
-      </field>
-      <field name="pushed" writable="1">
-        <type name="Iterator" c:type="GstIterator*"/>
-      </field>
-      <field name="type" writable="1">
-        <type name="GType" c:type="GType"/>
-      </field>
-      <field name="lock" writable="1">
-        <type name="GLib.Mutex" c:type="GMutex*"/>
-      </field>
-      <field name="cookie" writable="1">
-        <type name="uint32" c:type="guint32"/>
-      </field>
-      <field name="master_cookie" writable="1">
-        <type name="any" c:type="guint32*"/>
-      </field>
-      <field name="_gst_reserved" writable="1">
-        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
-          <type name="any"/>
-        </array>
-      </field>
-      <constructor name="new"
-                   c:identifier="gst_iterator_new"
-                   doc="iterator changed.
-Create a new iterator. This function is mainly used for objects
-implementing the next/resync/free function to iterate a data structure.
-For each item retrieved, the @item function is called with the lock
-held. The @free function is called when the iterator is freed.
-MT safe.">
-        <return-value transfer-ownership="full">
-          <type name="Iterator" c:type="GstIterator*"/>
-        </return-value>
-        <parameters>
-          <parameter name="size" transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
-          </parameter>
-          <parameter name="type" transfer-ownership="none">
-            <type name="GType" c:type="GType"/>
-          </parameter>
-          <parameter name="lock" transfer-ownership="none">
-            <type name="GLib.Mutex" c:type="GMutex*"/>
-          </parameter>
-          <parameter name="master_cookie"
-                     direction="out"
-                     transfer-ownership="full">
-            <type name="uint32" c:type="guint32*"/>
-          </parameter>
-          <parameter name="next" transfer-ownership="none" scope="call">
-            <type name="IteratorNextFunction"
-                  c:type="GstIteratorNextFunction"/>
-          </parameter>
-          <parameter name="item" transfer-ownership="none" scope="call">
-            <type name="IteratorItemFunction"
-                  c:type="GstIteratorItemFunction"/>
-          </parameter>
-          <parameter name="resync" transfer-ownership="none" scope="call">
-            <type name="IteratorResyncFunction"
-                  c:type="GstIteratorResyncFunction"/>
-          </parameter>
-          <parameter name="free" transfer-ownership="none" scope="call">
-            <type name="IteratorFreeFunction"
-                  c:type="GstIteratorFreeFunction"/>
-          </parameter>
-        </parameters>
-      </constructor>
-      <constructor name="new_list"
-                   c:identifier="gst_iterator_new_list"
-                   doc="is changed.
-Create a new iterator designed for iterating @list.
-The list you iterate is usually part of a data structure @owner and is
-protected with @lock.
-The iterator will use @lock to retrieve the next item of the list and it
-will then call the @item function before releasing @lock again.
-The @item function usualy makes sure that the item remains alive while
-responsible for freeing/unreffing the item after usage as explained in
-gst_iterator_next().
-When a concurrent update to the list is performed, usually by @owner while
-holding @lock, @master_cookie will be updated. The iterator implementation
-will notice the update of the cookie and will return %GST_ITERATOR_RESYNC to
-the user of the iterator in the next call to gst_iterator_next().
-MT safe.">
-        <return-value transfer-ownership="full">
-          <type name="Iterator" c:type="GstIterator*"/>
-        </return-value>
-        <parameters>
-          <parameter name="type" transfer-ownership="none">
-            <type name="GType" c:type="GType"/>
-          </parameter>
-          <parameter name="lock" transfer-ownership="none">
-            <type name="GLib.Mutex" c:type="GMutex*"/>
-          </parameter>
-          <parameter name="master_cookie"
-                     direction="out"
-                     transfer-ownership="full">
-            <type name="uint32" c:type="guint32*"/>
-          </parameter>
-          <parameter name="list" transfer-ownership="none">
-            <type name="GLib.List" c:type="GList**"/>
-          </parameter>
-          <parameter name="owner" transfer-ownership="none">
-            <type name="any" c:type="gpointer"/>
-          </parameter>
-          <parameter name="item" transfer-ownership="none" scope="call">
-            <type name="IteratorItemFunction"
-                  c:type="GstIteratorItemFunction"/>
-          </parameter>
-          <parameter name="free" transfer-ownership="none" scope="call">
-            <type name="IteratorDisposeFunction"
-                  c:type="GstIteratorDisposeFunction"/>
-          </parameter>
-        </parameters>
-      </constructor>
-      <constructor name="new_single"
-                   c:identifier="gst_iterator_new_single"
-                   doc="This #GstIterator is a convenient iterator for the common
-case where a #GstIterator needs to be returned but only
-a single object has to be considered. This happens often
-for the #GstPadIterIntLinkFunction."
-                   version="0.10.25">
-        <return-value transfer-ownership="full">
-          <type name="Iterator" c:type="GstIterator*"/>
-        </return-value>
-        <parameters>
-          <parameter name="type" transfer-ownership="none">
-            <type name="GType" c:type="GType"/>
-          </parameter>
-          <parameter name="object" transfer-ownership="none">
-            <type name="any" c:type="gpointer"/>
-          </parameter>
-          <parameter name="copy" transfer-ownership="none" scope="call">
-            <type name="CopyFunction" c:type="GstCopyFunction"/>
-          </parameter>
-          <parameter name="free" transfer-ownership="none" scope="call">
-            <type name="GLib.FreeFunc" c:type="GFreeFunc"/>
-          </parameter>
-        </parameters>
-      </constructor>
-      <method name="next"
-              c:identifier="gst_iterator_next"
-              doc="Get the next item from the iterator in @elem.
-Only when this function returns %GST_ITERATOR_OK, @elem will contain a valid
-value. For iterators that return refcounted objects, the returned object
-will have its refcount increased and should therefore be unreffed after
-usage.
-When this function returns %GST_ITERATOR_DONE, no more elements can be
-retrieved from @it.
-A return value of %GST_ITERATOR_RESYNC indicates that the element list was
-concurrently updated. The user of @it should call gst_iterator_resync() to
-get the newly updated list.
-A return value of %GST_ITERATOR_ERROR indicates an unrecoverable fatal error.
-is a refcounted object.
-MT safe.">
-        <return-value transfer-ownership="full">
-          <type name="IteratorResult" c:type="GstIteratorResult"/>
-        </return-value>
-        <parameters>
-          <parameter name="elem" transfer-ownership="none">
-            <type name="any" c:type="gpointer*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="resync"
-              c:identifier="gst_iterator_resync"
-              doc="Resync the iterator. this function is mostly called
-after gst_iterator_next() returned %GST_ITERATOR_RESYNC.
-When an iterator was pushed on @it, it will automatically be popped again
-with this function.
-MT safe.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </method>
-      <method name="free"
-              c:identifier="gst_iterator_free"
-              doc="Free the iterator.
-MT safe.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </method>
-      <method name="push"
-              c:identifier="gst_iterator_push"
-              doc="Pushes @other iterator onto @it. All calls performed on @it are
-forwarded to @other. If @other returns %GST_ITERATOR_DONE, it is
-popped again and calls are handled by @it again.
-This function is mainly used by objects implementing the iterator
-next function to recurse into substructures.
-When gst_iterator_resync() is called on @it, @other will automatically be
-popped.
-MT safe.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="other" transfer-ownership="none">
-            <type name="Iterator" c:type="GstIterator*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="filter"
-              c:identifier="gst_iterator_filter"
-              doc="Create a new iterator from an existing iterator. The new iterator
-will only return those elements that match the given compare function @func.
-in the iterator.
-When this iterator is freed, @it will also be freed.
-MT safe.">
-        <return-value transfer-ownership="full">
-          <type name="Iterator" c:type="GstIterator*"/>
-        </return-value>
-        <parameters>
-          <parameter name="func"
-                     transfer-ownership="none"
-                     scope="call"
-                     closure="2">
-            <type name="GLib.CompareFunc" c:type="GCompareFunc"/>
-          </parameter>
-          <parameter name="user_data" transfer-ownership="none">
-            <type name="any" c:type="gpointer"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="fold"
-              c:identifier="gst_iterator_fold"
-              doc="Folds @func over the elements of @iter. That is to say, @func will be called
-as @func (object, @ret, @user_data) for each object in @it. The normal use
-of this procedure is to accumulate the results of operating on the objects in
-before @func is called, and it should be unrefed after use in @func.
-This procedure can be used (and is used internally) to implement the
-gst_iterator_foreach() and gst_iterator_find_custom() operations.
-The fold will proceed as long as @func returns TRUE. When the iterator has no
-more arguments, %GST_ITERATOR_DONE will be returned. If @func returns FALSE,
-the fold will stop, and %GST_ITERATOR_OK will be returned. Errors or resyncs
-will cause fold to return %GST_ITERATOR_ERROR or %GST_ITERATOR_RESYNC as
-appropriate.
-The iterator will not be freed.
-MT safe.">
-        <return-value transfer-ownership="full">
-          <type name="IteratorResult" c:type="GstIteratorResult"/>
-        </return-value>
-        <parameters>
-          <parameter name="func" transfer-ownership="none" scope="call">
-            <type name="IteratorFoldFunction"
-                  c:type="GstIteratorFoldFunction"/>
-          </parameter>
-          <parameter name="ret" transfer-ownership="none">
-            <type name="GObject.Value" c:type="GValue*"/>
-          </parameter>
-          <parameter name="user_data" transfer-ownership="none">
-            <type name="any" c:type="gpointer"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="foreach"
-              c:identifier="gst_iterator_foreach"
-              doc="Iterate over all element of @it and call the given function @func for
-each element.  As in gst_iterator_fold(), the refcount of a refcounted
-object will be increased before @func is called, and should be unrefed
-after use.
-freed.
-MT safe.">
-        <return-value transfer-ownership="full" doc="The iterator will not be">
-          <type name="IteratorResult" c:type="GstIteratorResult"/>
-        </return-value>
-        <parameters>
-          <parameter name="func"
-                     transfer-ownership="none"
-                     scope="call"
-                     closure="2">
-            <type name="GLib.Func" c:type="GFunc"/>
-          </parameter>
-          <parameter name="user_data" transfer-ownership="none">
-            <type name="any" c:type="gpointer"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="find_custom"
-              c:identifier="gst_iterator_find_custom"
-              doc="Find the first element in @it that matches the compare function @func.
-the refcount of a refcounted object will be increased before @func is
-called, and should be unrefed after use.
-The iterator will not be freed.
-This function will return NULL if an error or resync happened to
-the iterator.
-function or NULL when no element matched.
-MT safe.">
-        <return-value transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
-        </return-value>
-        <parameters>
-          <parameter name="func"
-                     transfer-ownership="none"
-                     scope="call"
-                     closure="2">
-            <type name="GLib.CompareFunc" c:type="GCompareFunc"/>
-          </parameter>
-          <parameter name="user_data" transfer-ownership="none">
-            <type name="any" c:type="gpointer"/>
-          </parameter>
-        </parameters>
-      </method>
-    </record>
-    <callback name="IteratorDisposeFunction"
-              c:type="GstIteratorDisposeFunction"
-              doc="The function that will be called when a #GList iterator is freed. The
-owner of the #GList iterator can then clean up its resources.">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="owner" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
-        </parameter>
-      </parameters>
-    </callback>
-    <callback name="IteratorFoldFunction"
-              c:type="GstIteratorFoldFunction"
-              doc="A function to be passed to gst_iterator_fold().">
-      <return-value transfer-ownership="none">
-        <type name="boolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="item" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
-        </parameter>
-        <parameter name="ret" transfer-ownership="none">
-          <type name="GObject.Value" c:type="GValue*"/>
-        </parameter>
-        <parameter name="user_data" transfer-ownership="none" closure="2">
-          <type name="any" c:type="gpointer"/>
-        </parameter>
-      </parameters>
-    </callback>
-    <callback name="IteratorFreeFunction"
-              c:type="GstIteratorFreeFunction"
-              doc="This function will be called when the iterator is freed.
-Implementors of a #GstIterator should implement this
-function and pass it to the constructor of the custom iterator.
-The function will be called with the iterator lock held.">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="it" transfer-ownership="none">
-          <type name="Iterator" c:type="GstIterator*"/>
-        </parameter>
-      </parameters>
-    </callback>
-    <enumeration name="IteratorItem"
-                 doc="The result of a #GstIteratorItemFunction."
-                 c:type="GstIteratorItem">
-      <member name="skip" value="0" c:identifier="GST_ITERATOR_ITEM_SKIP"/>
-      <member name="pass" value="1" c:identifier="GST_ITERATOR_ITEM_PASS"/>
-      <member name="end" value="2" c:identifier="GST_ITERATOR_ITEM_END"/>
-    </enumeration>
-    <callback name="IteratorItemFunction"
-              c:type="GstIteratorItemFunction"
-              doc="The function that will be called after the next item of the iterator
-has been retrieved. This function will typically increase the refcount
-of the item or make a copy.
-Implementors of a #GstIterator should implement this
-function and pass it to the constructor of the custom iterator.
-The function will be called with the iterator lock held.">
-      <return-value transfer-ownership="full">
-        <type name="IteratorItem" c:type="GstIteratorItem"/>
-      </return-value>
-      <parameters>
-        <parameter name="it" transfer-ownership="none">
-          <type name="Iterator" c:type="GstIterator*"/>
-        </parameter>
-        <parameter name="item" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
-        </parameter>
-      </parameters>
-    </callback>
-    <callback name="IteratorNextFunction"
-              c:type="GstIteratorNextFunction"
-              doc="The function that will be called when the next element of the iterator
-should be retrieved.
-Implementors of a #GstIterator should implement this
-function and pass it to the constructor of the custom iterator.
-The function will be called with the iterator lock held.">
-      <return-value transfer-ownership="full">
-        <type name="IteratorResult" c:type="GstIteratorResult"/>
-      </return-value>
-      <parameters>
-        <parameter name="it" transfer-ownership="none">
-          <type name="Iterator" c:type="GstIterator*"/>
-        </parameter>
-        <parameter name="result" transfer-ownership="none">
-          <type name="any" c:type="gpointer*"/>
-        </parameter>
-      </parameters>
-    </callback>
-    <enumeration name="IteratorResult"
-                 doc="The result of gst_iterator_next()."
-                 c:type="GstIteratorResult">
-      <member name="done" value="0" c:identifier="GST_ITERATOR_DONE"/>
-      <member name="ok" value="1" c:identifier="GST_ITERATOR_OK"/>
-      <member name="resync" value="2" c:identifier="GST_ITERATOR_RESYNC"/>
-      <member name="error" value="3" c:identifier="GST_ITERATOR_ERROR"/>
-    </enumeration>
-    <callback name="IteratorResyncFunction"
-              c:type="GstIteratorResyncFunction"
-              doc="This function will be called whenever a concurrent update happened
-to the iterated datastructure. The implementor of the iterator should
-restart the iterator from the beginning and clean up any state it might
-have.
-Implementors of a #GstIterator should implement this
-function and pass it to the constructor of the custom iterator.
-The function will be called with the iterator lock held.">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="it" transfer-ownership="none">
-          <type name="Iterator" c:type="GstIterator*"/>
-        </parameter>
-      </parameters>
-    </callback>
-    <constant name="LICENSE_UNKNOWN" value="unknown">
-      <type name="utf8"/>
-    </constant>
-    <enumeration name="LibraryError"
-                 doc="category.  Make sure you add a custom message to the error call.
-deciding where to go while developing code.
-Library errors are for errors from the library being used by elements
-(initializing, finalizing, settings, ...)"
-                 c:type="GstLibraryError"
-                 glib:error-quark="gst_library_error_quark">
-      <member name="failed" value="1" c:identifier="GST_LIBRARY_ERROR_FAILED"/>
-      <member name="too_lazy"
-              value="2"
-              c:identifier="GST_LIBRARY_ERROR_TOO_LAZY"/>
-      <member name="init" value="3" c:identifier="GST_LIBRARY_ERROR_INIT"/>
-      <member name="shutdown"
-              value="4"
-              c:identifier="GST_LIBRARY_ERROR_SHUTDOWN"/>
-      <member name="settings"
-              value="5"
-              c:identifier="GST_LIBRARY_ERROR_SETTINGS"/>
-      <member name="encode" value="6" c:identifier="GST_LIBRARY_ERROR_ENCODE"/>
-      <member name="num_errors"
-              value="7"
-              c:identifier="GST_LIBRARY_ERROR_NUM_ERRORS"/>
-    </enumeration>
-    <callback name="LogFunction"
-              c:type="GstLogFunction"
-              doc="Function prototype for a logging function that can be registered with
-gst_debug_add_log_function().
-Use G_GNUC_NO_INSTRUMENT on that function.">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="category" transfer-ownership="none">
-          <type name="DebugCategory" c:type="GstDebugCategory*"/>
-        </parameter>
-        <parameter name="level" transfer-ownership="none">
-          <type name="DebugLevel" c:type="GstDebugLevel"/>
-        </parameter>
-        <parameter name="file" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-        <parameter name="function" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-        <parameter name="line" transfer-ownership="none">
-          <type name="int" c:type="gint"/>
-        </parameter>
-        <parameter name="object" transfer-ownership="none">
-          <type name="GObject.Object" c:type="GObject*"/>
-        </parameter>
-        <parameter name="message" transfer-ownership="none">
-          <type name="DebugMessage" c:type="GstDebugMessage*"/>
-        </parameter>
-        <parameter name="data" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
-        </parameter>
-      </parameters>
-    </callback>
-    <constant name="MESSAGE_TRACE_NAME" value="GstMessage">
-      <type name="utf8"/>
-    </constant>
-    <constant name="MSECOND" value="0">
-      <type name="int"/>
-    </constant>
-    <constant name="M_PI" value="3.14159265359">
-      <type name="double"/>
-    </constant>
-    <record name="Message" c:type="GstMessage" doc="A #GstMessage.">
-      <field name="mini_object" writable="1">
-        <type name="MiniObject" c:type="GstMiniObject"/>
-      </field>
-      <field name="lock" writable="1">
-        <type name="GLib.Mutex" c:type="GMutex*"/>
-      </field>
-      <field name="cond" writable="1">
-        <type name="GLib.Cond" c:type="GCond*"/>
-      </field>
-      <field name="type" writable="1">
-        <type name="MessageType" c:type="GstMessageType"/>
-      </field>
-      <field name="timestamp" writable="1">
-        <type name="uint64" c:type="guint64"/>
-      </field>
-      <field name="src" writable="1">
-        <type name="Object" c:type="GstObject*"/>
-      </field>
-      <field name="structure" writable="1">
-        <type name="Structure" c:type="GstStructure*"/>
-      </field>
-      <union name="abidata" c:type="abidata">
-        <record name="ABI" c:type="ABI">
-          <field name="seqnum" writable="1">
-            <type name="uint32" c:type="guint32"/>
-          </field>
-        </record>
-        <field name="_gst_reserved" writable="1">
-          <array zero-terminated="0" c:type="gpointer" fixed-size="4">
-            <type name="any"/>
-          </array>
-        </field>
-      </union>
-      <constructor name="new_eos"
-                   c:identifier="gst_message_new_eos"
-                   doc="Create a new eos message. This message is generated and posted in
-the sink elements of a GstBin. The bin will only forward the EOS
-message to the application if all sinks have posted an EOS message.
-MT safe.">
-        <return-value transfer-ownership="full">
-          <type name="Message" c:type="GstMessage*"/>
-        </return-value>
-        <parameters>
-          <parameter name="src" transfer-ownership="none">
-            <type name="Object" c:type="GstObject*"/>
-          </parameter>
-        </parameters>
-      </constructor>
-      <constructor name="new_error"
-                   c:identifier="gst_message_new_error"
-                   doc="Create a new error message. The message will copy @error and
-occured. The pipeline will probably (partially) stop. The application
-receiving this message should stop the pipeline.
-MT safe.">
-        <return-value transfer-ownership="full">
-          <type name="Message" c:type="GstMessage*"/>
-        </return-value>
-        <parameters>
-          <parameter name="src" transfer-ownership="none">
-            <type name="Object" c:type="GstObject*"/>
-          </parameter>
-          <parameter name="error" transfer-ownership="none">
-            <type name="GLib.Error" c:type="GError*"/>
-          </parameter>
-          <parameter name="debug" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </constructor>
-      <constructor name="new_warning"
-                   c:identifier="gst_message_new_warning"
-                   doc="Create a new warning message. The message will make copies of @error and
-MT safe.">
-        <return-value transfer-ownership="full">
-          <type name="Message" c:type="GstMessage*"/>
-        </return-value>
-        <parameters>
-          <parameter name="src" transfer-ownership="none">
-            <type name="Object" c:type="GstObject*"/>
-          </parameter>
-          <parameter name="error" transfer-ownership="none">
-            <type name="GLib.Error" c:type="GError*"/>
-          </parameter>
-          <parameter name="debug" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </constructor>
-      <constructor name="new_info"
-                   c:identifier="gst_message_new_info"
-                   doc="Create a new info message. The message will make copies of @error and
-MT safe."
-                   version="0.10.12">
-        <return-value transfer-ownership="full">
-          <type name="Message" c:type="GstMessage*"/>
-        </return-value>
-        <parameters>
-          <parameter name="src" transfer-ownership="none">
-            <type name="Object" c:type="GstObject*"/>
-          </parameter>
-          <parameter name="error" transfer-ownership="none">
-            <type name="GLib.Error" c:type="GError*"/>
-          </parameter>
-          <parameter name="debug" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </constructor>
-      <constructor name="new_tag"
-                   c:identifier="gst_message_new_tag"
-                   doc="Create a new tag message. The message will take ownership of the tag list.
-The message is posted by elements that discovered a new taglist.
-MT safe.">
-        <return-value transfer-ownership="full">
-          <type name="Message" c:type="GstMessage*"/>
-        </return-value>
-        <parameters>
-          <parameter name="src" transfer-ownership="none">
-            <type name="Object" c:type="GstObject*"/>
-          </parameter>
-          <parameter name="tag_list" transfer-ownership="none">
-            <type name="TagList" c:type="GstTagList*"/>
-          </parameter>
-        </parameters>
-      </constructor>
-      <constructor name="new_tag_full"
-                   c:identifier="gst_message_new_tag_full"
-                   doc="Create a new tag message. The message will take ownership of the tag list.
-The message is posted by elements that discovered a new taglist.
-MT safe."
-                   version="0.10.24">
-        <return-value transfer-ownership="full">
-          <type name="Message" c:type="GstMessage*"/>
-        </return-value>
-        <parameters>
-          <parameter name="src" transfer-ownership="none">
-            <type name="Object" c:type="GstObject*"/>
-          </parameter>
-          <parameter name="pad" transfer-ownership="none">
-            <type name="Pad" c:type="GstPad*"/>
-          </parameter>
-          <parameter name="tag_list" transfer-ownership="none">
-            <type name="TagList" c:type="GstTagList*"/>
-          </parameter>
-        </parameters>
-      </constructor>
-      <constructor name="new_buffering"
-                   c:identifier="gst_message_new_buffering"
-                   doc="Create a new buffering message. This message can be posted by an element that
-needs to buffer data before it can continue processing. @percent should be a
-value between 0 and 100. A value of 100 means that the buffering completed.
-When @percent is &lt; 100 the application should PAUSE a PLAYING pipeline. When
-The application must be prepared to receive BUFFERING messages in the
-PREROLLING state and may only set the pipeline to PLAYING after receiving a
-message with @percent set to 100, which can happen after the pipeline
-completed prerolling.
-MT safe."
-                   version="0.10.11">
-        <return-value transfer-ownership="full">
-          <type name="Message" c:type="GstMessage*"/>
-        </return-value>
-        <parameters>
-          <parameter name="src" transfer-ownership="none">
-            <type name="Object" c:type="GstObject*"/>
-          </parameter>
-          <parameter name="percent" transfer-ownership="none">
-            <type name="int" c:type="gint"/>
-          </parameter>
-        </parameters>
-      </constructor>
-      <constructor name="new_state_changed"
-                   c:identifier="gst_message_new_state_changed"
-                   doc="Create a state change message. This message is posted whenever an element
-changed its state.
-MT safe.">
-        <return-value transfer-ownership="full">
-          <type name="Message" c:type="GstMessage*"/>
-        </return-value>
-        <parameters>
-          <parameter name="src" transfer-ownership="none">
-            <type name="Object" c:type="GstObject*"/>
-          </parameter>
-          <parameter name="oldstate" transfer-ownership="none">
-            <type name="State" c:type="GstState"/>
-          </parameter>
-          <parameter name="newstate" transfer-ownership="none" doc="state">
-            <type name="State" c:type="GstState"/>
-          </parameter>
-          <parameter name="pending" transfer-ownership="none" doc="state">
-            <type name="State" c:type="GstState"/>
-          </parameter>
-        </parameters>
-      </constructor>
-      <constructor name="new_state_dirty"
-                   c:identifier="gst_message_new_state_dirty"
-                   doc="Create a state dirty message. This message is posted whenever an element
-changed its state asynchronously and is used internally to update the
-states of container objects.
-MT safe.">
-        <return-value transfer-ownership="full">
-          <type name="Message" c:type="GstMessage*"/>
-        </return-value>
-        <parameters>
-          <parameter name="src" transfer-ownership="none">
-            <type name="Object" c:type="GstObject*"/>
-          </parameter>
-        </parameters>
-      </constructor>
-      <constructor name="new_step_done"
-                   c:identifier="gst_message_new_step_done"
-                   doc="This message is posted by elements when they complete a part, when @intermediate set
-to TRUE, or a complete step operation.
-MT safe."
-                   version="0.10.24">
-        <return-value transfer-ownership="full">
-          <type name="Message" c:type="GstMessage*"/>
-        </return-value>
-        <parameters>
-          <parameter name="src" transfer-ownership="none">
-            <type name="Object" c:type="GstObject*"/>
-          </parameter>
-          <parameter name="format" transfer-ownership="none">
-            <type name="Format" c:type="GstFormat"/>
-          </parameter>
-          <parameter name="amount" transfer-ownership="none">
-            <type name="uint64" c:type="guint64"/>
-          </parameter>
-          <parameter name="rate" transfer-ownership="none">
-            <type name="double" c:type="gdouble"/>
-          </parameter>
-          <parameter name="flush" transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </parameter>
-          <parameter name="intermediate" transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </parameter>
-          <parameter name="duration" transfer-ownership="none">
-            <type name="uint64" c:type="guint64"/>
-          </parameter>
-          <parameter name="eos" transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </parameter>
-        </parameters>
-      </constructor>
-      <constructor name="new_clock_provide"
-                   c:identifier="gst_message_new_clock_provide"
-                   doc="Create a clock provide message. This message is posted whenever an
-element is ready to provide a clock or lost its ability to provide
-a clock (maybe because it paused or became EOS).
-This message is mainly used internally to manage the clock
-selection.
-MT safe.">
-        <return-value transfer-ownership="full">
-          <type name="Message" c:type="GstMessage*"/>
-        </return-value>
-        <parameters>
-          <parameter name="src" transfer-ownership="none">
-            <type name="Object" c:type="GstObject*"/>
-          </parameter>
-          <parameter name="clock" transfer-ownership="none">
-            <type name="Clock" c:type="GstClock*"/>
-          </parameter>
-          <parameter name="ready" transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </parameter>
-        </parameters>
-      </constructor>
-      <constructor name="new_clock_lost"
-                   c:identifier="gst_message_new_clock_lost"
-                   doc="Create a clock lost message. This message is posted whenever the
-clock is not valid anymore.
-If this message is posted by the pipeline, the pipeline will
-select a new clock again when it goes to PLAYING. It might therefore
-be needed to set the pipeline to PAUSED and PLAYING again.
-MT safe.">
-        <return-value transfer-ownership="full">
-          <type name="Message" c:type="GstMessage*"/>
-        </return-value>
-        <parameters>
-          <parameter name="src" transfer-ownership="none">
-            <type name="Object" c:type="GstObject*"/>
-          </parameter>
-          <parameter name="clock" transfer-ownership="none">
-            <type name="Clock" c:type="GstClock*"/>
-          </parameter>
-        </parameters>
-      </constructor>
-      <constructor name="new_new_clock"
-                   c:identifier="gst_message_new_new_clock"
-                   doc="Create a new clock message. This message is posted whenever the
-pipeline selectes a new clock for the pipeline.
-MT safe.">
-        <return-value transfer-ownership="full">
-          <type name="Message" c:type="GstMessage*"/>
-        </return-value>
-        <parameters>
-          <parameter name="src" transfer-ownership="none">
-            <type name="Object" c:type="GstObject*"/>
-          </parameter>
-          <parameter name="clock" transfer-ownership="none">
-            <type name="Clock" c:type="GstClock*"/>
-          </parameter>
-        </parameters>
-      </constructor>
-      <constructor name="new_application"
-                   c:identifier="gst_message_new_application"
-                   doc="the structure.
-Create a new application-typed message. GStreamer will never create these
-messages; they are a gift from us to you. Enjoy.
-MT safe.">
-        <return-value transfer-ownership="full">
-          <type name="Message" c:type="GstMessage*"/>
-        </return-value>
-        <parameters>
-          <parameter name="src" transfer-ownership="none">
-            <type name="Object" c:type="GstObject*"/>
-          </parameter>
-          <parameter name="structure" transfer-ownership="none">
-            <type name="Structure" c:type="GstStructure*"/>
-          </parameter>
-        </parameters>
-      </constructor>
-      <constructor name="new_element"
-                   c:identifier="gst_message_new_element"
-                   doc="the structure.
-Create a new element-specific message. This is meant as a generic way of
-allowing one-way communication from an element to an application, for example
-&quot;the firewire cable was unplugged&quot;. The format of the message should be
-documented in the element&apos;s documentation. The structure field can be NULL.
-MT safe.">
-        <return-value transfer-ownership="full">
-          <type name="Message" c:type="GstMessage*"/>
-        </return-value>
-        <parameters>
-          <parameter name="src" transfer-ownership="none">
-            <type name="Object" c:type="GstObject*"/>
-          </parameter>
-          <parameter name="structure" transfer-ownership="none">
-            <type name="Structure" c:type="GstStructure*"/>
-          </parameter>
-        </parameters>
-      </constructor>
-      <constructor name="new_segment_start"
-                   c:identifier="gst_message_new_segment_start"
-                   doc="Create a new segment message. This message is posted by elements that
-start playback of a segment as a result of a segment seek. This message
-is not received by the application but is used for maintenance reasons in
-container elements.
-MT safe.">
-        <return-value transfer-ownership="full">
-          <type name="Message" c:type="GstMessage*"/>
-        </return-value>
-        <parameters>
-          <parameter name="src" transfer-ownership="none">
-            <type name="Object" c:type="GstObject*"/>
-          </parameter>
-          <parameter name="format" transfer-ownership="none">
-            <type name="Format" c:type="GstFormat"/>
-          </parameter>
-          <parameter name="position" transfer-ownership="none">
-            <type name="int64" c:type="gint64"/>
-          </parameter>
-        </parameters>
-      </constructor>
-      <constructor name="new_segment_done"
-                   c:identifier="gst_message_new_segment_done"
-                   doc="Create a new segment done message. This message is posted by elements that
-finish playback of a segment as a result of a segment seek. This message
-is received by the application after all elements that posted a segment_start
-have posted the segment_done.
-MT safe.">
-        <return-value transfer-ownership="full">
-          <type name="Message" c:type="GstMessage*"/>
-        </return-value>
-        <parameters>
-          <parameter name="src" transfer-ownership="none">
-            <type name="Object" c:type="GstObject*"/>
-          </parameter>
-          <parameter name="format" transfer-ownership="none">
-            <type name="Format" c:type="GstFormat"/>
-          </parameter>
-          <parameter name="position" transfer-ownership="none">
-            <type name="int64" c:type="gint64"/>
-          </parameter>
-        </parameters>
-      </constructor>
-      <constructor name="new_duration"
-                   c:identifier="gst_message_new_duration"
-                   doc="Create a new duration message. This message is posted by elements that
-know the duration of a stream in a specific format. This message
-is received by bins and is used to calculate the total duration of a
-pipeline. Elements may post a duration message with a duration of
-GST_CLOCK_TIME_NONE to indicate that the duration has changed and the
-cached duration should be discarded. The new duration can then be
-retrieved via a query.
-MT safe.">
-        <return-value transfer-ownership="full">
-          <type name="Message" c:type="GstMessage*"/>
-        </return-value>
-        <parameters>
-          <parameter name="src" transfer-ownership="none">
-            <type name="Object" c:type="GstObject*"/>
-          </parameter>
-          <parameter name="format" transfer-ownership="none">
-            <type name="Format" c:type="GstFormat"/>
-          </parameter>
-          <parameter name="duration" transfer-ownership="none">
-            <type name="int64" c:type="gint64"/>
-          </parameter>
-        </parameters>
-      </constructor>
-      <constructor name="new_latency"
-                   c:identifier="gst_message_new_latency"
-                   doc="This message can be posted by elements when their latency requirements have
-changed.
-MT safe."
-                   version="0.10.12">
-        <return-value transfer-ownership="full">
-          <type name="Message" c:type="GstMessage*"/>
-        </return-value>
-        <parameters>
-          <parameter name="src" transfer-ownership="none">
-            <type name="Object" c:type="GstObject*"/>
-          </parameter>
-        </parameters>
-      </constructor>
-      <constructor name="new_async_start"
-                   c:identifier="gst_message_new_async_start"
-                   doc="This message is posted by elements when they start an ASYNC state change.
-PLAYING.
-MT safe."
-                   version="0.10.13">
-        <return-value transfer-ownership="full">
-          <type name="Message" c:type="GstMessage*"/>
-        </return-value>
-        <parameters>
-          <parameter name="src" transfer-ownership="none">
-            <type name="Object" c:type="GstObject*"/>
-          </parameter>
-          <parameter name="new_base_time" transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </parameter>
-        </parameters>
-      </constructor>
-      <constructor name="new_async_done"
-                   c:identifier="gst_message_new_async_done"
-                   doc="The message is posted when elements completed an ASYNC state change.
-MT safe."
-                   version="0.10.13">
-        <return-value transfer-ownership="full">
-          <type name="Message" c:type="GstMessage*"/>
-        </return-value>
-        <parameters>
-          <parameter name="src" transfer-ownership="none">
-            <type name="Object" c:type="GstObject*"/>
-          </parameter>
-        </parameters>
-      </constructor>
-      <constructor name="new_structure_change"
-                   c:identifier="gst_message_new_structure_change"
-                   doc="Create a new structure change message. This message is posted when the
-structure of a pipeline is in the process of being changed, for example
-when pads are linked or unlinked.
-MT safe."
-                   version="0.10.22.">
-        <return-value transfer-ownership="full">
-          <type name="Message" c:type="GstMessage*"/>
-        </return-value>
-        <parameters>
-          <parameter name="src" transfer-ownership="none">
-            <type name="Object" c:type="GstObject*"/>
-          </parameter>
-          <parameter name="type" transfer-ownership="none">
-            <type name="StructureChangeType" c:type="GstStructureChangeType"/>
-          </parameter>
-          <parameter name="owner" transfer-ownership="none">
-            <type name="Element" c:type="GstElement*"/>
-          </parameter>
-          <parameter name="busy" transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </parameter>
-        </parameters>
-      </constructor>
-      <constructor name="new_stream_status"
-                   c:identifier="gst_message_new_stream_status"
-                   doc="Create a new stream status message. This message is posted when a streaming
-thread is created/destroyed or when the state changed.
-MT safe."
-                   version="0.10.24.">
-        <return-value transfer-ownership="full">
-          <type name="Message" c:type="GstMessage*"/>
-        </return-value>
-        <parameters>
-          <parameter name="src" transfer-ownership="none">
-            <type name="Object" c:type="GstObject*"/>
-          </parameter>
-          <parameter name="type" transfer-ownership="none">
-            <type name="StreamStatusType" c:type="GstStreamStatusType"/>
-          </parameter>
-          <parameter name="owner" transfer-ownership="none">
-            <type name="Element" c:type="GstElement*"/>
-          </parameter>
-        </parameters>
-      </constructor>
-      <constructor name="new_request_state"
-                   c:identifier="gst_message_new_request_state"
-                   doc="This message can be posted by elements when they want to have their state
-changed. A typical use case would be an audio server that wants to pause the
-pipeline because a higher priority stream is being played.
-MT safe."
-                   version="0.10.23">
-        <return-value transfer-ownership="full">
-          <type name="Message" c:type="GstMessage*"/>
-        </return-value>
-        <parameters>
-          <parameter name="src" transfer-ownership="none">
-            <type name="Object" c:type="GstObject*"/>
-          </parameter>
-          <parameter name="state" transfer-ownership="none">
-            <type name="State" c:type="GstState"/>
-          </parameter>
-        </parameters>
-      </constructor>
-      <constructor name="new_step_start"
-                   c:identifier="gst_message_new_step_start"
-                   doc="This message is posted by elements when they accept or activate a new step
-event for @amount in @format.
-queued it for execution in the streaming threads.
-is now ready to start executing the step in the streaming thread. After this
-message is emited, the application can queue a new step operation in the
-element.
-MT safe."
-                   version="0.10.24">
-        <return-value transfer-ownership="full">
-          <type name="Message" c:type="GstMessage*"/>
-        </return-value>
-        <parameters>
-          <parameter name="src" transfer-ownership="none">
-            <type name="Object" c:type="GstObject*"/>
-          </parameter>
-          <parameter name="active" transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </parameter>
-          <parameter name="format" transfer-ownership="none">
-            <type name="Format" c:type="GstFormat"/>
-          </parameter>
-          <parameter name="amount" transfer-ownership="none">
-            <type name="uint64" c:type="guint64"/>
-          </parameter>
-          <parameter name="rate" transfer-ownership="none">
-            <type name="double" c:type="gdouble"/>
-          </parameter>
-          <parameter name="flush" transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </parameter>
-          <parameter name="intermediate" transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </parameter>
-        </parameters>
-      </constructor>
-      <constructor name="new_qos"
-                   c:identifier="gst_message_new_qos"
-                   doc="A QOS message is posted on the bus whenever an element decides to drop a
-buffer because of QoS reasons or whenever it changes its processing strategy
-because of QoS reasons (quality adjustments such as processing at lower
-accuracy).
-This message can be posted by an element that performs synchronisation against the
-clock (live) or it could be dropped by an element that performs QoS because of QOS
-events received from a downstream element (!live).
-respective running-time, stream-time, timestamp and duration of the (dropped)
-buffer that generated the QoS event. Values can be left to
-GST_CLOCK_TIME_NONE when unknown.
-MT safe."
-                   version="0.10.29">
-        <return-value transfer-ownership="full">
-          <type name="Message" c:type="GstMessage*"/>
-        </return-value>
-        <parameters>
-          <parameter name="src" transfer-ownership="none">
-            <type name="Object" c:type="GstObject*"/>
-          </parameter>
-          <parameter name="live" transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </parameter>
-          <parameter name="running_time" transfer-ownership="none">
-            <type name="uint64" c:type="guint64"/>
-          </parameter>
-          <parameter name="stream_time" transfer-ownership="none">
-            <type name="uint64" c:type="guint64"/>
-          </parameter>
-          <parameter name="timestamp" transfer-ownership="none">
-            <type name="uint64" c:type="guint64"/>
-          </parameter>
-          <parameter name="duration" transfer-ownership="none">
-            <type name="uint64" c:type="guint64"/>
-          </parameter>
-        </parameters>
-      </constructor>
-      <constructor name="new_custom"
-                   c:identifier="gst_message_new_custom"
-                   doc="the structure.
-Create a new custom-typed message. This can be used for anything not
-handled by other message-specific functions to pass a message to the
-app. The structure field can be NULL.
-MT safe.">
-        <return-value transfer-ownership="full">
-          <type name="Message" c:type="GstMessage*"/>
-        </return-value>
-        <parameters>
-          <parameter name="type" transfer-ownership="none">
-            <type name="MessageType" c:type="GstMessageType"/>
-          </parameter>
-          <parameter name="src" transfer-ownership="none">
-            <type name="Object" c:type="GstObject*"/>
-          </parameter>
-          <parameter name="structure" transfer-ownership="none">
-            <type name="Structure" c:type="GstStructure*"/>
-          </parameter>
-        </parameters>
-      </constructor>
-      <method name="get_seqnum"
-              c:identifier="gst_message_get_seqnum"
-              doc="Retrieve the sequence number of a message.
-Messages have ever-incrementing sequence numbers, which may also be set
-explicitly via gst_message_set_seqnum(). Sequence numbers are typically used
-to indicate that a message corresponds to some other set of messages or
-events, for example a SEGMENT_DONE message corresponding to a SEEK event. It
-is considered good practice to make this correspondence when possible, though
-it is not required.
-Note that events and messages share the same sequence number incrementor;
-two events or messages will never not have the same sequence number unless
-that correspondence was made explicitly.
-MT safe."
-              version="0.10.22">
-        <return-value transfer-ownership="none">
-          <type name="uint32" c:type="guint32"/>
-        </return-value>
-      </method>
-      <method name="set_seqnum"
-              c:identifier="gst_message_set_seqnum"
-              doc="Set the sequence number of a message.
-This function might be called by the creator of a message to indicate that
-the message relates to other messages or events. See gst_message_get_seqnum()
-for more information.
-MT safe."
-              version="0.10.22">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="seqnum" transfer-ownership="none">
-            <type name="uint32" c:type="guint32"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="parse_error"
-              c:identifier="gst_message_parse_error"
-              doc="Extracts the GError and debug string from the GstMessage. The values returned
-in the output arguments are copies; the caller must free them when done.
-Typical usage of this function might be:
-|[
-...
-switch (GST_MESSAGE_TYPE (msg)) {
-GError *err = NULL;
-gchar *dbg_info = NULL;
-gst_message_parse_error (msg, &amp;amp;err, &amp;amp;dbg_info);
-GST_OBJECT_NAME (msg-&gt;src), err-&gt;message);
-g_error_free (err);
-g_free (dbg_info);
-break;
-}
-...
-}
-...
-]|
-MT safe.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="gerror" transfer-ownership="none">
-            <type name="GLib.Error" c:type="GError**"/>
-          </parameter>
-          <parameter name="debug" transfer-ownership="none">
-            <array c:type="gchar**">
-              <type name="utf8"/>
-            </array>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="parse_warning"
-              c:identifier="gst_message_parse_warning"
-              doc="Extracts the GError and debug string from the GstMessage. The values returned
-in the output arguments are copies; the caller must free them when done.
-MT safe.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="gerror" transfer-ownership="none">
-            <type name="GLib.Error" c:type="GError**"/>
-          </parameter>
-          <parameter name="debug" transfer-ownership="none">
-            <array c:type="gchar**">
-              <type name="utf8"/>
-            </array>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="parse_info"
-              c:identifier="gst_message_parse_info"
-              doc="Extracts the GError and debug string from the GstMessage. The values returned
-in the output arguments are copies; the caller must free them when done.
-MT safe."
-              version="0.10.12">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="gerror" transfer-ownership="none">
-            <type name="GLib.Error" c:type="GError**"/>
-          </parameter>
-          <parameter name="debug" transfer-ownership="none">
-            <array c:type="gchar**">
-              <type name="utf8"/>
-            </array>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="parse_tag"
-              c:identifier="gst_message_parse_tag"
-              doc="Extracts the tag list from the GstMessage. The tag list returned in the
-output argument is a copy; the caller must free it when done.
-Typical usage of this function might be:
-|[
-...
-switch (GST_MESSAGE_TYPE (msg)) {
-GstTagList *tags = NULL;
-gst_message_parse_tag (msg, &amp;amp;tags);
-g_print (&quot;Got tags from element %s\n&quot;, GST_OBJECT_NAME (msg-&gt;src));
-handle_tags (tags);
-gst_tag_list_free (tags);
-break;
-}
-...
-}
-...
-]|
-MT safe.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="tag_list" transfer-ownership="none">
-            <type name="TagList" c:type="GstTagList**"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="parse_tag_full"
-              c:identifier="gst_message_parse_tag_full"
-              doc="Extracts the tag list from the GstMessage. The tag list returned in the
-output argument is a copy; the caller must free it when done.
-MT safe."
-              version="0.10.24">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="pad" transfer-ownership="none">
-            <type name="Pad" c:type="GstPad**"/>
-          </parameter>
-          <parameter name="tag_list" transfer-ownership="none">
-            <type name="TagList" c:type="GstTagList**"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="parse_buffering"
-              c:identifier="gst_message_parse_buffering"
-              doc="Extracts the buffering percent from the GstMessage. see also
-gst_message_new_buffering().
-MT safe."
-              version="0.10.11">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="percent" direction="out" transfer-ownership="full">
-            <type name="int" c:type="gint*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_buffering_stats"
-              c:identifier="gst_message_set_buffering_stats"
-              doc="Configures the buffering stats values in @message."
-              version="0.10.20">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="mode" transfer-ownership="none">
-            <type name="BufferingMode" c:type="GstBufferingMode"/>
-          </parameter>
-          <parameter name="avg_in" transfer-ownership="none">
-            <type name="int" c:type="gint"/>
-          </parameter>
-          <parameter name="avg_out" transfer-ownership="none">
-            <type name="int" c:type="gint"/>
-          </parameter>
-          <parameter name="buffering_left" transfer-ownership="none">
-            <type name="int64" c:type="gint64"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="parse_buffering_stats"
-              c:identifier="gst_message_parse_buffering_stats"
-              doc="Extracts the buffering stats values from @message."
-              version="0.10.20">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="mode" transfer-ownership="none">
-            <type name="BufferingMode" c:type="GstBufferingMode*"/>
-          </parameter>
-          <parameter name="avg_in" direction="out" transfer-ownership="full">
-            <type name="int" c:type="gint*"/>
-          </parameter>
-          <parameter name="avg_out" direction="out" transfer-ownership="full">
-            <type name="int" c:type="gint*"/>
-          </parameter>
-          <parameter name="buffering_left"
-                     direction="out"
-                     transfer-ownership="full">
-            <type name="int64" c:type="gint64*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="parse_state_changed"
-              c:identifier="gst_message_parse_state_changed"
-              doc="Extracts the old and new states from the GstMessage.
-Typical usage of this function might be:
-|[
-...
-switch (GST_MESSAGE_TYPE (msg)) {
-GstState old_state, new_state;
-gst_message_parse_state_changed (msg, &amp;amp;old_state, &amp;amp;new_state, NULL);
-g_print (&quot;Element %s changed state from %s to %s.\n&quot;,
-GST_OBJECT_NAME (msg-&gt;src),
-gst_element_state_get_name (old_state),
-gst_element_state_get_name (new_state));
-break;
-}
-...
-}
-...
-]|
-MT safe.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="oldstate" transfer-ownership="none">
-            <type name="State" c:type="GstState*"/>
-          </parameter>
-          <parameter name="newstate"
-                     transfer-ownership="none"
-                     doc="state, or NULL">
-            <type name="State" c:type="GstState*"/>
-          </parameter>
-          <parameter name="pending"
-                     transfer-ownership="none"
-                     doc="state, or NULL">
-            <type name="State" c:type="GstState*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="parse_step_done"
-              c:identifier="gst_message_parse_step_done"
-              doc="Extract the values the step_done message.
-MT safe."
-              version="0.10.24">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="format" transfer-ownership="none">
-            <type name="Format" c:type="GstFormat*"/>
-          </parameter>
-          <parameter name="amount" direction="out" transfer-ownership="full">
-            <type name="uint64" c:type="guint64*"/>
-          </parameter>
-          <parameter name="rate" direction="out" transfer-ownership="full">
-            <type name="double" c:type="gdouble*"/>
-          </parameter>
-          <parameter name="flush" direction="out" transfer-ownership="full">
-            <type name="boolean" c:type="gboolean*"/>
-          </parameter>
-          <parameter name="intermediate"
-                     direction="out"
-                     transfer-ownership="full">
-            <type name="boolean" c:type="gboolean*"/>
-          </parameter>
-          <parameter name="duration" direction="out" transfer-ownership="full">
-            <type name="uint64" c:type="guint64*"/>
-          </parameter>
-          <parameter name="eos" direction="out" transfer-ownership="full">
-            <type name="boolean" c:type="gboolean*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="parse_clock_provide"
-              c:identifier="gst_message_parse_clock_provide"
-              doc="Extracts the clock and ready flag from the GstMessage.
-The clock object returned remains valid until the message is freed.
-MT safe.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="clock" transfer-ownership="none">
-            <type name="Clock" c:type="GstClock**"/>
-          </parameter>
-          <parameter name="ready" direction="out" transfer-ownership="full">
-            <type name="boolean" c:type="gboolean*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="parse_clock_lost"
-              c:identifier="gst_message_parse_clock_lost"
-              doc="Extracts the lost clock from the GstMessage.
-The clock object returned remains valid until the message is freed.
-MT safe.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="clock" transfer-ownership="none">
-            <type name="Clock" c:type="GstClock**"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="parse_new_clock"
-              c:identifier="gst_message_parse_new_clock"
-              doc="Extracts the new clock from the GstMessage.
-The clock object returned remains valid until the message is freed.
-MT safe.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="clock" transfer-ownership="none">
-            <type name="Clock" c:type="GstClock**"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="parse_segment_start"
-              c:identifier="gst_message_parse_segment_start"
-              doc="Extracts the position and format from the segment start message.
-MT safe.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="format" transfer-ownership="none">
-            <type name="Format" c:type="GstFormat*"/>
-          </parameter>
-          <parameter name="position" direction="out" transfer-ownership="full">
-            <type name="int64" c:type="gint64*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="parse_segment_done"
-              c:identifier="gst_message_parse_segment_done"
-              doc="Extracts the position and format from the segment start message.
-MT safe.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="format" transfer-ownership="none">
-            <type name="Format" c:type="GstFormat*"/>
-          </parameter>
-          <parameter name="position" direction="out" transfer-ownership="full">
-            <type name="int64" c:type="gint64*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="parse_duration"
-              c:identifier="gst_message_parse_duration"
-              doc="Extracts the duration and format from the duration message. The duration
-might be GST_CLOCK_TIME_NONE, which indicates that the duration has
-changed. Applications should always use a query to retrieve the duration
-of a pipeline.
-MT safe.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="format" transfer-ownership="none">
-            <type name="Format" c:type="GstFormat*"/>
-          </parameter>
-          <parameter name="duration" direction="out" transfer-ownership="full">
-            <type name="int64" c:type="gint64*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="parse_async_start"
-              c:identifier="gst_message_parse_async_start"
-              doc="Extract the new_base_time from the async_start message.
-MT safe."
-              version="0.10.13">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="new_base_time"
-                     direction="out"
-                     transfer-ownership="full">
-            <type name="boolean" c:type="gboolean*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="parse_structure_change"
-              c:identifier="gst_message_parse_structure_change"
-              doc="completed
-Extracts the change type and completion status from the GstMessage.
-MT safe."
-              version="0.10.22">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="type" transfer-ownership="none">
-            <type name="StructureChangeType" c:type="GstStructureChangeType*"/>
-          </parameter>
-          <parameter name="owner" transfer-ownership="none">
-            <type name="Element" c:type="GstElement**"/>
-          </parameter>
-          <parameter name="busy" direction="out" transfer-ownership="full">
-            <type name="boolean" c:type="gboolean*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="parse_stream_status"
-              c:identifier="gst_message_parse_stream_status"
-              doc="Extracts the stream status type and owner the GstMessage. The returned
-owner remains valid for as long as the reference to @message is valid and
-should thus not be unreffed.
-MT safe."
-              version="0.10.24.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="type" transfer-ownership="none">
-            <type name="StreamStatusType" c:type="GstStreamStatusType*"/>
-          </parameter>
-          <parameter name="owner" transfer-ownership="none">
-            <type name="Element" c:type="GstElement**"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_stream_status_object"
-              c:identifier="gst_message_set_stream_status_object"
-              doc="Configures the object handling the streaming thread. This is usually a
-GstTask object but other objects might be added in the future."
-              version="0.10.24">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="object" transfer-ownership="none">
-            <type name="GObject.Value" c:type="GValue*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_stream_status_object"
-              c:identifier="gst_message_get_stream_status_object"
-              doc="Extracts the object managing the streaming thread from @message.
-This object is usually of type GstTask but other types can be added in the
-future. The object remains valid as long as @message is valid."
-              version="0.10.24">
-        <return-value transfer-ownership="none">
-          <type name="GObject.Value" c:type="GValue*"/>
-        </return-value>
-      </method>
-      <method name="parse_request_state"
-              c:identifier="gst_message_parse_request_state"
-              doc="Extract the requested state from the request_state message.
-MT safe."
-              version="0.10.23">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="state" transfer-ownership="none">
-            <type name="State" c:type="GstState*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="parse_step_start"
-              c:identifier="gst_message_parse_step_start"
-              doc="Extract the values from step_start message.
-MT safe."
-              version="0.10.24">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="active" direction="out" transfer-ownership="full">
-            <type name="boolean" c:type="gboolean*"/>
-          </parameter>
-          <parameter name="format" transfer-ownership="none">
-            <type name="Format" c:type="GstFormat*"/>
-          </parameter>
-          <parameter name="amount" direction="out" transfer-ownership="full">
-            <type name="uint64" c:type="guint64*"/>
-          </parameter>
-          <parameter name="rate" direction="out" transfer-ownership="full">
-            <type name="double" c:type="gdouble*"/>
-          </parameter>
-          <parameter name="flush" direction="out" transfer-ownership="full">
-            <type name="boolean" c:type="gboolean*"/>
-          </parameter>
-          <parameter name="intermediate"
-                     direction="out"
-                     transfer-ownership="full">
-            <type name="boolean" c:type="gboolean*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_qos_values"
-              c:identifier="gst_message_set_qos_values"
-              doc="to get optimal quality.
-quality level of the element. The default maximum quality is 1000000.
-Set the QoS values that have been calculated/analysed from the QoS data
-MT safe."
-              version="0.10.29">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="jitter" transfer-ownership="none">
-            <type name="int64" c:type="gint64"/>
-          </parameter>
-          <parameter name="proportion" transfer-ownership="none">
-            <type name="double" c:type="gdouble"/>
-          </parameter>
-          <parameter name="quality" transfer-ownership="none">
-            <type name="int" c:type="gint"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_qos_stats"
-              c:identifier="gst_message_set_qos_stats"
-              doc="filters will use GST_FORMAT_BUFFERS (frames). Audio sinks and audio filters
-will likely use GST_FORMAT_DEFAULT (samples).
-change to READY or a flushing operation.
-or a flushing operation.
-Set the QoS stats representing the history of the current continuous pipeline
-playback period.
-When @format is @GST_FORMAT_UNDEFINED both @dropped and @processed are
-invalid. Values of -1 for either @processed or @dropped mean unknown values.
-MT safe."
-              version="0.10.29">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="format" transfer-ownership="none">
-            <type name="Format" c:type="GstFormat"/>
-          </parameter>
-          <parameter name="processed" transfer-ownership="none">
-            <type name="uint64" c:type="guint64"/>
-          </parameter>
-          <parameter name="dropped" transfer-ownership="none">
-            <type name="uint64" c:type="guint64"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="parse_qos"
-              c:identifier="gst_message_parse_qos"
-              doc="Extract the timestamps and live status from the QoS message.
-The returned values give the running_time, stream_time, timestamp and
-duration of the dropped buffer. Values of GST_CLOCK_TIME_NONE mean unknown
-values.
-MT safe."
-              version="0.10.29">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="live" direction="out" transfer-ownership="full">
-            <type name="boolean" c:type="gboolean*"/>
-          </parameter>
-          <parameter name="running_time"
-                     direction="out"
-                     transfer-ownership="full">
-            <type name="uint64" c:type="guint64*"/>
-          </parameter>
-          <parameter name="stream_time"
-                     direction="out"
-                     transfer-ownership="full">
-            <type name="uint64" c:type="guint64*"/>
-          </parameter>
-          <parameter name="timestamp"
-                     direction="out"
-                     transfer-ownership="full">
-            <type name="uint64" c:type="guint64*"/>
-          </parameter>
-          <parameter name="duration" direction="out" transfer-ownership="full">
-            <type name="uint64" c:type="guint64*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="parse_qos_values"
-              c:identifier="gst_message_parse_qos_values"
-              doc="to get optimal quality.
-quality level of the element. The default maximum quality is 1000000.
-Extract the QoS values that have been calculated/analysed from the QoS data
-MT safe."
-              version="0.10.29">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="jitter" direction="out" transfer-ownership="full">
-            <type name="int64" c:type="gint64*"/>
-          </parameter>
-          <parameter name="proportion"
-                     direction="out"
-                     transfer-ownership="full">
-            <type name="double" c:type="gdouble*"/>
-          </parameter>
-          <parameter name="quality" direction="out" transfer-ownership="full">
-            <type name="int" c:type="gint*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="parse_qos_stats"
-              c:identifier="gst_message_parse_qos_stats"
-              doc="filters will use GST_FORMAT_BUFFERS (frames). Audio sinks and audio filters
-will likely use GST_FORMAT_DEFAULT (samples).
-change to READY or a flushing operation.
-or a flushing operation.
-Extract the QoS stats representing the history of the current continuous
-pipeline playback period.
-When @format is @GST_FORMAT_UNDEFINED both @dropped and @processed are
-invalid. Values of -1 for either @processed or @dropped mean unknown values.
-MT safe."
-              version="0.10.29">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="format" transfer-ownership="none">
-            <type name="Format" c:type="GstFormat*"/>
-          </parameter>
-          <parameter name="processed"
-                     direction="out"
-                     transfer-ownership="full">
-            <type name="uint64" c:type="guint64*"/>
-          </parameter>
-          <parameter name="dropped" direction="out" transfer-ownership="full">
-            <type name="uint64" c:type="guint64*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_structure"
-              c:identifier="gst_message_get_structure"
-              doc="Access the structure of the message.
-owned by the message, which means that you should not free it and
-that the pointer becomes invalid when you free the message.
-MT safe.">
-        <return-value transfer-ownership="none">
-          <type name="Structure" c:type="GstStructure*"/>
-        </return-value>
-      </method>
-    </record>
-    <record name="MessageClass" c:type="GstMessageClass">
-      <field name="mini_object_class" writable="1">
-        <type name="MiniObjectClass" c:type="GstMiniObjectClass"/>
-      </field>
-      <field name="_gst_reserved" writable="1">
-        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
-          <type name="any"/>
-        </array>
-      </field>
-    </record>
-    <bitfield name="MessageType"
-              doc="only receive this message in the PLAYING state and every time it sets a
-pipeline to PLAYING that is in the EOS state. The application can perform a
-flushing seek in the pipeline, which will undo the EOS state again.
-message it should stop playback of the pipeline and not assume that more
-data will be played.
-receives a buffering message in the PLAYING state for a non-live pipeline it
-must PAUSE the pipeline until the buffering completes, when the percentage
-field in the message is 100%. For live pipelines, no action must be
-performed and the buffering percentage can be used to inform the user about
-the progress.
-This message is deprecated.
-a clock. This message is used internally and
-never forwarded to the application.
-unusable. The pipeline will select a new clock on
-the next PLAYING state change. The application
-should set the pipeline to PAUSED and back to
-PLAYING when this message is received.
-message is used internally and never forwarded to the application.
-stops, errors, etc..
-via an application-specific element.
-documentation
-message is used internally and never forwarded to the application.
-message is forwarded to the application after all elements that posted
-can get the new duration with a duration query.
-change. This message is not forwarded to the application but is used
-change. The application will only receive this message from the toplevel
-change state. This message is a suggestion to the application which can
-The different message types that are available."
-              c:type="GstMessageType">
-      <member name="unknown" value="0" c:identifier="GST_MESSAGE_UNKNOWN"/>
-      <member name="eos" value="1" c:identifier="GST_MESSAGE_EOS"/>
-      <member name="error" value="2" c:identifier="GST_MESSAGE_ERROR"/>
-      <member name="warning" value="4" c:identifier="GST_MESSAGE_WARNING"/>
-      <member name="info" value="8" c:identifier="GST_MESSAGE_INFO"/>
-      <member name="tag" value="16" c:identifier="GST_MESSAGE_TAG"/>
-      <member name="buffering"
-              value="32"
-              c:identifier="GST_MESSAGE_BUFFERING"/>
-      <member name="state_changed"
-              value="64"
-              c:identifier="GST_MESSAGE_STATE_CHANGED"/>
-      <member name="state_dirty"
-              value="128"
-              c:identifier="GST_MESSAGE_STATE_DIRTY"/>
-      <member name="step_done"
-              value="256"
-              c:identifier="GST_MESSAGE_STEP_DONE"/>
-      <member name="clock_provide"
-              value="512"
-              c:identifier="GST_MESSAGE_CLOCK_PROVIDE"/>
-      <member name="clock_lost"
-              value="1024"
-              c:identifier="GST_MESSAGE_CLOCK_LOST"/>
-      <member name="new_clock"
-              value="2048"
-              c:identifier="GST_MESSAGE_NEW_CLOCK"/>
-      <member name="structure_change"
-              value="4096"
-              c:identifier="GST_MESSAGE_STRUCTURE_CHANGE"/>
-      <member name="stream_status"
-              value="8192"
-              c:identifier="GST_MESSAGE_STREAM_STATUS"/>
-      <member name="application"
-              value="16384"
-              c:identifier="GST_MESSAGE_APPLICATION"/>
-      <member name="element" value="32768" c:identifier="GST_MESSAGE_ELEMENT"/>
-      <member name="segment_start"
-              value="65536"
-              c:identifier="GST_MESSAGE_SEGMENT_START"/>
-      <member name="segment_done"
-              value="131072"
-              c:identifier="GST_MESSAGE_SEGMENT_DONE"/>
-      <member name="duration"
-              value="262144"
-              c:identifier="GST_MESSAGE_DURATION"/>
-      <member name="latency"
-              value="524288"
-              c:identifier="GST_MESSAGE_LATENCY"/>
-      <member name="async_start"
-              value="1048576"
-              c:identifier="GST_MESSAGE_ASYNC_START"/>
-      <member name="async_done"
-              value="2097152"
-              c:identifier="GST_MESSAGE_ASYNC_DONE"/>
-      <member name="request_state"
-              value="4194304"
-              c:identifier="GST_MESSAGE_REQUEST_STATE"/>
-      <member name="step_start"
-              value="8388608"
-              c:identifier="GST_MESSAGE_STEP_START"/>
-      <member name="qos" value="16777216" c:identifier="GST_MESSAGE_QOS"/>
-      <member name="any" value="-1" c:identifier="GST_MESSAGE_ANY"/>
-    </bitfield>
-    <record name="MiniObject"
-            c:type="GstMiniObject"
-            doc="Base class for refcounted lightweight objects.">
-      <field name="instance" writable="1">
-        <type name="GObject.TypeInstance" c:type="GTypeInstance"/>
-      </field>
-      <field name="refcount" writable="1">
-        <type name="int" c:type="gint"/>
-      </field>
-      <field name="flags" writable="1">
-        <type name="uint" c:type="guint"/>
-      </field>
-      <field name="_gst_reserved" writable="1">
-        <type name="any" c:type="gpointer"/>
-      </field>
-      <constructor name="new"
-                   c:identifier="gst_mini_object_new"
-                   doc="Creates a new mini-object of the desired type.
-MT safe">
-        <return-value transfer-ownership="full">
-          <type name="MiniObject" c:type="GstMiniObject*"/>
-        </return-value>
-        <parameters>
-          <parameter name="type" transfer-ownership="none">
-            <type name="GType" c:type="GType"/>
-          </parameter>
-        </parameters>
-      </constructor>
-      <method name="copy"
-              c:identifier="gst_mini_object_copy"
-              doc="Creates a copy of the mini-object.
-MT safe">
-        <return-value transfer-ownership="full">
-          <type name="MiniObject" c:type="GstMiniObject*"/>
-        </return-value>
-      </method>
-      <method name="is_writable"
-              c:identifier="gst_mini_object_is_writable"
-              doc="Checks if a mini-object is writable.  A mini-object is writable
-if the reference count is one and the #GST_MINI_OBJECT_FLAG_READONLY
-flag is not set.  Modification of a mini-object should only be
-done after verifying that it is writable.
-MT safe">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-      </method>
-      <method name="make_writable"
-              c:identifier="gst_mini_object_make_writable"
-              doc="Checks if a mini-object is writable.  If not, a writable copy is made and
-returned.  This gives away the reference to the original mini object,
-and returns a reference to the new object.
-MT safe">
-        <return-value transfer-ownership="full" doc="that is writable.">
-          <type name="MiniObject" c:type="GstMiniObject*"/>
-        </return-value>
-      </method>
-      <method name="ref"
-              c:identifier="gst_mini_object_ref"
-              doc="Increase the reference count of the mini-object.
-Note that the refcount affects the writeability
-of @mini-object, see gst_mini_object_is_writable(). It is
-important to note that keeping additional references to
-GstMiniObject instances can potentially increase the number
-of memcpy operations in a pipeline, especially if the miniobject
-is a #GstBuffer.">
-        <return-value transfer-ownership="full">
-          <type name="MiniObject" c:type="GstMiniObject*"/>
-        </return-value>
-      </method>
-      <method name="unref"
-              c:identifier="gst_mini_object_unref"
-              doc="Decreases the reference count of the mini-object, possibly freeing
-the mini-object.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </method>
-      <method name="replace"
-              c:identifier="gst_mini_object_replace"
-              doc="Modifies a pointer to point to a new mini-object.  The modification
-is done atomically, and the reference counts are updated correctly.
-Either @newdata and the value pointed to by @olddata may be NULL.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="newdata" transfer-ownership="none">
-            <type name="MiniObject" c:type="GstMiniObject*"/>
-          </parameter>
-        </parameters>
-      </method>
-    </record>
-    <record name="MiniObjectClass" c:type="GstMiniObjectClass">
-      <field name="type_class" writable="1">
-        <type name="GObject.TypeClass" c:type="GTypeClass"/>
-      </field>
-      <field name="copy" writable="1">
-        <type name="MiniObjectCopyFunction"
-              c:type="GstMiniObjectCopyFunction"/>
-      </field>
-      <field name="finalize" writable="1">
-        <type name="MiniObjectFinalizeFunction"
-              c:type="GstMiniObjectFinalizeFunction"/>
-      </field>
-      <field name="_gst_reserved" writable="1">
-        <type name="any" c:type="gpointer"/>
-      </field>
-    </record>
-    <callback name="MiniObjectCopyFunction"
-              c:type="GstMiniObjectCopyFunction"
-              doc="Virtual function prototype for methods to create copies of instances.">
-      <return-value transfer-ownership="full">
-        <type name="MiniObject" c:type="GstMiniObject*"/>
-      </return-value>
-      <parameters>
-        <parameter name="obj" transfer-ownership="none">
-          <type name="MiniObject" c:type="GstMiniObject*"/>
-        </parameter>
-      </parameters>
-    </callback>
-    <callback name="MiniObjectFinalizeFunction"
-              c:type="GstMiniObjectFinalizeFunction"
-              doc="Virtual function prototype for methods to free ressources used by
-mini-objects. Subclasses of the mini object are allowed to revive the
-passed object by doing a gst_mini_object_ref(). If the object is not
-revived after the finalize function, the memory associated with the
-object is freed.">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="obj" transfer-ownership="none">
-          <type name="MiniObject" c:type="GstMiniObject*"/>
-        </parameter>
-      </parameters>
-    </callback>
-    <bitfield name="MiniObjectFlags"
-              doc="Flags for the padtemplate"
-              c:type="GstMiniObjectFlags">
-      <member name="readonly"
-              value="1"
-              c:identifier="GST_MINI_OBJECT_FLAG_READONLY"/>
-      <member name="last" value="16" c:identifier="GST_MINI_OBJECT_FLAG_LAST"/>
-    </bitfield>
-    <constant name="NSECOND" value="0">
-      <type name="int"/>
-    </constant>
-    <class name="Object"
-           c:type="GstObject"
-           doc="GStreamer base object class."
-           parent="GObject.Object"
-           abstract="1"
-           glib:type-name="GstObject"
-           glib:get-type="gst_object_get_type"
-           glib:type-struct="ObjectClass">
-      <function name="default_deep_notify"
-                c:identifier="gst_object_default_deep_notify"
-                doc="NULL to show all changes.
-A default deep_notify signal callback for an object. The user data
-should contain a pointer to an array of strings that should be excluded
-from the notify. The default handler will print the new value of the property
-using g_print.
-MT safe. This function grabs and releases @object&apos;s LOCK for getting its
-path string.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="object" transfer-ownership="none">
-            <type name="GObject.Object" c:type="GObject*"/>
-          </parameter>
-          <parameter name="orig" transfer-ownership="none">
-            <type name="Object" c:type="GstObject*"/>
-          </parameter>
-          <parameter name="pspec" transfer-ownership="none">
-            <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
-          </parameter>
-          <parameter name="excluded_props" transfer-ownership="none">
-            <array c:type="gchar**">
-              <type name="utf8"/>
-            </array>
-          </parameter>
-        </parameters>
-      </function>
-      <function name="ref"
-                c:identifier="gst_object_ref"
-                doc="Increments the reference count on @object. This function
-does not take the lock on @object because it relies on
-atomic refcounting.
-This object returns the input parameter to ease writing
-constructs like :
-result = gst_object_ref (object-&gt;parent);">
-        <return-value transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
-        </return-value>
-        <parameters>
-          <parameter name="object" transfer-ownership="none">
-            <type name="any" c:type="gpointer"/>
-          </parameter>
-        </parameters>
-      </function>
-      <function name="unref"
-                c:identifier="gst_object_unref"
-                doc="Decrements the reference count on @object.  If reference count hits
-zero, destroy @object. This function does not take the lock
-on @object as it relies on atomic refcounting.
-The unref method should never be called with the LOCK held since
-this might deadlock the dispose function.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="object" transfer-ownership="none">
-            <type name="any" c:type="gpointer"/>
-          </parameter>
-        </parameters>
-      </function>
-      <function name="ref_sink"
-                c:identifier="gst_object_ref_sink"
-                doc="Increase the reference count of @object, and possibly remove the floating
-reference, if @object has a floating reference.
-In other words, if the object is floating, then this call &quot;assumes ownership&quot;
-of the floating reference, converting it to a normal reference by clearing
-the floating flag while leaving the reference count unchanged. If the object
-is not floating, then this call adds a new normal reference increasing the
-reference count by one.
-MT safe. This function grabs and releases @object lock."
-                version="0.10.24">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="object" transfer-ownership="none">
-            <type name="any" c:type="gpointer"/>
-          </parameter>
-        </parameters>
-      </function>
-      <function name="sink"
-                c:identifier="gst_object_sink"
-                doc="If @object was floating, the #GST_OBJECT_FLOATING flag is removed
-and @object is unreffed. When @object was not floating,
-this function does nothing.
-Any newly created object has a refcount of 1 and is floating.
-This function should be used when creating a new object to
-symbolically &apos;take ownership&apos; of @object. This done by first doing a
-gst_object_ref() to keep a reference to @object and then gst_object_sink()
-to remove and unref any floating references to @object.
-Use gst_object_set_parent() to have this done for you.
-MT safe. This function grabs and releases @object lock.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="object" transfer-ownership="none">
-            <type name="any" c:type="gpointer"/>
-          </parameter>
-        </parameters>
-      </function>
-      <function name="check_uniqueness"
-                c:identifier="gst_object_check_uniqueness"
-                doc="Checks to see if there is any object named @name in @list. This function
-does not do any locking of any kind. You might want to protect the
-provided list with the lock of the owner of the list. This function
-will lock each #GstObject in the list to compare the name, so be
-carefull when passing a list with a locked object.
-FALSE if it does.
-MT safe. Grabs and releases the LOCK of each object in the list.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="list" transfer-ownership="none">
-            <type name="GLib.List" c:type="GList*"/>
-          </parameter>
-          <parameter name="name" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </function>
-      <virtual-method name="save_thyself" invoker="save_thyself">
-        <return-value transfer-ownership="full">
-          <type name="libxml2.NodePtr" c:type="xmlNodePtr"/>
-        </return-value>
-        <parameters>
-          <parameter name="parent" transfer-ownership="none">
-            <type name="libxml2.NodePtr" c:type="xmlNodePtr"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <virtual-method name="restore_thyself" invoker="restore_thyself">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="self" transfer-ownership="none">
-            <type name="libxml2.NodePtr" c:type="xmlNodePtr"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <method name="set_name"
-              c:identifier="gst_object_set_name"
-              doc="Sets the name of @object, or gives @object a guaranteed unique
-name (if @name is NULL).
-This function makes a copy of the provided name, so the caller
-retains ownership of the name it sent.
-a parent cannot be renamed, this function returns FALSE in those
-cases.
-MT safe.  This function grabs and releases @object&apos;s LOCK.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="name" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_name"
-              c:identifier="gst_object_get_name"
-              doc="Returns a copy of the name of @object.
-Caller should g_free() the return value after usage.
-For a nameless object, this returns NULL, which you can safely g_free()
-as well.
-MT safe. This function grabs and releases @object&apos;s LOCK.">
-        <return-value transfer-ownership="full" doc="after usage.">
-          <type name="utf8" c:type="gchar*"/>
-        </return-value>
-      </method>
-      <method name="set_name_prefix"
-              c:identifier="gst_object_set_name_prefix"
-              doc="Sets the name prefix of @object to @name_prefix.
-This function makes a copy of the provided name prefix, so the caller
-retains ownership of the name prefix it sent.
-MT safe.  This function grabs and releases @object&apos;s LOCK.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="name_prefix" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_name_prefix"
-              c:identifier="gst_object_get_name_prefix"
-              doc="Returns a copy of the name prefix of @object.
-Caller should g_free() the return value after usage.
-For a prefixless object, this returns NULL, which you can safely g_free()
-as well.
-MT safe. This function grabs and releases @object&apos;s LOCK.">
-        <return-value transfer-ownership="full" doc="after usage.">
-          <type name="utf8" c:type="gchar*"/>
-        </return-value>
-      </method>
-      <method name="set_parent"
-              c:identifier="gst_object_set_parent"
-              doc="Sets the parent of @object to @parent. The object&apos;s reference count will
-be incremented, and any floating reference will be removed (see gst_object_sink()).
-This function causes the parent-set signal to be emitted when the parent
-was successfully set.
-already had a parent or @object and @parent are the same.
-MT safe. Grabs and releases @object&apos;s LOCK.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="parent" transfer-ownership="none">
-            <type name="Object" c:type="GstObject*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_parent"
-              c:identifier="gst_object_get_parent"
-              doc="Returns the parent of @object. This function increases the refcount
-of the parent object so you should gst_object_unref() it after usage.
-parent. unref after usage.
-MT safe. Grabs and releases @object&apos;s LOCK.">
-        <return-value transfer-ownership="full">
-          <type name="Object" c:type="GstObject*"/>
-        </return-value>
-      </method>
-      <method name="unparent"
-              c:identifier="gst_object_unparent"
-              doc="Clear the parent of @object, removing the associated reference.
-This function decreases the refcount of @object.
-MT safe. Grabs and releases @object&apos;s lock.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </method>
-      <method name="has_ancestor"
-              c:identifier="gst_object_has_ancestor"
-              doc="Check if @object has an ancestor @ancestor somewhere up in
-the hierarchy.
-MT safe. Grabs and releases @object&apos;s locks.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="ancestor" transfer-ownership="none">
-            <type name="Object" c:type="GstObject*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="replace"
-              c:identifier="gst_object_replace"
-              doc="Unrefs the #GstObject pointed to by @oldobj, refs @newobj and
-puts @newobj in *@oldobj. Be carefull when calling this
-function, it does not take any locks. You might want to lock
-the object owning @oldobj pointer before calling this
-function.
-Make sure not to LOCK @oldobj because it might be unreffed
-which could cause a deadlock when it is disposed.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="newobj" transfer-ownership="none">
-            <type name="Object" c:type="GstObject*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_path_string"
-              c:identifier="gst_object_get_path_string"
-              doc="Generates a string describing the path of @object in
-the object hierarchy. Only useful (or used) for debugging.
-g_free() the string after usage.
-MT safe. Grabs and releases the #GstObject&apos;s LOCK for all objects
-in the hierarchy.">
-        <return-value transfer-ownership="full">
-          <type name="utf8" c:type="gchar*"/>
-        </return-value>
-      </method>
-      <method name="save_thyself"
-              c:identifier="gst_object_save_thyself"
-              doc="Saves @object into the parent XML node.">
-        <return-value transfer-ownership="full">
-          <type name="libxml2.NodePtr" c:type="xmlNodePtr"/>
-        </return-value>
-        <parameters>
-          <parameter name="parent" transfer-ownership="none">
-            <type name="libxml2.NodePtr" c:type="xmlNodePtr"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="restore_thyself"
-              c:identifier="gst_object_restore_thyself"
-              doc="Restores @object with the data from the parent XML node.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="self" transfer-ownership="none">
-            <type name="libxml2.NodePtr" c:type="xmlNodePtr"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="default_error"
-              c:identifier="gst_object_default_error"
-              doc="A default error function.
-The default handler will simply print the error string using g_print.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="error" transfer-ownership="none">
-            <type name="GLib.Error" c:type="GError*"/>
-          </parameter>
-          <parameter name="debug" transfer-ownership="full">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <property name="name" writable="1" construct="1">
-        <type name="utf8" c:type="gchararray"/>
-      </property>
-      <field name="object">
-        <type name="GObject.Object" c:type="GObject"/>
-      </field>
-      <field name="refcount">
-        <type name="int" c:type="gint"/>
-      </field>
-      <field name="lock">
-        <type name="GLib.Mutex" c:type="GMutex*"/>
-      </field>
-      <field name="name">
-        <type name="utf8" c:type="gchar*"/>
-      </field>
-      <field name="name_prefix">
-        <type name="utf8" c:type="gchar*"/>
-      </field>
-      <field name="parent">
-        <type name="Object" c:type="GstObject*"/>
-      </field>
-      <field name="flags">
-        <type name="uint32" c:type="guint32"/>
-      </field>
-      <field name="_gst_reserved">
-        <type name="any" c:type="gpointer"/>
-      </field>
-      <glib:signal name="deep-notify"
-                   doc="The deep notify signal is used to be notified of property changes. It is
-typically attached to the toplevel bin to receive notifications from all
-the elements contained in that bin.">
-        <return-value transfer-ownership="full">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="prop_object" transfer-ownership="none">
-            <type name="Object" c:type="GstObject"/>
-          </parameter>
-          <parameter name="prop" transfer-ownership="none">
-            <type name="GObject.ParamSpec" c:type="GParam"/>
-          </parameter>
-        </parameters>
-      </glib:signal>
-      <glib:signal name="object-saved"
-                   doc="Trigered whenever a new object is saved to XML. You can connect to this
-signal to insert custom XML tags into the core XML.">
-        <return-value transfer-ownership="full">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="xml_node" transfer-ownership="none">
-            <type name="any" c:type="gpointer"/>
-          </parameter>
-        </parameters>
-      </glib:signal>
-      <glib:signal name="parent-set"
-                   doc="Emitted when the parent of an object is set.">
-        <return-value transfer-ownership="full">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="parent" transfer-ownership="none">
-            <type name="Object" c:type="GstObject"/>
-          </parameter>
-        </parameters>
-      </glib:signal>
-      <glib:signal name="parent-unset"
-                   doc="Emitted when the parent of an object is unset.">
-        <return-value transfer-ownership="full">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="parent" transfer-ownership="none">
-            <type name="Object" c:type="GstObject"/>
-          </parameter>
-        </parameters>
-      </glib:signal>
-    </class>
-    <record name="ObjectClass"
-            c:type="GstObjectClass"
-            glib:is-gtype-struct-for="Object"
-            doc="GStreamer base object class.">
-      <field name="parent_class">
-        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
-      </field>
-      <field name="path_string_separator">
-        <type name="utf8" c:type="gchar*"/>
-      </field>
-      <field name="signal_object">
-        <type name="GObject.Object" c:type="GObject*"/>
-      </field>
-      <field name="lock">
-        <type name="GLib.StaticRecMutex" c:type="GStaticRecMutex*"/>
-      </field>
-      <field name="parent_set">
-        <callback name="parent_set" c:type="parent_set">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="object" transfer-ownership="none">
-              <type name="Object" c:type="GstObject*"/>
-            </parameter>
-            <parameter name="parent" transfer-ownership="none">
-              <type name="Object" c:type="GstObject*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="parent_unset">
-        <callback name="parent_unset" c:type="parent_unset">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="object" transfer-ownership="none">
-              <type name="Object" c:type="GstObject*"/>
-            </parameter>
-            <parameter name="parent" transfer-ownership="none">
-              <type name="Object" c:type="GstObject*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="object_saved">
-        <callback name="object_saved" c:type="object_saved">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="object" transfer-ownership="none">
-              <type name="Object" c:type="GstObject*"/>
-            </parameter>
-            <parameter name="parent" transfer-ownership="none">
-              <type name="libxml2.NodePtr" c:type="xmlNodePtr"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="deep_notify">
-        <callback name="deep_notify" c:type="deep_notify">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="object" transfer-ownership="none">
-              <type name="Object" c:type="GstObject*"/>
-            </parameter>
-            <parameter name="orig" transfer-ownership="none">
-              <type name="Object" c:type="GstObject*"/>
-            </parameter>
-            <parameter name="pspec" transfer-ownership="none">
-              <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="save_thyself">
-        <callback name="save_thyself" c:type="save_thyself">
-          <return-value transfer-ownership="full">
-            <type name="libxml2.NodePtr" c:type="xmlNodePtr"/>
-          </return-value>
-          <parameters>
-            <parameter name="object" transfer-ownership="none">
-              <type name="Object" c:type="GstObject*"/>
-            </parameter>
-            <parameter name="parent" transfer-ownership="none">
-              <type name="libxml2.NodePtr" c:type="xmlNodePtr"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="restore_thyself">
-        <callback name="restore_thyself" c:type="restore_thyself">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="object" transfer-ownership="none">
-              <type name="Object" c:type="GstObject*"/>
-            </parameter>
-            <parameter name="self" transfer-ownership="none">
-              <type name="libxml2.NodePtr" c:type="xmlNodePtr"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="_gst_reserved">
-        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
-          <type name="any"/>
-        </array>
-      </field>
-    </record>
-    <bitfield name="ObjectFlags"
-              doc="not assigned to a bin)
-The standard flags that an gstobject may have."
-              c:type="GstObjectFlags">
-      <member name="disposing" value="1" c:identifier="GST_OBJECT_DISPOSING"/>
-      <member name="floating" value="2" c:identifier="GST_OBJECT_FLOATING"/>
-      <member name="flag_last" value="16" c:identifier="GST_OBJECT_FLAG_LAST"/>
-    </bitfield>
-    <constant name="PARAM_CONTROLLABLE" value="2">
-      <type name="int"/>
-    </constant>
-    <constant name="PARAM_MUTABLE_PAUSED" value="8">
-      <type name="int"/>
-    </constant>
-    <constant name="PARAM_MUTABLE_PLAYING" value="16">
-      <type name="int"/>
-    </constant>
-    <constant name="PARAM_MUTABLE_READY" value="4">
-      <type name="int"/>
-    </constant>
-    <constant name="PARAM_USER_SHIFT" value="256">
-      <type name="int"/>
-    </constant>
-    <class name="Pad"
-           c:type="GstPad"
-           doc="the pad.
-the data used in streaming.
-The #GstPad structure. Use the functions to update the variables."
-           parent="Object"
-           glib:type-name="GstPad"
-           glib:get-type="gst_pad_get_type"
-           glib:type-struct="PadClass">
-      <constructor name="new"
-                   c:identifier="gst_pad_new"
-                   doc="Creates a new pad with the given name in the given direction.
-If name is NULL, a guaranteed unique name (across all pads)
-will be assigned.
-This function makes a copy of the name so you can safely free the name.
-MT safe.">
-        <return-value transfer-ownership="full">
-          <type name="Pad" c:type="GstPad*"/>
-        </return-value>
-        <parameters>
-          <parameter name="name" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="direction" transfer-ownership="none">
-            <type name="PadDirection" c:type="GstPadDirection"/>
-          </parameter>
-        </parameters>
-      </constructor>
-      <constructor name="new_from_template"
-                   c:identifier="gst_pad_new_from_template"
-                   doc="Creates a new pad with the given name from the given template.
-If name is NULL, a guaranteed unique name (across all pads)
-will be assigned.
-This function makes a copy of the name so you can safely free the name.">
-        <return-value transfer-ownership="full">
-          <type name="Pad" c:type="GstPad*"/>
-        </return-value>
-        <parameters>
-          <parameter name="templ" transfer-ownership="none">
-            <type name="PadTemplate" c:type="GstPadTemplate*"/>
-          </parameter>
-          <parameter name="name" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </constructor>
-      <constructor name="new_from_static_template"
-                   c:identifier="gst_pad_new_from_static_template"
-                   doc="Creates a new pad with the given name from the given static template.
-If name is NULL, a guaranteed unique name (across all pads)
-will be assigned.
-This function makes a copy of the name so you can safely free the name.">
-        <return-value transfer-ownership="full">
-          <type name="Pad" c:type="GstPad*"/>
-        </return-value>
-        <parameters>
-          <parameter name="templ" transfer-ownership="none">
-            <type name="StaticPadTemplate" c:type="GstStaticPadTemplate*"/>
-          </parameter>
-          <parameter name="name" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </constructor>
-      <function name="load_and_link"
-                c:identifier="gst_pad_load_and_link"
-                doc="Reads the pad definition from the XML node and links the given pad
-in the element to a pad of an element up in the hierarchy.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="self" transfer-ownership="none">
-            <type name="libxml2.NodePtr" c:type="xmlNodePtr"/>
-          </parameter>
-          <parameter name="parent" transfer-ownership="none">
-            <type name="Object" c:type="GstObject*"/>
-          </parameter>
-        </parameters>
-      </function>
-      <method name="get_direction"
-              c:identifier="gst_pad_get_direction"
-              doc="Gets the direction of the pad. The direction of the pad is
-decided at construction time so this function does not take
-the LOCK.
-MT safe.">
-        <return-value transfer-ownership="full">
-          <type name="PadDirection" c:type="GstPadDirection"/>
-        </return-value>
-      </method>
-      <method name="set_active"
-              c:identifier="gst_pad_set_active"
-              doc="Activates or deactivates the given pad.
-Normally called from within core state change functions.
-If @active, makes sure the pad is active. If it is already active, either in
-push or pull mode, just return. Otherwise dispatches to the pad&apos;s activate
-function to perform the actual activation.
-If not @active, checks the pad&apos;s current mode and calls
-gst_pad_activate_push() or gst_pad_activate_pull(), as appropriate, with a
-FALSE argument.
-MT safe.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="active" transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="is_active"
-              c:identifier="gst_pad_is_active"
-              doc="Query if a pad is active
-MT safe.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-      </method>
-      <method name="activate_pull"
-              c:identifier="gst_pad_activate_pull"
-              doc="Activates or deactivates the given pad in pull mode via dispatching to the
-pad&apos;s activatepullfunc. For use from within pad activation functions only.
-When called on sink pads, will first proxy the call to the peer pad, which
-is expected to activate its internally linked pads from within its
-activate_pull function.
-If you don&apos;t know what this is, you probably don&apos;t want to call it.
-MT safe.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="active" transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="activate_push"
-              c:identifier="gst_pad_activate_push"
-              doc="Activates or deactivates the given pad in push mode via dispatching to the
-pad&apos;s activatepushfunc. For use from within pad activation functions only.
-If you don&apos;t know what this is, you probably don&apos;t want to call it.
-MT safe.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="active" transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_blocked"
-              c:identifier="gst_pad_set_blocked"
-              doc="Blocks or unblocks the dataflow on a pad. This function is
-a shortcut for gst_pad_set_blocked_async() with a NULL
-callback.
-wrong parameters were passed or the pad was already in the requested state.
-MT safe.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="blocked" transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_blocked_async"
-              c:identifier="gst_pad_set_blocked_async"
-              doc="operation succeeds
-Blocks or unblocks the dataflow on a pad. The provided callback
-is called when the operation succeeds; this happens right before the next
-attempt at pushing a buffer on the pad.
-This can take a while as the pad can only become blocked when real dataflow
-is happening.
-When the pipeline is stalled, for example in PAUSED, this can
-take an indeterminate amount of time.
-You can pass NULL as the callback to make this call block. Be careful with
-this blocking call as it might not return for reasons stated above.
-wrong parameters were passed or the pad was already in the requested state.
-MT safe.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="blocked" transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </parameter>
-          <parameter name="callback"
-                     transfer-ownership="none"
-                     scope="call"
-                     closure="3">
-            <type name="PadBlockCallback" c:type="GstPadBlockCallback"/>
-          </parameter>
-          <parameter name="user_data" transfer-ownership="none">
-            <type name="any" c:type="gpointer"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_blocked_async_full"
-              c:identifier="gst_pad_set_blocked_async_full"
-              doc="operation succeeds
-Blocks or unblocks the dataflow on a pad. The provided callback
-is called when the operation succeeds; this happens right before the next
-attempt at pushing a buffer on the pad.
-This can take a while as the pad can only become blocked when real dataflow
-is happening.
-When the pipeline is stalled, for example in PAUSED, this can
-take an indeterminate amount of time.
-You can pass NULL as the callback to make this call block. Be careful with
-this blocking call as it might not return for reasons stated above.
-wrong parameters were passed or the pad was already in the requested state.
-MT safe."
-              version="0.10.23">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="blocked" transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </parameter>
-          <parameter name="callback"
-                     transfer-ownership="none"
-                     scope="notified"
-                     closure="3"
-                     destroy="4">
-            <type name="PadBlockCallback" c:type="GstPadBlockCallback"/>
-          </parameter>
-          <parameter name="user_data" transfer-ownership="none">
-            <type name="any" c:type="gpointer"/>
-          </parameter>
-          <parameter name="destroy_data"
-                     transfer-ownership="none"
-                     scope="call">
-            <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="is_blocked"
-              c:identifier="gst_pad_is_blocked"
-              doc="Checks if the pad is blocked or not. This function returns the
-last requested state of the pad. It is not certain that the pad
-is actually blocking at this point (see gst_pad_is_blocking()).
-MT safe.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-      </method>
-      <method name="is_blocking"
-              c:identifier="gst_pad_is_blocking"
-              doc="Checks if the pad is blocking or not. This is a guaranteed state
-of whether the pad is actually blocking on a #GstBuffer or a #GstEvent.
-MT safe."
-              version="0.10.11">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-      </method>
-      <method name="set_element_private"
-              c:identifier="gst_pad_set_element_private"
-              doc="Set the given private data gpointer on the pad.
-This function can only be used by the element that owns the pad.
-No locking is performed in this function.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="priv" transfer-ownership="none">
-            <type name="any" c:type="gpointer"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_element_private"
-              c:identifier="gst_pad_get_element_private"
-              doc="Gets the private data of a pad.
-No locking is performed in this function.">
-        <return-value transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
-        </return-value>
-      </method>
-      <method name="get_pad_template"
-              c:identifier="gst_pad_get_pad_template"
-              doc="Gets the template for @pad.
-if this pad has no template.">
-        <return-value transfer-ownership="full">
-          <type name="PadTemplate" c:type="GstPadTemplate*"/>
-        </return-value>
-      </method>
-      <method name="set_bufferalloc_function"
-              c:identifier="gst_pad_set_bufferalloc_function"
-              doc="Sets the given bufferalloc function for the pad. Note that the
-bufferalloc function can only be set on sinkpads.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="bufalloc" transfer-ownership="none" scope="call">
-            <type name="PadBufferAllocFunction"
-                  c:type="GstPadBufferAllocFunction"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="alloc_buffer"
-              c:identifier="gst_pad_alloc_buffer"
-              doc="Allocates a new, empty buffer optimized to push to pad @pad.  This
-function only works if @pad is a source pad and has a peer.
-A new, empty #GstBuffer will be put in the @buf argument.
-You need to check the caps of the buffer after performing this
-function and renegotiate to the format if needed. If the caps changed, it is
-possible that the buffer returned in @buf is not of the right size for the
-new format, @buf needs to be unreffed and reallocated if this is the case.
-result code other than #GST_FLOW_OK is an error and @buf should
-not be used.
-An error can occur if the pad is not connected or when the downstream
-peer elements cannot provide an acceptable buffer.
-MT safe.">
-        <return-value transfer-ownership="full">
-          <type name="FlowReturn" c:type="GstFlowReturn"/>
-        </return-value>
-        <parameters>
-          <parameter name="offset" transfer-ownership="none">
-            <type name="uint64" c:type="guint64"/>
-          </parameter>
-          <parameter name="size" transfer-ownership="none">
-            <type name="int" c:type="gint"/>
-          </parameter>
-          <parameter name="caps" transfer-ownership="none">
-            <type name="Caps" c:type="GstCaps*"/>
-          </parameter>
-          <parameter name="buf" transfer-ownership="none">
-            <type name="Buffer" c:type="GstBuffer**"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="alloc_buffer_and_set_caps"
-              c:identifier="gst_pad_alloc_buffer_and_set_caps"
-              doc="In addition to the function gst_pad_alloc_buffer(), this function
-automatically calls gst_pad_set_caps() when the caps of the
-newly allocated buffer are different from the @pad caps.
-After a renegotiation, the size of the new buffer returned in @buf could
-be of the wrong size for the new format and must be unreffed an reallocated
-in that case.
-result code other than #GST_FLOW_OK is an error and @buf should
-not be used.
-An error can occur if the pad is not connected or when the downstream
-peer elements cannot provide an acceptable buffer.
-MT safe.">
-        <return-value transfer-ownership="full">
-          <type name="FlowReturn" c:type="GstFlowReturn"/>
-        </return-value>
-        <parameters>
-          <parameter name="offset" transfer-ownership="none">
-            <type name="uint64" c:type="guint64"/>
-          </parameter>
-          <parameter name="size" transfer-ownership="none">
-            <type name="int" c:type="gint"/>
-          </parameter>
-          <parameter name="caps" transfer-ownership="none">
-            <type name="Caps" c:type="GstCaps*"/>
-          </parameter>
-          <parameter name="buf" transfer-ownership="none">
-            <type name="Buffer" c:type="GstBuffer**"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_activate_function"
-              c:identifier="gst_pad_set_activate_function"
-              doc="Sets the given activate function for @pad. The activate function will
-dispatch to gst_pad_activate_push() or gst_pad_activate_pull() to perform
-the actual activation. Only makes sense to set on sink pads.
-Call this function if your sink pad can start a pull-based task.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="activate" transfer-ownership="none" scope="call">
-            <type name="PadActivateFunction" c:type="GstPadActivateFunction"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_activatepull_function"
-              c:identifier="gst_pad_set_activatepull_function"
-              doc="Sets the given activate_pull function for the pad. An activate_pull function
-prepares the element and any upstream connections for pulling. See XXX
-part-activation.txt for details.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="activatepull"
-                     transfer-ownership="none"
-                     scope="call">
-            <type name="PadActivateModeFunction"
-                  c:type="GstPadActivateModeFunction"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_activatepush_function"
-              c:identifier="gst_pad_set_activatepush_function"
-              doc="Sets the given activate_push function for the pad. An activate_push function
-prepares the element for pushing. See XXX part-activation.txt for details.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="activatepush"
-                     transfer-ownership="none"
-                     scope="call">
-            <type name="PadActivateModeFunction"
-                  c:type="GstPadActivateModeFunction"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_chain_function"
-              c:identifier="gst_pad_set_chain_function"
-              doc="Sets the given chain function for the pad. The chain function is called to
-process a #GstBuffer input buffer. see #GstPadChainFunction for more details.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="chain" transfer-ownership="none" scope="call">
-            <type name="PadChainFunction" c:type="GstPadChainFunction"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_chain_list_function"
-              c:identifier="gst_pad_set_chain_list_function"
-              doc="Sets the given chain list function for the pad. The chainlist function is
-called to process a #GstBufferList input buffer list. See
-#GstPadChainListFunction for more details."
-              version="0.10.24">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="chainlist" transfer-ownership="none" scope="call">
-            <type name="PadChainListFunction"
-                  c:type="GstPadChainListFunction"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_getrange_function"
-              c:identifier="gst_pad_set_getrange_function"
-              doc="Sets the given getrange function for the pad. The getrange function is
-called to produce a new #GstBuffer to start the processing pipeline. see
-#GstPadGetRangeFunction for a description of the getrange function.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="get" transfer-ownership="none" scope="call">
-            <type name="PadGetRangeFunction" c:type="GstPadGetRangeFunction"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_checkgetrange_function"
-              c:identifier="gst_pad_set_checkgetrange_function"
-              doc="Sets the given checkgetrange function for the pad. Implement this function
-on a pad if you dynamically support getrange based scheduling on the pad.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="check" transfer-ownership="none" scope="call">
-            <type name="PadCheckGetRangeFunction"
-                  c:type="GstPadCheckGetRangeFunction"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_event_function"
-              c:identifier="gst_pad_set_event_function"
-              doc="Sets the given event handler for the pad.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="event" transfer-ownership="none" scope="call">
-            <type name="PadEventFunction" c:type="GstPadEventFunction"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_link_function"
-              c:identifier="gst_pad_set_link_function"
-              doc="Sets the given link function for the pad. It will be called when
-the pad is linked with another pad.
-The return value #GST_PAD_LINK_OK should be used when the connection can be
-made.
-The return value #GST_PAD_LINK_REFUSED should be used when the connection
-cannot be made for some reason.
-If @link is installed on a source pad, it should call the #GstPadLinkFunction
-of the peer sink pad, if present.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="link" transfer-ownership="none" scope="call">
-            <type name="PadLinkFunction" c:type="GstPadLinkFunction"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_unlink_function"
-              c:identifier="gst_pad_set_unlink_function"
-              doc="Sets the given unlink function for the pad. It will be called
-when the pad is unlinked.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="unlink" transfer-ownership="none" scope="call">
-            <type name="PadUnlinkFunction" c:type="GstPadUnlinkFunction"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="can_link"
-              c:identifier="gst_pad_can_link"
-              doc="Checks if the source pad and the sink pad are compatible so they can be
-linked.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="sinkpad" transfer-ownership="none">
-            <type name="Pad" c:type="GstPad*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="link"
-              c:identifier="gst_pad_link"
-              doc="Links the source pad and the sink pad.
-what went wrong.
-MT Safe.">
-        <return-value transfer-ownership="full">
-          <type name="PadLinkReturn" c:type="GstPadLinkReturn"/>
-        </return-value>
-        <parameters>
-          <parameter name="sinkpad" transfer-ownership="none">
-            <type name="Pad" c:type="GstPad*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="unlink"
-              c:identifier="gst_pad_unlink"
-              doc="Unlinks the source pad from the sink pad. Will emit the #GstPad::unlinked
-signal on both pads.
-the pads were not linked together.
-MT safe.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="sinkpad" transfer-ownership="none">
-            <type name="Pad" c:type="GstPad*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="is_linked"
-              c:identifier="gst_pad_is_linked"
-              doc="Checks if a @pad is linked to another pad or not.
-MT safe.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-      </method>
-      <method name="get_peer"
-              c:identifier="gst_pad_get_peer"
-              doc="Gets the peer of @pad. This function refs the peer pad so
-you need to unref it after use.
-MT safe.">
-        <return-value transfer-ownership="full">
-          <type name="Pad" c:type="GstPad*"/>
-        </return-value>
-      </method>
-      <method name="set_getcaps_function"
-              c:identifier="gst_pad_set_getcaps_function"
-              doc="Sets the given getcaps function for the pad. @getcaps should return the
-allowable caps for a pad in the context of the element&apos;s state, its link to
-other elements, and the devices or files it has opened. These caps must be a
-subset of the pad template caps. In the NULL state with no links, @getcaps
-should ideally return the same caps as the pad template. In rare
-circumstances, an object property can affect the caps returned by @getcaps,
-but this is discouraged.
-You do not need to call this function if @pad&apos;s allowed caps are always the
-same as the pad template caps. This can only be true if the padtemplate
-has fixed simple caps.
-For most filters, the caps returned by @getcaps is directly affected by the
-allowed caps on other pads. For demuxers and decoders, the caps returned by
-the srcpad&apos;s getcaps function is directly related to the stream data. Again,
-helps with autoplugging.
-Note that the return value from @getcaps is owned by the caller, so the
-caller should unref the caps after usage.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="getcaps" transfer-ownership="none" scope="call">
-            <type name="PadGetCapsFunction" c:type="GstPadGetCapsFunction"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_acceptcaps_function"
-              c:identifier="gst_pad_set_acceptcaps_function"
-              doc="Sets the given acceptcaps function for the pad.  The acceptcaps function
-will be called to check if the pad can accept the given caps. Setting the
-acceptcaps function to NULL restores the default behaviour of allowing
-any caps that matches the caps from gst_pad_get_caps.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="acceptcaps" transfer-ownership="none" scope="call">
-            <type name="PadAcceptCapsFunction"
-                  c:type="GstPadAcceptCapsFunction"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_fixatecaps_function"
-              c:identifier="gst_pad_set_fixatecaps_function"
-              doc="Sets the given fixatecaps function for the pad.  The fixatecaps function
-will be called whenever the default values for a GstCaps needs to be
-filled in.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="fixatecaps" transfer-ownership="none" scope="call">
-            <type name="PadFixateCapsFunction"
-                  c:type="GstPadFixateCapsFunction"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_setcaps_function"
-              c:identifier="gst_pad_set_setcaps_function"
-              doc="Sets the given setcaps function for the pad.  The setcaps function
-will be called whenever a buffer with a new media type is pushed or
-pulled from the pad. The pad/element needs to update its internal
-structures to process the new media type. If this new type is not
-acceptable, the setcaps function should return FALSE.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="setcaps" transfer-ownership="none" scope="call">
-            <type name="PadSetCapsFunction" c:type="GstPadSetCapsFunction"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_pad_template_caps"
-              c:identifier="gst_pad_get_pad_template_caps"
-              doc="Gets the capabilities for @pad&apos;s template.
-reference on the caps, make a copy (see gst_caps_copy ()).">
-        <return-value transfer-ownership="none">
-          <type name="Caps" c:type="GstCaps*"/>
-        </return-value>
-      </method>
-      <method name="get_caps_reffed"
-              c:identifier="gst_pad_get_caps_reffed"
-              doc="Gets the capabilities this pad can produce or consume. Preferred function if
-one only wants to read or intersect the caps."
-              version="0.10.26">
-        <return-value transfer-ownership="full">
-          <type name="Caps" c:type="GstCaps*"/>
-        </return-value>
-      </method>
-      <method name="get_caps"
-              c:identifier="gst_pad_get_caps"
-              doc="Gets the capabilities this pad can produce or consume.
-Note that this method doesn&apos;t necessarily return the caps set by
-gst_pad_set_caps() - use GST_PAD_CAPS() for that instead.
-gst_pad_get_caps returns all possible caps a pad can operate with, using
-the pad&apos;s get_caps function;
-this returns the pad template caps if not explicitly set.
-MT safe.">
-        <return-value transfer-ownership="full">
-          <type name="Caps" c:type="GstCaps*"/>
-        </return-value>
-      </method>
-      <method name="fixate_caps"
-              c:identifier="gst_pad_fixate_caps"
-              doc="Fixate a caps on the given pad. Modifies the caps in place, so you should
-make sure that the caps are actually writable (see gst_caps_make_writable()).">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="caps" transfer-ownership="none">
-            <type name="Caps" c:type="GstCaps*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="accept_caps"
-              c:identifier="gst_pad_accept_caps"
-              doc="Check if the given pad accepts the caps.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="caps" transfer-ownership="none">
-            <type name="Caps" c:type="GstCaps*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_caps"
-              c:identifier="gst_pad_set_caps"
-              doc="Sets the capabilities of this pad. The caps must be fixed. Any previous
-caps on the pad will be unreffed. This function refs the caps so you should
-unref if as soon as you don&apos;t need it anymore.
-It is possible to set NULL caps, which will make the pad unnegotiated
-again.
-or bad parameters were provided to this function.
-MT safe.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="caps" transfer-ownership="none">
-            <type name="Caps" c:type="GstCaps*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="peer_get_caps_reffed"
-              c:identifier="gst_pad_peer_get_caps_reffed"
-              doc="Gets the capabilities of the peer connected to this pad. Preferred function
-if one only wants to read or intersect the caps."
-              version="0.10.26">
-        <return-value transfer-ownership="full">
-          <type name="Caps" c:type="GstCaps*"/>
-        </return-value>
-      </method>
-      <method name="peer_get_caps"
-              c:identifier="gst_pad_peer_get_caps"
-              doc="Gets the capabilities of the peer connected to this pad. Similar to
-gst_pad_get_caps().
-gst_caps_unref() to get rid of it. This function returns %NULL if there is
-no peer pad.">
-        <return-value transfer-ownership="full">
-          <type name="Caps" c:type="GstCaps*"/>
-        </return-value>
-      </method>
-      <method name="peer_accept_caps"
-              c:identifier="gst_pad_peer_accept_caps"
-              doc="Check if the peer of @pad accepts @caps. If @pad has no peer, this function
-returns TRUE.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="caps" transfer-ownership="none">
-            <type name="Caps" c:type="GstCaps*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_allowed_caps"
-              c:identifier="gst_pad_get_allowed_caps"
-              doc="Gets the capabilities of the allowed media types that can flow through
-The allowed capabilities is calculated as the intersection of the results of
-calling gst_pad_get_caps() on @pad and its peer. The caller owns a reference
-on the resulting caps.
-longer need it. This function returns NULL when @pad has no peer.
-MT safe.">
-        <return-value transfer-ownership="full">
-          <type name="Caps" c:type="GstCaps*"/>
-        </return-value>
-      </method>
-      <method name="get_negotiated_caps"
-              c:identifier="gst_pad_get_negotiated_caps"
-              doc="Gets the capabilities of the media type that currently flows through @pad
-and its peer.
-This function can be used on both src and sinkpads. Note that srcpads are
-always negotiated before sinkpads so it is possible that the negotiated caps
-on the srcpad do not match the negotiated caps of the peer.
-you no longer need it. This function returns NULL when the @pad has no
-peer or is not negotiated yet.
-MT safe.">
-        <return-value transfer-ownership="full">
-          <type name="Caps" c:type="GstCaps*"/>
-        </return-value>
-      </method>
-      <method name="push"
-              c:identifier="gst_pad_push"
-              doc="Pushes a buffer to the peer of @pad.
-This function will call an installed pad block before triggering any
-installed pad probes.
-If the caps on @buffer are different from the currently configured caps on
-gst_pad_set_setcaps_function()). In case of failure to renegotiate the new
-format, this function returns #GST_FLOW_NOT_NEGOTIATED.
-The function proceeds calling gst_pad_chain() on the peer pad and returns
-the value from that function. If @pad has no peer, #GST_FLOW_NOT_LINKED will
-be returned.
-In all cases, success or failure, the caller loses its reference to @buffer
-after calling this function.
-MT safe.">
-        <return-value transfer-ownership="full">
-          <type name="FlowReturn" c:type="GstFlowReturn"/>
-        </return-value>
-        <parameters>
-          <parameter name="buffer" transfer-ownership="none">
-            <type name="Buffer" c:type="GstBuffer*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="push_list"
-              c:identifier="gst_pad_push_list"
-              doc="Pushes a buffer list to the peer of @pad.
-This function will call an installed pad block before triggering any
-installed pad probes.
-If the caps on the first buffer in the first group of @list are different
-from the currently configured caps on @pad, this function will call any
-installed setcaps function on @pad (see gst_pad_set_setcaps_function()). In
-case of failure to renegotiate the new format, this function returns
-#GST_FLOW_NOT_NEGOTIATED.
-If there are any probes installed on @pad every group of the buffer list
-will be merged into a normal #GstBuffer and pushed via gst_pad_push and the
-buffer list will be unreffed.
-The function proceeds calling the chain function on the peer pad and returns
-the value from that function. If @pad has no peer, #GST_FLOW_NOT_LINKED will
-be returned. If the peer pad does not have any installed chainlist function
-every group buffer of the list will be merged into a normal #GstBuffer and
-chained via gst_pad_chain().
-In all cases, success or failure, the caller loses its reference to @list
-after calling this function.
-MT safe."
-              version="0.10.24">
-        <return-value transfer-ownership="full">
-          <type name="FlowReturn" c:type="GstFlowReturn"/>
-        </return-value>
-        <parameters>
-          <parameter name="list" transfer-ownership="none">
-            <type name="BufferList" c:type="GstBufferList*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="check_pull_range"
-              c:identifier="gst_pad_check_pull_range"
-              doc="Checks if a gst_pad_pull_range() can be performed on the peer
-source pad. This function is used by plugins that want to check
-if they can use random access on the peer source pad.
-The peer sourcepad can implement a custom #GstPadCheckGetRangeFunction
-if it needs to perform some logic to determine if pull_range is
-possible.
-MT safe.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-      </method>
-      <method name="pull_range"
-              c:identifier="gst_pad_pull_range"
-              doc="Pulls a @buffer from the peer pad.
-This function will first trigger the pad block signal if it was
-installed.
-When @pad is not linked #GST_FLOW_NOT_LINKED is returned else this
-function returns the result of gst_pad_get_range() on the peer pad.
-See gst_pad_get_range() for a list of return values and for the
-semantics of the arguments of this function.
-configured on @pad. Renegotiation within a running pull-mode pipeline is not
-supported.
-When this function returns #GST_FLOW_OK, @buffer will contain a valid
-#GstBuffer that should be freed with gst_buffer_unref() after usage.
-#GST_FLOW_OK is returned.
-MT safe.">
-        <return-value transfer-ownership="full">
-          <type name="FlowReturn" c:type="GstFlowReturn"/>
-        </return-value>
-        <parameters>
-          <parameter name="offset" transfer-ownership="none">
-            <type name="uint64" c:type="guint64"/>
-          </parameter>
-          <parameter name="size" transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
-          </parameter>
-          <parameter name="buffer" transfer-ownership="none">
-            <type name="Buffer" c:type="GstBuffer**"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="push_event"
-              c:identifier="gst_pad_push_event"
-              doc="Sends the event to the peer of the given pad. This function is
-mainly used by elements to send events to their peer
-elements.
-This function takes owership of the provided event so you should
-gst_event_ref() it if you want to reuse the event after this call.
-MT safe.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="event" transfer-ownership="none">
-            <type name="Event" c:type="GstEvent*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="event_default"
-              c:identifier="gst_pad_event_default"
-              doc="Invokes the default event handler for the given pad. End-of-stream and
-discontinuity events are handled specially, and then the event is sent to all
-pads internally linked to @pad. Note that if there are many possible sink
-pads that are internally linked to @pad, only one will be sent an event.
-Multi-sinkpad elements should implement custom event handlers.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="event" transfer-ownership="none">
-            <type name="Event" c:type="GstEvent*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="chain"
-              c:identifier="gst_pad_chain"
-              doc="Chain a buffer to @pad.
-The function returns #GST_FLOW_WRONG_STATE if the pad was flushing.
-If the caps on @buffer are different from the current caps on @pad, this
-function will call any setcaps function (see gst_pad_set_setcaps_function())
-installed on @pad. If the new caps are not acceptable for @pad, this
-function returns #GST_FLOW_NOT_NEGOTIATED.
-The function proceeds calling the chain function installed on @pad (see
-gst_pad_set_chain_function()) and the return value of that function is
-returned to the caller. #GST_FLOW_NOT_SUPPORTED is returned if @pad has no
-chain function.
-In all cases, success or failure, the caller loses its reference to @buffer
-after calling this function.
-MT safe.">
-        <return-value transfer-ownership="full">
-          <type name="FlowReturn" c:type="GstFlowReturn"/>
-        </return-value>
-        <parameters>
-          <parameter name="buffer" transfer-ownership="none">
-            <type name="Buffer" c:type="GstBuffer*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="chain_list"
-              c:identifier="gst_pad_chain_list"
-              doc="Chain a bufferlist to @pad.
-The function returns #GST_FLOW_WRONG_STATE if the pad was flushing.
-If the caps on the first buffer of @list are different from the current
-caps on @pad, this function will call any setcaps function
-(see gst_pad_set_setcaps_function()) installed on @pad. If the new caps
-are not acceptable for @pad, this function returns #GST_FLOW_NOT_NEGOTIATED.
-The function proceeds calling the chainlist function installed on @pad (see
-gst_pad_set_chain_list_function()) and the return value of that function is
-returned to the caller. #GST_FLOW_NOT_SUPPORTED is returned if @pad has no
-chainlist function.
-In all cases, success or failure, the caller loses its reference to @list
-after calling this function.
-MT safe."
-              version="0.10.24">
-        <return-value transfer-ownership="full">
-          <type name="FlowReturn" c:type="GstFlowReturn"/>
-        </return-value>
-        <parameters>
-          <parameter name="list" transfer-ownership="none">
-            <type name="BufferList" c:type="GstBufferList*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_range"
-              c:identifier="gst_pad_get_range"
-              doc="When @pad is flushing this function returns #GST_FLOW_WRONG_STATE
-immediatly.
-Calls the getrange function of @pad, see #GstPadGetRangeFunction for a
-description of a getrange function. If @pad has no getrange function
-installed (see gst_pad_set_getrange_function()) this function returns
-#GST_FLOW_NOT_SUPPORTED.
-This is a lowlevel function. Usualy gst_pad_pull_range() is used.
-MT safe.">
-        <return-value transfer-ownership="full">
-          <type name="FlowReturn" c:type="GstFlowReturn"/>
-        </return-value>
-        <parameters>
-          <parameter name="offset" transfer-ownership="none">
-            <type name="uint64" c:type="guint64"/>
-          </parameter>
-          <parameter name="size" transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
-          </parameter>
-          <parameter name="buffer" transfer-ownership="none">
-            <type name="Buffer" c:type="GstBuffer**"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="send_event"
-              c:identifier="gst_pad_send_event"
-              doc="Sends the event to the pad. This function can be used
-by applications to send events in the pipeline.
-If @pad is a source pad, @event should be an upstream event. If @pad is a
-sink pad, @event should be a downstream event. For example, you would not
-send a #GST_EVENT_EOS on a src pad; EOS events only propagate downstream.
-Furthermore, some downstream events have to be serialized with data flow,
-like EOS, while some can travel out-of-band, like #GST_EVENT_FLUSH_START. If
-the event needs to be serialized with data flow, this function will take the
-pad&apos;s stream lock while calling its event function.
-To find out whether an event type is upstream, downstream, or downstream and
-serialized, see #GstEventTypeFlags, gst_event_type_get_flags(),
-#GST_EVENT_IS_UPSTREAM, #GST_EVENT_IS_DOWNSTREAM, and
-#GST_EVENT_IS_SERIALIZED. Note that in practice that an application or
-plugin doesn&apos;t need to bother itself with this information; the core handles
-all necessary locks and checks.
-This function takes owership of the provided event so you should
-gst_event_ref() it if you want to reuse the event after this call.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="event" transfer-ownership="none">
-            <type name="Event" c:type="GstEvent*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="start_task"
-              c:identifier="gst_pad_start_task"
-              doc="Starts a task that repeatedly calls @func with @data. This function
-is mostly used in pad activation functions to start the dataflow.
-The #GST_PAD_STREAM_LOCK of @pad will automatically be acquired
-before @func is called.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="func"
-                     transfer-ownership="none"
-                     scope="call"
-                     closure="2">
-            <type name="TaskFunction" c:type="GstTaskFunction"/>
-          </parameter>
-          <parameter name="data" transfer-ownership="none">
-            <type name="any" c:type="gpointer"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="pause_task"
-              c:identifier="gst_pad_pause_task"
-              doc="Pause the task of @pad. This function will also wait until the
-function executed by the task is finished if this function is not
-called from the task function.
-has no task.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-      </method>
-      <method name="stop_task"
-              c:identifier="gst_pad_stop_task"
-              doc="Stop the task of @pad. This function will also make sure that the
-function executed by the task will effectively stop if not called
-from the GstTaskFunction.
-This function will deadlock if called from the GstTaskFunction of
-the task. Use gst_task_pause() instead.
-Regardless of whether the pad has a task, the stream lock is acquired and
-released so as to ensure that streaming through this pad has finished.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-      </method>
-      <method name="set_internal_link_function"
-              c:identifier="gst_pad_set_internal_link_function"
-              doc="Sets the given internal link function for the pad."
-              deprecated="Use the thread-safe gst_pad_set_iterate_internal_links_function()">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="intlink" transfer-ownership="none" scope="call">
-            <type name="PadIntLinkFunction" c:type="GstPadIntLinkFunction"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_internal_links"
-              c:identifier="gst_pad_get_internal_links"
-              doc="Gets a list of pads to which the given pad is linked to
-inside of the parent element.
-The caller must free this list after use.
-Not MT safe.
-could become invalid by the time the application accesses them. It&apos;s also
-possible that the list changes while handling the pads, which the caller of
-this function is unable to know. Use the thread-safe
-gst_pad_iterate_internal_links() instead."
-              deprecated="This function does not ref the pads in the list so that they">
-        <return-value transfer-ownership="full">
-          <type name="GLib.List" c:type="GList*"/>
-        </return-value>
-      </method>
-      <method name="get_internal_links_default"
-              c:identifier="gst_pad_get_internal_links_default"
-              doc="Gets a list of pads to which the given pad is linked to
-inside of the parent element.
-This is the default handler, and thus returns a list of all of the
-pads inside the parent element with opposite direction.
-The caller must free this list after use with g_list_free().
-Not MT safe.
-could become invalid by the time the application accesses them. It&apos;s also
-possible that the list changes while handling the pads, which the caller of
-this function is unable to know. Use the thread-safe
-gst_pad_iterate_internal_links_default() instead."
-              deprecated="This function does not ref the pads in the list so that they">
-        <return-value transfer-ownership="full">
-          <type name="GLib.List" c:type="GList*"/>
-        </return-value>
-      </method>
-      <method name="set_iterate_internal_links_function"
-              c:identifier="gst_pad_set_iterate_internal_links_function"
-              doc="Sets the given internal link iterator function for the pad."
-              version="0.10.21">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="iterintlink" transfer-ownership="none" scope="call">
-            <type name="PadIterIntLinkFunction"
-                  c:type="GstPadIterIntLinkFunction"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="iterate_internal_links"
-              c:identifier="gst_pad_iterate_internal_links"
-              doc="Gets an iterator for the pads to which the given pad is linked to inside
-of the parent element.
-Each #GstPad element yielded by the iterator will have its refcount increased,
-so unref after use.
-iterator function configured. Use gst_iterator_free() after usage."
-              version="0.10.21">
-        <return-value transfer-ownership="full">
-          <type name="Iterator" c:type="GstIterator*"/>
-        </return-value>
-      </method>
-      <method name="iterate_internal_links_default"
-              c:identifier="gst_pad_iterate_internal_links_default"
-              doc="Iterate the list of pads to which the given pad is linked to inside of
-the parent element.
-This is the default handler, and thus returns an iterator of all of the
-pads inside the parent element with opposite direction.
-The caller must free this iterator after use with gst_iterator_free().
-returned pad with gst_object_unref()."
-              version="0.10.21">
-        <return-value transfer-ownership="full">
-          <type name="Iterator" c:type="GstIterator*"/>
-        </return-value>
-      </method>
-      <method name="set_query_type_function"
-              c:identifier="gst_pad_set_query_type_function"
-              doc="Set the given query type function for the pad.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="type_func" transfer-ownership="none" scope="call">
-            <type name="PadQueryTypeFunction"
-                  c:type="GstPadQueryTypeFunction"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_query_types"
-              c:identifier="gst_pad_get_query_types"
-              doc="Get an array of supported queries that can be performed
-on this pad.">
-        <return-value transfer-ownership="none">
-          <type name="QueryType" c:type="GstQueryType*"/>
-        </return-value>
-      </method>
-      <method name="get_query_types_default"
-              c:identifier="gst_pad_get_query_types_default"
-              doc="Invoke the default dispatcher for the query types on
-the pad.
-internally-linked pads has a query types function.">
-        <return-value transfer-ownership="none">
-          <type name="QueryType" c:type="GstQueryType*"/>
-        </return-value>
-      </method>
-      <method name="query"
-              c:identifier="gst_pad_query"
-              doc="Dispatches a query to a pad. The query should have been allocated by the
-caller via one of the type-specific allocation functions in gstquery.h. The
-element is responsible for filling the query with an appropriate response,
-which should then be parsed with a type-specific query parsing function.
-Again, the caller is responsible for both the allocation and deallocation of
-the query structure.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="query" transfer-ownership="none">
-            <type name="Query" c:type="GstQuery*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="peer_query"
-              c:identifier="gst_pad_peer_query"
-              doc="Performs gst_pad_query() on the peer of @pad.
-The caller is responsible for both the allocation and deallocation of
-the query structure.
-if @pad has no peer."
-              version="0.10.15">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="query" transfer-ownership="none">
-            <type name="Query" c:type="GstQuery*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_query_function"
-              c:identifier="gst_pad_set_query_function"
-              doc="Set the given query function for the pad.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="query" transfer-ownership="none" scope="call">
-            <type name="PadQueryFunction" c:type="GstPadQueryFunction"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="query_default"
-              c:identifier="gst_pad_query_default"
-              doc="Invokes the default query handler for the given pad.
-The query is sent to all pads internally linked to @pad. Note that
-if there are many possible sink pads that are internally linked to
-Multi-sinkpad elements should implement custom query handlers.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="query" transfer-ownership="none">
-            <type name="Query" c:type="GstQuery*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="dispatcher"
-              c:identifier="gst_pad_dispatcher"
-              doc="Invokes the given dispatcher function on each respective peer of
-all pads that are internally linked to the given pad.
-The GstPadDispatcherFunction should return TRUE when no further pads
-need to be processed.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="dispatch"
-                     transfer-ownership="none"
-                     scope="call"
-                     closure="2">
-            <type name="PadDispatcherFunction"
-                  c:type="GstPadDispatcherFunction"/>
-          </parameter>
-          <parameter name="data" transfer-ownership="none">
-            <type name="any" c:type="gpointer"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="use_fixed_caps"
-              c:identifier="gst_pad_use_fixed_caps"
-              doc="A helper function you can use that sets the
-pad. This way the function will always return the negotiated caps
-or in case the pad is not negotiated, the padtemplate caps.
-Use this function on a pad that, once gst_pad_set_caps() has been called
-on it, cannot be renegotiated to something else.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </method>
-      <method name="get_fixed_caps_func"
-              c:identifier="gst_pad_get_fixed_caps_func"
-              doc="A helper function you can use as a GetCaps function that
-will return the currently negotiated caps or the padtemplate
-when NULL.">
-        <return-value transfer-ownership="full">
-          <type name="Caps" c:type="GstCaps*"/>
-        </return-value>
-      </method>
-      <method name="proxy_getcaps"
-              c:identifier="gst_pad_proxy_getcaps"
-              doc="Calls gst_pad_get_allowed_caps() for every other pad belonging to the
-same element as @pad, and returns the intersection of the results.
-This function is useful as a default getcaps function for an element
-that can handle any stream format, but requires all its pads to have
-the same caps.  Two such elements are tee and adder.">
-        <return-value transfer-ownership="full">
-          <type name="Caps" c:type="GstCaps*"/>
-        </return-value>
-      </method>
-      <method name="proxy_setcaps" c:identifier="gst_pad_proxy_setcaps">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="caps" transfer-ownership="none">
-            <type name="Caps" c:type="GstCaps*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_parent_element"
-              c:identifier="gst_pad_get_parent_element"
-              doc="Gets the parent of @pad, cast to a #GstElement. If a @pad has no parent or
-its parent is not an element, return NULL.
-unref when you&apos;re finished with it.
-MT safe.">
-        <return-value transfer-ownership="full">
-          <type name="Element" c:type="GstElement*"/>
-        </return-value>
-      </method>
-      <method name="query_position"
-              c:identifier="gst_pad_query_position"
-              doc="On return contains the #GstFormat used.
-Queries a pad for the stream position.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="format"
-                     direction="inout"
-                     transfer-ownership="full"
-                     doc="a pointer to the #GstFormat asked for.">
-            <type name="Format" c:type="GstFormat*"/>
-          </parameter>
-          <parameter name="cur"
-                     direction="out"
-                     transfer-ownership="full"
-                     doc="A location in which to store the current position, or NULL.">
-            <type name="int64" c:type="gint64*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="query_duration"
-              c:identifier="gst_pad_query_duration"
-              doc="On return contains the #GstFormat used.
-Queries a pad for the total stream duration.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="format" transfer-ownership="none">
-            <type name="Format" c:type="GstFormat*"/>
-          </parameter>
-          <parameter name="duration" direction="out" transfer-ownership="full">
-            <type name="int64" c:type="gint64*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="query_convert"
-              c:identifier="gst_pad_query_convert"
-              doc="Queries a pad to convert @src_val in @src_format to @dest_format.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="src_format" transfer-ownership="none">
-            <type name="Format" c:type="GstFormat"/>
-          </parameter>
-          <parameter name="src_val" transfer-ownership="none">
-            <type name="int64" c:type="gint64"/>
-          </parameter>
-          <parameter name="dest_format" transfer-ownership="none">
-            <type name="Format" c:type="GstFormat*"/>
-          </parameter>
-          <parameter name="dest_val" direction="out" transfer-ownership="full">
-            <type name="int64" c:type="gint64*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="query_peer_position"
-              c:identifier="gst_pad_query_peer_position"
-              doc="Must be a sink pad.
-On return contains the #GstFormat used.
-Queries the peer of a given sink pad for the stream position.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="format" transfer-ownership="none">
-            <type name="Format" c:type="GstFormat*"/>
-          </parameter>
-          <parameter name="cur" direction="out" transfer-ownership="full">
-            <type name="int64" c:type="gint64*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="query_peer_duration"
-              c:identifier="gst_pad_query_peer_duration"
-              doc="Must be a sink pad.
-On return contains the #GstFormat used.
-Queries the peer pad of a given sink pad for the total stream duration.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="format" transfer-ownership="none">
-            <type name="Format" c:type="GstFormat*"/>
-          </parameter>
-          <parameter name="duration" direction="out" transfer-ownership="full">
-            <type name="int64" c:type="gint64*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="query_peer_convert"
-              c:identifier="gst_pad_query_peer_convert"
-              doc="Must be a sink pad.
-Queries the peer pad of a given sink pad to convert @src_val in @src_format
-to @dest_format.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="src_format" transfer-ownership="none">
-            <type name="Format" c:type="GstFormat"/>
-          </parameter>
-          <parameter name="src_val" transfer-ownership="none">
-            <type name="int64" c:type="gint64"/>
-          </parameter>
-          <parameter name="dest_format" transfer-ownership="none">
-            <type name="Format" c:type="GstFormat*"/>
-          </parameter>
-          <parameter name="dest_val" direction="out" transfer-ownership="full">
-            <type name="int64" c:type="gint64*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="add_data_probe"
-              c:identifier="gst_pad_add_data_probe"
-              doc="Adds a &quot;data probe&quot; to a pad. This function will be called whenever data
-passes through a pad. In this case data means both events and buffers. The
-probe will be called with the data as an argument, meaning @handler should
-have the same callback signature as the #GstPad::have-data signal.
-Note that the data will have a reference count greater than 1, so it will
-be immutable -- you must not change it.
-For source pads, the probe will be called after the blocking function, if any
-(see gst_pad_set_blocked_async()), but before looking up the peer to chain
-to. For sink pads, the probe function will be called before configuring the
-sink with new caps, if any, and before calling the pad&apos;s chain function.
-Your data probe should return TRUE to let the data continue to flow, or FALSE
-to drop it. Dropping data is rarely useful, but occasionally comes in handy
-with events.
-Although probes are implemented internally by connecting @handler to the
-have-data signal on the pad, if you want to remove a probe it is insufficient
-to only call g_signal_handler_disconnect on the returned handler id. To
-remove a probe, use the appropriate function, such as
-gst_pad_remove_data_probe().">
-        <return-value transfer-ownership="none">
-          <type name="ulong" c:type="gulong"/>
-        </return-value>
-        <parameters>
-          <parameter name="handler"
-                     transfer-ownership="none"
-                     scope="call"
-                     closure="2">
-            <type name="GObject.Callback" c:type="GCallback"/>
-          </parameter>
-          <parameter name="data" transfer-ownership="none">
-            <type name="any" c:type="gpointer"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="add_data_probe_full"
-              c:identifier="gst_pad_add_data_probe_full"
-              doc="Adds a &quot;data probe&quot; to a pad. This function will be called whenever data
-passes through a pad. In this case data means both events and buffers. The
-probe will be called with the data as an argument, meaning @handler should
-have the same callback signature as the #GstPad::have-data signal.
-Note that the data will have a reference count greater than 1, so it will
-be immutable -- you must not change it.
-For source pads, the probe will be called after the blocking function, if any
-(see gst_pad_set_blocked_async()), but before looking up the peer to chain
-to. For sink pads, the probe function will be called before configuring the
-sink with new caps, if any, and before calling the pad&apos;s chain function.
-Your data probe should return TRUE to let the data continue to flow, or FALSE
-to drop it. Dropping data is rarely useful, but occasionally comes in handy
-with events.
-Although probes are implemented internally by connecting @handler to the
-have-data signal on the pad, if you want to remove a probe it is insufficient
-to only call g_signal_handler_disconnect on the returned handler id. To
-remove a probe, use the appropriate function, such as
-gst_pad_remove_data_probe().
-The @notify function is called when the probe is disconnected and usually
-used to free @data."
-              version="0.10.20">
-        <return-value transfer-ownership="none">
-          <type name="ulong" c:type="gulong"/>
-        </return-value>
-        <parameters>
-          <parameter name="handler"
-                     transfer-ownership="none"
-                     scope="notified"
-                     closure="2"
-                     destroy="3">
-            <type name="GObject.Callback" c:type="GCallback"/>
-          </parameter>
-          <parameter name="data" transfer-ownership="none">
-            <type name="any" c:type="gpointer"/>
-          </parameter>
-          <parameter name="notify" transfer-ownership="none" scope="call">
-            <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="remove_data_probe"
-              c:identifier="gst_pad_remove_data_probe"
-              doc="Removes a data probe from @pad.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="handler_id" transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="add_event_probe"
-              c:identifier="gst_pad_add_event_probe"
-              doc="Adds a probe that will be called for all events passing through a pad. See
-gst_pad_add_data_probe() for more information.">
-        <return-value transfer-ownership="none">
-          <type name="ulong" c:type="gulong"/>
-        </return-value>
-        <parameters>
-          <parameter name="handler"
-                     transfer-ownership="none"
-                     scope="call"
-                     closure="2">
-            <type name="GObject.Callback" c:type="GCallback"/>
-          </parameter>
-          <parameter name="data" transfer-ownership="none">
-            <type name="any" c:type="gpointer"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="add_event_probe_full"
-              c:identifier="gst_pad_add_event_probe_full"
-              doc="Adds a probe that will be called for all events passing through a pad. See
-gst_pad_add_data_probe() for more information.
-The @notify function is called when the probe is disconnected and usually
-used to free @data."
-              version="0.10.20">
-        <return-value transfer-ownership="none">
-          <type name="ulong" c:type="gulong"/>
-        </return-value>
-        <parameters>
-          <parameter name="handler"
-                     transfer-ownership="none"
-                     scope="notified"
-                     closure="2"
-                     destroy="3">
-            <type name="GObject.Callback" c:type="GCallback"/>
-          </parameter>
-          <parameter name="data" transfer-ownership="none">
-            <type name="any" c:type="gpointer"/>
-          </parameter>
-          <parameter name="notify" transfer-ownership="none" scope="call">
-            <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="remove_event_probe"
-              c:identifier="gst_pad_remove_event_probe"
-              doc="Removes an event probe from @pad.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="handler_id" transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="add_buffer_probe"
-              c:identifier="gst_pad_add_buffer_probe"
-              doc="Adds a probe that will be called for all buffers passing through a pad. See
-gst_pad_add_data_probe() for more information.">
-        <return-value transfer-ownership="none">
-          <type name="ulong" c:type="gulong"/>
-        </return-value>
-        <parameters>
-          <parameter name="handler"
-                     transfer-ownership="none"
-                     scope="call"
-                     closure="2">
-            <type name="GObject.Callback" c:type="GCallback"/>
-          </parameter>
-          <parameter name="data" transfer-ownership="none">
-            <type name="any" c:type="gpointer"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="add_buffer_probe_full"
-              c:identifier="gst_pad_add_buffer_probe_full"
-              doc="Adds a probe that will be called for all buffers passing through a pad. See
-gst_pad_add_data_probe() for more information.
-The @notify function is called when the probe is disconnected and usually
-used to free @data."
-              version="0.10.20">
-        <return-value transfer-ownership="none">
-          <type name="ulong" c:type="gulong"/>
-        </return-value>
-        <parameters>
-          <parameter name="handler"
-                     transfer-ownership="none"
-                     scope="notified"
-                     closure="2"
-                     destroy="3">
-            <type name="GObject.Callback" c:type="GCallback"/>
-          </parameter>
-          <parameter name="data" transfer-ownership="none">
-            <type name="any" c:type="gpointer"/>
-          </parameter>
-          <parameter name="notify" transfer-ownership="none" scope="call">
-            <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="remove_buffer_probe"
-              c:identifier="gst_pad_remove_buffer_probe"
-              doc="Removes a buffer probe from @pad.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="handler_id" transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
-          </parameter>
-        </parameters>
-      </method>
-      <property name="caps">
-        <type name="Caps" c:type="GstCaps"/>
-      </property>
-      <property name="direction" writable="1" construct-only="1">
-        <type name="PadDirection" c:type="GstPadDirection"/>
-      </property>
-      <property name="template" writable="1">
-        <type name="PadTemplate" c:type="GstPadTemplate"/>
-      </property>
-      <field name="object">
-        <type name="Object" c:type="GstObject"/>
-      </field>
-      <field name="element_private">
-        <type name="any" c:type="gpointer"/>
-      </field>
-      <field name="padtemplate">
-        <type name="PadTemplate" c:type="GstPadTemplate*"/>
-      </field>
-      <field name="direction">
-        <type name="PadDirection" c:type="GstPadDirection"/>
-      </field>
-      <field name="stream_rec_lock">
-        <type name="GLib.StaticRecMutex" c:type="GStaticRecMutex*"/>
-      </field>
-      <field name="task">
-        <type name="Task" c:type="GstTask*"/>
-      </field>
-      <field name="preroll_lock">
-        <type name="GLib.Mutex" c:type="GMutex*"/>
-      </field>
-      <field name="preroll_cond">
-        <type name="GLib.Cond" c:type="GCond*"/>
-      </field>
-      <field name="block_cond">
-        <type name="GLib.Cond" c:type="GCond*"/>
-      </field>
-      <field name="block_callback">
-        <type name="PadBlockCallback" c:type="GstPadBlockCallback"/>
-      </field>
-      <field name="block_data">
-        <type name="any" c:type="gpointer"/>
-      </field>
-      <field name="caps">
-        <type name="Caps" c:type="GstCaps*"/>
-      </field>
-      <field name="getcapsfunc">
-        <type name="PadGetCapsFunction" c:type="GstPadGetCapsFunction"/>
-      </field>
-      <field name="setcapsfunc">
-        <type name="PadSetCapsFunction" c:type="GstPadSetCapsFunction"/>
-      </field>
-      <field name="acceptcapsfunc">
-        <type name="PadAcceptCapsFunction" c:type="GstPadAcceptCapsFunction"/>
-      </field>
-      <field name="fixatecapsfunc">
-        <type name="PadFixateCapsFunction" c:type="GstPadFixateCapsFunction"/>
-      </field>
-      <field name="activatefunc">
-        <type name="PadActivateFunction" c:type="GstPadActivateFunction"/>
-      </field>
-      <field name="activatepushfunc">
-        <type name="PadActivateModeFunction"
-              c:type="GstPadActivateModeFunction"/>
-      </field>
-      <field name="activatepullfunc">
-        <type name="PadActivateModeFunction"
-              c:type="GstPadActivateModeFunction"/>
-      </field>
-      <field name="linkfunc">
-        <type name="PadLinkFunction" c:type="GstPadLinkFunction"/>
-      </field>
-      <field name="unlinkfunc">
-        <type name="PadUnlinkFunction" c:type="GstPadUnlinkFunction"/>
-      </field>
-      <field name="peer">
-        <type name="Pad" c:type="GstPad*"/>
-      </field>
-      <field name="sched_private">
-        <type name="any" c:type="gpointer"/>
-      </field>
-      <field name="chainfunc">
-        <type name="PadChainFunction" c:type="GstPadChainFunction"/>
-      </field>
-      <field name="checkgetrangefunc">
-        <type name="PadCheckGetRangeFunction"
-              c:type="GstPadCheckGetRangeFunction"/>
-      </field>
-      <field name="getrangefunc">
-        <type name="PadGetRangeFunction" c:type="GstPadGetRangeFunction"/>
-      </field>
-      <field name="eventfunc">
-        <type name="PadEventFunction" c:type="GstPadEventFunction"/>
-      </field>
-      <field name="mode">
-        <type name="ActivateMode" c:type="GstActivateMode"/>
-      </field>
-      <field name="querytypefunc">
-        <type name="PadQueryTypeFunction" c:type="GstPadQueryTypeFunction"/>
-      </field>
-      <field name="queryfunc">
-        <type name="PadQueryFunction" c:type="GstPadQueryFunction"/>
-      </field>
-      <field name="intlinkfunc">
-        <type name="PadIntLinkFunction" c:type="GstPadIntLinkFunction"/>
-      </field>
-      <field name="bufferallocfunc">
-        <type name="PadBufferAllocFunction"
-              c:type="GstPadBufferAllocFunction"/>
-      </field>
-      <field name="do_buffer_signals">
-        <type name="int" c:type="gint"/>
-      </field>
-      <field name="do_event_signals">
-        <type name="int" c:type="gint"/>
-      </field>
-      <field name="iterintlinkfunc">
-        <type name="PadIterIntLinkFunction"
-              c:type="GstPadIterIntLinkFunction"/>
-      </field>
-      <field name="block_destroy_data">
-        <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
-      </field>
-      <union name="abidata" c:type="abidata">
-        <record name="ABI" c:type="ABI">
-          <field name="block_callback_called" writable="1">
-            <type name="boolean" c:type="gboolean"/>
-          </field>
-          <field name="priv" writable="1">
-            <type name="PadPrivate" c:type="GstPadPrivate*"/>
-          </field>
-        </record>
-        <field name="_gst_reserved" writable="1">
-          <array zero-terminated="0" c:type="gpointer" fixed-size="2">
-            <type name="any"/>
-          </array>
-        </field>
-      </union>
-      <glib:signal name="have-data"
-                   doc="Signals that new data is available on the pad. This signal is used
-internally for implementing pad probes.
-See gst_pad_add_*_probe functions.">
-        <return-value transfer-ownership="full">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="mini_obj" transfer-ownership="none">
-            <type name="MiniObject" c:type="GstMiniObject"/>
-          </parameter>
-        </parameters>
-      </glib:signal>
-      <glib:signal name="linked"
-                   doc="Signals that a pad has been linked to the peer pad.">
-        <return-value transfer-ownership="full">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="peer" transfer-ownership="none">
-            <type name="Pad" c:type="GstPad"/>
-          </parameter>
-        </parameters>
-      </glib:signal>
-      <glib:signal name="request-link"
-                   doc="Signals that a pad connection has been requested.">
-        <return-value transfer-ownership="full">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </glib:signal>
-      <glib:signal name="unlinked"
-                   doc="Signals that a pad has been unlinked from the peer pad.">
-        <return-value transfer-ownership="full">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="peer" transfer-ownership="none">
-            <type name="Pad" c:type="GstPad"/>
-          </parameter>
-        </parameters>
-      </glib:signal>
-    </class>
-    <callback name="PadAcceptCapsFunction"
-              c:type="GstPadAcceptCapsFunction"
-              doc="Check if @pad can accept @caps. By default this function will see if @caps
-intersect with the result from gst_pad_get_caps() by can be overridden to
-perform extra checks.">
-      <return-value transfer-ownership="none">
-        <type name="boolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="pad" transfer-ownership="none">
-          <type name="Pad" c:type="GstPad*"/>
-        </parameter>
-        <parameter name="caps" transfer-ownership="none">
-          <type name="Caps" c:type="GstCaps*"/>
-        </parameter>
-      </parameters>
-    </callback>
-    <callback name="PadActivateFunction"
-              c:type="GstPadActivateFunction"
-              doc="This function is called when the pad is activated during the element
-READY to PAUSED state change. By default this function will call the
-activate function that puts the pad in push mode but elements can
-override this function to activate the pad in pull mode if they wish.">
-      <return-value transfer-ownership="none">
-        <type name="boolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="pad" transfer-ownership="none">
-          <type name="Pad" c:type="GstPad*"/>
-        </parameter>
-      </parameters>
-    </callback>
-    <callback name="PadActivateModeFunction"
-              c:type="GstPadActivateModeFunction"
-              doc="The prototype of the push and pull activate functions.">
-      <return-value transfer-ownership="none">
-        <type name="boolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="pad" transfer-ownership="none">
-          <type name="Pad" c:type="GstPad*"/>
-        </parameter>
-        <parameter name="active" transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </parameter>
-      </parameters>
-    </callback>
-    <callback name="PadBlockCallback"
-              c:type="GstPadBlockCallback"
-              doc="Callback used by gst_pad_set_blocked_async(). Gets called when the blocking
-operation succeeds.">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="pad" transfer-ownership="none">
-          <type name="Pad" c:type="GstPad*"/>
-        </parameter>
-        <parameter name="blocked" transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </parameter>
-        <parameter name="user_data" transfer-ownership="none" closure="2">
-          <type name="any" c:type="gpointer"/>
-        </parameter>
-      </parameters>
-    </callback>
-    <callback name="PadBufferAllocFunction"
-              c:type="GstPadBufferAllocFunction"
-              doc="Ask the sinkpad @pad to allocate a buffer with @offset, @size and @caps.
-The result will be stored in @buf.
-The purpose of this function is to allocate a buffer that is optimal to
-be processed by @pad. The function is mostly overridden by elements that can
-provide a hardware buffer in order to avoid additional memcpy operations.
-The function can return a buffer that has caps different from the requested
-new caps.
-If a format change was requested, the returned buffer will be one to hold
-the data of said new caps, so its size might be different from the requested
-When this function returns anything else than #GST_FLOW_OK, the buffer allocation
-failed and @buf does not contain valid data. If the function returns #GST_FLOW_OK and
-the @buf is NULL, a #GstBuffer will be created with @caps, @offset and @size.
-By default this function returns a new buffer of @size and with @caps containing
-purely malloced data. The buffer should be freed with gst_buffer_unref()
-after usage.
-value means @buf does not hold a valid buffer.">
-      <return-value transfer-ownership="full">
-        <type name="FlowReturn" c:type="GstFlowReturn"/>
-      </return-value>
-      <parameters>
-        <parameter name="pad" transfer-ownership="none">
-          <type name="Pad" c:type="GstPad*"/>
-        </parameter>
-        <parameter name="offset" transfer-ownership="none">
-          <type name="uint64" c:type="guint64"/>
-        </parameter>
-        <parameter name="size" transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
-        </parameter>
-        <parameter name="caps" transfer-ownership="none">
-          <type name="Caps" c:type="GstCaps*"/>
-        </parameter>
-        <parameter name="buf" transfer-ownership="none">
-          <type name="Buffer" c:type="GstBuffer**"/>
-        </parameter>
-      </parameters>
-    </callback>
-    <callback name="PadChainFunction"
-              c:type="GstPadChainFunction"
-              doc="A function that will be called on sinkpads when chaining buffers.
-The function typically processes the data contained in the buffer and
-either consumes the data or passes it on to the internally linked pad(s).
-The implementer of this function receives a refcount to @buffer and should
-gst_buffer_unref() when the buffer is no longer needed.
-When a chain function detects an error in the data stream, it must post an
-error on the bus and return an appropriate #GstFlowReturn value.">
-      <return-value transfer-ownership="full">
-        <type name="FlowReturn" c:type="GstFlowReturn"/>
-      </return-value>
-      <parameters>
-        <parameter name="pad" transfer-ownership="none">
-          <type name="Pad" c:type="GstPad*"/>
-        </parameter>
-        <parameter name="buffer" transfer-ownership="none">
-          <type name="Buffer" c:type="GstBuffer*"/>
-        </parameter>
-      </parameters>
-    </callback>
-    <callback name="PadChainListFunction"
-              c:type="GstPadChainListFunction"
-              doc="A function that will be called on sinkpads when chaining buffer lists.
-The function typically processes the data contained in the buffer list and
-either consumes the data or passes it on to the internally linked pad(s).
-The implementer of this function receives a refcount to @list and
-should gst_buffer_list_unref() when the list is no longer needed.
-When a chainlist function detects an error in the data stream, it must
-post an error on the bus and return an appropriate #GstFlowReturn value.">
-      <return-value transfer-ownership="full">
-        <type name="FlowReturn" c:type="GstFlowReturn"/>
-      </return-value>
-      <parameters>
-        <parameter name="pad" transfer-ownership="none">
-          <type name="Pad" c:type="GstPad*"/>
-        </parameter>
-        <parameter name="list" transfer-ownership="none">
-          <type name="BufferList" c:type="GstBufferList*"/>
-        </parameter>
-      </parameters>
-    </callback>
-    <callback name="PadCheckGetRangeFunction"
-              c:type="GstPadCheckGetRangeFunction"
-              doc="Check if @pad can be activated in pull mode.
-This function will be deprecated after 0.10; use the seeking query to check
-if a pad can support random access.">
-      <return-value transfer-ownership="none">
-        <type name="boolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="pad" transfer-ownership="none">
-          <type name="Pad" c:type="GstPad*"/>
-        </parameter>
-      </parameters>
-    </callback>
-    <record name="PadClass"
-            c:type="GstPadClass"
-            glib:is-gtype-struct-for="Pad">
-      <field name="parent_class">
-        <type name="ObjectClass" c:type="GstObjectClass"/>
-      </field>
-      <field name="linked">
-        <callback name="linked" c:type="linked">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="pad" transfer-ownership="none">
-              <type name="Pad" c:type="GstPad*"/>
-            </parameter>
-            <parameter name="peer" transfer-ownership="none">
-              <type name="Pad" c:type="GstPad*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="unlinked">
-        <callback name="unlinked" c:type="unlinked">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="pad" transfer-ownership="none">
-              <type name="Pad" c:type="GstPad*"/>
-            </parameter>
-            <parameter name="peer" transfer-ownership="none">
-              <type name="Pad" c:type="GstPad*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="request_link">
-        <callback name="request_link" c:type="request_link">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="pad" transfer-ownership="none">
-              <type name="Pad" c:type="GstPad*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="have_data">
-        <callback name="have_data" c:type="have_data">
-          <return-value transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </return-value>
-          <parameters>
-            <parameter name="pad" transfer-ownership="none">
-              <type name="Pad" c:type="GstPad*"/>
-            </parameter>
-            <parameter name="data" transfer-ownership="none">
-              <type name="MiniObject" c:type="GstMiniObject*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="_gst_reserved">
-        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
-          <type name="any"/>
-        </array>
-      </field>
-    </record>
-    <enumeration name="PadDirection"
-                 doc="The direction of a pad."
-                 c:type="GstPadDirection">
-      <member name="unknown" value="0" c:identifier="GST_PAD_UNKNOWN"/>
-      <member name="src" value="1" c:identifier="GST_PAD_SRC"/>
-      <member name="sink" value="2" c:identifier="GST_PAD_SINK"/>
-    </enumeration>
-    <callback name="PadDispatcherFunction"
-              c:type="GstPadDispatcherFunction"
-              doc="A dispatcher function is called for all internally linked pads, see
-gst_pad_dispatcher().">
-      <return-value transfer-ownership="none">
-        <type name="boolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="pad" transfer-ownership="none">
-          <type name="Pad" c:type="GstPad*"/>
-        </parameter>
-        <parameter name="data" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
-        </parameter>
-      </parameters>
-    </callback>
-    <callback name="PadEventFunction"
-              c:type="GstPadEventFunction"
-              doc="Function signature to handle an event for the pad.">
-      <return-value transfer-ownership="none">
-        <type name="boolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="pad" transfer-ownership="none">
-          <type name="Pad" c:type="GstPad*"/>
-        </parameter>
-        <parameter name="event" transfer-ownership="none">
-          <type name="Event" c:type="GstEvent*"/>
-        </parameter>
-      </parameters>
-    </callback>
-    <callback name="PadFixateCapsFunction"
-              c:type="GstPadFixateCapsFunction"
-              doc="Given possibly unfixed caps @caps, let @pad use its default prefered
-format to make a fixed caps. @caps should be writable. By default this
-function will pick the first value of any ranges or lists in the caps but
-elements can override this function to perform other behaviour.">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="pad" transfer-ownership="none">
-          <type name="Pad" c:type="GstPad*"/>
-        </parameter>
-        <parameter name="caps" transfer-ownership="none">
-          <type name="Caps" c:type="GstCaps*"/>
-        </parameter>
-      </parameters>
-    </callback>
-    <bitfield name="PadFlags" doc="Pad state flags" c:type="GstPadFlags">
-      <member name="blocked" value="16" c:identifier="GST_PAD_BLOCKED"/>
-      <member name="flushing" value="32" c:identifier="GST_PAD_FLUSHING"/>
-      <member name="in_getcaps" value="64" c:identifier="GST_PAD_IN_GETCAPS"/>
-      <member name="in_setcaps" value="128" c:identifier="GST_PAD_IN_SETCAPS"/>
-      <member name="blocking" value="256" c:identifier="GST_PAD_BLOCKING"/>
-      <member name="flag_last" value="4096" c:identifier="GST_PAD_FLAG_LAST"/>
-    </bitfield>
-    <callback name="PadGetCapsFunction"
-              c:type="GstPadGetCapsFunction"
-              doc="Returns a copy of the capabilities of the specified pad. By default this
-function will return the pad template capabilities, but can optionally
-be overridden by elements.">
-      <return-value transfer-ownership="full">
-        <type name="Caps" c:type="GstCaps*"/>
-      </return-value>
-      <parameters>
-        <parameter name="pad" transfer-ownership="none">
-          <type name="Pad" c:type="GstPad*"/>
-        </parameter>
-      </parameters>
-    </callback>
-    <callback name="PadGetRangeFunction"
-              c:type="GstPadGetRangeFunction"
-              doc="This function will be called on source pads when a peer element
-request a buffer at the specified @offset and @length. If this function
-returns #GST_FLOW_OK, the result buffer will be stored in @buffer. The
-contents of @buffer is invalid for any other return value.
-This function is installed on a source pad with
-gst_pad_set_getrange_function() and can only be called on source pads after
-they are successfully activated with gst_pad_activate_pull().
-between 0 and the length in bytes of the data available on @pad. The
-length (duration in bytes) can be retrieved with a #GST_QUERY_DURATION or with a
-#GST_QUERY_SEEKING.
-Any @offset larger or equal than the length will make the function return
-#GST_FLOW_UNEXPECTED, which corresponds to EOS. In this case @buffer does not
-contain a valid buffer.
-The buffer size of @buffer might be smaller than @length when @offset is near
-the end of the stream.
-It is allowed to call this function with a 0 @length and valid @offset, in
-which case @buffer will contain a 0-sized buffer and the function returns
-#GST_FLOW_OK.
-When this function is called with a -1 @offset, the sequentially next buffer
-of length @length in the stream is returned.
-When this function is called with a -1 @length, a buffer with a default
-optimal length is returned in @buffer. The length might depend on the value
-of @offset.">
-      <return-value transfer-ownership="full">
-        <type name="FlowReturn" c:type="GstFlowReturn"/>
-      </return-value>
-      <parameters>
-        <parameter name="pad" transfer-ownership="none">
-          <type name="Pad" c:type="GstPad*"/>
-        </parameter>
-        <parameter name="offset" transfer-ownership="none">
-          <type name="uint64" c:type="guint64"/>
-        </parameter>
-        <parameter name="length" transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
-        </parameter>
-        <parameter name="buffer" transfer-ownership="none">
-          <type name="Buffer" c:type="GstBuffer**"/>
-        </parameter>
-      </parameters>
-    </callback>
-    <callback name="PadIntLinkFunction"
-              c:type="GstPadIntLinkFunction"
-              doc="The signature of the internal pad link function.
-the inside of the parent element.
-The caller must call g_list_free() on it after use."
-              deprecated="use the threadsafe #GstPadIterIntLinkFunction instead.">
-      <return-value transfer-ownership="full">
-        <type name="GLib.List" c:type="GList*"/>
-      </return-value>
-      <parameters>
-        <parameter name="pad" transfer-ownership="none">
-          <type name="Pad" c:type="GstPad*"/>
-        </parameter>
-      </parameters>
-    </callback>
-    <callback name="PadIterIntLinkFunction"
-              c:type="GstPadIterIntLinkFunction"
-              doc="The signature of the internal pad link iterator function.
-linked to the given pad on the inside of the parent element.
-the caller must call gst_iterator_free() after usage.
-Since 0.10.21">
-      <return-value transfer-ownership="full">
-        <type name="Iterator" c:type="GstIterator*"/>
-      </return-value>
-      <parameters>
-        <parameter name="pad" transfer-ownership="none">
-          <type name="Pad" c:type="GstPad*"/>
-        </parameter>
-      </parameters>
-    </callback>
-    <callback name="PadLinkFunction" c:type="GstPadLinkFunction">
-      <return-value transfer-ownership="full">
-        <type name="PadLinkReturn" c:type="GstPadLinkReturn"/>
-      </return-value>
-      <parameters>
-        <parameter name="pad" transfer-ownership="none">
-          <type name="Pad" c:type="GstPad*"/>
-        </parameter>
-        <parameter name="peer" transfer-ownership="none">
-          <type name="Pad" c:type="GstPad*"/>
-        </parameter>
-      </parameters>
-    </callback>
-    <enumeration name="PadLinkReturn"
-                 doc="Result values from gst_pad_link and friends."
-                 c:type="GstPadLinkReturn">
-      <member name="ok" value="0" c:identifier="GST_PAD_LINK_OK"/>
-      <member name="wrong_hierarchy"
-              value="-1"
-              c:identifier="GST_PAD_LINK_WRONG_HIERARCHY"/>
-      <member name="was_linked"
-              value="-2"
-              c:identifier="GST_PAD_LINK_WAS_LINKED"/>
-      <member name="wrong_direction"
-              value="-3"
-              c:identifier="GST_PAD_LINK_WRONG_DIRECTION"/>
-      <member name="noformat" value="-4" c:identifier="GST_PAD_LINK_NOFORMAT"/>
-      <member name="nosched" value="-5" c:identifier="GST_PAD_LINK_NOSCHED"/>
-      <member name="refused" value="-6" c:identifier="GST_PAD_LINK_REFUSED"/>
-    </enumeration>
-    <enumeration name="PadPresence"
-                 doc="gst_element_get_request_pad().
-Indicates when this pad will become available."
-                 c:type="GstPadPresence">
-      <member name="always" value="0" c:identifier="GST_PAD_ALWAYS"/>
-      <member name="sometimes" value="1" c:identifier="GST_PAD_SOMETIMES"/>
-      <member name="request" value="2" c:identifier="GST_PAD_REQUEST"/>
-    </enumeration>
-    <record name="PadPrivate" c:type="GstPadPrivate">
-    </record>
-    <callback name="PadQueryFunction"
-              c:type="GstPadQueryFunction"
-              doc="The signature of the query function.">
-      <return-value transfer-ownership="none">
-        <type name="boolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="pad" transfer-ownership="none">
-          <type name="Pad" c:type="GstPad*"/>
-        </parameter>
-        <parameter name="query" transfer-ownership="none">
-          <type name="Query" c:type="GstQuery*"/>
-        </parameter>
-      </parameters>
-    </callback>
-    <callback name="PadQueryTypeFunction"
-              c:type="GstPadQueryTypeFunction"
-              doc="The signature of the query types function.">
-      <return-value transfer-ownership="none">
-        <type name="QueryType" c:type="GstQueryType*"/>
-      </return-value>
-      <parameters>
-        <parameter name="pad" transfer-ownership="none">
-          <type name="Pad" c:type="GstPad*"/>
-        </parameter>
-      </parameters>
-    </callback>
-    <callback name="PadSetCapsFunction"
-              c:type="GstPadSetCapsFunction"
-              doc="Set @caps on @pad. By default this function updates the caps of the
-pad but the function can be overriden by elements to perform extra
-actions or verifications.">
-      <return-value transfer-ownership="none">
-        <type name="boolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="pad" transfer-ownership="none">
-          <type name="Pad" c:type="GstPad*"/>
-        </parameter>
-        <parameter name="caps" transfer-ownership="none">
-          <type name="Caps" c:type="GstCaps*"/>
-        </parameter>
-      </parameters>
-    </callback>
-    <class name="PadTemplate"
-           c:type="GstPadTemplate"
-           doc="The padtemplate object."
-           parent="Object"
-           glib:type-name="GstPadTemplate"
-           glib:get-type="gst_pad_template_get_type"
-           glib:type-struct="PadTemplateClass">
-      <constructor name="new"
-                   c:identifier="gst_pad_template_new"
-                   doc="Creates a new pad template with a name according to the given template
-and with the given arguments. This functions takes ownership of the provided
-caps, so be sure to not use them afterwards.">
-        <return-value transfer-ownership="full">
-          <type name="PadTemplate" c:type="GstPadTemplate*"/>
-        </return-value>
-        <parameters>
-          <parameter name="name_template" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="direction" transfer-ownership="none">
-            <type name="PadDirection" c:type="GstPadDirection"/>
-          </parameter>
-          <parameter name="presence" transfer-ownership="none">
-            <type name="PadPresence" c:type="GstPadPresence"/>
-          </parameter>
-          <parameter name="caps" transfer-ownership="none">
-            <type name="Caps" c:type="GstCaps*"/>
-          </parameter>
-        </parameters>
-      </constructor>
-      <method name="get_caps"
-              c:identifier="gst_pad_template_get_caps"
-              doc="Gets the capabilities of the pad template.
-the caps, take a ref (see gst_caps_ref ()).">
-        <return-value transfer-ownership="full">
-          <type name="Caps" c:type="GstCaps*"/>
-        </return-value>
-      </method>
-      <method name="pad_created"
-              c:identifier="gst_pad_template_pad_created"
-              doc="Emit the pad-created signal for this template when created by this pad.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="pad" transfer-ownership="none">
-            <type name="Pad" c:type="GstPad*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <property name="caps" writable="1" construct-only="1">
-        <type name="Caps" c:type="GstCaps"/>
-      </property>
-      <property name="direction" writable="1" construct-only="1">
-        <type name="PadDirection" c:type="GstPadDirection"/>
-      </property>
-      <property name="name-template" writable="1" construct-only="1">
-        <type name="utf8" c:type="gchararray"/>
-      </property>
-      <property name="presence" writable="1" construct-only="1">
-        <type name="PadPresence" c:type="GstPadPresence"/>
-      </property>
-      <field name="object">
-        <type name="Object" c:type="GstObject"/>
-      </field>
-      <field name="name_template">
-        <type name="utf8" c:type="gchar*"/>
-      </field>
-      <field name="direction">
-        <type name="PadDirection" c:type="GstPadDirection"/>
-      </field>
-      <field name="presence">
-        <type name="PadPresence" c:type="GstPadPresence"/>
-      </field>
-      <field name="caps">
-        <type name="Caps" c:type="GstCaps*"/>
-      </field>
-      <field name="_gst_reserved">
-        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
-          <type name="any"/>
-        </array>
-      </field>
-      <glib:signal name="pad-created"
-                   doc="This signal is fired when an element creates a pad from this template.">
-        <return-value transfer-ownership="full">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="pad" transfer-ownership="none">
-            <type name="Pad" c:type="GstPad"/>
-          </parameter>
-        </parameters>
-      </glib:signal>
-    </class>
-    <record name="PadTemplateClass"
-            c:type="GstPadTemplateClass"
-            glib:is-gtype-struct-for="PadTemplate">
-      <field name="parent_class">
-        <type name="ObjectClass" c:type="GstObjectClass"/>
-      </field>
-      <field name="pad_created">
-        <callback name="pad_created" c:type="pad_created">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="templ" transfer-ownership="none">
-              <type name="PadTemplate" c:type="GstPadTemplate*"/>
-            </parameter>
-            <parameter name="pad" transfer-ownership="none">
-              <type name="Pad" c:type="GstPad*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="_gst_reserved">
-        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
-          <type name="any"/>
-        </array>
-      </field>
-    </record>
-    <bitfield name="PadTemplateFlags"
-              doc="Flags for the padtemplate"
-              c:type="GstPadTemplateFlags">
-      <member name="fixed" value="16" c:identifier="GST_PAD_TEMPLATE_FIXED"/>
-      <member name="flag_last"
-              value="256"
-              c:identifier="GST_PAD_TEMPLATE_FLAG_LAST"/>
-    </bitfield>
-    <callback name="PadUnlinkFunction" c:type="GstPadUnlinkFunction">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="pad" transfer-ownership="none">
-          <type name="Pad" c:type="GstPad*"/>
-        </parameter>
-      </parameters>
-    </callback>
-    <record name="ParamSpecFraction"
-            c:type="GstParamSpecFraction"
-            doc="A GParamSpec derived structure that contains the meta data for fractional
-properties.">
-      <field name="parent_instance" writable="1">
-        <type name="GObject.ParamSpec" c:type="GParamSpec"/>
-      </field>
-      <field name="min_num" writable="1">
-        <type name="int" c:type="gint"/>
-      </field>
-      <field name="min_den" writable="1">
-        <type name="int" c:type="gint"/>
-      </field>
-      <field name="max_num" writable="1">
-        <type name="int" c:type="gint"/>
-      </field>
-      <field name="max_den" writable="1">
-        <type name="int" c:type="gint"/>
-      </field>
-      <field name="def_num" writable="1">
-        <type name="int" c:type="gint"/>
-      </field>
-      <field name="def_den" writable="1">
-        <type name="int" c:type="gint"/>
-      </field>
-    </record>
-    <record name="ParamSpecMiniObject"
-            c:type="GstParamSpecMiniObject"
-            doc="A %GParamSpec derived structure that contains the meta data
-for %GstMiniObject properties.">
-      <field name="parent_instance" writable="1">
-        <type name="GObject.ParamSpec" c:type="GParamSpec"/>
-      </field>
-    </record>
-    <record name="ParseContext"
-            c:type="GstParseContext"
-            doc="Opaque structure."
-            version="0.10.20">
-      <constructor name="new"
-                   c:identifier="gst_parse_context_new"
-                   doc="Allocates a parse context for use with gst_parse_launch_full() or
-gst_parse_launchv_full().
-when no longer needed."
-                   version="0.10.20">
-        <return-value transfer-ownership="full">
-          <type name="ParseContext" c:type="GstParseContext*"/>
-        </return-value>
-      </constructor>
-      <method name="get_missing_elements"
-              c:identifier="gst_parse_context_get_missing_elements"
-              doc="Retrieve missing elements from a previous run of gst_parse_launch_full()
-or gst_parse_launchv_full(). Will only return results if an error code
-of %GST_PARSE_ERROR_NO_SUCH_ELEMENT was returned.
-missing elements. Free with g_strfreev() when no longer needed."
-              version="0.10.20">
-        <return-value transfer-ownership="full">
-          <array c:type="gchar**">
-            <type name="utf8"/>
-          </array>
-        </return-value>
-      </method>
-      <method name="free"
-              c:identifier="gst_parse_context_free"
-              doc="Frees a parse context previously allocated with gst_parse_context_new()."
-              version="0.10.20">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </method>
-    </record>
-    <enumeration name="ParseError"
-                 doc="The different parsing errors that can occur."
-                 c:type="GstParseError"
-                 glib:error-quark="gst_parse_error_quark">
-      <member name="syntax" value="0" c:identifier="GST_PARSE_ERROR_SYNTAX"/>
-      <member name="no_such_element"
-              value="1"
-              c:identifier="GST_PARSE_ERROR_NO_SUCH_ELEMENT"/>
-      <member name="no_such_property"
-              value="2"
-              c:identifier="GST_PARSE_ERROR_NO_SUCH_PROPERTY"/>
-      <member name="link" value="3" c:identifier="GST_PARSE_ERROR_LINK"/>
-      <member name="could_not_set_property"
-              value="4"
-              c:identifier="GST_PARSE_ERROR_COULD_NOT_SET_PROPERTY"/>
-      <member name="empty_bin"
-              value="5"
-              c:identifier="GST_PARSE_ERROR_EMPTY_BIN"/>
-      <member name="empty" value="6" c:identifier="GST_PARSE_ERROR_EMPTY"/>
-    </enumeration>
-    <bitfield name="ParseFlags"
-              doc="(default behaviour is to return partially constructed bins or elements
-in some cases)
-Parsing options."
-              version="0.10.20"
-              c:type="GstParseFlags">
-      <member name="none" value="0" c:identifier="GST_PARSE_FLAG_NONE"/>
-      <member name="fatal_errors"
-              value="1"
-              c:identifier="GST_PARSE_FLAG_FATAL_ERRORS"/>
-    </bitfield>
-    <class name="Pipeline"
-           c:type="GstPipeline"
-           doc="GST_PIPELINE_FLAG_FIXED_CLOCK is set.
-property would be the running_time, the total time spent in the
-PLAYING state without being flushed. (deprecated, use the start_time
-on GstElement).
-when setting elements to PLAYING.
-The #GstPipeline structure."
-           parent="Bin"
-           glib:type-name="GstPipeline"
-           glib:get-type="gst_pipeline_get_type"
-           glib:type-struct="PipelineClass">
-      <implements name="ChildProxy"/>
-      <constructor name="new"
-                   c:identifier="gst_pipeline_new"
-                   doc="Create a new pipeline with the given name.
-MT safe.">
-        <return-value transfer-ownership="full">
-          <type name="Pipeline" c:type="GstElement*"/>
-        </return-value>
-        <parameters>
-          <parameter name="name" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </constructor>
-      <method name="get_bus"
-              c:identifier="gst_pipeline_get_bus"
-              doc="Gets the #GstBus of @pipeline. The bus allows applications to receive
-#GstMessage packets.
-MT safe.">
-        <return-value transfer-ownership="full">
-          <type name="Bus" c:type="GstBus*"/>
-        </return-value>
-      </method>
-      <method name="set_new_stream_time"
-              c:identifier="gst_pipeline_set_new_stream_time"
-              doc="Set the new start time of @pipeline to @time. The start time is used to
-set the base time on the elements (see gst_element_set_base_time())
-in the PAUSED-&gt;PLAYING state transition.
-Setting @time to #GST_CLOCK_TIME_NONE will disable the pipeline&apos;s management
-of element base time. The application will then be responsible for
-performing base time distribution. This is sometimes useful if you want to
-synchronize capture from multiple pipelines, and you can also ensure that the
-pipelines have the same clock.
-MT safe.
-gst_element_set_start_time()."
-              deprecated="This function has the wrong name and is equivalent to">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="time" transfer-ownership="none">
-            <type name="ClockTime" c:type="GstClockTime"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_last_stream_time"
-              c:identifier="gst_pipeline_get_last_stream_time"
-              doc="Gets the last running time of @pipeline. If the pipeline is PLAYING,
-the returned time is the running time used to configure the element&apos;s
-base time in the PAUSED-&gt;PLAYING state. If the pipeline is PAUSED, the
-returned time is the running time when the pipeline was paused.
-This function returns #GST_CLOCK_TIME_NONE if the pipeline was
-configured to not handle the management of the element&apos;s base time
-(see gst_pipeline_set_new_stream_time()).
-MT safe.
-gst_element_get_start_time()."
-              deprecated="This function has the wrong name and is equivalent to">
-        <return-value transfer-ownership="full">
-          <type name="ClockTime" c:type="GstClockTime"/>
-        </return-value>
-      </method>
-      <method name="use_clock"
-              c:identifier="gst_pipeline_use_clock"
-              doc="Force @pipeline to use the given @clock. The pipeline will
-always use the given clock even if new clock providers are added
-to this pipeline.
-If @clock is NULL all clocking will be disabled which will make
-the pipeline run as fast as possible.
-MT safe.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="clock" transfer-ownership="none">
-            <type name="Clock" c:type="GstClock*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_clock"
-              c:identifier="gst_pipeline_set_clock"
-              doc="Set the clock for @pipeline. The clock will be distributed
-to all the elements managed by the pipeline.
-some element did not accept the clock.
-MT safe.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="clock" transfer-ownership="none">
-            <type name="Clock" c:type="GstClock*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_clock"
-              c:identifier="gst_pipeline_get_clock"
-              doc="Gets the current clock used by @pipeline.">
-        <return-value transfer-ownership="full">
-          <type name="Clock" c:type="GstClock*"/>
-        </return-value>
-      </method>
-      <method name="auto_clock"
-              c:identifier="gst_pipeline_auto_clock"
-              doc="Let @pipeline select a clock automatically. This is the default
-behaviour.
-Use this function if you previous forced a fixed clock with
-gst_pipeline_use_clock() and want to restore the default
-pipeline clock selection algorithm.
-MT safe.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </method>
-      <method name="set_delay"
-              c:identifier="gst_pipeline_set_delay"
-              doc="Set the expected delay needed for all elements to perform the
-PAUSED to PLAYING state change. @delay will be added to the
-base time of the elements so that they wait an additional @delay
-amount of time before starting to process buffers and cannot be
-#GST_CLOCK_TIME_NONE.
-This option is used for tuning purposes and should normally not be
-used.
-MT safe."
-              version="0.10.5">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="delay" transfer-ownership="none">
-            <type name="ClockTime" c:type="GstClockTime"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_delay"
-              c:identifier="gst_pipeline_get_delay"
-              doc="Get the configured delay (see gst_pipeline_set_delay()).
-MT safe."
-              version="0.10.5">
-        <return-value transfer-ownership="full">
-          <type name="ClockTime" c:type="GstClockTime"/>
-        </return-value>
-      </method>
-      <method name="set_auto_flush_bus"
-              c:identifier="gst_pipeline_set_auto_flush_bus"
-              doc="the pipeline goes from READY to NULL state
-Usually, when a pipeline goes from READY to NULL state, it automatically
-flushes all pending messages on the bus, which is done for refcounting
-purposes, to break circular references.
-This means that applications that update state using (async) bus messages
-(e.g. do certain things when a pipeline goes from PAUSED to READY) might
-not get to see messages when the pipeline is shut down, because they might
-be flushed before they can be dispatched in the main thread. This behaviour
-can be disabled using this function.
-It is important that all messages on the bus are handled when the
-automatic flushing is disabled else memory leaks will be introduced.
-MT safe."
-              version="0.10.4">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="auto_flush" transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_auto_flush_bus"
-              c:identifier="gst_pipeline_get_auto_flush_bus"
-              doc="Check if @pipeline will automatically flush messages when going to
-the NULL state.
-going from READY to NULL state or not.
-MT safe."
-              version="0.10.4">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-      </method>
-      <property name="auto-flush-bus"
-                version="0.10.4"
-                writable="1"
-                doc="Whether or not to automatically flush all messages on the
-pipeline&apos;s bus when going from READY to NULL state. Please see
-gst_pipeline_set_auto_flush_bus() for more information on this option.">
-        <type name="boolean" c:type="gboolean"/>
-      </property>
-      <property name="delay" writable="1">
-        <type name="uint64" c:type="guint64"/>
-      </property>
-      <field name="bin">
-        <type name="Bin" c:type="GstBin"/>
-      </field>
-      <field name="fixed_clock">
-        <type name="Clock" c:type="GstClock*"/>
-      </field>
-      <field name="stream_time">
-        <type name="ClockTime" c:type="GstClockTime"/>
-      </field>
-      <field name="delay">
-        <type name="ClockTime" c:type="GstClockTime"/>
-      </field>
-      <field name="priv">
-        <type name="PipelinePrivate" c:type="GstPipelinePrivate*"/>
-      </field>
-      <field name="_gst_reserved">
-        <array zero-terminated="0" c:type="gpointer" fixed-size="3">
-          <type name="any"/>
-        </array>
-      </field>
-    </class>
-    <record name="PipelineClass"
-            c:type="GstPipelineClass"
-            glib:is-gtype-struct-for="Pipeline">
-      <field name="parent_class">
-        <type name="BinClass" c:type="GstBinClass"/>
-      </field>
-      <field name="_gst_reserved">
-        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
-          <type name="any"/>
-        </array>
-      </field>
-    </record>
-    <bitfield name="PipelineFlags"
-              doc="Pipeline flags"
-              c:type="GstPipelineFlags">
-      <member name="fixed_clock"
-              value="33554432"
-              c:identifier="GST_PIPELINE_FLAG_FIXED_CLOCK"/>
-      <member name="last"
-              value="536870912"
-              c:identifier="GST_PIPELINE_FLAG_LAST"/>
-    </bitfield>
-    <record name="PipelinePrivate" c:type="GstPipelinePrivate">
-    </record>
-    <class name="Plugin"
-           c:type="GstPlugin"
-           doc="The plugin object"
-           parent="Object"
-           glib:type-name="GstPlugin"
-           glib:get-type="gst_plugin_get_type"
-           glib:type-struct="PluginClass">
-      <function name="register_static"
-                c:identifier="gst_plugin_register_static"
-                doc="plugin was compiled for, you can just use GST_VERSION_MAJOR here
-plugin was compiled for, you can just use GST_VERSION_MINOR here
-library-specific namespace prefix in order to avoid name conflicts in
-case a similar plugin with the same name ever gets added to GStreamer)
-(see #GstPluginDesc above) or the plugin will not be registered.
-Registers a static plugin, ie. a plugin which is private to an application
-or library and contained within the application or library (as opposed to
-being shipped as a separate module file).
-You must make sure that GStreamer has been initialised (with gst_init() or
-via gst_init_get_option_group()) before calling this function."
-                version="0.10.16">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="major_version" transfer-ownership="none">
-            <type name="int" c:type="gint"/>
-          </parameter>
-          <parameter name="minor_version" transfer-ownership="none">
-            <type name="int" c:type="gint"/>
-          </parameter>
-          <parameter name="name" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="description" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="init_func" transfer-ownership="none" scope="call">
-            <type name="PluginInitFunc" c:type="GstPluginInitFunc"/>
-          </parameter>
-          <parameter name="version" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="license" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="source" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="package" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="origin" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </function>
-      <function name="register_static_full"
-                c:identifier="gst_plugin_register_static_full"
-                doc="plugin was compiled for, you can just use GST_VERSION_MAJOR here
-plugin was compiled for, you can just use GST_VERSION_MINOR here
-library-specific namespace prefix in order to avoid name conflicts in
-case a similar plugin with the same name ever gets added to GStreamer)
-(see #GstPluginDesc above) or the plugin will not be registered.
-Registers a static plugin, ie. a plugin which is private to an application
-or library and contained within the application or library (as opposed to
-being shipped as a separate module file) with a #GstPluginInitFullFunc
-which allows user data to be passed to the callback function (useful
-for bindings).
-You must make sure that GStreamer has been initialised (with gst_init() or
-via gst_init_get_option_group()) before calling this function."
-                version="0.10.24">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="major_version" transfer-ownership="none">
-            <type name="int" c:type="gint"/>
-          </parameter>
-          <parameter name="minor_version" transfer-ownership="none">
-            <type name="int" c:type="gint"/>
-          </parameter>
-          <parameter name="name" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="description" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="init_full_func"
-                     transfer-ownership="none"
-                     scope="call">
-            <type name="PluginInitFullFunc" c:type="GstPluginInitFullFunc"/>
-          </parameter>
-          <parameter name="version" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="license" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="source" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="package" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="origin" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="user_data" transfer-ownership="none">
-            <type name="any" c:type="gpointer"/>
-          </parameter>
-        </parameters>
-      </function>
-      <function name="load_file"
-                c:identifier="gst_plugin_load_file"
-                doc="Loads the given plugin and refs it.  Caller needs to unref after use.
-newly-loaded GstPlugin, or NULL if an error occurred."
-                throws="1">
-        <return-value transfer-ownership="full">
-          <type name="Plugin" c:type="GstPlugin*"/>
-        </return-value>
-        <parameters>
-          <parameter name="filename" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </function>
-      <function name="load_by_name"
-                c:identifier="gst_plugin_load_by_name"
-                doc="Load the named plugin. Refs the plugin.">
-        <return-value transfer-ownership="full">
-          <type name="Plugin" c:type="GstPlugin*"/>
-        </return-value>
-        <parameters>
-          <parameter name="name" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </function>
-      <function name="list_free"
-                c:identifier="gst_plugin_list_free"
-                doc="Unrefs each member of @list, then frees the list.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="list" transfer-ownership="none">
-            <type name="GLib.List" c:type="GList*"/>
-          </parameter>
-        </parameters>
-      </function>
-      <method name="get_name"
-              c:identifier="gst_plugin_get_name"
-              doc="Get the short name of the plugin">
-        <return-value transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </return-value>
-      </method>
-      <method name="get_description"
-              c:identifier="gst_plugin_get_description"
-              doc="Get the long descriptive name of the plugin">
-        <return-value transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </return-value>
-      </method>
-      <method name="get_filename"
-              c:identifier="gst_plugin_get_filename"
-              doc="get the filename of the plugin">
-        <return-value transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </return-value>
-      </method>
-      <method name="get_version"
-              c:identifier="gst_plugin_get_version"
-              doc="get the version of the plugin">
-        <return-value transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </return-value>
-      </method>
-      <method name="get_license"
-              c:identifier="gst_plugin_get_license"
-              doc="get the license of the plugin">
-        <return-value transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </return-value>
-      </method>
-      <method name="get_source"
-              c:identifier="gst_plugin_get_source"
-              doc="get the source module the plugin belongs to.">
-        <return-value transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </return-value>
-      </method>
-      <method name="get_package"
-              c:identifier="gst_plugin_get_package"
-              doc="get the package the plugin belongs to.">
-        <return-value transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </return-value>
-      </method>
-      <method name="get_origin"
-              c:identifier="gst_plugin_get_origin"
-              doc="get the URL where the plugin comes from">
-        <return-value transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </return-value>
-      </method>
-      <method name="get_cache_data"
-              c:identifier="gst_plugin_get_cache_data"
-              doc="Gets the plugin specific data cache. If it is %NULL there is no cached data
-stored. This is the case when the registry is getting rebuilt."
-              version="0.10.24">
-        <return-value transfer-ownership="none">
-          <type name="Structure" c:type="GstStructure*"/>
-        </return-value>
-      </method>
-      <method name="set_cache_data"
-              c:identifier="gst_plugin_set_cache_data"
-              doc="Adds plugin specific data to cache. Passes the ownership of the structure to
-the @plugin.
-The cache is flushed every time the registry is rebuilt."
-              version="0.10.24">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="cache_data" transfer-ownership="none">
-            <type name="Structure" c:type="GstStructure*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_module"
-              c:identifier="gst_plugin_get_module"
-              doc="Gets the #GModule of the plugin. If the plugin isn&apos;t loaded yet, NULL is
-returned.
-loaded yet.">
-        <return-value transfer-ownership="full">
-          <type name="GModule.Module" c:type="GModule*"/>
-        </return-value>
-      </method>
-      <method name="is_loaded"
-              c:identifier="gst_plugin_is_loaded"
-              doc="queries if the plugin is loaded into memory">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-      </method>
-      <method name="name_filter"
-              c:identifier="gst_plugin_name_filter"
-              doc="A standard filter that returns TRUE when the plugin is of the
-given name.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="name" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="load"
-              c:identifier="gst_plugin_load"
-              doc="Loads @plugin. Note that the *return value* is the loaded plugin; @plugin is
-untouched. The normal use pattern of this function goes like this:
-&lt;programlisting&gt;
-GstPlugin *loaded_plugin;
-loaded_plugin = gst_plugin_load (plugin);
-// presumably, we&apos;re no longer interested in the potentially-unloaded plugin
-gst_object_unref (plugin);
-plugin = loaded_plugin;
-&lt;/programlisting&gt;">
-        <return-value transfer-ownership="full">
-          <type name="Plugin" c:type="GstPlugin*"/>
-        </return-value>
-      </method>
-      <method name="add_dependency"
-              c:identifier="gst_plugin_add_dependency"
-              doc="feature set of the plugin (e.g. an environment variable containing
-paths where to look for additional modules/plugins of a library),
-or NULL. Environment variable names may be followed by a path component
-which will be added to the content of the environment variable, e.g.
-&quot;HOME/.mystuff/plugins&quot;.
-may be.
-depending on @flags) to be used in combination with the paths from
-Make GStreamer aware of external dependencies which affect the feature
-set of this plugin (ie. the elements or typefinders associated with it).
-GStreamer will re-inspect plugins with external dependencies whenever any
-of the external dependencies change. This is useful for plugins which wrap
-other plugin systems, e.g. a plugin which wraps a plugin-based visualisation
-library and makes visualisations available as GStreamer elements, or a
-codec loader which exposes elements and/or caps dependent on what external
-codec libraries are currently installed."
-              version="0.10.22">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="env_vars" transfer-ownership="none">
-            <array c:type="gchar**">
-              <type name="utf8"/>
-            </array>
-          </parameter>
-          <parameter name="paths" transfer-ownership="none">
-            <array c:type="gchar**">
-              <type name="utf8"/>
-            </array>
-          </parameter>
-          <parameter name="names" transfer-ownership="none">
-            <array c:type="gchar**">
-              <type name="utf8"/>
-            </array>
-          </parameter>
-          <parameter name="flags" transfer-ownership="none">
-            <type name="PluginDependencyFlags"
-                  c:type="GstPluginDependencyFlags"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="add_dependency_simple"
-              c:identifier="gst_plugin_add_dependency_simple"
-              doc="or NULL. Environment variable names may be followed by a path component
-which will be added to the content of the environment variable, e.g.
-&quot;HOME/.mystuff/plugins:MYSTUFF_PLUGINS_PATH&quot;
-or NULL
-Make GStreamer aware of external dependencies which affect the feature
-set of this plugin (ie. the elements or typefinders associated with it).
-GStreamer will re-inspect plugins with external dependencies whenever any
-of the external dependencies change. This is useful for plugins which wrap
-other plugin systems, e.g. a plugin which wraps a plugin-based visualisation
-library and makes visualisations available as GStreamer elements, or a
-codec loader which exposes elements and/or caps dependent on what external
-codec libraries are currently installed.
-Convenience wrapper function for gst_plugin_add_dependency() which
-takes simple strings as arguments instead of string arrays, with multiple
-arguments separated by predefined delimiters (see above)."
-              version="0.10.22">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="env_vars" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="paths" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="names" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="flags" transfer-ownership="none">
-            <type name="PluginDependencyFlags"
-                  c:type="GstPluginDependencyFlags"/>
-          </parameter>
-        </parameters>
-      </method>
-      <field name="object">
-        <type name="Object" c:type="GstObject"/>
-      </field>
-      <field name="desc">
-        <type name="PluginDesc" c:type="GstPluginDesc"/>
-      </field>
-      <field name="orig_desc">
-        <type name="PluginDesc" c:type="GstPluginDesc*"/>
-      </field>
-      <field name="flags">
-        <type name="uint" c:type="unsigned"/>
-      </field>
-      <field name="filename">
-        <type name="utf8" c:type="gchar*"/>
-      </field>
-      <field name="basename">
-        <type name="utf8" c:type="gchar*"/>
-      </field>
-      <field name="module">
-        <type name="GModule.Module" c:type="GModule*"/>
-      </field>
-      <field name="file_size">
-        <type name="size_t" c:type="off_t"/>
-      </field>
-      <field name="file_mtime">
-        <type name="time_t" c:type="time_t"/>
-      </field>
-      <field name="registered">
-        <type name="boolean" c:type="gboolean"/>
-      </field>
-      <field name="priv">
-        <type name="PluginPrivate" c:type="GstPluginPrivate*"/>
-      </field>
-      <field name="_gst_reserved">
-        <array zero-terminated="0" c:type="gpointer" fixed-size="3">
-          <type name="any"/>
-        </array>
-      </field>
-    </class>
-    <record name="PluginClass"
-            c:type="GstPluginClass"
-            glib:is-gtype-struct-for="Plugin">
-      <field name="object_class">
-        <type name="ObjectClass" c:type="GstObjectClass"/>
-      </field>
-      <field name="_gst_reserved">
-        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
-          <type name="any"/>
-        </array>
-      </field>
-    </record>
-    <bitfield name="PluginDependencyFlags"
-              doc="argument only if none of the environment variables is set
-filename argument as filter suffix and check all matching files in
-the directory
-Flags used in connection with gst_plugin_add_dependency()."
-              version="0.10.22"
-              c:type="GstPluginDependencyFlags">
-      <member name="none"
-              value="0"
-              c:identifier="GST_PLUGIN_DEPENDENCY_FLAG_NONE"/>
-      <member name="recurse"
-              value="1"
-              c:identifier="GST_PLUGIN_DEPENDENCY_FLAG_RECURSE"/>
-      <member name="paths_are_default_only"
-              value="2"
-              c:identifier="GST_PLUGIN_DEPENDENCY_FLAG_PATHS_ARE_DEFAULT_ONLY"/>
-      <member name="file_name_is_suffix"
-              value="4"
-              c:identifier="GST_PLUGIN_DEPENDENCY_FLAG_FILE_NAME_IS_SUFFIX"/>
-    </bitfield>
-    <record name="PluginDesc"
-            c:type="GstPluginDesc"
-            doc="A plugin should export a variable of this type called plugin_desc. The plugin
-loader will use the data provided there to initialize the plugin.
-BSD, MIT/X11, Proprietary, unknown.">
-      <field name="major_version" writable="1">
-        <type name="int" c:type="gint"/>
-      </field>
-      <field name="minor_version" writable="1">
-        <type name="int" c:type="gint"/>
-      </field>
-      <field name="name" writable="1">
-        <type name="utf8" c:type="gchar*"/>
-      </field>
-      <field name="description" writable="1">
-        <type name="utf8" c:type="gchar*"/>
-      </field>
-      <field name="plugin_init" writable="1">
-        <type name="PluginInitFunc" c:type="GstPluginInitFunc"/>
-      </field>
-      <field name="version" writable="1">
-        <type name="utf8" c:type="gchar*"/>
-      </field>
-      <field name="license" writable="1">
-        <type name="utf8" c:type="gchar*"/>
-      </field>
-      <field name="source" writable="1">
-        <type name="utf8" c:type="gchar*"/>
-      </field>
-      <field name="package" writable="1">
-        <type name="utf8" c:type="gchar*"/>
-      </field>
-      <field name="origin" writable="1">
-        <type name="utf8" c:type="gchar*"/>
-      </field>
-      <field name="_gst_reserved" writable="1">
-        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
-          <type name="any"/>
-        </array>
-      </field>
-    </record>
-    <enumeration name="PluginError"
-                 doc="The plugin loading errors"
-                 c:type="GstPluginError"
-                 glib:error-quark="gst_plugin_error_quark">
-      <member name="module" value="0" c:identifier="GST_PLUGIN_ERROR_MODULE"/>
-      <member name="dependencies"
-              value="1"
-              c:identifier="GST_PLUGIN_ERROR_DEPENDENCIES"/>
-      <member name="name_mismatch"
-              value="2"
-              c:identifier="GST_PLUGIN_ERROR_NAME_MISMATCH"/>
-    </enumeration>
-    <class name="PluginFeature"
-           c:type="GstPluginFeature"
-           doc="Opaque #GstPluginFeature structure."
-           parent="Object"
-           abstract="1"
-           glib:type-name="GstPluginFeature"
-           glib:get-type="gst_plugin_feature_get_type"
-           glib:type-struct="PluginFeatureClass">
-      <function name="list_free"
-                c:identifier="gst_plugin_feature_list_free"
-                doc="Unrefs each member of @list, then frees the list.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="list" transfer-ownership="none">
-            <type name="GLib.List" c:type="GList*"/>
-          </parameter>
-        </parameters>
-      </function>
-      <function name="list_copy"
-                c:identifier="gst_plugin_feature_list_copy"
-                doc="Copies the list of features. Caller should call @gst_plugin_feature_list_free
-when done with the list."
-                version="0.10.26">
-        <return-value transfer-ownership="full">
-          <type name="GLib.List" c:type="GList*"/>
-        </return-value>
-        <parameters>
-          <parameter name="list" transfer-ownership="none">
-            <type name="GLib.List" c:type="GList*"/>
-          </parameter>
-        </parameters>
-      </function>
-      <method name="load"
-              c:identifier="gst_plugin_feature_load"
-              doc="Loads the plugin containing @feature if it&apos;s not already loaded. @feature is
-unaffected; use the return value instead.
-Normally this function is used like this:
-|[
-GstPluginFeature *loaded_feature;
-loaded_feature = gst_plugin_feature_load (feature);
-// presumably, we&apos;re no longer interested in the potentially-unloaded feature
-gst_object_unref (feature);
-feature = loaded_feature;
-]|">
-        <return-value transfer-ownership="full">
-          <type name="PluginFeature" c:type="GstPluginFeature*"/>
-        </return-value>
-      </method>
-      <method name="type_name_filter"
-              c:identifier="gst_plugin_feature_type_name_filter"
-              doc="Compares type and name of plugin feature. Can be used with gst_filter_run().">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="data" transfer-ownership="none">
-            <type name="TypeNameData" c:type="GstTypeNameData*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_rank"
-              c:identifier="gst_plugin_feature_set_rank"
-              doc="Specifies a rank for a plugin feature, so that autoplugging uses
-the most appropriate feature.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="rank" transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_name"
-              c:identifier="gst_plugin_feature_set_name"
-              doc="Sets the name of a plugin feature. The name uniquely identifies a feature
-within all features of the same type. Renaming a plugin feature is not
-allowed. A copy is made of the name so you should free the supplied @name
-after calling this function.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="name" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_rank"
-              c:identifier="gst_plugin_feature_get_rank"
-              doc="Gets the rank of a plugin feature.">
-        <return-value transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
-        </return-value>
-      </method>
-      <method name="get_name"
-              c:identifier="gst_plugin_feature_get_name"
-              doc="Gets the name of a plugin feature.">
-        <return-value transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </return-value>
-      </method>
-      <method name="check_version"
-              c:identifier="gst_plugin_feature_check_version"
-              doc="Checks whether the given plugin feature is at least
-the required version
-the required version, otherwise #FALSE.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="min_major" transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
-          </parameter>
-          <parameter name="min_minor" transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
-          </parameter>
-          <parameter name="min_micro" transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
-          </parameter>
-        </parameters>
-      </method>
-      <field name="object">
-        <type name="Object" c:type="GstObject"/>
-      </field>
-      <field name="loaded">
-        <type name="boolean" c:type="gboolean"/>
-      </field>
-      <field name="name">
-        <type name="utf8" c:type="gchar*"/>
-      </field>
-      <field name="rank">
-        <type name="uint" c:type="guint"/>
-      </field>
-      <field name="plugin_name">
-        <type name="utf8" c:type="gchar*"/>
-      </field>
-      <field name="_gst_reserved">
-        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
-          <type name="any"/>
-        </array>
-      </field>
-    </class>
-    <record name="PluginFeatureClass"
-            c:type="GstPluginFeatureClass"
-            glib:is-gtype-struct-for="PluginFeature">
-      <field name="parent_class">
-        <type name="ObjectClass" c:type="GstObjectClass"/>
-      </field>
-      <field name="_gst_reserved">
-        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
-          <type name="any"/>
-        </array>
-      </field>
-    </record>
-    <callback name="PluginFeatureFilter"
-              c:type="GstPluginFeatureFilter"
-              doc="gst_registry_feature_filter()
-A function that can be used with e.g. gst_registry_feature_filter()
-to get a list of pluginfeature that match certain criteria.">
-      <return-value transfer-ownership="none">
-        <type name="boolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="feature" transfer-ownership="none">
-          <type name="PluginFeature" c:type="GstPluginFeature*"/>
-        </parameter>
-        <parameter name="user_data" transfer-ownership="none" closure="1">
-          <type name="any" c:type="gpointer"/>
-        </parameter>
-      </parameters>
-    </callback>
-    <callback name="PluginFilter"
-              c:type="GstPluginFilter"
-              doc="A function that can be used with e.g. gst_registry_plugin_filter()
-to get a list of plugins that match certain criteria.">
-      <return-value transfer-ownership="none">
-        <type name="boolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="plugin" transfer-ownership="none">
-          <type name="Plugin" c:type="GstPlugin*"/>
-        </parameter>
-        <parameter name="user_data" transfer-ownership="none" closure="1">
-          <type name="any" c:type="gpointer"/>
-        </parameter>
-      </parameters>
-    </callback>
-    <bitfield name="PluginFlags"
-              doc="The plugin loading state"
-              c:type="GstPluginFlags">
-      <member name="cached" value="1" c:identifier="GST_PLUGIN_FLAG_CACHED"/>
-      <member name="blacklisted"
-              value="2"
-              c:identifier="GST_PLUGIN_FLAG_BLACKLISTED"/>
-    </bitfield>
-    <callback name="PluginInitFullFunc"
-              c:type="GstPluginInitFullFunc"
-              doc="A plugin should provide a pointer to a function of either #GstPluginInitFunc
-or this type in the plugin_desc struct.
-The function will be called by the loader at startup. One would then
-register each #GstPluginFeature. This version allows
-user data to be passed to init function (useful for bindings)."
-              version="0.10.24">
-      <return-value transfer-ownership="none">
-        <type name="boolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="plugin" transfer-ownership="none">
-          <type name="Plugin" c:type="GstPlugin*"/>
-        </parameter>
-        <parameter name="user_data" transfer-ownership="none" closure="1">
-          <type name="any" c:type="gpointer"/>
-        </parameter>
-      </parameters>
-    </callback>
-    <callback name="PluginInitFunc"
-              c:type="GstPluginInitFunc"
-              doc="A plugin should provide a pointer to a function of this type in the
-plugin_desc struct.
-This function will be called by the loader at startup. One would then
-register each #GstPluginFeature.">
-      <return-value transfer-ownership="none">
-        <type name="boolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="plugin" transfer-ownership="none">
-          <type name="Plugin" c:type="GstPlugin*"/>
-        </parameter>
-      </parameters>
-    </callback>
-    <record name="PluginPrivate" c:type="GstPluginPrivate">
-    </record>
-    <record name="Poll"
-            c:type="GstPoll"
-            doc="A set of file/network descriptors.">
-      <constructor name="new"
-                   c:identifier="gst_poll_new"
-                   doc="Create a new file descriptor set. If @controllable, it
-is possible to restart or flush a call to gst_poll_wait() with
-gst_poll_restart() and gst_poll_set_flushing() respectively.
-gst_poll_free()."
-                   version="0.10.18">
-        <return-value transfer-ownership="full">
-          <type name="Poll" c:type="GstPoll*"/>
-        </return-value>
-        <parameters>
-          <parameter name="controllable" transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </parameter>
-        </parameters>
-      </constructor>
-      <constructor name="new_timer"
-                   c:identifier="gst_poll_new_timer"
-                   doc="Create a new poll object that can be used for scheduling cancellable
-timeouts.
-A timeout is performed with gst_poll_wait(). Multiple timeouts can be
-performed from different threads.
-gst_poll_free()."
-                   version="0.10.23">
-        <return-value transfer-ownership="full">
-          <type name="Poll" c:type="GstPoll*"/>
-        </return-value>
-      </constructor>
-      <method name="free"
-              c:identifier="gst_poll_free"
-              doc="Free a file descriptor set."
-              version="0.10.18">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </method>
-      <method name="add_fd"
-              c:identifier="gst_poll_add_fd"
-              doc="Add a file descriptor to the file descriptor set."
-              version="0.10.18">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="fd" transfer-ownership="none">
-            <type name="PollFD" c:type="GstPollFD*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="remove_fd"
-              c:identifier="gst_poll_remove_fd"
-              doc="Remove a file descriptor from the file descriptor set."
-              version="0.10.18">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="fd" transfer-ownership="none">
-            <type name="PollFD" c:type="GstPollFD*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="fd_ctl_write"
-              c:identifier="gst_poll_fd_ctl_write"
-              doc="Control whether the descriptor @fd in @set will be monitored for
-writability."
-              version="0.10.18">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="fd" transfer-ownership="none">
-            <type name="PollFD" c:type="GstPollFD*"/>
-          </parameter>
-          <parameter name="active" transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="fd_ctl_read"
-              c:identifier="gst_poll_fd_ctl_read"
-              doc="Control whether the descriptor @fd in @set will be monitored for
-readability."
-              version="0.10.18">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="fd" transfer-ownership="none">
-            <type name="PollFD" c:type="GstPollFD*"/>
-          </parameter>
-          <parameter name="active" transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="fd_ignored"
-              c:identifier="gst_poll_fd_ignored"
-              doc="Mark @fd as ignored so that the next call to gst_poll_wait() will yield
-the same result for @fd as last time. This function must be called if no
-operation (read/write/recv/send/etc.) will be performed on @fd before
-the next call to gst_poll_wait().
-The reason why this is needed is because the underlying implementation
-might not allow querying the fd more than once between calls to one of
-the re-enabling operations."
-              version="0.10.18">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="fd" transfer-ownership="none">
-            <type name="PollFD" c:type="GstPollFD*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="fd_has_closed"
-              c:identifier="gst_poll_fd_has_closed"
-              doc="Check if @fd in @set has closed the connection."
-              version="0.10.18">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="fd" transfer-ownership="none">
-            <type name="PollFD" c:type="GstPollFD*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="fd_has_error"
-              c:identifier="gst_poll_fd_has_error"
-              doc="Check if @fd in @set has an error."
-              version="0.10.18">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="fd" transfer-ownership="none">
-            <type name="PollFD" c:type="GstPollFD*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="fd_can_read"
-              c:identifier="gst_poll_fd_can_read"
-              doc="Check if @fd in @set has data to be read."
-              version="0.10.18">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="fd" transfer-ownership="none">
-            <type name="PollFD" c:type="GstPollFD*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="fd_can_write"
-              c:identifier="gst_poll_fd_can_write"
-              doc="Check if @fd in @set can be used for writing."
-              version="0.10.18">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="fd" transfer-ownership="none">
-            <type name="PollFD" c:type="GstPollFD*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="wait"
-              c:identifier="gst_poll_wait"
-              doc="Wait for activity on the file descriptors in @set. This function waits up to
-the specified @timeout.  A timeout of #GST_CLOCK_TIME_NONE waits forever.
-For #GstPoll objects created with gst_poll_new(), this function can only be
-called from a single thread at a time.  If called from multiple threads,
--1 will be returned with errno set to EPERM.
-This is not true for timer #GstPoll objects created with
-gst_poll_new_timer(), where it is allowed to have multiple threads waiting
-simultaneously.
-activity was detected after @timeout. If an error occurs, -1 is returned
-and errno is set."
-              version="0.10.18">
-        <return-value transfer-ownership="none">
-          <type name="int" c:type="gint"/>
-        </return-value>
-        <parameters>
-          <parameter name="timeout" transfer-ownership="none">
-            <type name="ClockTime" c:type="GstClockTime"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_controllable"
-              c:identifier="gst_poll_set_controllable"
-              doc="When @controllable is %TRUE, this function ensures that future calls to
-gst_poll_wait() will be affected by gst_poll_restart() and
-gst_poll_set_flushing()."
-              version="0.10.18">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="controllable" transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="restart"
-              c:identifier="gst_poll_restart"
-              doc="Restart any gst_poll_wait() that is in progress. This function is typically
-used after adding or removing descriptors to @set.
-If @set is not controllable, then this call will have no effect."
-              version="0.10.18">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </method>
-      <method name="set_flushing"
-              c:identifier="gst_poll_set_flushing"
-              doc="When @flushing is %TRUE, this function ensures that current and future calls
-to gst_poll_wait() will return -1, with errno set to EBUSY.
-Unsetting the flushing state will restore normal operation of @set."
-              version="0.10.18">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="flushing" transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="write_control"
-              c:identifier="gst_poll_write_control"
-              doc="Write a byte to the control socket of the controllable @set.
-This function is mostly useful for timer #GstPoll objects created with
-gst_poll_new_timer().
-It will make any current and future gst_poll_wait() function return with
-1, meaning the control socket is set. After an equal amount of calls to
-gst_poll_read_control() have been performed, calls to gst_poll_wait() will
-block again until their timeout expired.
-byte could not be written."
-              version="0.10.23">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-      </method>
-      <method name="read_control"
-              c:identifier="gst_poll_read_control"
-              doc="Read a byte from the control socket of the controllable @set.
-This function is mostly useful for timer #GstPoll objects created with
-gst_poll_new_timer().
-was no byte to read."
-              version="0.10.23">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-      </method>
-    </record>
-    <record name="PollFD" c:type="GstPollFD" doc="A file descriptor object.">
-      <field name="fd" writable="1">
-        <type name="int" c:type="int"/>
-      </field>
-      <field name="idx" writable="1">
-        <type name="int" c:type="gint"/>
-      </field>
-      <method name="init"
-              c:identifier="gst_poll_fd_init"
-              doc="Initializes @fd. Alternatively you can initialize it with
-#GST_POLL_FD_INIT."
-              version="0.10.18">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </method>
-    </record>
-    <interface name="Preset"
-               c:type="GstPreset"
-               doc="Opaque #GstPreset data structure."
-               glib:type-name="GstPreset"
-               glib:get-type="gst_preset_get_type"
-               glib:type-struct="PresetInterface">
-      <virtual-method name="get_preset_names" invoker="get_preset_names">
-        <return-value transfer-ownership="full">
-          <array c:type="gchar**">
-            <type name="utf8"/>
-          </array>
-        </return-value>
-      </virtual-method>
-      <virtual-method name="get_property_names" invoker="get_property_names">
-        <return-value transfer-ownership="full">
-          <array c:type="gchar**">
-            <type name="utf8"/>
-          </array>
-        </return-value>
-      </virtual-method>
-      <virtual-method name="load_preset" invoker="load_preset">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="name" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <virtual-method name="save_preset" invoker="save_preset">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="name" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <virtual-method name="rename_preset" invoker="rename_preset">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="old_name" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="new_name" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <virtual-method name="delete_preset" invoker="delete_preset">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="name" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <virtual-method name="set_meta" invoker="set_meta">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="name" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="tag" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="value" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <virtual-method name="get_meta" invoker="get_meta">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="name" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="tag" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="value" transfer-ownership="none">
-            <array c:type="gchar**">
-              <type name="utf8"/>
-            </array>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <method name="get_preset_names"
-              c:identifier="gst_preset_get_preset_names"
-              doc="Get a copy of preset names as a NULL terminated string array."
-              version="0.10.20">
-        <return-value transfer-ownership="full" doc="after usage.">
-          <array c:type="gchar**">
-            <type name="utf8"/>
-          </array>
-        </return-value>
-      </method>
-      <method name="get_property_names"
-              c:identifier="gst_preset_get_property_names"
-              doc="Get a the names of the GObject properties that can be used for presets."
-              version="0.10.20">
-        <return-value transfer-ownership="full" doc="after use.">
-          <array c:type="gchar**">
-            <type name="utf8"/>
-          </array>
-        </return-value>
-      </method>
-      <method name="load_preset"
-              c:identifier="gst_preset_load_preset"
-              doc="Load the given preset."
-              version="0.10.20">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="name" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="save_preset"
-              c:identifier="gst_preset_save_preset"
-              doc="Save the current object settings as a preset under the given name. If there
-is already a preset by this @name it will be overwritten."
-              version="0.10.20">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="name" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="rename_preset"
-              c:identifier="gst_preset_rename_preset"
-              doc="Renames a preset. If there is already a preset by the @new_name it will be
-overwritten."
-              version="0.10.20">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="old_name" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="new_name" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="delete_preset"
-              c:identifier="gst_preset_delete_preset"
-              doc="Delete the given preset."
-              version="0.10.20">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="name" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_meta"
-              c:identifier="gst_preset_set_meta"
-              doc="Sets a new @value for an existing meta data item or adds a new item. Meta
-data @tag names can be something like e.g. &quot;comment&quot;. Supplying %NULL for the"
-              version="0.10.20">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="name" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="tag" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="value" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_meta"
-              c:identifier="gst_preset_get_meta"
-              doc="Gets the @value for an existing meta data @tag. Meta data @tag names can be
-something like e.g. &quot;comment&quot;. Returned values need to be released when done.
-or no value for the given @tag"
-              version="0.10.20">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="name" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="tag" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="value" transfer-ownership="none">
-            <array c:type="gchar**">
-              <type name="utf8"/>
-            </array>
-          </parameter>
-        </parameters>
-      </method>
-    </interface>
-    <record name="PresetInterface"
-            c:type="GstPresetInterface"
-            glib:is-gtype-struct-for="Preset"
-            doc="#GstPreset interface.">
-      <field name="parent">
-        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
-      </field>
-      <field name="get_preset_names">
-        <callback name="get_preset_names" c:type="get_preset_names">
-          <return-value transfer-ownership="full">
-            <array c:type="gchar**">
-              <type name="utf8"/>
-            </array>
-          </return-value>
-          <parameters>
-            <parameter name="preset" transfer-ownership="none">
-              <type name="Preset" c:type="GstPreset*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="get_property_names">
-        <callback name="get_property_names" c:type="get_property_names">
-          <return-value transfer-ownership="full">
-            <array c:type="gchar**">
-              <type name="utf8"/>
-            </array>
-          </return-value>
-          <parameters>
-            <parameter name="preset" transfer-ownership="none">
-              <type name="Preset" c:type="GstPreset*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="load_preset">
-        <callback name="load_preset" c:type="load_preset">
-          <return-value transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </return-value>
-          <parameters>
-            <parameter name="preset" transfer-ownership="none">
-              <type name="Preset" c:type="GstPreset*"/>
-            </parameter>
-            <parameter name="name" transfer-ownership="none">
-              <type name="utf8" c:type="gchar*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="save_preset">
-        <callback name="save_preset" c:type="save_preset">
-          <return-value transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </return-value>
-          <parameters>
-            <parameter name="preset" transfer-ownership="none">
-              <type name="Preset" c:type="GstPreset*"/>
-            </parameter>
-            <parameter name="name" transfer-ownership="none">
-              <type name="utf8" c:type="gchar*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="rename_preset">
-        <callback name="rename_preset" c:type="rename_preset">
-          <return-value transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </return-value>
-          <parameters>
-            <parameter name="preset" transfer-ownership="none">
-              <type name="Preset" c:type="GstPreset*"/>
-            </parameter>
-            <parameter name="old_name" transfer-ownership="none">
-              <type name="utf8" c:type="gchar*"/>
-            </parameter>
-            <parameter name="new_name" transfer-ownership="none">
-              <type name="utf8" c:type="gchar*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="delete_preset">
-        <callback name="delete_preset" c:type="delete_preset">
-          <return-value transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </return-value>
-          <parameters>
-            <parameter name="preset" transfer-ownership="none">
-              <type name="Preset" c:type="GstPreset*"/>
-            </parameter>
-            <parameter name="name" transfer-ownership="none">
-              <type name="utf8" c:type="gchar*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="set_meta">
-        <callback name="set_meta" c:type="set_meta">
-          <return-value transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </return-value>
-          <parameters>
-            <parameter name="preset" transfer-ownership="none">
-              <type name="Preset" c:type="GstPreset*"/>
-            </parameter>
-            <parameter name="name" transfer-ownership="none">
-              <type name="utf8" c:type="gchar*"/>
-            </parameter>
-            <parameter name="tag" transfer-ownership="none">
-              <type name="utf8" c:type="gchar*"/>
-            </parameter>
-            <parameter name="value" transfer-ownership="none">
-              <type name="utf8" c:type="gchar*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="get_meta">
-        <callback name="get_meta" c:type="get_meta">
-          <return-value transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </return-value>
-          <parameters>
-            <parameter name="preset" transfer-ownership="none">
-              <type name="Preset" c:type="GstPreset*"/>
-            </parameter>
-            <parameter name="name" transfer-ownership="none">
-              <type name="utf8" c:type="gchar*"/>
-            </parameter>
-            <parameter name="tag" transfer-ownership="none">
-              <type name="utf8" c:type="gchar*"/>
-            </parameter>
-            <parameter name="value" transfer-ownership="none">
-              <array c:type="gchar**">
-                <type name="utf8"/>
-              </array>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="_gst_reserved">
-        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
-          <type name="any"/>
-        </array>
-      </field>
-    </record>
-    <class name="ProxyPad"
-           c:type="GstProxyPad"
-           parent="Pad"
-           glib:type-name="GstProxyPad"
-           glib:get-type="gst_proxy_pad_get_type"
-           glib:type-struct="ProxyPadClass">
-      <field name="pad">
-        <type name="Pad" c:type="GstPad"/>
-      </field>
-      <field name="priv">
-        <type name="ProxyPadPrivate" c:type="GstProxyPadPrivate*"/>
-      </field>
-    </class>
-    <record name="ProxyPadClass"
-            c:type="GstProxyPadClass"
-            glib:is-gtype-struct-for="ProxyPad">
-      <field name="parent_class">
-        <type name="PadClass" c:type="GstPadClass"/>
-      </field>
-      <field name="_gst_reserved">
-        <array zero-terminated="0" c:type="gpointer" fixed-size="1">
-          <type name="any"/>
-        </array>
-      </field>
-    </record>
-    <record name="ProxyPadPrivate" c:type="GstProxyPadPrivate">
-    </record>
-    <record name="Query" c:type="GstQuery" doc="The #GstQuery structure.">
-      <field name="mini_object" writable="1">
-        <type name="MiniObject" c:type="GstMiniObject"/>
-      </field>
-      <field name="type" writable="1">
-        <type name="QueryType" c:type="GstQueryType"/>
-      </field>
-      <field name="structure" writable="1">
-        <type name="Structure" c:type="GstStructure*"/>
-      </field>
-      <field name="_gst_reserved" writable="1">
-        <type name="any" c:type="gpointer"/>
-      </field>
-      <constructor name="new_position"
-                   c:identifier="gst_query_new_position"
-                   doc="Constructs a new query stream position query object. Use gst_query_unref()
-when done with it. A position query is used to query the current position
-of playback in the streams, in some format.">
-        <return-value transfer-ownership="full">
-          <type name="Query" c:type="GstQuery*"/>
-        </return-value>
-        <parameters>
-          <parameter name="format" transfer-ownership="none">
-            <type name="Format" c:type="GstFormat"/>
-          </parameter>
-        </parameters>
-      </constructor>
-      <constructor name="new_duration"
-                   c:identifier="gst_query_new_duration"
-                   doc="Constructs a new stream duration query object to query in the given format.
-Use gst_query_unref() when done with it. A duration query will give the
-total length of the stream.">
-        <return-value transfer-ownership="full">
-          <type name="Query" c:type="GstQuery*"/>
-        </return-value>
-        <parameters>
-          <parameter name="format" transfer-ownership="none">
-            <type name="Format" c:type="GstFormat"/>
-          </parameter>
-        </parameters>
-      </constructor>
-      <constructor name="new_latency"
-                   c:identifier="gst_query_new_latency"
-                   doc="Constructs a new latency query object.
-Use gst_query_unref() when done with it. A latency query is usually performed
-by sinks to compensate for additional latency introduced by elements in the
-pipeline."
-                   version="0.10.12">
-        <return-value transfer-ownership="full">
-          <type name="Query" c:type="GstQuery*"/>
-        </return-value>
-      </constructor>
-      <constructor name="new_convert"
-                   c:identifier="gst_query_new_convert"
-                   doc="Constructs a new convert query object. Use gst_query_unref()
-when done with it. A convert query is used to ask for a conversion between
-one format and another.">
-        <return-value transfer-ownership="full">
-          <type name="Query" c:type="GstQuery*"/>
-        </return-value>
-        <parameters>
-          <parameter name="src_format" transfer-ownership="none">
-            <type name="Format" c:type="GstFormat"/>
-          </parameter>
-          <parameter name="value" transfer-ownership="none">
-            <type name="int64" c:type="gint64"/>
-          </parameter>
-          <parameter name="dest_format" transfer-ownership="none">
-            <type name="Format" c:type="GstFormat"/>
-          </parameter>
-        </parameters>
-      </constructor>
-      <constructor name="new_segment"
-                   c:identifier="gst_query_new_segment"
-                   doc="Constructs a new segment query object. Use gst_query_unref()
-when done with it. A segment query is used to discover information about the
-currently configured segment for playback.">
-        <return-value transfer-ownership="full">
-          <type name="Query" c:type="GstQuery*"/>
-        </return-value>
-        <parameters>
-          <parameter name="format" transfer-ownership="none">
-            <type name="Format" c:type="GstFormat"/>
-          </parameter>
-        </parameters>
-      </constructor>
-      <constructor name="new_application"
-                   c:identifier="gst_query_new_application"
-                   doc="Constructs a new custom application query object. Use gst_query_unref()
-when done with it.">
-        <return-value transfer-ownership="full">
-          <type name="Query" c:type="GstQuery*"/>
-        </return-value>
-        <parameters>
-          <parameter name="type" transfer-ownership="none">
-            <type name="QueryType" c:type="GstQueryType"/>
-          </parameter>
-          <parameter name="structure" transfer-ownership="none">
-            <type name="Structure" c:type="GstStructure*"/>
-          </parameter>
-        </parameters>
-      </constructor>
-      <constructor name="new_seeking"
-                   c:identifier="gst_query_new_seeking"
-                   doc="Constructs a new query object for querying seeking properties of
-the stream.">
-        <return-value transfer-ownership="full">
-          <type name="Query" c:type="GstQuery*"/>
-        </return-value>
-        <parameters>
-          <parameter name="format" transfer-ownership="none">
-            <type name="Format" c:type="GstFormat"/>
-          </parameter>
-        </parameters>
-      </constructor>
-      <constructor name="new_formats"
-                   c:identifier="gst_query_new_formats"
-                   doc="Constructs a new query object for querying formats of
-the stream."
-                   version="0.10.4">
-        <return-value transfer-ownership="full">
-          <type name="Query" c:type="GstQuery*"/>
-        </return-value>
-      </constructor>
-      <constructor name="new_buffering" c:identifier="gst_query_new_buffering">
-        <return-value transfer-ownership="full">
-          <type name="Query" c:type="GstQuery*"/>
-        </return-value>
-        <parameters>
-          <parameter name="format" transfer-ownership="none">
-            <type name="Format" c:type="GstFormat"/>
-          </parameter>
-        </parameters>
-      </constructor>
-      <constructor name="new_uri"
-                   c:identifier="gst_query_new_uri"
-                   doc="Constructs a new query URI query object. Use gst_query_unref()
-when done with it. An URI query is used to query the current URI
-that is used by the source or sink."
-                   version="0.10.22">
-        <return-value transfer-ownership="full">
-          <type name="Query" c:type="GstQuery*"/>
-        </return-value>
-      </constructor>
-      <method name="set_position"
-              c:identifier="gst_query_set_position"
-              doc="Answer a position query by setting the requested value in the given format.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="format" transfer-ownership="none">
-            <type name="Format" c:type="GstFormat"/>
-          </parameter>
-          <parameter name="cur" transfer-ownership="none">
-            <type name="int64" c:type="gint64"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="parse_position"
-              c:identifier="gst_query_parse_position"
-              doc="Parse a position query, writing the format into @format, and the position
-into @cur, if the respective parameters are non-NULL.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="format" transfer-ownership="none">
-            <type name="Format" c:type="GstFormat*"/>
-          </parameter>
-          <parameter name="cur" direction="out" transfer-ownership="full">
-            <type name="int64" c:type="gint64*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_duration"
-              c:identifier="gst_query_set_duration"
-              doc="Answer a duration query by setting the requested value in the given format.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="format" transfer-ownership="none">
-            <type name="Format" c:type="GstFormat"/>
-          </parameter>
-          <parameter name="duration" transfer-ownership="none">
-            <type name="int64" c:type="gint64"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="parse_duration"
-              c:identifier="gst_query_parse_duration"
-              doc="Parse a duration query answer. Write the format of the duration into @format,
-and the value into @duration, if the respective variables are non-NULL.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="format" transfer-ownership="none">
-            <type name="Format" c:type="GstFormat*"/>
-          </parameter>
-          <parameter name="duration" direction="out" transfer-ownership="full">
-            <type name="int64" c:type="gint64*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_latency"
-              c:identifier="gst_query_set_latency"
-              doc="Answer a latency query by setting the requested values in the given format."
-              version="0.10.12">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="live" transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </parameter>
-          <parameter name="min_latency" transfer-ownership="none">
-            <type name="ClockTime" c:type="GstClockTime"/>
-          </parameter>
-          <parameter name="max_latency" transfer-ownership="none">
-            <type name="ClockTime" c:type="GstClockTime"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="parse_latency"
-              c:identifier="gst_query_parse_latency"
-              doc="Parse a latency query answer."
-              version="0.10.12">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="live" direction="out" transfer-ownership="full">
-            <type name="boolean" c:type="gboolean*"/>
-          </parameter>
-          <parameter name="min_latency" transfer-ownership="none">
-            <type name="ClockTime" c:type="GstClockTime*"/>
-          </parameter>
-          <parameter name="max_latency" transfer-ownership="none">
-            <type name="ClockTime" c:type="GstClockTime*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_convert"
-              c:identifier="gst_query_set_convert"
-              doc="Answer a convert query by setting the requested values.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="src_format" transfer-ownership="none">
-            <type name="Format" c:type="GstFormat"/>
-          </parameter>
-          <parameter name="src_value" transfer-ownership="none">
-            <type name="int64" c:type="gint64"/>
-          </parameter>
-          <parameter name="dest_format" transfer-ownership="none">
-            <type name="Format" c:type="GstFormat"/>
-          </parameter>
-          <parameter name="dest_value" transfer-ownership="none">
-            <type name="int64" c:type="gint64"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="parse_convert"
-              c:identifier="gst_query_parse_convert"
-              doc="Parse a convert query answer. Any of @src_format, @src_value, @dest_format,
-and @dest_value may be NULL, in which case that value is omitted.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="src_format" transfer-ownership="none">
-            <type name="Format" c:type="GstFormat*"/>
-          </parameter>
-          <parameter name="src_value"
-                     direction="out"
-                     transfer-ownership="full">
-            <type name="int64" c:type="gint64*"/>
-          </parameter>
-          <parameter name="dest_format" transfer-ownership="none">
-            <type name="Format" c:type="GstFormat*"/>
-          </parameter>
-          <parameter name="dest_value"
-                     direction="out"
-                     transfer-ownership="full">
-            <type name="int64" c:type="gint64*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_segment"
-              c:identifier="gst_query_set_segment"
-              doc="Answer a segment query by setting the requested values. The normal
-playback segment of a pipeline is 0 to duration at the default rate of
-1.0. If a seek was performed on the pipeline to play a different
-segment, this query will return the range specified in the last seek.
-playback range start and stop values expressed in @format.
-The values are always between 0 and the duration of the media and
-negative rates, playback will actually happen from @stop_value to">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="rate" transfer-ownership="none">
-            <type name="double" c:type="gdouble"/>
-          </parameter>
-          <parameter name="format" transfer-ownership="none">
-            <type name="Format" c:type="GstFormat"/>
-          </parameter>
-          <parameter name="start_value" transfer-ownership="none">
-            <type name="int64" c:type="gint64"/>
-          </parameter>
-          <parameter name="stop_value" transfer-ownership="none">
-            <type name="int64" c:type="gint64"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="parse_segment"
-              c:identifier="gst_query_parse_segment"
-              doc="Parse a segment query answer. Any of @rate, @format, @start_value, and
-See gst_query_set_segment() for an explanation of the function arguments.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="rate" direction="out" transfer-ownership="full">
-            <type name="double" c:type="gdouble*"/>
-          </parameter>
-          <parameter name="format" transfer-ownership="none">
-            <type name="Format" c:type="GstFormat*"/>
-          </parameter>
-          <parameter name="start_value"
-                     direction="out"
-                     transfer-ownership="full">
-            <type name="int64" c:type="gint64*"/>
-          </parameter>
-          <parameter name="stop_value"
-                     direction="out"
-                     transfer-ownership="full">
-            <type name="int64" c:type="gint64*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_structure"
-              c:identifier="gst_query_get_structure"
-              doc="Get the structure of a query.
-by the query and will therefore be freed when the query is unreffed.">
-        <return-value transfer-ownership="full">
-          <type name="Structure" c:type="GstStructure*"/>
-        </return-value>
-      </method>
-      <method name="set_seeking"
-              c:identifier="gst_query_set_seeking"
-              doc="Set the seeking query result fields in @query.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="format" transfer-ownership="none">
-            <type name="Format" c:type="GstFormat"/>
-          </parameter>
-          <parameter name="seekable" transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </parameter>
-          <parameter name="segment_start" transfer-ownership="none">
-            <type name="int64" c:type="gint64"/>
-          </parameter>
-          <parameter name="segment_end" transfer-ownership="none">
-            <type name="int64" c:type="gint64"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="parse_seeking"
-              c:identifier="gst_query_parse_seeking"
-              doc="Parse a seeking query, writing the format into @format, and
-other results into the passed parameters, if the respective parameters
-are non-NULL">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="format" transfer-ownership="none">
-            <type name="Format" c:type="GstFormat*"/>
-          </parameter>
-          <parameter name="seekable" direction="out" transfer-ownership="full">
-            <type name="boolean" c:type="gboolean*"/>
-          </parameter>
-          <parameter name="segment_start"
-                     direction="out"
-                     transfer-ownership="full">
-            <type name="int64" c:type="gint64*"/>
-          </parameter>
-          <parameter name="segment_end"
-                     direction="out"
-                     transfer-ownership="full">
-            <type name="int64" c:type="gint64*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_formats"
-              c:identifier="gst_query_set_formats"
-              doc="Set the formats query result fields in @query. The number of formats passed
-must be equal to @n_formats.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="n_formats" transfer-ownership="none">
-            <type name="int" c:type="gint"/>
-          </parameter>
-          <parameter transfer-ownership="none">
-            <varargs>
-            </varargs>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_formatsv"
-              c:identifier="gst_query_set_formatsv"
-              doc="Set the formats query result fields in @query. The number of formats passed
-in the @formats array must be equal to @n_formats."
-              version="0.10.4">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="n_formats" transfer-ownership="none">
-            <type name="int" c:type="gint"/>
-          </parameter>
-          <parameter name="formats" transfer-ownership="none">
-            <type name="Format" c:type="GstFormat*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="parse_formats_length"
-              c:identifier="gst_query_parse_formats_length"
-              doc="Parse the number of formats in the formats @query."
-              version="0.10.4">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="n_formats"
-                     direction="out"
-                     transfer-ownership="full">
-            <type name="uint" c:type="guint*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="parse_formats_nth"
-              c:identifier="gst_query_parse_formats_nth"
-              doc="Parse the format query and retrieve the @nth format from it into
-set to GST_FORMAT_UNDEFINED."
-              version="0.10.4">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="nth" transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
-          </parameter>
-          <parameter name="format" transfer-ownership="none">
-            <type name="Format" c:type="GstFormat*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_buffering_percent"
-              c:identifier="gst_query_set_buffering_percent">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="busy" transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </parameter>
-          <parameter name="percent" transfer-ownership="none">
-            <type name="int" c:type="gint"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="parse_buffering_percent"
-              c:identifier="gst_query_parse_buffering_percent">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="busy" direction="out" transfer-ownership="full">
-            <type name="boolean" c:type="gboolean*"/>
-          </parameter>
-          <parameter name="percent" direction="out" transfer-ownership="full">
-            <type name="int" c:type="gint*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_buffering_stats"
-              c:identifier="gst_query_set_buffering_stats"
-              doc="Configures the buffering stats values in @query."
-              version="0.10.20">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="mode" transfer-ownership="none">
-            <type name="BufferingMode" c:type="GstBufferingMode"/>
-          </parameter>
-          <parameter name="avg_in" transfer-ownership="none">
-            <type name="int" c:type="gint"/>
-          </parameter>
-          <parameter name="avg_out" transfer-ownership="none">
-            <type name="int" c:type="gint"/>
-          </parameter>
-          <parameter name="buffering_left" transfer-ownership="none">
-            <type name="int64" c:type="gint64"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="parse_buffering_stats"
-              c:identifier="gst_query_parse_buffering_stats"
-              doc="Extracts the buffering stats values from @query."
-              version="0.10.20">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="mode" transfer-ownership="none">
-            <type name="BufferingMode" c:type="GstBufferingMode*"/>
-          </parameter>
-          <parameter name="avg_in" direction="out" transfer-ownership="full">
-            <type name="int" c:type="gint*"/>
-          </parameter>
-          <parameter name="avg_out" direction="out" transfer-ownership="full">
-            <type name="int" c:type="gint*"/>
-          </parameter>
-          <parameter name="buffering_left"
-                     direction="out"
-                     transfer-ownership="full">
-            <type name="int64" c:type="gint64*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_buffering_range"
-              c:identifier="gst_query_set_buffering_range"
-              doc="Set the available query result fields in @query."
-              version="0.10.20">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="format" transfer-ownership="none">
-            <type name="Format" c:type="GstFormat"/>
-          </parameter>
-          <parameter name="start" transfer-ownership="none">
-            <type name="int64" c:type="gint64"/>
-          </parameter>
-          <parameter name="stop" transfer-ownership="none">
-            <type name="int64" c:type="gint64"/>
-          </parameter>
-          <parameter name="estimated_total" transfer-ownership="none">
-            <type name="int64" c:type="gint64"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="parse_buffering_range"
-              c:identifier="gst_query_parse_buffering_range"
-              doc="Parse an available query, writing the format into @format, and
-other results into the passed parameters, if the respective parameters
-are non-NULL"
-              version="0.10.20">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="format" transfer-ownership="none">
-            <type name="Format" c:type="GstFormat*"/>
-          </parameter>
-          <parameter name="start" direction="out" transfer-ownership="full">
-            <type name="int64" c:type="gint64*"/>
-          </parameter>
-          <parameter name="stop" direction="out" transfer-ownership="full">
-            <type name="int64" c:type="gint64*"/>
-          </parameter>
-          <parameter name="estimated_total"
-                     direction="out"
-                     transfer-ownership="full">
-            <type name="int64" c:type="gint64*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="parse_uri"
-              c:identifier="gst_query_parse_uri"
-              doc="Parse an URI query, writing the URI into @uri as a newly
-allocated string, if the respective parameters are non-NULL.
-Free the string with g_free() after usage."
-              version="0.10.22">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="uri" transfer-ownership="none">
-            <array c:type="gchar**">
-              <type name="utf8"/>
-            </array>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_uri"
-              c:identifier="gst_query_set_uri"
-              doc="Answer a URI query by setting the requested URI."
-              version="0.10.22">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="uri" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </method>
-    </record>
-    <record name="QueryClass" c:type="GstQueryClass">
-      <field name="mini_object_class" writable="1">
-        <type name="MiniObjectClass" c:type="GstMiniObjectClass"/>
-      </field>
-      <field name="_gst_reserved" writable="1">
-        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
-          <type name="any"/>
-        </array>
-      </field>
-    </record>
-    <enumeration name="QueryType"
-                 doc="0.10.20.
-0.10.22.
-Standard predefined Query types"
-                 c:type="GstQueryType">
-      <member name="none" value="0" c:identifier="GST_QUERY_NONE"/>
-      <member name="position" value="1" c:identifier="GST_QUERY_POSITION"/>
-      <member name="duration" value="2" c:identifier="GST_QUERY_DURATION"/>
-      <member name="latency" value="3" c:identifier="GST_QUERY_LATENCY"/>
-      <member name="jitter" value="4" c:identifier="GST_QUERY_JITTER"/>
-      <member name="rate" value="5" c:identifier="GST_QUERY_RATE"/>
-      <member name="seeking" value="6" c:identifier="GST_QUERY_SEEKING"/>
-      <member name="segment" value="7" c:identifier="GST_QUERY_SEGMENT"/>
-      <member name="convert" value="8" c:identifier="GST_QUERY_CONVERT"/>
-      <member name="formats" value="9" c:identifier="GST_QUERY_FORMATS"/>
-      <member name="buffering" value="10" c:identifier="GST_QUERY_BUFFERING"/>
-      <member name="custom" value="11" c:identifier="GST_QUERY_CUSTOM"/>
-      <member name="uri" value="12" c:identifier="GST_QUERY_URI"/>
-    </enumeration>
-    <record name="QueryTypeDefinition"
-            c:type="GstQueryTypeDefinition"
-            doc="A Query Type definition">
-      <field name="value" writable="1">
-        <type name="QueryType" c:type="GstQueryType"/>
-      </field>
-      <field name="nick" writable="1">
-        <type name="utf8" c:type="gchar*"/>
-      </field>
-      <field name="description" writable="1">
-        <type name="utf8" c:type="gchar*"/>
-      </field>
-      <field name="quark" writable="1">
-        <type name="GLib.Quark" c:type="GQuark"/>
-      </field>
-    </record>
-    <enumeration name="Rank"
-                 doc="Element priority ranks. Defines the order in which the autoplugger (or
-similar rank-picking mechanisms, such as e.g. gst_element_make_from_uri())
-will choose this element over an alternative one with the same function.
-These constants serve as a rough guidance for defining the rank of a
-#GstPluginFeature. Any value is valid, including values bigger than"
-                 c:type="GstRank">
-      <member name="none" value="0" c:identifier="GST_RANK_NONE"/>
-      <member name="marginal" value="64" c:identifier="GST_RANK_MARGINAL"/>
-      <member name="secondary" value="128" c:identifier="GST_RANK_SECONDARY"/>
-      <member name="primary" value="256" c:identifier="GST_RANK_PRIMARY"/>
-    </enumeration>
-    <class name="Registry"
-           c:type="GstRegistry"
-           doc="Opaque #GstRegistry structure."
-           parent="Object"
-           glib:type-name="GstRegistry"
-           glib:get-type="gst_registry_get_type"
-           glib:type-struct="RegistryClass">
-      <function name="get_default"
-                c:identifier="gst_registry_get_default"
-                doc="Retrieves the default registry. The caller does not own a reference on the
-registry, as it is alive as long as GStreamer is initialized.">
-        <return-value transfer-ownership="full">
-          <type name="Registry" c:type="GstRegistry*"/>
-        </return-value>
-      </function>
-      <function name="fork_is_enabled"
-                c:identifier="gst_registry_fork_is_enabled"
-                doc="By default GStreamer will perform scanning and rebuilding of the
-registry file using a helper child process.
-Applications might want to disable this behaviour with the
-gst_registry_fork_set_enabled() function, in which case new plugins
-are scanned (and loaded) into the application process.
-rebuilding the registry."
-                version="0.10.10">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-      </function>
-      <function name="fork_set_enabled"
-                c:identifier="gst_registry_fork_set_enabled"
-                doc="Applications might want to disable/enable spawning of a child helper process
-when rebuilding the registry. See gst_registry_fork_is_enabled() for more
-information."
-                version="0.10.10">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="enabled" transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </parameter>
-        </parameters>
-      </function>
-      <method name="scan_path"
-              c:identifier="gst_registry_scan_path"
-              doc="Scan the given path for plugins to add to the registry. The syntax of the
-path is specific to the registry.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="path" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="add_path"
-              c:identifier="gst_registry_add_path"
-              doc="Add the given path to the registry. The syntax of the
-path is specific to the registry. If the path has already been
-added, do nothing.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="path" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_path_list"
-              c:identifier="gst_registry_get_path_list"
-              doc="Get the list of paths for the given registry.
-MT safe.">
-        <return-value transfer-ownership="full">
-          <type name="GLib.List" c:type="GList*"/>
-        </return-value>
-      </method>
-      <method name="add_plugin"
-              c:identifier="gst_registry_add_plugin"
-              doc="Add the plugin to the registry. The plugin-added signal will be emitted.
-This function will sink @plugin.
-MT safe.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="plugin" transfer-ownership="none">
-            <type name="Plugin" c:type="GstPlugin*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="remove_plugin"
-              c:identifier="gst_registry_remove_plugin"
-              doc="Remove the plugin from the registry.
-MT safe.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="plugin" transfer-ownership="none">
-            <type name="Plugin" c:type="GstPlugin*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="add_feature"
-              c:identifier="gst_registry_add_feature"
-              doc="Add the feature to the registry. The feature-added signal will be emitted.
-This function sinks @feature.
-MT safe.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="feature" transfer-ownership="none">
-            <type name="PluginFeature" c:type="GstPluginFeature*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="remove_feature"
-              c:identifier="gst_registry_remove_feature"
-              doc="Remove the feature from the registry.
-MT safe.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="feature" transfer-ownership="none">
-            <type name="PluginFeature" c:type="GstPluginFeature*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_plugin_list"
-              c:identifier="gst_registry_get_plugin_list"
-              doc="Get a copy of all plugins registered in the given registry. The refcount
-of each element in the list in incremented.
-MT safe.">
-        <return-value transfer-ownership="full" doc="after usage.">
-          <type name="GLib.List" c:type="GList*"/>
-        </return-value>
-      </method>
-      <method name="plugin_filter"
-              c:identifier="gst_registry_plugin_filter"
-              doc="Runs a filter against all plugins in the registry and returns a #GList with
-the results. If the first flag is set, only the first match is
-returned (as a list with a single object).
-Every plugin is reffed; use gst_plugin_list_free() after use, which
-will unref again.
-MT safe.">
-        <return-value transfer-ownership="full" doc="after usage.">
-          <type name="GLib.List" c:type="GList*"/>
-        </return-value>
-        <parameters>
-          <parameter name="filter" transfer-ownership="none" scope="call">
-            <type name="PluginFilter" c:type="GstPluginFilter"/>
-          </parameter>
-          <parameter name="first" transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </parameter>
-          <parameter name="user_data" transfer-ownership="none">
-            <type name="any" c:type="gpointer"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="feature_filter"
-              c:identifier="gst_registry_feature_filter"
-              doc="Runs a filter against all features of the plugins in the registry
-and returns a GList with the results.
-If the first flag is set, only the first match is
-returned (as a list with a single object).
-after usage.
-MT safe.">
-        <return-value transfer-ownership="full">
-          <type name="GLib.List" c:type="GList*"/>
-        </return-value>
-        <parameters>
-          <parameter name="filter" transfer-ownership="none" scope="call">
-            <type name="PluginFeatureFilter" c:type="GstPluginFeatureFilter"/>
-          </parameter>
-          <parameter name="first" transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </parameter>
-          <parameter name="user_data" transfer-ownership="none">
-            <type name="any" c:type="gpointer"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_feature_list"
-              c:identifier="gst_registry_get_feature_list"
-              doc="Retrieves a #GList of #GstPluginFeature of @type.
-gst_plugin_feature_list_free() after usage.
-MT safe.">
-        <return-value transfer-ownership="full">
-          <type name="GLib.List" c:type="GList*"/>
-        </return-value>
-        <parameters>
-          <parameter name="type" transfer-ownership="none">
-            <type name="GType" c:type="GType"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_feature_list_by_plugin"
-              c:identifier="gst_registry_get_feature_list_by_plugin"
-              doc="Retrieves a #GList of features of the plugin with name @name.
-after usage.">
-        <return-value transfer-ownership="full">
-          <type name="GLib.List" c:type="GList*"/>
-        </return-value>
-        <parameters>
-          <parameter name="name" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_feature_list_cookie"
-              c:identifier="gst_registry_get_feature_list_cookie"
-              doc="Returns the registrys feature list cookie. This changes
-every time a feature is added or removed from the registry."
-              version="0.10.26">
-        <return-value transfer-ownership="none">
-          <type name="uint32" c:type="guint32"/>
-        </return-value>
-      </method>
-      <method name="find_plugin"
-              c:identifier="gst_registry_find_plugin"
-              doc="Find the plugin with the given name in the registry.
-The plugin will be reffed; caller is responsible for unreffing.
-gst_object_unref() after usage.
-MT safe.">
-        <return-value transfer-ownership="full">
-          <type name="Plugin" c:type="GstPlugin*"/>
-        </return-value>
-        <parameters>
-          <parameter name="name" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="find_feature"
-              c:identifier="gst_registry_find_feature"
-              doc="Find the pluginfeature with the given name and type in the registry.
-if the plugin was not found. gst_object_unref() after usage.
-MT safe.">
-        <return-value transfer-ownership="full">
-          <type name="PluginFeature" c:type="GstPluginFeature*"/>
-        </return-value>
-        <parameters>
-          <parameter name="name" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="type" transfer-ownership="none">
-            <type name="GType" c:type="GType"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="lookup"
-              c:identifier="gst_registry_lookup"
-              doc="Look up a plugin in the given registry with the given filename.
-If found, plugin is reffed.
-after usage.">
-        <return-value transfer-ownership="full">
-          <type name="Plugin" c:type="GstPlugin*"/>
-        </return-value>
-        <parameters>
-          <parameter name="filename" transfer-ownership="none">
-            <type name="utf8" c:type="char*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="lookup_feature"
-              c:identifier="gst_registry_lookup_feature"
-              doc="Find a #GstPluginFeature with @name in @registry.
-gst_object_unref() after usage.
-MT safe.">
-        <return-value transfer-ownership="full">
-          <type name="PluginFeature" c:type="GstPluginFeature*"/>
-        </return-value>
-        <parameters>
-          <parameter name="name" transfer-ownership="none">
-            <type name="utf8" c:type="char*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="xml_read_cache" c:identifier="gst_registry_xml_read_cache">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="location" transfer-ownership="none">
-            <type name="utf8" c:type="char*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="xml_write_cache"
-              c:identifier="gst_registry_xml_write_cache">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="location" transfer-ownership="none">
-            <type name="utf8" c:type="char*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <field name="object">
-        <type name="Object" c:type="GstObject"/>
-      </field>
-      <field name="plugins">
-        <type name="GLib.List" c:type="GList*"/>
-      </field>
-      <field name="features">
-        <type name="GLib.List" c:type="GList*"/>
-      </field>
-      <field name="paths">
-        <type name="GLib.List" c:type="GList*"/>
-      </field>
-      <field name="cache_file">
-        <type name="int" c:type="int"/>
-      </field>
-      <field name="feature_hash">
-        <type name="GLib.HashTable" c:type="GHashTable*"/>
-      </field>
-      <field name="basename_hash">
-        <type name="GLib.HashTable" c:type="GHashTable*"/>
-      </field>
-      <field name="priv">
-        <type name="RegistryPrivate" c:type="GstRegistryPrivate*"/>
-      </field>
-      <field name="_gst_reserved">
-        <array zero-terminated="0" c:type="gpointer" fixed-size="1">
-          <type name="any"/>
-        </array>
-      </field>
-      <glib:signal name="feature-added"
-                   doc="Signals that a feature has been added to the registry (possibly
-replacing a previously-added one by the same name)">
-        <return-value transfer-ownership="full">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="feature" transfer-ownership="none">
-            <type name="any" c:type="gpointer"/>
-          </parameter>
-        </parameters>
-      </glib:signal>
-      <glib:signal name="plugin-added"
-                   doc="Signals that a plugin has been added to the registry (possibly
-replacing a previously-added one by the same name)">
-        <return-value transfer-ownership="full">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="plugin" transfer-ownership="none">
-            <type name="any" c:type="gpointer"/>
-          </parameter>
-        </parameters>
-      </glib:signal>
-    </class>
-    <record name="RegistryClass"
-            c:type="GstRegistryClass"
-            glib:is-gtype-struct-for="Registry">
-      <field name="parent_class">
-        <type name="ObjectClass" c:type="GstObjectClass"/>
-      </field>
-      <field name="plugin_added">
-        <callback name="plugin_added" c:type="plugin_added">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="registry" transfer-ownership="none">
-              <type name="Registry" c:type="GstRegistry*"/>
-            </parameter>
-            <parameter name="plugin" transfer-ownership="none">
-              <type name="Plugin" c:type="GstPlugin*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="feature_added">
-        <callback name="feature_added" c:type="feature_added">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="registry" transfer-ownership="none">
-              <type name="Registry" c:type="GstRegistry*"/>
-            </parameter>
-            <parameter name="feature" transfer-ownership="none">
-              <type name="PluginFeature" c:type="GstPluginFeature*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="_gst_reserved">
-        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
-          <type name="any"/>
-        </array>
-      </field>
-    </record>
-    <record name="RegistryPrivate" c:type="GstRegistryPrivate">
-    </record>
-    <enumeration name="ResourceError"
-                 doc="category.  Make sure you add a custom message to the error call.
-deciding where to go while developing code.
-both reading and writing, or either (but unspecified which).
-Resource errors are for any resource used by an element:
-memory, files, network connections, process space, ...
-They&apos;re typically used by source and sink elements."
-                 c:type="GstResourceError"
-                 glib:error-quark="gst_resource_error_quark">
-      <member name="failed"
-              value="1"
-              c:identifier="GST_RESOURCE_ERROR_FAILED"/>
-      <member name="too_lazy"
-              value="2"
-              c:identifier="GST_RESOURCE_ERROR_TOO_LAZY"/>
-      <member name="not_found"
-              value="3"
-              c:identifier="GST_RESOURCE_ERROR_NOT_FOUND"/>
-      <member name="busy" value="4" c:identifier="GST_RESOURCE_ERROR_BUSY"/>
-      <member name="open_read"
-              value="5"
-              c:identifier="GST_RESOURCE_ERROR_OPEN_READ"/>
-      <member name="open_write"
-              value="6"
-              c:identifier="GST_RESOURCE_ERROR_OPEN_WRITE"/>
-      <member name="open_read_write"
-              value="7"
-              c:identifier="GST_RESOURCE_ERROR_OPEN_READ_WRITE"/>
-      <member name="close" value="8" c:identifier="GST_RESOURCE_ERROR_CLOSE"/>
-      <member name="read" value="9" c:identifier="GST_RESOURCE_ERROR_READ"/>
-      <member name="write" value="10" c:identifier="GST_RESOURCE_ERROR_WRITE"/>
-      <member name="seek" value="11" c:identifier="GST_RESOURCE_ERROR_SEEK"/>
-      <member name="sync" value="12" c:identifier="GST_RESOURCE_ERROR_SYNC"/>
-      <member name="settings"
-              value="13"
-              c:identifier="GST_RESOURCE_ERROR_SETTINGS"/>
-      <member name="no_space_left"
-              value="14"
-              c:identifier="GST_RESOURCE_ERROR_NO_SPACE_LEFT"/>
-      <member name="num_errors"
-              value="15"
-              c:identifier="GST_RESOURCE_ERROR_NUM_ERRORS"/>
-    </enumeration>
-    <constant name="SECOND" value="0">
-      <type name="int"/>
-    </constant>
-    <enumeration name="SearchMode"
-                 doc="The different search modes."
-                 version="0.10.23"
-                 c:type="GstSearchMode">
-      <member name="exact" value="0" c:identifier="GST_SEARCH_MODE_EXACT"/>
-      <member name="before" value="1" c:identifier="GST_SEARCH_MODE_BEFORE"/>
-      <member name="after" value="2" c:identifier="GST_SEARCH_MODE_AFTER"/>
-    </enumeration>
-    <bitfield name="SeekFlags"
-              doc="be considerably slower for some formats.
-faster but less accurate.
-elements to skip frames instead of generating all
-frames. Since 0.10.22.
-Flags to be used with gst_element_seek() or gst_event_new_seek(). All flags
-can be used together.
-A non flushing seek might take some time to perform as the currently
-playing data in the pipeline will not be cleared.
-An accurate seek might be slower for formats that don&apos;t have any indexes
-or timestamp markers in the stream. Specifying this flag might require a
-complete scan of the file in those cases.
-no EOS will be emmited by the element that performed the seek, but a
-#GST_MESSAGE_SEGMENT_DONE message will be posted on the bus by the element.
-When this message is posted, it is possible to send a new seek event to
-continue playback. With this seek method it is possible to perform seemless
-looping or simple linear editing.
-When doing fast forward (rate &gt; 1.0) or fast reverse (rate &lt; -1.0) trickmode
-playback, the @GST_SEEK_FLAG_SKIP flag can be used to instruct decoders
-and demuxers to adjust the playback rate by skipping frames. This can improve
-performance and decrease CPU usage because not all frames need to be decoded."
-              c:type="GstSeekFlags">
-      <member name="none" value="0" c:identifier="GST_SEEK_FLAG_NONE"/>
-      <member name="flush" value="1" c:identifier="GST_SEEK_FLAG_FLUSH"/>
-      <member name="accurate" value="2" c:identifier="GST_SEEK_FLAG_ACCURATE"/>
-      <member name="key_unit" value="4" c:identifier="GST_SEEK_FLAG_KEY_UNIT"/>
-      <member name="segment" value="8" c:identifier="GST_SEEK_FLAG_SEGMENT"/>
-      <member name="skip" value="16" c:identifier="GST_SEEK_FLAG_SKIP"/>
-    </bitfield>
-    <enumeration name="SeekType"
-                 doc="can&apos;t be used to seek relative to the current playback position - do a
-position query, calculate the desired position and then do an absolute
-position seek instead if that&apos;s what you want to do.
-The different types of seek events. When constructing a seek event with
-gst_event_new_seek(), a format, a seek method and optional flags are to
-be provided. The seek event is then inserted into the graph with
-gst_pad_send_event() or gst_element_send_event()."
-                 c:type="GstSeekType">
-      <member name="none" value="0" c:identifier="GST_SEEK_TYPE_NONE"/>
-      <member name="cur" value="1" c:identifier="GST_SEEK_TYPE_CUR"/>
-      <member name="set" value="2" c:identifier="GST_SEEK_TYPE_SET"/>
-      <member name="end" value="3" c:identifier="GST_SEEK_TYPE_END"/>
-    </enumeration>
-    <record name="Segment"
-            c:type="GstSegment"
-            doc="A helper structure that holds the configured region of
-interest in a media file."
-            glib:type-name="GstSegment"
-            glib:get-type="gst_segment_get_type">
-      <field name="rate" writable="1">
-        <type name="double" c:type="gdouble"/>
-      </field>
-      <field name="abs_rate" writable="1">
-        <type name="double" c:type="gdouble"/>
-      </field>
-      <field name="format" writable="1">
-        <type name="Format" c:type="GstFormat"/>
-      </field>
-      <field name="flags" writable="1">
-        <type name="SeekFlags" c:type="GstSeekFlags"/>
-      </field>
-      <field name="start" writable="1">
-        <type name="int64" c:type="gint64"/>
-      </field>
-      <field name="stop" writable="1">
-        <type name="int64" c:type="gint64"/>
-      </field>
-      <field name="time" writable="1">
-        <type name="int64" c:type="gint64"/>
-      </field>
-      <field name="accum" writable="1">
-        <type name="int64" c:type="gint64"/>
-      </field>
-      <field name="last_stop" writable="1">
-        <type name="int64" c:type="gint64"/>
-      </field>
-      <field name="duration" writable="1">
-        <type name="int64" c:type="gint64"/>
-      </field>
-      <field name="applied_rate" writable="1">
-        <type name="double" c:type="gdouble"/>
-      </field>
-      <field name="_gst_reserved" writable="1">
-        <array zero-terminated="0" c:type="guint8" fixed-size="0">
-          <type name="uint8"/>
-        </array>
-      </field>
-      <constructor name="new"
-                   c:identifier="gst_segment_new"
-                   doc="Allocate a new #GstSegment structure and initialize it using
-gst_segment_init().">
-        <return-value transfer-ownership="full">
-          <type name="Segment" c:type="GstSegment*"/>
-        </return-value>
-      </constructor>
-      <method name="copy"
-              c:identifier="gst_segment_copy"
-              doc="Create a copy of given @segment."
-              version="0.10.20">
-        <return-value transfer-ownership="full">
-          <type name="Segment" c:type="GstSegment*"/>
-        </return-value>
-      </method>
-      <method name="free"
-              c:identifier="gst_segment_free"
-              doc="Free the allocated segment @segment.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </method>
-      <method name="init"
-              c:identifier="gst_segment_init"
-              doc="The start/last_stop positions are set to 0 and the stop/duration
-fields are set to -1 (unknown). The default rate of 1.0 and no
-flags are set.
-Initialize @segment to its default values.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="format" transfer-ownership="none">
-            <type name="Format" c:type="GstFormat"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_duration"
-              c:identifier="gst_segment_set_duration"
-              doc="Set the duration of the segment to @duration. This function is mainly
-used by elements that perform seeking and know the total duration of the
-segment.
-This field should be set to allow seeking requests relative to the
-duration.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="format" transfer-ownership="none">
-            <type name="Format" c:type="GstFormat"/>
-          </parameter>
-          <parameter name="duration" transfer-ownership="none">
-            <type name="int64" c:type="gint64"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_last_stop"
-              c:identifier="gst_segment_set_last_stop"
-              doc="Set the last observed stop position in the segment to @position.
-This field should be set to allow seeking requests relative to the
-current playing position.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="format" transfer-ownership="none">
-            <type name="Format" c:type="GstFormat"/>
-          </parameter>
-          <parameter name="position" transfer-ownership="none">
-            <type name="int64" c:type="gint64"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_seek"
-              c:identifier="gst_segment_set_seek"
-              doc="Update the segment structure with the field values of a seek event (see
-gst_event_new_seek()).
-After calling this method, the segment field last_stop and time will
-contain the requested new position in the segment. The new requested
-position in the segment depends on @rate and @start_type and @stop_type.
-For positive @rate, the new position in the segment is the new @segment
-start field when it was updated with a @start_type different from
-#GST_SEEK_TYPE_NONE. If no update was performed on @segment start position
-(#GST_SEEK_TYPE_NONE), @start is ignored and @segment last_stop is
-unmodified.
-For negative @rate, the new position in the segment is the new @segment
-stop field when it was updated with a @stop_type different from
-#GST_SEEK_TYPE_NONE. If no stop was previously configured in the segment, the
-duration of the segment will be used to update the stop position.
-If no update was performed on @segment stop position (#GST_SEEK_TYPE_NONE),
-The applied rate of the segment will be set to 1.0 by default.
-If the caller can apply a rate change, it should update @segment
-rate and applied_rate after calling this function.
-last_stop field. This field can be FALSE if, for example, only the @rate
-has been changed but not the playback position.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="rate" transfer-ownership="none">
-            <type name="double" c:type="gdouble"/>
-          </parameter>
-          <parameter name="format" transfer-ownership="none">
-            <type name="Format" c:type="GstFormat"/>
-          </parameter>
-          <parameter name="flags" transfer-ownership="none">
-            <type name="SeekFlags" c:type="GstSeekFlags"/>
-          </parameter>
-          <parameter name="start_type" transfer-ownership="none">
-            <type name="SeekType" c:type="GstSeekType"/>
-          </parameter>
-          <parameter name="start" transfer-ownership="none">
-            <type name="int64" c:type="gint64"/>
-          </parameter>
-          <parameter name="stop_type" transfer-ownership="none">
-            <type name="SeekType" c:type="GstSeekType"/>
-          </parameter>
-          <parameter name="stop" transfer-ownership="none">
-            <type name="int64" c:type="gint64"/>
-          </parameter>
-          <parameter name="update" direction="out" transfer-ownership="full">
-            <type name="boolean" c:type="gboolean*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_newsegment"
-              c:identifier="gst_segment_set_newsegment"
-              doc="Update the segment structure with the field values of a new segment event and
-with a default applied_rate of 1.0."
-              version="0.10.6">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="update" transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </parameter>
-          <parameter name="rate" transfer-ownership="none">
-            <type name="double" c:type="gdouble"/>
-          </parameter>
-          <parameter name="format" transfer-ownership="none">
-            <type name="Format" c:type="GstFormat"/>
-          </parameter>
-          <parameter name="start" transfer-ownership="none">
-            <type name="int64" c:type="gint64"/>
-          </parameter>
-          <parameter name="stop" transfer-ownership="none">
-            <type name="int64" c:type="gint64"/>
-          </parameter>
-          <parameter name="time" transfer-ownership="none">
-            <type name="int64" c:type="gint64"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_newsegment_full"
-              c:identifier="gst_segment_set_newsegment_full"
-              doc="Update the segment structure with the field values of a new segment event.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="update" transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </parameter>
-          <parameter name="rate" transfer-ownership="none">
-            <type name="double" c:type="gdouble"/>
-          </parameter>
-          <parameter name="applied_rate" transfer-ownership="none">
-            <type name="double" c:type="gdouble"/>
-          </parameter>
-          <parameter name="format" transfer-ownership="none">
-            <type name="Format" c:type="GstFormat"/>
-          </parameter>
-          <parameter name="start" transfer-ownership="none">
-            <type name="int64" c:type="gint64"/>
-          </parameter>
-          <parameter name="stop" transfer-ownership="none">
-            <type name="int64" c:type="gint64"/>
-          </parameter>
-          <parameter name="time" transfer-ownership="none">
-            <type name="int64" c:type="gint64"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="to_stream_time"
-              c:identifier="gst_segment_to_stream_time"
-              doc="Translate @position to stream time using the currently configured
-segment. The @position value must be between @segment start and
-stop value.
-This function is typically used by elements that need to operate on
-the stream time of the buffers it receives, such as effect plugins.
-In those use cases, @position is typically the buffer timestamp or
-clock time that one wants to convert to the stream time.
-The stream time is always between 0 and the total duration of the
-media stream.
-was given.">
-        <return-value transfer-ownership="none">
-          <type name="int64" c:type="gint64"/>
-        </return-value>
-        <parameters>
-          <parameter name="format" transfer-ownership="none">
-            <type name="Format" c:type="GstFormat"/>
-          </parameter>
-          <parameter name="position" transfer-ownership="none">
-            <type name="int64" c:type="gint64"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="to_running_time"
-              c:identifier="gst_segment_to_running_time"
-              doc="Translate @position to the total running time using the currently configured
-and previously accumulated segments. Position is a value between @segment
-start and stop time.
-This function is typically used by elements that need to synchronize to the
-global clock in a pipeline. The runnning time is a constantly increasing value
-starting from 0. When gst_segment_init() is called, this value will reset to
-0.
-This function returns -1 if the position is outside of @segment start and stop.
-was given.">
-        <return-value transfer-ownership="none">
-          <type name="int64" c:type="gint64"/>
-        </return-value>
-        <parameters>
-          <parameter name="format" transfer-ownership="none">
-            <type name="Format" c:type="GstFormat"/>
-          </parameter>
-          <parameter name="position" transfer-ownership="none">
-            <type name="int64" c:type="gint64"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="to_position"
-              c:identifier="gst_segment_to_position"
-              doc="Convert @running_time into a position in the segment so that
-gst_segment_to_running_time() with that position returns @running_time.
--1 when @running_time is -1 or when it is not inside @segment."
-              version="0.10.24">
-        <return-value transfer-ownership="none">
-          <type name="int64" c:type="gint64"/>
-        </return-value>
-        <parameters>
-          <parameter name="format" transfer-ownership="none">
-            <type name="Format" c:type="GstFormat"/>
-          </parameter>
-          <parameter name="running_time" transfer-ownership="none">
-            <type name="int64" c:type="gint64"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="clip"
-              c:identifier="gst_segment_clip"
-              doc="Clip the given @start and @stop values to the segment boundaries given
-in @segment. @start and @stop are compared and clipped to @segment
-start and stop values.
-If the function returns FALSE, @start and @stop are known to fall
-outside of @segment and @clip_start and @clip_stop are not updated.
-When the function returns TRUE, @clip_start and @clip_stop will be
-updated. If @clip_start or @clip_stop are different from @start or @stop
-respectively, the region fell partially in the segment.
-Note that when @stop is -1, @clip_stop will be set to the end of the
-segment. Depending on the use case, this may or may not be what you want.
-completely in @segment, FALSE if the values are completely outside
-of the segment.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="format" transfer-ownership="none">
-            <type name="Format" c:type="GstFormat"/>
-          </parameter>
-          <parameter name="start" transfer-ownership="none">
-            <type name="int64" c:type="gint64"/>
-          </parameter>
-          <parameter name="stop" transfer-ownership="none">
-            <type name="int64" c:type="gint64"/>
-          </parameter>
-          <parameter name="clip_start"
-                     direction="out"
-                     transfer-ownership="full">
-            <type name="int64" c:type="gint64*"/>
-          </parameter>
-          <parameter name="clip_stop"
-                     direction="out"
-                     transfer-ownership="full">
-            <type name="int64" c:type="gint64*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_running_time"
-              c:identifier="gst_segment_set_running_time"
-              doc="Adjust the start/stop and accum values of @segment such that the next valid
-buffer will be one with @running_time.
-returned, @running_time is -1 or not in @segment."
-              version="0.10.24">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="format" transfer-ownership="none">
-            <type name="Format" c:type="GstFormat"/>
-          </parameter>
-          <parameter name="running_time" transfer-ownership="none">
-            <type name="int64" c:type="gint64"/>
-          </parameter>
-        </parameters>
-      </method>
-    </record>
-    <enumeration name="State"
-                 doc="process data. Sink elements however only accept one
-buffer and then block.
-the data is flowing.
-The possible states an element can be in. States can be changed using
-gst_element_set_state() and checked using gst_element_get_state()."
-                 c:type="GstState">
-      <member name="void_pending"
-              value="0"
-              c:identifier="GST_STATE_VOID_PENDING"/>
-      <member name="null" value="1" c:identifier="GST_STATE_NULL"/>
-      <member name="ready" value="2" c:identifier="GST_STATE_READY"/>
-      <member name="paused" value="3" c:identifier="GST_STATE_PAUSED"/>
-      <member name="playing" value="4" c:identifier="GST_STATE_PLAYING"/>
-    </enumeration>
-    <bitfield name="StateChange"
-              doc="&lt;itemizedlist&gt;
-&lt;listitem&gt;&lt;para&gt;
-The element must check if the resources it needs are available. Device
-sinks and -sources typically try to probe the device to constrain their
-caps.
-&lt;/para&gt;&lt;/listitem&gt;
-&lt;listitem&gt;&lt;para&gt;
-The element opens the device (in case feature need to be probed).
-&lt;/para&gt;&lt;/listitem&gt;
-&lt;/itemizedlist&gt;
-&lt;itemizedlist&gt;
-&lt;listitem&gt;&lt;para&gt;
-The element pads are activated in order to receive data in PAUSED.
-Streaming threads are started.
-&lt;/para&gt;&lt;/listitem&gt;
-&lt;listitem&gt;&lt;para&gt;
-Some elements might need to return ASYNC and complete the state change
-when they have enough information. It is a requirement for sinks to
-return ASYNC and complete the state change when they receive the first
-buffer or EOS event (preroll). Sinks also block the dataflow when in
-PAUSED.
-&lt;/para&gt;&lt;/listitem&gt;
-&lt;listitem&gt;&lt;para&gt;
-A pipeline resets the running_time to 0.
-&lt;/para&gt;&lt;/listitem&gt;
-&lt;listitem&gt;&lt;para&gt;
-Live sources return NO_PREROLL and don&apos;t generate data.
-&lt;/para&gt;&lt;/listitem&gt;
-&lt;/itemizedlist&gt;
-&lt;itemizedlist&gt;
-&lt;listitem&gt;&lt;para&gt;
-Most elements ignore this state change.
-&lt;/para&gt;&lt;/listitem&gt;
-&lt;listitem&gt;&lt;para&gt;
-The pipeline selects a clock and distributes this to all the children
-before setting them to PLAYING. This means that it is only alowed to
-synchronize on the clock in the PLAYING state.
-&lt;/para&gt;&lt;/listitem&gt;
-&lt;listitem&gt;&lt;para&gt;
-The pipeline uses the clock and the running_time to calculate the
-base_time. The base_time is distributed to all children when performing
-the state change.
-&lt;/para&gt;&lt;/listitem&gt;
-&lt;listitem&gt;&lt;para&gt;
-Sink elements stop blocking on the preroll buffer or event and start
-rendering the data.
-&lt;/para&gt;&lt;/listitem&gt;
-&lt;listitem&gt;&lt;para&gt;
-Sinks can post the EOS message in the PLAYING state. It is not allowed to
-post EOS when not in the PLAYING state.
-&lt;/para&gt;&lt;/listitem&gt;
-&lt;listitem&gt;&lt;para&gt;
-While streaming in PAUSED or PLAYING elements can create and remove
-sometimes pads.
-&lt;/para&gt;&lt;/listitem&gt;
-&lt;listitem&gt;&lt;para&gt;
-Live sources start generating data and return SUCCESS.
-&lt;/para&gt;&lt;/listitem&gt;
-&lt;/itemizedlist&gt;
-&lt;itemizedlist&gt;
-&lt;listitem&gt;&lt;para&gt;
-Most elements ignore this state change.
-&lt;/para&gt;&lt;/listitem&gt;
-&lt;listitem&gt;&lt;para&gt;
-The pipeline calculates the running_time based on the last selected clock
-and the base_time. It stores this information to continue playback when
-going back to the PLAYING state.
-&lt;/para&gt;&lt;/listitem&gt;
-&lt;listitem&gt;&lt;para&gt;
-Sinks unblock any clock wait calls.
-&lt;/para&gt;&lt;/listitem&gt;
-&lt;listitem&gt;&lt;para&gt;
-When a sink does not have a pending buffer to play, it returns ASYNC from
-this state change and completes the state change when it receives a new
-buffer or an EOS event.
-&lt;/para&gt;&lt;/listitem&gt;
-&lt;listitem&gt;&lt;para&gt;
-Any queued EOS messages are removed since they will be reposted when going
-back to the PLAYING state. The EOS messages are queued in GstBins.
-&lt;/para&gt;&lt;/listitem&gt;
-&lt;listitem&gt;&lt;para&gt;
-Live sources stop generating data and return NO_PREROLL.
-&lt;/para&gt;&lt;/listitem&gt;
-&lt;/itemizedlist&gt;
-&lt;itemizedlist&gt;
-&lt;listitem&gt;&lt;para&gt;
-Sinks unblock any waits in the preroll.
-&lt;/para&gt;&lt;/listitem&gt;
-&lt;listitem&gt;&lt;para&gt;
-Elements unblock any waits on devices
-&lt;/para&gt;&lt;/listitem&gt;
-&lt;listitem&gt;&lt;para&gt;
-Chain or get_range functions return WRONG_STATE.
-&lt;/para&gt;&lt;/listitem&gt;
-&lt;listitem&gt;&lt;para&gt;
-The element pads are deactivated so that streaming becomes impossible and
-all streaming threads are stopped.
-&lt;/para&gt;&lt;/listitem&gt;
-&lt;listitem&gt;&lt;para&gt;
-The sink forgets all negotiated formats
-&lt;/para&gt;&lt;/listitem&gt;
-&lt;listitem&gt;&lt;para&gt;
-Elements remove all sometimes pads
-&lt;/para&gt;&lt;/listitem&gt;
-&lt;/itemizedlist&gt;
-&lt;itemizedlist&gt;
-&lt;listitem&gt;&lt;para&gt;
-Elements close devices
-&lt;/para&gt;&lt;/listitem&gt;
-&lt;listitem&gt;&lt;para&gt;
-Elements reset any internal state.
-&lt;/para&gt;&lt;/listitem&gt;
-&lt;/itemizedlist&gt;
-These are the different state changes an element goes through.
-%GST_STATE_NULL &amp;rArr; %GST_STATE_PLAYING is called an upwards state change
-and %GST_STATE_PLAYING &amp;rArr; %GST_STATE_NULL a downwards state change."
-              c:type="GstStateChange">
-      <member name="null_to_ready"
-              value="10"
-              c:identifier="GST_STATE_CHANGE_NULL_TO_READY"/>
-      <member name="ready_to_paused"
-              value="19"
-              c:identifier="GST_STATE_CHANGE_READY_TO_PAUSED"/>
-      <member name="paused_to_playing"
-              value="28"
-              c:identifier="GST_STATE_CHANGE_PAUSED_TO_PLAYING"/>
-      <member name="playing_to_paused"
-              value="35"
-              c:identifier="GST_STATE_CHANGE_PLAYING_TO_PAUSED"/>
-      <member name="paused_to_ready"
-              value="26"
-              c:identifier="GST_STATE_CHANGE_PAUSED_TO_READY"/>
-      <member name="ready_to_null"
-              value="17"
-              c:identifier="GST_STATE_CHANGE_READY_TO_NULL"/>
-    </bitfield>
-    <enumeration name="StateChangeReturn"
-                 doc="cannot produce data in %GST_STATE_PAUSED.
-This typically happens with live sources.
-The possible return values from a state change function. Only"
-                 c:type="GstStateChangeReturn">
-      <member name="failure"
-              value="0"
-              c:identifier="GST_STATE_CHANGE_FAILURE"/>
-      <member name="success"
-              value="1"
-              c:identifier="GST_STATE_CHANGE_SUCCESS"/>
-      <member name="async" value="2" c:identifier="GST_STATE_CHANGE_ASYNC"/>
-      <member name="no_preroll"
-              value="3"
-              c:identifier="GST_STATE_CHANGE_NO_PREROLL"/>
-    </enumeration>
-    <record name="StaticCaps"
-            c:type="GstStaticCaps"
-            doc="Datastructure to initialize #GstCaps from a string description usually
-used in conjunction with GST_STATIC_CAPS() and gst_static_caps_get() to
-instantiate a #GstCaps.">
-      <field name="caps" writable="1">
-        <type name="Caps" c:type="GstCaps"/>
-      </field>
-      <field name="string" writable="1">
-        <type name="utf8" c:type="char*"/>
-      </field>
-      <field name="_gst_reserved" writable="1">
-        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
-          <type name="any"/>
-        </array>
-      </field>
-      <method name="get"
-              c:identifier="gst_static_caps_get"
-              doc="Converts a #GstStaticCaps to a #GstCaps.
-core holds an additional ref to the returned caps,
-use gst_caps_make_writable() on the returned caps to modify it.">
-        <return-value transfer-ownership="full">
-          <type name="Caps" c:type="GstCaps*"/>
-        </return-value>
-      </method>
-    </record>
-    <record name="StaticPadTemplate" c:type="GstStaticPadTemplate">
-      <field name="name_template" writable="1">
-        <type name="utf8" c:type="gchar*"/>
-      </field>
-      <field name="direction" writable="1">
-        <type name="PadDirection" c:type="GstPadDirection"/>
-      </field>
-      <field name="presence" writable="1">
-        <type name="PadPresence" c:type="GstPadPresence"/>
-      </field>
-      <field name="static_caps" writable="1">
-        <type name="StaticCaps" c:type="GstStaticCaps"/>
-      </field>
-      <method name="get"
-              c:identifier="gst_static_pad_template_get"
-              doc="Converts a #GstStaticPadTemplate into a #GstPadTemplate.">
-        <return-value transfer-ownership="full">
-          <type name="PadTemplate" c:type="GstPadTemplate*"/>
-        </return-value>
-      </method>
-      <method name="get_caps"
-              c:identifier="gst_static_pad_template_get_caps"
-              doc="Gets the capabilities of the static pad template.
-Unref after usage. Since the core holds an additional
-ref to the returned caps, use gst_caps_make_writable()
-on the returned caps to modify it.">
-        <return-value transfer-ownership="full">
-          <type name="Caps" c:type="GstCaps*"/>
-        </return-value>
-      </method>
-    </record>
-    <enumeration name="StreamError"
-                 doc="category.  Make sure you add a custom message to the error call.
-deciding where to go while developing code.
-this functionality yet.
-stream&apos;s type.
-of stream.
-stream&apos;s type.
-(for example, wrong caps).
-Stream errors are for anything related to the stream being processed:
-format errors, media type errors, ...
-They&apos;re typically used by decoders, demuxers, converters, ..."
-                 c:type="GstStreamError"
-                 glib:error-quark="gst_stream_error_quark">
-      <member name="failed" value="1" c:identifier="GST_STREAM_ERROR_FAILED"/>
-      <member name="too_lazy"
-              value="2"
-              c:identifier="GST_STREAM_ERROR_TOO_LAZY"/>
-      <member name="not_implemented"
-              value="3"
-              c:identifier="GST_STREAM_ERROR_NOT_IMPLEMENTED"/>
-      <member name="type_not_found"
-              value="4"
-              c:identifier="GST_STREAM_ERROR_TYPE_NOT_FOUND"/>
-      <member name="wrong_type"
-              value="5"
-              c:identifier="GST_STREAM_ERROR_WRONG_TYPE"/>
-      <member name="codec_not_found"
-              value="6"
-              c:identifier="GST_STREAM_ERROR_CODEC_NOT_FOUND"/>
-      <member name="decode" value="7" c:identifier="GST_STREAM_ERROR_DECODE"/>
-      <member name="encode" value="8" c:identifier="GST_STREAM_ERROR_ENCODE"/>
-      <member name="demux" value="9" c:identifier="GST_STREAM_ERROR_DEMUX"/>
-      <member name="mux" value="10" c:identifier="GST_STREAM_ERROR_MUX"/>
-      <member name="format" value="11" c:identifier="GST_STREAM_ERROR_FORMAT"/>
-      <member name="decrypt"
-              value="12"
-              c:identifier="GST_STREAM_ERROR_DECRYPT"/>
-      <member name="decrypt_nokey"
-              value="13"
-              c:identifier="GST_STREAM_ERROR_DECRYPT_NOKEY"/>
-      <member name="num_errors"
-              value="14"
-              c:identifier="GST_STREAM_ERROR_NUM_ERRORS"/>
-    </enumeration>
-    <enumeration name="StreamStatusType"
-                 doc="The type of a %GST_MESSAGE_STREAM_STATUS. The stream status messages inform the
-application of new streaming threads and their status."
-                 version="0.10.24"
-                 c:type="GstStreamStatusType">
-      <member name="create"
-              value="0"
-              c:identifier="GST_STREAM_STATUS_TYPE_CREATE"/>
-      <member name="enter"
-              value="1"
-              c:identifier="GST_STREAM_STATUS_TYPE_ENTER"/>
-      <member name="leave"
-              value="2"
-              c:identifier="GST_STREAM_STATUS_TYPE_LEAVE"/>
-      <member name="destroy"
-              value="3"
-              c:identifier="GST_STREAM_STATUS_TYPE_DESTROY"/>
-      <member name="start"
-              value="8"
-              c:identifier="GST_STREAM_STATUS_TYPE_START"/>
-      <member name="pause"
-              value="9"
-              c:identifier="GST_STREAM_STATUS_TYPE_PAUSE"/>
-      <member name="stop"
-              value="10"
-              c:identifier="GST_STREAM_STATUS_TYPE_STOP"/>
-    </enumeration>
-    <record name="Structure"
-            c:type="GstStructure"
-            doc="The GstStructure object. Most fields are private."
-            glib:type-name="GstStructure"
-            glib:get-type="gst_structure_get_type">
-      <field name="type" writable="1">
-        <type name="GType" c:type="GType"/>
-      </field>
-      <field name="name" writable="1">
-        <type name="GLib.Quark" c:type="GQuark"/>
-      </field>
-      <field name="parent_refcount" writable="1">
-        <type name="any" c:type="gint*"/>
-      </field>
-      <field name="fields" writable="1">
-        <type name="GLib.Array" c:type="GArray*"/>
-      </field>
-      <field name="_gst_reserved" writable="1">
-        <type name="any" c:type="gpointer"/>
-      </field>
-      <constructor name="new"
-                   c:identifier="gst_structure_new"
-                   doc="Creates a new #GstStructure with the given name.  Parses the
-list of variable arguments and sets fields to the values listed.
-Variable arguments should be passed as field name, field type,
-and value.  Last variable argument should be NULL.">
-        <return-value transfer-ownership="full">
-          <type name="Structure" c:type="GstStructure*"/>
-        </return-value>
-        <parameters>
-          <parameter name="name" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="firstfield" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter transfer-ownership="none">
-            <varargs>
-            </varargs>
-          </parameter>
-        </parameters>
-      </constructor>
-      <method name="copy"
-              c:identifier="gst_structure_copy"
-              doc="Duplicates a #GstStructure and all its fields and values.">
-        <return-value transfer-ownership="full">
-          <type name="Structure" c:type="GstStructure*"/>
-        </return-value>
-      </method>
-      <method name="set_parent_refcount"
-              c:identifier="gst_structure_set_parent_refcount"
-              doc="Sets the parent_refcount field of #GstStructure. This field is used to
-determine whether a structure is mutable or not. This function should only be
-called by code implementing parent objects of #GstStructure, as described in
-the MT Refcounting section of the design documents.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="refcount" direction="out" transfer-ownership="full">
-            <type name="int" c:type="gint*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="free"
-              c:identifier="gst_structure_free"
-              doc="Frees a #GstStructure and all its fields and values. The structure must not
-have a parent when this function is called.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </method>
-      <method name="get_name"
-              c:identifier="gst_structure_get_name"
-              doc="Get the name of @structure as a string.">
-        <return-value transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </return-value>
-      </method>
-      <method name="get_name_id"
-              c:identifier="gst_structure_get_name_id"
-              doc="Get the name of @structure as a GQuark.">
-        <return-value transfer-ownership="full">
-          <type name="GLib.Quark" c:type="GQuark"/>
-        </return-value>
-      </method>
-      <method name="has_name"
-              c:identifier="gst_structure_has_name"
-              doc="Checks if the structure has the given name">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="name" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_name"
-              c:identifier="gst_structure_set_name"
-              doc="Sets the name of the structure to the given @name.  The string
-provided is copied before being used. It must not be empty, start with a
-letter and can be followed by letters, numbers and any of &quot;/-_.:&quot;.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="name" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="id_set_value"
-              c:identifier="gst_structure_id_set_value"
-              doc="Sets the field with the given GQuark @field to @value.  If the field
-does not exist, it is created.  If the field exists, the previous
-value is replaced and freed.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="field" transfer-ownership="none">
-            <type name="GLib.Quark" c:type="GQuark"/>
-          </parameter>
-          <parameter name="value" transfer-ownership="none">
-            <type name="GObject.Value" c:type="GValue*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_value"
-              c:identifier="gst_structure_set_value"
-              doc="Sets the field with the given name @field to @value.  If the field
-does not exist, it is created.  If the field exists, the previous
-value is replaced and freed.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="fieldname" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="value" transfer-ownership="none">
-            <type name="GObject.Value" c:type="GValue*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set"
-              c:identifier="gst_structure_set"
-              doc="Parses the variable arguments and sets fields accordingly.
-Variable arguments should be in the form field name, field type
-(as a GType), value(s).  The last variable argument should be NULL.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="fieldname" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter transfer-ownership="none">
-            <varargs>
-            </varargs>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="id_set"
-              c:identifier="gst_structure_id_set"
-              doc="Identical to gst_structure_set, except that field names are
-passed using the GQuark for the field name. This allows more efficient
-setting of the structure if the caller already knows the associated
-quark values.
-The last variable argument must be NULL."
-              version="0.10.10">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="fieldname" transfer-ownership="none">
-            <type name="GLib.Quark" c:type="GQuark"/>
-          </parameter>
-          <parameter transfer-ownership="none">
-            <varargs>
-            </varargs>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get"
-              c:identifier="gst_structure_get"
-              doc="Parses the variable arguments and reads fields from @structure accordingly.
-Variable arguments should be in the form field name, field type
-(as a GType), pointer(s) to a variable(s) to hold the return value(s).
-The last variable argument should be NULL.
-For refcounted (mini)objects you will acquire your own reference which
-you must release with a suitable _unref() when no longer needed. For
-strings and boxed types you will acquire a copy which you will need to
-release with either g_free() or the suiteable function for the boxed type.
-because the field requested did not exist, or was of a type other
-than the type specified), otherwise TRUE."
-              version="0.10.24">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="first_fieldname" transfer-ownership="none">
-            <type name="utf8" c:type="char*"/>
-          </parameter>
-          <parameter transfer-ownership="none">
-            <varargs>
-            </varargs>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="id_get"
-              c:identifier="gst_structure_id_get"
-              doc="Parses the variable arguments and reads fields from @structure accordingly.
-Variable arguments should be in the form field id quark, field type
-(as a GType), pointer(s) to a variable(s) to hold the return value(s).
-The last variable argument should be NULL (technically it should be a
-0 quark, but we require NULL so compilers that support it can check for
-the NULL terminator and warn if it&apos;s not there).
-This function is just like gst_structure_get() only that it is slightly
-more efficient since it saves the string-to-quark lookup in the global
-quark hashtable.
-For refcounted (mini)objects you will acquire your own reference which
-you must release with a suitable _unref() when no longer needed. For
-strings and boxed types you will acquire a copy which you will need to
-release with either g_free() or the suiteable function for the boxed type.
-because the field requested did not exist, or was of a type other
-than the type specified), otherwise TRUE."
-              version="0.10.24">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="first_field_id" transfer-ownership="none">
-            <type name="GLib.Quark" c:type="GQuark"/>
-          </parameter>
-          <parameter transfer-ownership="none">
-            <varargs>
-            </varargs>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="id_get_value"
-              c:identifier="gst_structure_id_get_value"
-              doc="Get the value of the field with GQuark @field.
-identifier.">
-        <return-value transfer-ownership="none">
-          <type name="GObject.Value" c:type="GValue*"/>
-        </return-value>
-        <parameters>
-          <parameter name="field" transfer-ownership="none">
-            <type name="GLib.Quark" c:type="GQuark"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_value"
-              c:identifier="gst_structure_get_value"
-              doc="Get the value of the field with name @fieldname.">
-        <return-value transfer-ownership="none">
-          <type name="GObject.Value" c:type="GValue*"/>
-        </return-value>
-        <parameters>
-          <parameter name="fieldname" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="remove_field"
-              c:identifier="gst_structure_remove_field"
-              doc="Removes the field with the given name.  If the field with the given
-name does not exist, the structure is unchanged.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="fieldname" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="remove_fields"
-              c:identifier="gst_structure_remove_fields"
-              doc="Removes the fields with the given names. If a field does not exist, the
-argument is ignored.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="fieldname" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter transfer-ownership="none">
-            <varargs>
-            </varargs>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="remove_all_fields"
-              c:identifier="gst_structure_remove_all_fields"
-              doc="Removes all fields in a GstStructure.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </method>
-      <method name="get_field_type"
-              c:identifier="gst_structure_get_field_type"
-              doc="Finds the field with the given name, and returns the type of the
-value it contains.  If the field is not found, G_TYPE_INVALID is
-returned.">
-        <return-value transfer-ownership="none">
-          <type name="GType" c:type="GType"/>
-        </return-value>
-        <parameters>
-          <parameter name="fieldname" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="foreach"
-              c:identifier="gst_structure_foreach"
-              doc="Calls the provided function once for each field in the #GstStructure. The
-function must not modify the fields. Also see gst_structure_map_in_place().
-FALSE otherwise.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="func"
-                     transfer-ownership="none"
-                     scope="call"
-                     closure="2">
-            <type name="StructureForeachFunc"
-                  c:type="GstStructureForeachFunc"/>
-          </parameter>
-          <parameter name="user_data" transfer-ownership="none">
-            <type name="any" c:type="gpointer"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="map_in_place"
-              c:identifier="gst_structure_map_in_place"
-              doc="Calls the provided function once for each field in the #GstStructure. In
-contrast to gst_structure_foreach(), the function may modify but not delete the
-fields. The structure must be mutable.
-FALSE otherwise.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="func"
-                     transfer-ownership="none"
-                     scope="call"
-                     closure="2">
-            <type name="StructureMapFunc" c:type="GstStructureMapFunc"/>
-          </parameter>
-          <parameter name="user_data" transfer-ownership="none">
-            <type name="any" c:type="gpointer"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="n_fields"
-              c:identifier="gst_structure_n_fields"
-              doc="Get the number of fields in the structure.">
-        <return-value transfer-ownership="none">
-          <type name="int" c:type="gint"/>
-        </return-value>
-      </method>
-      <method name="nth_field_name"
-              c:identifier="gst_structure_nth_field_name"
-              doc="Get the name of the given field number, counting from 0 onwards.">
-        <return-value transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </return-value>
-        <parameters>
-          <parameter name="index" transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="id_has_field"
-              c:identifier="gst_structure_id_has_field"
-              doc="Check if @structure contains a field named @field."
-              version="0.10.26">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="field" transfer-ownership="none">
-            <type name="GLib.Quark" c:type="GQuark"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="id_has_field_typed"
-              c:identifier="gst_structure_id_has_field_typed"
-              doc="Check if @structure contains a field named @field and with GType @type."
-              version="0.10.26">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="field" transfer-ownership="none">
-            <type name="GLib.Quark" c:type="GQuark"/>
-          </parameter>
-          <parameter name="type" transfer-ownership="none">
-            <type name="GType" c:type="GType"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="has_field"
-              c:identifier="gst_structure_has_field"
-              doc="Check if @structure contains a field named @fieldname.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="fieldname" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="has_field_typed"
-              c:identifier="gst_structure_has_field_typed"
-              doc="Check if @structure contains a field named @fieldname and with GType @type.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="fieldname" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="type" transfer-ownership="none">
-            <type name="GType" c:type="GType"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_boolean"
-              c:identifier="gst_structure_get_boolean"
-              doc="Sets the boolean pointed to by @value corresponding to the value of the
-given field.  Caller is responsible for making sure the field exists
-and has the correct type.
-with @fieldname or the existing field did not contain a boolean, this
-function returns FALSE.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="fieldname" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="value" direction="out" transfer-ownership="full">
-            <type name="boolean" c:type="gboolean*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_int"
-              c:identifier="gst_structure_get_int"
-              doc="Sets the int pointed to by @value corresponding to the value of the
-given field.  Caller is responsible for making sure the field exists
-and has the correct type.
-with @fieldname or the existing field did not contain an int, this function
-returns %FALSE.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="fieldname" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="value" direction="out" transfer-ownership="full">
-            <type name="int" c:type="gint*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_uint"
-              c:identifier="gst_structure_get_uint"
-              doc="Sets the uint pointed to by @value corresponding to the value of the
-given field.  Caller is responsible for making sure the field exists
-and has the correct type.
-with @fieldname or the existing field did not contain a uint, this function
-returns %FALSE."
-              version="0.10.15">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="fieldname" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="value" direction="out" transfer-ownership="full">
-            <type name="uint" c:type="guint*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_fourcc"
-              c:identifier="gst_structure_get_fourcc"
-              doc="Sets the Fourcc pointed to by @value corresponding to the value of the
-given field.  Caller is responsible for making sure the field exists
-and has the correct type.
-with @fieldname or the existing field did not contain a fourcc, this function
-returns FALSE.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="fieldname" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="value" direction="out" transfer-ownership="full">
-            <type name="uint32" c:type="guint32*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_double"
-              c:identifier="gst_structure_get_double"
-              doc="Sets the double pointed to by @value corresponding to the value of the
-given field.  Caller is responsible for making sure the field exists
-and has the correct type.
-with @fieldname or the existing field did not contain a double, this
-function returns FALSE.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="fieldname" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="value" direction="out" transfer-ownership="full">
-            <type name="double" c:type="gdouble*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_date"
-              c:identifier="gst_structure_get_date"
-              doc="Sets the date pointed to by @value corresponding to the date of the
-given field.  Caller is responsible for making sure the field exists
-and has the correct type.
-On success @value will point to a newly-allocated copy of the date which
-inconsistent with e.g. gst_structure_get_string() which doesn&apos;t return a
-copy of the string).
-with @fieldname or the existing field did not contain a data, this function
-returns FALSE.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="fieldname" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="value" transfer-ownership="none">
-            <type name="GLib.Date" c:type="GDate**"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_clock_time"
-              c:identifier="gst_structure_get_clock_time"
-              doc="Sets the clock time pointed to by @value corresponding to the clock time
-of the given field.  Caller is responsible for making sure the field exists
-and has the correct type.
-with @fieldname or the existing field did not contain a #GstClockTime, this
-function returns FALSE.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="fieldname" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="value" transfer-ownership="none">
-            <type name="ClockTime" c:type="GstClockTime*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_string"
-              c:identifier="gst_structure_get_string"
-              doc="Finds the field corresponding to @fieldname, and returns the string
-contained in the field&apos;s value.  Caller is responsible for making
-sure the field exists and has the correct type.
-The string should not be modified, and remains valid until the next
-call to a gst_structure_*() function with the given structure.
-or did not contain a string.">
-        <return-value transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </return-value>
-        <parameters>
-          <parameter name="fieldname" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_enum"
-              c:identifier="gst_structure_get_enum"
-              doc="Sets the int pointed to by @value corresponding to the value of the
-given field.  Caller is responsible for making sure the field exists,
-has the correct type and that the enumtype is correct.
-with @fieldname or the existing field did not contain an enum of the given
-type, this function returns FALSE.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="fieldname" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="enumtype" transfer-ownership="none">
-            <type name="GType" c:type="GType"/>
-          </parameter>
-          <parameter name="value" direction="out" transfer-ownership="full">
-            <type name="int" c:type="gint*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_fraction"
-              c:identifier="gst_structure_get_fraction"
-              doc="Sets the integers pointed to by @value_numerator and @value_denominator
-corresponding to the value of the given field.  Caller is responsible
-for making sure the field exists and has the correct type.
-with @fieldname or the existing field did not contain a GstFraction, this
-function returns FALSE.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="fieldname" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="value_numerator"
-                     direction="out"
-                     transfer-ownership="full">
-            <type name="int" c:type="gint*"/>
-          </parameter>
-          <parameter name="value_denominator"
-                     direction="out"
-                     transfer-ownership="full">
-            <type name="int" c:type="gint*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="to_string"
-              c:identifier="gst_structure_to_string"
-              doc="Converts @structure to a human-readable string representation.
-For debugging purposes its easier to do something like this:
-|[
-GST_LOG (&quot;structure is %&quot; GST_PTR_FORMAT, structure);
-]|
-This prints the structure in human readble form.
-usage.">
-        <return-value transfer-ownership="full" doc="after">
-          <type name="utf8" c:type="gchar*"/>
-        </return-value>
-      </method>
-      <method name="fixate_field_nearest_int"
-              c:identifier="gst_structure_fixate_field_nearest_int"
-              doc="Fixates a #GstStructure by changing the given field to the nearest
-integer to @target that is a subset of the existing field.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="field_name" transfer-ownership="none">
-            <type name="utf8" c:type="char*"/>
-          </parameter>
-          <parameter name="target" transfer-ownership="none">
-            <type name="int" c:type="int"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="fixate_field_nearest_double"
-              c:identifier="gst_structure_fixate_field_nearest_double"
-              doc="Fixates a #GstStructure by changing the given field to the nearest
-double to @target that is a subset of the existing field.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="field_name" transfer-ownership="none">
-            <type name="utf8" c:type="char*"/>
-          </parameter>
-          <parameter name="target" transfer-ownership="none">
-            <type name="double" c:type="double"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="fixate_field_boolean"
-              c:identifier="gst_structure_fixate_field_boolean"
-              doc="Fixates a #GstStructure by changing the given @field_name field to the given">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="field_name" transfer-ownership="none">
-            <type name="utf8" c:type="char*"/>
-          </parameter>
-          <parameter name="target" transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="fixate_field_nearest_fraction"
-              c:identifier="gst_structure_fixate_field_nearest_fraction"
-              doc="Fixates a #GstStructure by changing the given field to the nearest
-fraction to @target_numerator/@target_denominator that is a subset
-of the existing field.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="field_name" transfer-ownership="none">
-            <type name="utf8" c:type="char*"/>
-          </parameter>
-          <parameter name="target_numerator" transfer-ownership="none">
-            <type name="int" c:type="gint"/>
-          </parameter>
-          <parameter name="target_denominator" transfer-ownership="none">
-            <type name="int" c:type="gint"/>
-          </parameter>
-        </parameters>
-      </method>
-    </record>
-    <enumeration name="StructureChangeType"
-                 doc="The type of a %GST_MESSAGE_STRUCTURE_CHANGE."
-                 version="0.10.22"
-                 c:type="GstStructureChangeType">
-      <member name="link"
-              value="0"
-              c:identifier="GST_STRUCTURE_CHANGE_TYPE_PAD_LINK"/>
-      <member name="unlink"
-              value="1"
-              c:identifier="GST_STRUCTURE_CHANGE_TYPE_PAD_UNLINK"/>
-    </enumeration>
-    <callback name="StructureForeachFunc"
-              c:type="GstStructureForeachFunc"
-              doc="A function that will be called in gst_structure_foreach(). The function may
-not modify @value.
-the foreach operation should stop with FALSE.">
-      <return-value transfer-ownership="none">
-        <type name="boolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="field_id" transfer-ownership="none">
-          <type name="GLib.Quark" c:type="GQuark"/>
-        </parameter>
-        <parameter name="value" transfer-ownership="none">
-          <type name="GObject.Value" c:type="GValue*"/>
-        </parameter>
-        <parameter name="user_data" transfer-ownership="none" closure="2">
-          <type name="any" c:type="gpointer"/>
-        </parameter>
-      </parameters>
-    </callback>
-    <callback name="StructureMapFunc"
-              c:type="GstStructureMapFunc"
-              doc="A function that will be called in gst_structure_map_in_place(). The function
-may modify @value.
-the map operation should stop with FALSE.">
-      <return-value transfer-ownership="none">
-        <type name="boolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="field_id" transfer-ownership="none">
-          <type name="GLib.Quark" c:type="GQuark"/>
-        </parameter>
-        <parameter name="value" transfer-ownership="none">
-          <type name="GObject.Value" c:type="GValue*"/>
-        </parameter>
-        <parameter name="user_data" transfer-ownership="none" closure="2">
-          <type name="any" c:type="gpointer"/>
-        </parameter>
-      </parameters>
-    </callback>
-    <class name="SystemClock"
-           c:type="GstSystemClock"
-           doc="The default implementation of a #GstClock that uses the system time."
-           parent="Clock"
-           glib:type-name="GstSystemClock"
-           glib:get-type="gst_system_clock_get_type"
-           glib:type-struct="SystemClockClass">
-      <function name="obtain"
-                c:identifier="gst_system_clock_obtain"
-                doc="Get a handle to the default system clock. The refcount of the
-clock will be increased so you need to unref the clock after
-usage.
-MT safe.">
-        <return-value transfer-ownership="full">
-          <type name="Clock" c:type="GstClock*"/>
-        </return-value>
-      </function>
-      <property name="clock-type" writable="1">
-        <type name="ClockType" c:type="GstClockType"/>
-      </property>
-      <field name="clock">
-        <type name="Clock" c:type="GstClock"/>
-      </field>
-      <field name="thread">
-        <type name="GLib.Thread" c:type="GThread*"/>
-      </field>
-      <field name="stopping">
-        <type name="boolean" c:type="gboolean"/>
-      </field>
-      <field name="priv">
-        <type name="SystemClockPrivate" c:type="GstSystemClockPrivate*"/>
-      </field>
-      <field name="_gst_reserved">
-        <array zero-terminated="0" c:type="gpointer" fixed-size="3">
-          <type name="any"/>
-        </array>
-      </field>
-    </class>
-    <record name="SystemClockClass"
-            c:type="GstSystemClockClass"
-            glib:is-gtype-struct-for="SystemClock">
-      <field name="parent_class">
-        <type name="ClockClass" c:type="GstClockClass"/>
-      </field>
-      <field name="_gst_reserved">
-        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
-          <type name="any"/>
-        </array>
-      </field>
-    </record>
-    <record name="SystemClockPrivate" c:type="GstSystemClockPrivate">
-    </record>
-    <constant name="TAG_ALBUM" value="album">
-      <type name="utf8"/>
-    </constant>
-    <constant name="TAG_ALBUM_ARTIST" value="album-artist">
-      <type name="utf8"/>
-    </constant>
-    <constant name="TAG_ALBUM_ARTIST_SORTNAME" value="album-artist-sortname">
-      <type name="utf8"/>
-    </constant>
-    <constant name="TAG_ALBUM_GAIN" value="replaygain-album-gain">
-      <type name="utf8"/>
-    </constant>
-    <constant name="TAG_ALBUM_PEAK" value="replaygain-album-peak">
-      <type name="utf8"/>
-    </constant>
-    <constant name="TAG_ALBUM_SORTNAME" value="album-sortname">
-      <type name="utf8"/>
-    </constant>
-    <constant name="TAG_ALBUM_VOLUME_COUNT" value="album-disc-count">
-      <type name="utf8"/>
-    </constant>
-    <constant name="TAG_ALBUM_VOLUME_NUMBER" value="album-disc-number">
-      <type name="utf8"/>
-    </constant>
-    <constant name="TAG_ARTIST" value="artist">
-      <type name="utf8"/>
-    </constant>
-    <constant name="TAG_ARTIST_SORTNAME" value="musicbrainz-sortname">
-      <type name="utf8"/>
-    </constant>
-    <constant name="TAG_ATTACHMENT" value="attachment">
-      <type name="utf8"/>
-    </constant>
-    <constant name="TAG_AUDIO_CODEC" value="audio-codec">
-      <type name="utf8"/>
-    </constant>
-    <constant name="TAG_BEATS_PER_MINUTE" value="beats-per-minute">
-      <type name="utf8"/>
-    </constant>
-    <constant name="TAG_BITRATE" value="bitrate">
-      <type name="utf8"/>
-    </constant>
-    <constant name="TAG_CODEC" value="codec">
-      <type name="utf8"/>
-    </constant>
-    <constant name="TAG_COMMENT" value="comment">
-      <type name="utf8"/>
-    </constant>
-    <constant name="TAG_COMPOSER" value="composer">
-      <type name="utf8"/>
-    </constant>
-    <constant name="TAG_COMPOSER_SORTNAME" value="composer-sortname">
-      <type name="utf8"/>
-    </constant>
-    <constant name="TAG_CONTACT" value="contact">
-      <type name="utf8"/>
-    </constant>
-    <constant name="TAG_CONTAINER_FORMAT" value="container-format">
-      <type name="utf8"/>
-    </constant>
-    <constant name="TAG_COPYRIGHT" value="copyright">
-      <type name="utf8"/>
-    </constant>
-    <constant name="TAG_COPYRIGHT_URI" value="copyright-uri">
-      <type name="utf8"/>
-    </constant>
-    <constant name="TAG_DATE" value="date">
-      <type name="utf8"/>
-    </constant>
-    <constant name="TAG_DESCRIPTION" value="description">
-      <type name="utf8"/>
-    </constant>
-    <constant name="TAG_DURATION" value="duration">
-      <type name="utf8"/>
-    </constant>
-    <constant name="TAG_ENCODER" value="encoder">
-      <type name="utf8"/>
-    </constant>
-    <constant name="TAG_ENCODER_VERSION" value="encoder-version">
-      <type name="utf8"/>
-    </constant>
-    <constant name="TAG_EXTENDED_COMMENT" value="extended-comment">
-      <type name="utf8"/>
-    </constant>
-    <constant name="TAG_GENRE" value="genre">
-      <type name="utf8"/>
-    </constant>
-    <constant name="TAG_GEO_LOCATION_CITY" value="geo-location-city">
-      <type name="utf8"/>
-    </constant>
-    <constant name="TAG_GEO_LOCATION_COUNTRY" value="geo-location-country">
-      <type name="utf8"/>
-    </constant>
-    <constant name="TAG_GEO_LOCATION_ELEVATION" value="geo-location-elevation">
-      <type name="utf8"/>
-    </constant>
-    <constant name="TAG_GEO_LOCATION_LATITUDE" value="geo-location-latitude">
-      <type name="utf8"/>
-    </constant>
-    <constant name="TAG_GEO_LOCATION_LONGITUDE" value="geo-location-longitude">
-      <type name="utf8"/>
-    </constant>
-    <constant name="TAG_GEO_LOCATION_NAME" value="geo-location-name">
-      <type name="utf8"/>
-    </constant>
-    <constant name="TAG_GEO_LOCATION_SUBLOCATION"
-              value="geo-location-sublocation">
-      <type name="utf8"/>
-    </constant>
-    <constant name="TAG_GROUPING" value="grouping">
-      <type name="utf8"/>
-    </constant>
-    <constant name="TAG_HOMEPAGE" value="homepage">
-      <type name="utf8"/>
-    </constant>
-    <constant name="TAG_IMAGE" value="image">
-      <type name="utf8"/>
-    </constant>
-    <constant name="TAG_ISRC" value="isrc">
-      <type name="utf8"/>
-    </constant>
-    <constant name="TAG_KEYWORDS" value="keywords">
-      <type name="utf8"/>
-    </constant>
-    <constant name="TAG_LANGUAGE_CODE" value="language-code">
-      <type name="utf8"/>
-    </constant>
-    <constant name="TAG_LICENSE" value="license">
-      <type name="utf8"/>
-    </constant>
-    <constant name="TAG_LICENSE_URI" value="license-uri">
-      <type name="utf8"/>
-    </constant>
-    <constant name="TAG_LOCATION" value="location">
-      <type name="utf8"/>
-    </constant>
-    <constant name="TAG_LYRICS" value="lyrics">
-      <type name="utf8"/>
-    </constant>
-    <constant name="TAG_MAXIMUM_BITRATE" value="maximum-bitrate">
-      <type name="utf8"/>
-    </constant>
-    <constant name="TAG_MINIMUM_BITRATE" value="minimum-bitrate">
-      <type name="utf8"/>
-    </constant>
-    <constant name="TAG_NOMINAL_BITRATE" value="nominal-bitrate">
-      <type name="utf8"/>
-    </constant>
-    <constant name="TAG_ORGANIZATION" value="organization">
-      <type name="utf8"/>
-    </constant>
-    <constant name="TAG_PERFORMER" value="performer">
-      <type name="utf8"/>
-    </constant>
-    <constant name="TAG_PREVIEW_IMAGE" value="preview-image">
-      <type name="utf8"/>
-    </constant>
-    <constant name="TAG_REFERENCE_LEVEL" value="replaygain-reference-level">
-      <type name="utf8"/>
-    </constant>
-    <constant name="TAG_SERIAL" value="serial">
-      <type name="utf8"/>
-    </constant>
-    <constant name="TAG_SHOW_EPISODE_NUMBER" value="show-episode-number">
-      <type name="utf8"/>
-    </constant>
-    <constant name="TAG_SHOW_NAME" value="show-name">
-      <type name="utf8"/>
-    </constant>
-    <constant name="TAG_SHOW_SEASON_NUMBER" value="show-season-number">
-      <type name="utf8"/>
-    </constant>
-    <constant name="TAG_SHOW_SORTNAME" value="show-sortname">
-      <type name="utf8"/>
-    </constant>
-    <constant name="TAG_SUBTITLE_CODEC" value="subtitle-codec">
-      <type name="utf8"/>
-    </constant>
-    <constant name="TAG_TITLE" value="title">
-      <type name="utf8"/>
-    </constant>
-    <constant name="TAG_TITLE_SORTNAME" value="title-sortname">
-      <type name="utf8"/>
-    </constant>
-    <constant name="TAG_TRACK_COUNT" value="track-count">
-      <type name="utf8"/>
-    </constant>
-    <constant name="TAG_TRACK_GAIN" value="replaygain-track-gain">
-      <type name="utf8"/>
-    </constant>
-    <constant name="TAG_TRACK_NUMBER" value="track-number">
-      <type name="utf8"/>
-    </constant>
-    <constant name="TAG_TRACK_PEAK" value="replaygain-track-peak">
-      <type name="utf8"/>
-    </constant>
-    <constant name="TAG_USER_RATING" value="user-rating">
-      <type name="utf8"/>
-    </constant>
-    <constant name="TAG_VERSION" value="version">
-      <type name="utf8"/>
-    </constant>
-    <constant name="TAG_VIDEO_CODEC" value="video-codec">
-      <type name="utf8"/>
-    </constant>
-    <constant name="TIME_FORMAT" value="u:%02u:%02u.%09u">
-      <type name="utf8"/>
-    </constant>
-    <enumeration name="TagFlag"
-                 doc="Extra tag flags used when registering tags."
-                 c:type="GstTagFlag">
-      <member name="undefined"
-              value="0"
-              c:identifier="GST_TAG_FLAG_UNDEFINED"/>
-      <member name="meta" value="1" c:identifier="GST_TAG_FLAG_META"/>
-      <member name="encoded" value="2" c:identifier="GST_TAG_FLAG_ENCODED"/>
-      <member name="decoded" value="3" c:identifier="GST_TAG_FLAG_DECODED"/>
-      <member name="count" value="4" c:identifier="GST_TAG_FLAG_COUNT"/>
-    </enumeration>
-    <callback name="TagForeachFunc"
-              c:type="GstTagForeachFunc"
-              doc="A function that will be called in gst_tag_list_foreach(). The function may
-not modify the tag list.">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="list" transfer-ownership="none">
-          <type name="TagList" c:type="GstTagList*"/>
-        </parameter>
-        <parameter name="tag" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-        <parameter name="user_data" transfer-ownership="none" closure="2">
-          <type name="any" c:type="gpointer"/>
-        </parameter>
-      </parameters>
-    </callback>
-    <record name="TagList"
-            c:type="GstTagList"
-            doc="Opaque #GstTagList data structure."
-            glib:type-name="GstTagList"
-            glib:get-type="gst_tag_list_get_type">
-      <constructor name="new"
-                   c:identifier="gst_tag_list_new"
-                   doc="Creates a new empty GstTagList.">
-        <return-value transfer-ownership="full">
-          <type name="TagList" c:type="GstTagList*"/>
-        </return-value>
-      </constructor>
-      <constructor name="new_full"
-                   c:identifier="gst_tag_list_new_full"
-                   doc="Creates a new taglist and appends the values for the given tags. It expects
-tag-value pairs like gst_tag_list_add(), and a NULL terminator after the
-last pair. The type of the values is implicit and is documented in the API
-reference, but can also be queried at runtime with gst_tag_get_type(). It
-is an error to pass a value of a type not matching the tag type into this
-function. The tag list will make copies of any arguments passed
-(e.g. strings, buffers).
-needed."
-                   version="0.10.24">
-        <return-value transfer-ownership="full" doc="when no longer">
-          <type name="TagList" c:type="GstTagList*"/>
-        </return-value>
-        <parameters>
-          <parameter name="tag" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter transfer-ownership="none">
-            <varargs>
-            </varargs>
-          </parameter>
-        </parameters>
-      </constructor>
-      <method name="copy"
-              c:identifier="gst_tag_list_copy"
-              doc="Copies a given #GstTagList.">
-        <return-value transfer-ownership="full">
-          <type name="TagList" c:type="GstTagList*"/>
-        </return-value>
-      </method>
-      <method name="is_empty"
-              c:identifier="gst_tag_list_is_empty"
-              doc="Checks if the given taglist is empty."
-              version="0.10.11">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-      </method>
-      <method name="insert"
-              c:identifier="gst_tag_list_insert"
-              doc="Inserts the tags of the @from list into the first list using the given mode.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="from" transfer-ownership="none">
-            <type name="TagList" c:type="GstTagList*"/>
-          </parameter>
-          <parameter name="mode" transfer-ownership="none">
-            <type name="TagMergeMode" c:type="GstTagMergeMode"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="merge"
-              c:identifier="gst_tag_list_merge"
-              doc="Merges the two given lists into a new list. If one of the lists is NULL, a
-copy of the other is returned. If both lists are NULL, NULL is returned.">
-        <return-value transfer-ownership="full">
-          <type name="TagList" c:type="GstTagList*"/>
-        </return-value>
-        <parameters>
-          <parameter name="list2" transfer-ownership="none">
-            <type name="TagList" c:type="GstTagList*"/>
-          </parameter>
-          <parameter name="mode" transfer-ownership="none">
-            <type name="TagMergeMode" c:type="GstTagMergeMode"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="free"
-              c:identifier="gst_tag_list_free"
-              doc="Frees the given list and all associated values.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </method>
-      <method name="get_tag_size"
-              c:identifier="gst_tag_list_get_tag_size"
-              doc="Checks how many value are stored in this tag list for the given tag.">
-        <return-value transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
-        </return-value>
-        <parameters>
-          <parameter name="tag" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="add"
-              c:identifier="gst_tag_list_add"
-              doc="Sets the values for the given tags using the specified mode.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="mode" transfer-ownership="none">
-            <type name="TagMergeMode" c:type="GstTagMergeMode"/>
-          </parameter>
-          <parameter name="tag" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter transfer-ownership="none">
-            <varargs>
-            </varargs>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="add_values"
-              c:identifier="gst_tag_list_add_values"
-              doc="Sets the GValues for the given tags using the specified mode.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="mode" transfer-ownership="none">
-            <type name="TagMergeMode" c:type="GstTagMergeMode"/>
-          </parameter>
-          <parameter name="tag" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter transfer-ownership="none">
-            <varargs>
-            </varargs>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="add_value"
-              c:identifier="gst_tag_list_add_value"
-              doc="Sets the GValue for a given tag using the specified mode."
-              version="0.10.24">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="mode" transfer-ownership="none">
-            <type name="TagMergeMode" c:type="GstTagMergeMode"/>
-          </parameter>
-          <parameter name="tag" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="value" transfer-ownership="none">
-            <type name="GObject.Value" c:type="GValue*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="remove_tag"
-              c:identifier="gst_tag_list_remove_tag"
-              doc="Removes the given tag from the taglist.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="tag" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="foreach"
-              c:identifier="gst_tag_list_foreach"
-              doc="Calls the given function for each tag inside the tag list. Note that if there
-is no tag, the function won&apos;t be called at all.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="func"
-                     transfer-ownership="none"
-                     scope="call"
-                     closure="2">
-            <type name="TagForeachFunc" c:type="GstTagForeachFunc"/>
-          </parameter>
-          <parameter name="user_data" transfer-ownership="none">
-            <type name="any" c:type="gpointer"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_value_index"
-              c:identifier="gst_tag_list_get_value_index"
-              doc="Gets the value that is at the given index for the given tag in the given
-list.
-available or the tag doesn&apos;t have as many entries">
-        <return-value transfer-ownership="none">
-          <type name="GObject.Value" c:type="GValue*"/>
-        </return-value>
-        <parameters>
-          <parameter name="tag" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="index" transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_char"
-              c:identifier="gst_tag_list_get_char"
-              doc="Copies the contents for the given tag into the value, merging multiple values
-into one if multiple values are associated with the tag.
-given list.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="tag" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="value" transfer-ownership="full">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_char_index"
-              c:identifier="gst_tag_list_get_char_index"
-              doc="Gets the value that is at the given index for the given tag in the given
-list.
-given list.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="tag" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="index" transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
-          </parameter>
-          <parameter name="value" transfer-ownership="full">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_uchar"
-              c:identifier="gst_tag_list_get_uchar"
-              doc="Copies the contents for the given tag into the value, merging multiple values
-into one if multiple values are associated with the tag.
-given list.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="tag" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="value" transfer-ownership="none">
-            <array c:type="guchar*">
-              <type name="uint8"/>
-            </array>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_uchar_index"
-              c:identifier="gst_tag_list_get_uchar_index"
-              doc="Gets the value that is at the given index for the given tag in the given
-list.
-given list.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="tag" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="index" transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
-          </parameter>
-          <parameter name="value" transfer-ownership="none">
-            <array c:type="guchar*">
-              <type name="uint8"/>
-            </array>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_boolean"
-              c:identifier="gst_tag_list_get_boolean"
-              doc="Copies the contents for the given tag into the value, merging multiple values
-into one if multiple values are associated with the tag.
-given list.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="tag" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="value" direction="out" transfer-ownership="full">
-            <type name="boolean" c:type="gboolean*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_boolean_index"
-              c:identifier="gst_tag_list_get_boolean_index"
-              doc="Gets the value that is at the given index for the given tag in the given
-list.
-given list.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="tag" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="index" transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
-          </parameter>
-          <parameter name="value" direction="out" transfer-ownership="full">
-            <type name="boolean" c:type="gboolean*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_int"
-              c:identifier="gst_tag_list_get_int"
-              doc="Copies the contents for the given tag into the value, merging multiple values
-into one if multiple values are associated with the tag.
-given list.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="tag" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="value" direction="out" transfer-ownership="full">
-            <type name="int" c:type="gint*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_int_index"
-              c:identifier="gst_tag_list_get_int_index"
-              doc="Gets the value that is at the given index for the given tag in the given
-list.
-given list.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="tag" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="index" transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
-          </parameter>
-          <parameter name="value" direction="out" transfer-ownership="full">
-            <type name="int" c:type="gint*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_uint"
-              c:identifier="gst_tag_list_get_uint"
-              doc="Copies the contents for the given tag into the value, merging multiple values
-into one if multiple values are associated with the tag.
-given list.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="tag" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="value" direction="out" transfer-ownership="full">
-            <type name="uint" c:type="guint*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_uint_index"
-              c:identifier="gst_tag_list_get_uint_index"
-              doc="Gets the value that is at the given index for the given tag in the given
-list.
-given list.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="tag" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="index" transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
-          </parameter>
-          <parameter name="value" direction="out" transfer-ownership="full">
-            <type name="uint" c:type="guint*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_long"
-              c:identifier="gst_tag_list_get_long"
-              doc="Copies the contents for the given tag into the value, merging multiple values
-into one if multiple values are associated with the tag.
-given list.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="tag" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="value" direction="out" transfer-ownership="full">
-            <type name="long" c:type="glong*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_long_index"
-              c:identifier="gst_tag_list_get_long_index"
-              doc="Gets the value that is at the given index for the given tag in the given
-list.
-given list.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="tag" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="index" transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
-          </parameter>
-          <parameter name="value" direction="out" transfer-ownership="full">
-            <type name="long" c:type="glong*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_ulong"
-              c:identifier="gst_tag_list_get_ulong"
-              doc="Copies the contents for the given tag into the value, merging multiple values
-into one if multiple values are associated with the tag.
-given list.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="tag" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="value" direction="out" transfer-ownership="full">
-            <type name="ulong" c:type="gulong*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_ulong_index"
-              c:identifier="gst_tag_list_get_ulong_index"
-              doc="Gets the value that is at the given index for the given tag in the given
-list.
-given list.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="tag" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="index" transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
-          </parameter>
-          <parameter name="value" direction="out" transfer-ownership="full">
-            <type name="ulong" c:type="gulong*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_int64"
-              c:identifier="gst_tag_list_get_int64"
-              doc="Copies the contents for the given tag into the value, merging multiple values
-into one if multiple values are associated with the tag.
-given list.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="tag" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="value" direction="out" transfer-ownership="full">
-            <type name="int64" c:type="gint64*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_int64_index"
-              c:identifier="gst_tag_list_get_int64_index"
-              doc="Gets the value that is at the given index for the given tag in the given
-list.
-given list.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="tag" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="index" transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
-          </parameter>
-          <parameter name="value" direction="out" transfer-ownership="full">
-            <type name="int64" c:type="gint64*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_uint64"
-              c:identifier="gst_tag_list_get_uint64"
-              doc="Copies the contents for the given tag into the value, merging multiple values
-into one if multiple values are associated with the tag.
-given list.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="tag" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="value" direction="out" transfer-ownership="full">
-            <type name="uint64" c:type="guint64*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_uint64_index"
-              c:identifier="gst_tag_list_get_uint64_index"
-              doc="Gets the value that is at the given index for the given tag in the given
-list.
-given list.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="tag" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="index" transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
-          </parameter>
-          <parameter name="value" direction="out" transfer-ownership="full">
-            <type name="uint64" c:type="guint64*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_float"
-              c:identifier="gst_tag_list_get_float"
-              doc="Copies the contents for the given tag into the value, merging multiple values
-into one if multiple values are associated with the tag.
-given list.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="tag" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="value" direction="out" transfer-ownership="full">
-            <type name="float" c:type="gfloat*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_float_index"
-              c:identifier="gst_tag_list_get_float_index"
-              doc="Gets the value that is at the given index for the given tag in the given
-list.
-given list.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="tag" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="index" transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
-          </parameter>
-          <parameter name="value" direction="out" transfer-ownership="full">
-            <type name="float" c:type="gfloat*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_double"
-              c:identifier="gst_tag_list_get_double"
-              doc="Copies the contents for the given tag into the value, merging multiple values
-into one if multiple values are associated with the tag.
-given list.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="tag" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="value" direction="out" transfer-ownership="full">
-            <type name="double" c:type="gdouble*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_double_index"
-              c:identifier="gst_tag_list_get_double_index"
-              doc="Gets the value that is at the given index for the given tag in the given
-list.
-given list.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="tag" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="index" transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
-          </parameter>
-          <parameter name="value" direction="out" transfer-ownership="full">
-            <type name="double" c:type="gdouble*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_string"
-              c:identifier="gst_tag_list_get_string"
-              doc="Copies the contents for the given tag into the value, possibly merging
-multiple values into one if multiple values are associated with the tag.
-Use gst_tag_list_get_string_index (list, tag, 0, value) if you want
-to retrieve the first string associated with this tag unmodified.
-The resulting string in @value will be in UTF-8 encoding and should be
-freed by the caller using g_free when no longer needed. Since 0.10.24 the
-returned string is also guaranteed to be non-NULL and non-empty.
-given list.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="tag" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="value" transfer-ownership="none">
-            <array c:type="gchar**">
-              <type name="utf8"/>
-            </array>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_string_index"
-              c:identifier="gst_tag_list_get_string_index"
-              doc="Gets the value that is at the given index for the given tag in the given
-list.
-The resulting string in @value will be in UTF-8 encoding and should be
-freed by the caller using g_free when no longer needed. Since 0.10.24 the
-returned string is also guaranteed to be non-NULL and non-empty.
-given list.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="tag" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="index" transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
-          </parameter>
-          <parameter name="value" transfer-ownership="none">
-            <array c:type="gchar**">
-              <type name="utf8"/>
-            </array>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_pointer"
-              c:identifier="gst_tag_list_get_pointer"
-              doc="Copies the contents for the given tag into the value, merging multiple values
-into one if multiple values are associated with the tag.
-given list.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="tag" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="value" transfer-ownership="none">
-            <type name="any" c:type="gpointer*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_pointer_index"
-              c:identifier="gst_tag_list_get_pointer_index"
-              doc="Gets the value that is at the given index for the given tag in the given
-list.
-given list.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="tag" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="index" transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
-          </parameter>
-          <parameter name="value" transfer-ownership="none">
-            <type name="any" c:type="gpointer*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_date"
-              c:identifier="gst_tag_list_get_date"
-              doc="Copies the first date for the given tag in the taglist into the variable
-pointed to by @value. Free the date with g_date_free() when it is no longer
-needed.
-given list or if it was #NULL.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="tag" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="value" transfer-ownership="none">
-            <type name="GLib.Date" c:type="GDate**"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_date_index"
-              c:identifier="gst_tag_list_get_date_index"
-              doc="Gets the date that is at the given index for the given tag in the given
-list and copies it into the variable pointed to by @value. Free the date
-with g_date_free() when it is no longer needed.
-given list or if it was #NULL.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="tag" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="index" transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
-          </parameter>
-          <parameter name="value" transfer-ownership="none">
-            <type name="GLib.Date" c:type="GDate**"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_buffer"
-              c:identifier="gst_tag_list_get_buffer"
-              doc="Copies the first buffer for the given tag in the taglist into the variable
-pointed to by @value. Free the buffer with gst_buffer_unref() when it is
-no longer needed.
-given list or if it was #NULL."
-              version="0.10.23">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="tag" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="value" transfer-ownership="none">
-            <type name="Buffer" c:type="GstBuffer**"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_buffer_index"
-              c:identifier="gst_tag_list_get_buffer_index"
-              doc="Gets the buffer that is at the given index for the given tag in the given
-list and copies it into the variable pointed to by @value. Free the buffer
-with gst_buffer_unref() when it is no longer needed.
-given list or if it was #NULL."
-              version="0.10.23">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="tag" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="index" transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
-          </parameter>
-          <parameter name="value" transfer-ownership="none">
-            <type name="Buffer" c:type="GstBuffer**"/>
-          </parameter>
-        </parameters>
-      </method>
-    </record>
-    <callback name="TagMergeFunc"
-              c:type="GstTagMergeFunc"
-              doc="A function for merging multiple values of a tag used when registering
-tags.">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="dest" transfer-ownership="none">
-          <type name="GObject.Value" c:type="GValue*"/>
-        </parameter>
-        <parameter name="src" transfer-ownership="none">
-          <type name="GObject.Value" c:type="GValue*"/>
-        </parameter>
-      </parameters>
-    </callback>
-    <enumeration name="TagMergeMode"
-                 doc="The different tag merging modes are basically replace, overwrite and append,
-already in the element and (B) the ones that are supplied to the element (
-e.g. via gst_tag_setter_merge_tags() / gst_tag_setter_add_tags() or a
-%GST_EVENT_TAG), how are these tags merged?
-In the table below this is shown for the cases that a tag exists in the list
-(A) or does not exists (!A) and combinations thereof.
-&lt;table frame=&quot;all&quot; colsep=&quot;1&quot; rowsep=&quot;1&quot;&gt;
-&lt;title&gt;merge mode&lt;/title&gt;
-&lt;tgroup cols=&apos;5&apos; align=&apos;left&apos;&gt;
-&lt;thead&gt;
-&lt;row&gt;
-&lt;entry&gt;merge mode&lt;/entry&gt;
-&lt;entry&gt;A + B&lt;/entry&gt;
-&lt;entry&gt;A + !B&lt;/entry&gt;
-&lt;entry&gt;!A + B&lt;/entry&gt;
-&lt;entry&gt;!A + !B&lt;/entry&gt;
-&lt;/row&gt;
-&lt;/thead&gt;
-&lt;tbody&gt;
-&lt;row&gt;
-&lt;entry&gt;REPLACE_ALL&lt;/entry&gt;
-&lt;entry&gt;B&lt;/entry&gt;
-&lt;entry&gt;-&lt;/entry&gt;
-&lt;entry&gt;B&lt;/entry&gt;
-&lt;entry&gt;-&lt;/entry&gt;
-&lt;/row&gt;
-&lt;row&gt;
-&lt;entry&gt;REPLACE&lt;/entry&gt;
-&lt;entry&gt;B&lt;/entry&gt;
-&lt;entry&gt;A&lt;/entry&gt;
-&lt;entry&gt;B&lt;/entry&gt;
-&lt;entry&gt;-&lt;/entry&gt;
-&lt;/row&gt;
-&lt;row&gt;
-&lt;entry&gt;APPEND&lt;/entry&gt;
-&lt;entry&gt;A, B&lt;/entry&gt;
-&lt;entry&gt;A&lt;/entry&gt;
-&lt;entry&gt;B&lt;/entry&gt;
-&lt;entry&gt;-&lt;/entry&gt;
-&lt;/row&gt;
-&lt;row&gt;
-&lt;entry&gt;PREPEND&lt;/entry&gt;
-&lt;entry&gt;B, A&lt;/entry&gt;
-&lt;entry&gt;A&lt;/entry&gt;
-&lt;entry&gt;B&lt;/entry&gt;
-&lt;entry&gt;-&lt;/entry&gt;
-&lt;/row&gt;
-&lt;row&gt;
-&lt;entry&gt;KEEP&lt;/entry&gt;
-&lt;entry&gt;A&lt;/entry&gt;
-&lt;entry&gt;A&lt;/entry&gt;
-&lt;entry&gt;B&lt;/entry&gt;
-&lt;entry&gt;-&lt;/entry&gt;
-&lt;/row&gt;
-&lt;row&gt;
-&lt;entry&gt;KEEP_ALL&lt;/entry&gt;
-&lt;entry&gt;A&lt;/entry&gt;
-&lt;entry&gt;A&lt;/entry&gt;
-&lt;entry&gt;-&lt;/entry&gt;
-&lt;entry&gt;-&lt;/entry&gt;
-&lt;/row&gt;
-&lt;/tbody&gt;
-&lt;/tgroup&gt;
-&lt;/table&gt;"
-                 c:type="GstTagMergeMode">
-      <member name="undefined"
-              value="0"
-              c:identifier="GST_TAG_MERGE_UNDEFINED"/>
-      <member name="replace_all"
-              value="1"
-              c:identifier="GST_TAG_MERGE_REPLACE_ALL"/>
-      <member name="replace" value="2" c:identifier="GST_TAG_MERGE_REPLACE"/>
-      <member name="append" value="3" c:identifier="GST_TAG_MERGE_APPEND"/>
-      <member name="prepend" value="4" c:identifier="GST_TAG_MERGE_PREPEND"/>
-      <member name="keep" value="5" c:identifier="GST_TAG_MERGE_KEEP"/>
-      <member name="keep_all" value="6" c:identifier="GST_TAG_MERGE_KEEP_ALL"/>
-      <member name="count" value="7" c:identifier="GST_TAG_MERGE_COUNT"/>
-    </enumeration>
-    <interface name="TagSetter"
-               c:type="GstTagSetter"
-               doc="Opaque #GstTagSetter data structure."
-               glib:type-name="GstTagSetter"
-               glib:get-type="gst_tag_setter_get_type">
-      <prerequisite name="Element"/>
-      <method name="reset_tags"
-              c:identifier="gst_tag_setter_reset_tags"
-              doc="Reset the internal taglist. Elements should call this from within the
-state-change handler."
-              version="0.10.22">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </method>
-      <method name="merge_tags"
-              c:identifier="gst_tag_setter_merge_tags"
-              doc="Merges the given list into the setter&apos;s list using the given mode.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="list" transfer-ownership="none">
-            <type name="TagList" c:type="GstTagList*"/>
-          </parameter>
-          <parameter name="mode" transfer-ownership="none">
-            <type name="TagMergeMode" c:type="GstTagMergeMode"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="add_tags"
-              c:identifier="gst_tag_setter_add_tags"
-              doc="Adds the given tag / value pairs on the setter using the given merge mode.
-The list must be terminated with NULL.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="mode" transfer-ownership="none">
-            <type name="TagMergeMode" c:type="GstTagMergeMode"/>
-          </parameter>
-          <parameter name="tag" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter transfer-ownership="none">
-            <varargs>
-            </varargs>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="add_tag_values"
-              c:identifier="gst_tag_setter_add_tag_values"
-              doc="Adds the given tag / GValue pairs on the setter using the given merge mode.
-The list must be terminated with NULL.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="mode" transfer-ownership="none">
-            <type name="TagMergeMode" c:type="GstTagMergeMode"/>
-          </parameter>
-          <parameter name="tag" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter transfer-ownership="none">
-            <varargs>
-            </varargs>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="add_tag_value"
-              c:identifier="gst_tag_setter_add_tag_value"
-              doc="Adds the given tag / GValue pair on the setter using the given merge mode."
-              version="0.10.24">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="mode" transfer-ownership="none">
-            <type name="TagMergeMode" c:type="GstTagMergeMode"/>
-          </parameter>
-          <parameter name="tag" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="value" transfer-ownership="none">
-            <type name="GObject.Value" c:type="GValue*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_tag_list"
-              c:identifier="gst_tag_setter_get_tag_list"
-              doc="Returns the current list of tags the setter uses.  The list should not be
-modified or freed.
-or NULL if none is used.">
-        <return-value transfer-ownership="none">
-          <type name="TagList" c:type="GstTagList*"/>
-        </return-value>
-      </method>
-      <method name="set_tag_merge_mode"
-              c:identifier="gst_tag_setter_set_tag_merge_mode"
-              doc="Sets the given merge mode that is used for adding tags from events to tags
-specified by this interface. The default is #GST_TAG_MERGE_KEEP, which keeps
-the tags set with this interface and discards tags from events.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="mode" transfer-ownership="none">
-            <type name="TagMergeMode" c:type="GstTagMergeMode"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_tag_merge_mode"
-              c:identifier="gst_tag_setter_get_tag_merge_mode"
-              doc="Queries the mode by which tags inside the setter are overwritten by tags
-from events">
-        <return-value transfer-ownership="full">
-          <type name="TagMergeMode" c:type="GstTagMergeMode"/>
-        </return-value>
-      </method>
-    </interface>
-    <record name="TagSetterIFace"
-            c:type="GstTagSetterIFace"
-            doc="#GstTagSetterIFace interface.">
-      <field name="g_iface" writable="1">
-        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
-      </field>
-    </record>
-    <class name="Task"
-           c:type="GstTask"
-           doc="The #GstTask object."
-           parent="Object"
-           glib:type-name="GstTask"
-           glib:get-type="gst_task_get_type"
-           glib:type-struct="TaskClass">
-      <function name="cleanup_all"
-                c:identifier="gst_task_cleanup_all"
-                doc="Wait for all tasks to be stopped. This is mainly used internally
-to ensure proper cleanup of internal data structures in test suites.
-MT safe.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </function>
-      <function name="create"
-                c:identifier="gst_task_create"
-                doc="Create a new Task that will repeatedly call the provided @func
-with @data as a parameter. Typically the task will run in
-a new thread.
-The function cannot be changed after the task has been created. You
-must create a new #GstTask to change the function.
-This function will not yet create and start a thread. Use gst_task_start() or
-gst_task_pause() to create and start the GThread.
-Before the task can be used, a #GStaticRecMutex must be configured using the
-gst_task_set_lock() function. This lock will always be acquired while
-MT safe.">
-        <return-value transfer-ownership="full">
-          <type name="Task" c:type="GstTask*"/>
-        </return-value>
-        <parameters>
-          <parameter name="func"
-                     transfer-ownership="none"
-                     scope="call"
-                     closure="1">
-            <type name="TaskFunction" c:type="GstTaskFunction"/>
-          </parameter>
-          <parameter name="data" transfer-ownership="none">
-            <type name="any" c:type="gpointer"/>
-          </parameter>
-        </parameters>
-      </function>
-      <method name="set_lock"
-              c:identifier="gst_task_set_lock"
-              doc="Set the mutex used by the task. The mutex will be acquired before
-calling the #GstTaskFunction.
-This function has to be called before calling gst_task_pause() or
-gst_task_start().
-MT safe.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="mutex" transfer-ownership="none">
-            <type name="GLib.StaticRecMutex" c:type="GStaticRecMutex*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_priority"
-              c:identifier="gst_task_set_priority"
-              doc="Changes the priority of @task to @priority.
-MT safe."
-              version="0.10.24">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="priority" transfer-ownership="none">
-            <type name="GLib.ThreadPriority" c:type="GThreadPriority"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_pool"
-              c:identifier="gst_task_get_pool"
-              doc="Get the #GstTaskPool that this task will use for its streaming
-threads.
-MT safe.
-after usage."
-              version="0.10.24">
-        <return-value transfer-ownership="full">
-          <type name="TaskPool" c:type="GstTaskPool*"/>
-        </return-value>
-      </method>
-      <method name="set_pool"
-              c:identifier="gst_task_set_pool"
-              doc="Set @pool as the new GstTaskPool for @task. Any new streaming threads that
-will be created by @task will now use @pool.
-MT safe."
-              version="0.10.24">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="pool" transfer-ownership="none">
-            <type name="TaskPool" c:type="GstTaskPool*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_thread_callbacks"
-              c:identifier="gst_task_set_thread_callbacks"
-              doc="Set callbacks which will be executed when a new thread is needed, the thread
-function is entered and left and when the thread is joined.
-By default a thread for @task will be created from a default thread pool.
-Objects can use custom GThreads or can perform additional configuration of
-the threads (such as changing the thread priority) by installing callbacks.
-MT safe."
-              version="0.10.24">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="callbacks" transfer-ownership="none">
-            <type name="TaskThreadCallbacks" c:type="GstTaskThreadCallbacks*"/>
-          </parameter>
-          <parameter name="user_data" transfer-ownership="none">
-            <type name="any" c:type="gpointer"/>
-          </parameter>
-          <parameter name="notify" transfer-ownership="none" scope="call">
-            <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_state"
-              c:identifier="gst_task_get_state"
-              doc="Get the current state of the task.
-MT safe.">
-        <return-value transfer-ownership="full">
-          <type name="TaskState" c:type="GstTaskState"/>
-        </return-value>
-      </method>
-      <method name="set_state"
-              c:identifier="gst_task_set_state"
-              doc="Sets the state of @task to @state.
-The @task must have a lock associated with it using
-gst_task_set_lock() when going to GST_TASK_STARTED or GST_TASK_PAUSED or
-this function will return %FALSE.
-MT safe."
-              version="0.10.24">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="state" transfer-ownership="none">
-            <type name="TaskState" c:type="GstTaskState"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="start"
-              c:identifier="gst_task_start"
-              doc="Starts @task. The @task must have a lock associated with it using
-gst_task_set_lock() or this function will return %FALSE.
-MT safe.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-      </method>
-      <method name="stop"
-              c:identifier="gst_task_stop"
-              doc="Stops @task. This method merely schedules the task to stop and
-will not wait for the task to have completely stopped. Use
-gst_task_join() to stop and wait for completion.
-MT safe.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-      </method>
-      <method name="pause"
-              c:identifier="gst_task_pause"
-              doc="Pauses @task. This method can also be called on a task in the
-stopped state, in which case a thread will be started and will remain
-in the paused state. This function does not wait for the task to complete
-the paused state.
-MT safe.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-      </method>
-      <method name="join"
-              c:identifier="gst_task_join"
-              doc="Joins @task. After this call, it is safe to unref the task
-and clean up the lock set with gst_task_set_lock().
-The task will automatically be stopped with this call.
-This function cannot be called from within a task function as this
-would cause a deadlock. The function will detect this and print a
-g_warning.
-MT safe.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-      </method>
-      <field name="object">
-        <type name="Object" c:type="GstObject"/>
-      </field>
-      <field name="state">
-        <type name="TaskState" c:type="GstTaskState"/>
-      </field>
-      <field name="cond">
-        <type name="GLib.Cond" c:type="GCond*"/>
-      </field>
-      <field name="lock">
-        <type name="GLib.StaticRecMutex" c:type="GStaticRecMutex*"/>
-      </field>
-      <field name="func">
-        <type name="TaskFunction" c:type="GstTaskFunction"/>
-      </field>
-      <field name="data">
-        <type name="any" c:type="gpointer"/>
-      </field>
-      <field name="running">
-        <type name="boolean" c:type="gboolean"/>
-      </field>
-      <union name="abidata" c:type="abidata">
-        <record name="ABI" c:type="ABI">
-          <field name="thread" writable="1">
-            <type name="GLib.Thread" c:type="GThread*"/>
-          </field>
-        </record>
-        <field name="_gst_reserved" writable="1">
-          <array zero-terminated="0" c:type="gpointer" fixed-size="3">
-            <type name="any"/>
-          </array>
-        </field>
-      </union>
-      <field name="priv">
-        <type name="TaskPrivate" c:type="GstTaskPrivate*"/>
-      </field>
-    </class>
-    <record name="TaskClass"
-            c:type="GstTaskClass"
-            glib:is-gtype-struct-for="Task">
-      <field name="parent_class">
-        <type name="ObjectClass" c:type="GstObjectClass"/>
-      </field>
-      <field name="pool">
-        <type name="TaskPool" c:type="GstTaskPool*"/>
-      </field>
-      <field name="_gst_reserved">
-        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
-          <type name="any"/>
-        </array>
-      </field>
-    </record>
-    <callback name="TaskFunction"
-              c:type="GstTaskFunction"
-              doc="A function that will repeatedly be called in the thread created by
-a #GstTask.">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="data" transfer-ownership="none">
-          <type name="any" c:type="void*"/>
-        </parameter>
-      </parameters>
-    </callback>
-    <class name="TaskPool"
-           c:type="GstTaskPool"
-           doc="The #GstTaskPool object."
-           parent="Object"
-           glib:type-name="GstTaskPool"
-           glib:get-type="gst_task_pool_get_type"
-           glib:type-struct="TaskPoolClass">
-      <constructor name="new"
-                   c:identifier="gst_task_pool_new"
-                   doc="Create a new default task pool. The default task pool will use a regular
-GThreadPool for threads."
-                   version="0.10.24">
-        <return-value transfer-ownership="full" doc="after usage.">
-          <type name="TaskPool" c:type="GstTaskPool*"/>
-        </return-value>
-      </constructor>
-      <virtual-method name="prepare" invoker="prepare" throws="1">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </virtual-method>
-      <virtual-method name="cleanup" invoker="cleanup">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </virtual-method>
-      <virtual-method name="push" invoker="push" throws="1">
-        <return-value transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
-        </return-value>
-        <parameters>
-          <parameter name="func" transfer-ownership="none">
-            <type name="TaskPoolFunction" c:type="GstTaskPoolFunction"/>
-          </parameter>
-          <parameter name="user_data" transfer-ownership="none" closure="2">
-            <type name="any" c:type="gpointer"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <virtual-method name="join" invoker="join">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="id" transfer-ownership="none">
-            <type name="any" c:type="gpointer"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <method name="prepare"
-              c:identifier="gst_task_pool_prepare"
-              doc="Prepare the taskpool for accepting gst_task_pool_push() operations.
-MT safe."
-              version="0.10.24"
-              throws="1">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </method>
-      <method name="push"
-              c:identifier="gst_task_pool_push"
-              doc="Start the execution of a new thread from @pool.
-function. This pointer can be NULL, you must check @error to detect
-errors."
-              version="0.10.24"
-              throws="1">
-        <return-value transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
-        </return-value>
-        <parameters>
-          <parameter name="func"
-                     transfer-ownership="none"
-                     scope="call"
-                     closure="2">
-            <type name="TaskPoolFunction" c:type="GstTaskPoolFunction"/>
-          </parameter>
-          <parameter name="user_data" transfer-ownership="none">
-            <type name="any" c:type="gpointer"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="join"
-              c:identifier="gst_task_pool_join"
-              doc="Join a task and/or return it to the pool. @id is the id obtained from
-gst_task_pool_push()."
-              version="0.10.24">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="id" transfer-ownership="none">
-            <type name="any" c:type="gpointer"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="cleanup"
-              c:identifier="gst_task_pool_cleanup"
-              doc="Wait for all tasks to be stopped. This is mainly used internally
-to ensure proper cleanup of internal data structures in test suites.
-MT safe."
-              version="0.10.24">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </method>
-      <field name="object">
-        <type name="Object" c:type="GstObject"/>
-      </field>
-      <field name="pool">
-        <type name="GLib.ThreadPool" c:type="GThreadPool*"/>
-      </field>
-      <field name="_gst_reserved">
-        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
-          <type name="any"/>
-        </array>
-      </field>
-    </class>
-    <record name="TaskPoolClass"
-            c:type="GstTaskPoolClass"
-            glib:is-gtype-struct-for="TaskPool"
-            doc="The #GstTaskPoolClass object.">
-      <field name="parent_class">
-        <type name="ObjectClass" c:type="GstObjectClass"/>
-      </field>
-      <field name="prepare">
-        <callback name="prepare" c:type="prepare" throws="1">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="pool" transfer-ownership="none">
-              <type name="TaskPool" c:type="GstTaskPool*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="cleanup">
-        <callback name="cleanup" c:type="cleanup">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="pool" transfer-ownership="none">
-              <type name="TaskPool" c:type="GstTaskPool*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="push">
-        <callback name="push" c:type="push" throws="1">
-          <return-value transfer-ownership="none">
-            <type name="any" c:type="gpointer"/>
-          </return-value>
-          <parameters>
-            <parameter name="pool" transfer-ownership="none">
-              <type name="TaskPool" c:type="GstTaskPool*"/>
-            </parameter>
-            <parameter name="func" transfer-ownership="none">
-              <type name="TaskPoolFunction" c:type="GstTaskPoolFunction"/>
-            </parameter>
-            <parameter name="user_data" transfer-ownership="none" closure="2">
-              <type name="any" c:type="gpointer"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="join">
-        <callback name="join" c:type="join">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="pool" transfer-ownership="none">
-              <type name="TaskPool" c:type="GstTaskPool*"/>
-            </parameter>
-            <parameter name="id" transfer-ownership="none">
-              <type name="any" c:type="gpointer"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="_gst_reserved">
-        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
-          <type name="any"/>
-        </array>
-      </field>
-    </record>
-    <callback name="TaskPoolFunction"
-              c:type="GstTaskPoolFunction"
-              doc="Task function, see gst_task_pool_push()."
-              version="0.10.24">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="data" transfer-ownership="none">
-          <type name="any" c:type="void*"/>
-        </parameter>
-      </parameters>
-    </callback>
-    <record name="TaskPrivate" c:type="GstTaskPrivate">
-    </record>
-    <enumeration name="TaskState"
-                 doc="The different states a task can be in"
-                 c:type="GstTaskState">
-      <member name="started" value="0" c:identifier="GST_TASK_STARTED"/>
-      <member name="stopped" value="1" c:identifier="GST_TASK_STOPPED"/>
-      <member name="paused" value="2" c:identifier="GST_TASK_PAUSED"/>
-    </enumeration>
-    <record name="TaskThreadCallbacks"
-            c:type="GstTaskThreadCallbacks"
-            doc="thread enters its function.
-to leave its function
-Custom GstTask thread callback functions that can be installed."
-            version="0.10.24">
-      <field name="enter_thread">
-        <type name="any" c:type="pointer"/>
-      </field>
-      <field name="leave_thread">
-        <type name="any" c:type="pointer"/>
-      </field>
-      <field name="_gst_reserved" writable="1">
-        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
-          <type name="any"/>
-        </array>
-      </field>
-    </record>
-    <record name="Trace" c:type="GstTrace" doc="Opaque #GstTrace structure.">
-      <field name="filename" writable="1">
-        <type name="utf8" c:type="gchar*"/>
-      </field>
-      <field name="fd" writable="1">
-        <type name="int" c:type="int"/>
-      </field>
-      <field name="buf" writable="1">
-        <type name="TraceEntry" c:type="GstTraceEntry*"/>
-      </field>
-      <field name="bufsize" writable="1">
-        <type name="int" c:type="gint"/>
-      </field>
-      <field name="bufoffset" writable="1">
-        <type name="int" c:type="gint"/>
-      </field>
-      <constructor name="new"
-                   c:identifier="gst_trace_new"
-                   doc="Create a ringbuffer of @size in the file with @filename to
-store trace results in.">
-        <return-value transfer-ownership="full">
-          <type name="Trace" c:type="GstTrace*"/>
-        </return-value>
-        <parameters>
-          <parameter name="filename" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="size" transfer-ownership="none">
-            <type name="int" c:type="gint"/>
-          </parameter>
-        </parameters>
-      </constructor>
-      <method name="destroy"
-              c:identifier="gst_trace_destroy"
-              doc="Flush an close the previously allocated @trace.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </method>
-      <method name="flush"
-              c:identifier="gst_trace_flush"
-              doc="Flush any pending trace entries in @trace to the trace file.
-flushed.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </method>
-      <method name="text_flush"
-              c:identifier="gst_trace_text_flush"
-              doc="Flush any pending trace entries in @trace to the trace file,
-formatted as a text line with timestamp and sequence numbers.
-flushed.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </method>
-      <method name="set_default"
-              c:identifier="gst_trace_set_default"
-              doc="Set the default #GstTrace to @trace.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </method>
-    </record>
-    <record name="TraceEntry" c:type="GstTraceEntry">
-      <field name="timestamp" writable="1">
-        <type name="int64" c:type="gint64"/>
-      </field>
-      <field name="sequence" writable="1">
-        <type name="uint32" c:type="guint32"/>
-      </field>
-      <field name="data" writable="1">
-        <type name="uint32" c:type="guint32"/>
-      </field>
-      <field name="message" writable="1">
-        <array zero-terminated="0" c:type="gchar" fixed-size="112">
-          <type name="int8"/>
-        </array>
-      </field>
-    </record>
-    <record name="TypeFind"
-            c:type="GstTypeFind"
-            doc="Object that stores typefind callbacks. To use with #GstTypeFindFactory.">
-      <field name="peek">
-        <type name="any" c:type="pointer"/>
-      </field>
-      <field name="suggest">
-        <type name="any" c:type="pointer"/>
-      </field>
-      <field name="data" writable="1">
-        <type name="any" c:type="gpointer"/>
-      </field>
-      <field name="get_length">
-        <type name="any" c:type="pointer"/>
-      </field>
-      <field name="_gst_reserved" writable="1">
-        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
-          <type name="any"/>
-        </array>
-      </field>
-      <method name="peek"
-              c:identifier="gst_type_find_peek"
-              doc="Returns the @size bytes of the stream to identify beginning at offset. If
-offset is a positive number, the offset is relative to the beginning of the
-stream, if offset is a negative number the offset is relative to the end of
-the stream. The returned memory is valid until the typefinding function
-returns and must not be freed.">
-        <return-value transfer-ownership="full">
-          <array c:type="guint8*">
-            <type name="uint8"/>
-          </array>
-        </return-value>
-        <parameters>
-          <parameter name="offset" transfer-ownership="none">
-            <type name="int64" c:type="gint64"/>
-          </parameter>
-          <parameter name="size" transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="suggest"
-              c:identifier="gst_type_find_suggest"
-              doc="If a #GstTypeFindFunction calls this function it suggests the caps with the
-given probability. A #GstTypeFindFunction may supply different suggestions
-in one call.
-It is up to the caller of the #GstTypeFindFunction to interpret these values.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="probability" transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
-          </parameter>
-          <parameter name="caps" transfer-ownership="none">
-            <type name="Caps" c:type="GstCaps*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="suggest_simple"
-              c:identifier="gst_type_find_suggest_simple"
-              doc="arguments passed to gst_structure_new() (ie. triplets of field name,
-field GType and field value)
-If a #GstTypeFindFunction calls this function it suggests the caps with the
-given probability. A #GstTypeFindFunction may supply different suggestions
-in one call. It is up to the caller of the #GstTypeFindFunction to interpret
-these values.
-This function is similar to gst_type_find_suggest(), only that instead of
-passing a #GstCaps argument you can create the caps on the fly in the same
-way as you can with gst_caps_new_simple().
-Make sure you terminate the list of arguments with a NULL argument and that
-the values passed have the correct type (in terms of width in bytes when
-passed to the vararg function - this applies particularly to gdouble and
-guint64 arguments)."
-              version="0.10.20">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="probability" transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
-          </parameter>
-          <parameter name="media_type" transfer-ownership="none">
-            <type name="utf8" c:type="char*"/>
-          </parameter>
-          <parameter name="fieldname" transfer-ownership="none">
-            <type name="utf8" c:type="char*"/>
-          </parameter>
-          <parameter transfer-ownership="none">
-            <varargs>
-            </varargs>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_length"
-              c:identifier="gst_type_find_get_length"
-              doc="Get the length of the data stream.">
-        <return-value transfer-ownership="none">
-          <type name="uint64" c:type="guint64"/>
-        </return-value>
-      </method>
-    </record>
-    <class name="TypeFindFactory"
-           c:type="GstTypeFindFactory"
-           doc="Object that stores information about a typefind function."
-           parent="PluginFeature"
-           glib:type-name="GstTypeFindFactory"
-           glib:get-type="gst_type_find_factory_get_type"
-           glib:type-struct="TypeFindFactoryClass">
-      <function name="get_list"
-                c:identifier="gst_type_find_factory_get_list"
-                doc="Gets the list of all registered typefind factories. You must free the
-list using gst_plugin_feature_list_free.
-The returned factories are sorted by highest rank first, and then by
-factory name. (behaviour change since 0.10.26)">
-        <return-value transfer-ownership="full">
-          <type name="GLib.List" c:type="GList*"/>
-        </return-value>
-      </function>
-      <method name="get_extensions"
-              c:identifier="gst_type_find_factory_get_extensions"
-              doc="Gets the extensions associated with a #GstTypeFindFactory. The returned
-array should not be changed. If you need to change stuff in it, you should
-copy it using g_strdupv().  This function may return NULL to indicate
-a 0-length list.">
-        <return-value transfer-ownership="full">
-          <array c:type="gchar**">
-            <type name="utf8"/>
-          </array>
-        </return-value>
-      </method>
-      <method name="get_caps"
-              c:identifier="gst_type_find_factory_get_caps"
-              doc="Gets the #GstCaps associated with a typefind factory.">
-        <return-value transfer-ownership="full">
-          <type name="Caps" c:type="GstCaps*"/>
-        </return-value>
-      </method>
-      <method name="call_function"
-              c:identifier="gst_type_find_factory_call_function"
-              doc="members must be set.
-Calls the #GstTypeFindFunction associated with this factory.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="find" transfer-ownership="none">
-            <type name="TypeFind" c:type="GstTypeFind*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <field name="feature">
-        <type name="PluginFeature" c:type="GstPluginFeature"/>
-      </field>
-      <field name="function">
-        <type name="TypeFindFunction" c:type="GstTypeFindFunction"/>
-      </field>
-      <field name="extensions">
-        <type name="utf8" c:type="gchar**"/>
-      </field>
-      <field name="caps">
-        <type name="Caps" c:type="GstCaps*"/>
-      </field>
-      <field name="user_data">
-        <type name="any" c:type="gpointer"/>
-      </field>
-      <field name="user_data_notify">
-        <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
-      </field>
-      <field name="_gst_reserved">
-        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
-          <type name="any"/>
-        </array>
-      </field>
-    </class>
-    <record name="TypeFindFactoryClass"
-            c:type="GstTypeFindFactoryClass"
-            glib:is-gtype-struct-for="TypeFindFactory">
-      <field name="parent">
-        <type name="PluginFeatureClass" c:type="GstPluginFeatureClass"/>
-      </field>
-      <field name="_gst_reserved">
-        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
-          <type name="any"/>
-        </array>
-      </field>
-    </record>
-    <callback name="TypeFindFunction"
-              c:type="GstTypeFindFunction"
-              doc="A function that will be called by typefinding.">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="find" transfer-ownership="none">
-          <type name="TypeFind" c:type="GstTypeFind*"/>
-        </parameter>
-        <parameter name="data" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
-        </parameter>
-      </parameters>
-    </callback>
-    <enumeration name="TypeFindProbability"
-                 doc="The probability of the typefind function. Higher values have more certainty
-in doing a reliable typefind."
-                 c:type="GstTypeFindProbability">
-      <member name="minimum" value="1" c:identifier="GST_TYPE_FIND_MINIMUM"/>
-      <member name="possible"
-              value="50"
-              c:identifier="GST_TYPE_FIND_POSSIBLE"/>
-      <member name="likely" value="80" c:identifier="GST_TYPE_FIND_LIKELY"/>
-      <member name="nearly_certain"
-              value="99"
-              c:identifier="GST_TYPE_FIND_NEARLY_CERTAIN"/>
-      <member name="maximum" value="100" c:identifier="GST_TYPE_FIND_MAXIMUM"/>
-    </enumeration>
-    <record name="TypeNameData"
-            c:type="GstTypeNameData"
-            doc="Structure used for filtering based on @name and @type.">
-      <field name="name" writable="1">
-        <type name="utf8" c:type="gchar*"/>
-      </field>
-      <field name="type" writable="1">
-        <type name="GType" c:type="GType"/>
-      </field>
-    </record>
-    <interface name="URIHandler"
-               c:type="GstURIHandler"
-               doc="Opaque #GstURIHandler structure."
-               glib:type-name="GstURIHandler"
-               glib:get-type="gst_uri_handler_get_type"
-               glib:type-struct="URIHandlerInterface">
-      <virtual-method name="get_uri" invoker="get_uri">
-        <return-value transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </return-value>
-      </virtual-method>
-      <virtual-method name="set_uri" invoker="set_uri">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="uri" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <method name="get_uri_type"
-              c:identifier="gst_uri_handler_get_uri_type"
-              doc="Gets the type of the given URI handler
-Returns #GST_URI_UNKNOWN if the @handler isn&apos;t implemented correctly.">
-        <return-value transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
-        </return-value>
-      </method>
-      <method name="get_protocols"
-              c:identifier="gst_uri_handler_get_protocols"
-              doc="Gets the list of protocols supported by @handler. This list may not be
-modified.
-Returns NULL if the @handler isn&apos;t implemented properly, or the @handler
-doesn&apos;t support any protocols.">
-        <return-value transfer-ownership="full">
-          <array c:type="gchar**">
-            <type name="utf8"/>
-          </array>
-        </return-value>
-      </method>
-      <method name="get_uri"
-              c:identifier="gst_uri_handler_get_uri"
-              doc="Gets the currently handled URI.
-Returns NULL if there are no URI currently handled. The returned
-string must not be modified or freed.">
-        <return-value transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </return-value>
-      </method>
-      <method name="set_uri"
-              c:identifier="gst_uri_handler_set_uri"
-              doc="Tries to set the URI of the given handler.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="uri" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="new_uri"
-              c:identifier="gst_uri_handler_new_uri"
-              doc="Emits the new-uri signal for a given handler, when that handler has a new URI.
-This function should only be called by URI handlers themselves.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="uri" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <glib:signal name="new-uri"
-                   doc="The URI of the given @handler has changed.">
-        <return-value transfer-ownership="full">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="uri" transfer-ownership="none">
-            <type name="utf8" c:type="gchararray"/>
-          </parameter>
-        </parameters>
-      </glib:signal>
-    </interface>
-    <record name="URIHandlerInterface"
-            c:type="GstURIHandlerInterface"
-            glib:is-gtype-struct-for="URIHandler"
-            doc="This is for use by bindings that need to pass context when creating a URI
-Handler. If implemented, get_protocols will be used in preference to
-Any #GstElement using this interface should implement these methods.">
-      <field name="parent">
-        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
-      </field>
-      <field name="new_uri">
-        <callback name="new_uri" c:type="new_uri">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="handler" transfer-ownership="none">
-              <type name="URIHandler" c:type="GstURIHandler*"/>
-            </parameter>
-            <parameter name="uri" transfer-ownership="none">
-              <type name="utf8" c:type="gchar*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="get_type">
-        <callback name="get_type" c:type="get_type">
-          <return-value transfer-ownership="full">
-            <type name="URIType" c:type="GstURIType"/>
-          </return-value>
-        </callback>
-      </field>
-      <field name="get_protocols">
-        <callback name="get_protocols" c:type="get_protocols">
-          <return-value transfer-ownership="full">
-            <array c:type="gchar**">
-              <type name="utf8"/>
-            </array>
-          </return-value>
-        </callback>
-      </field>
-      <field name="get_uri">
-        <callback name="get_uri" c:type="get_uri">
-          <return-value transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </return-value>
-          <parameters>
-            <parameter name="handler" transfer-ownership="none">
-              <type name="URIHandler" c:type="GstURIHandler*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="set_uri">
-        <callback name="set_uri" c:type="set_uri">
-          <return-value transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </return-value>
-          <parameters>
-            <parameter name="handler" transfer-ownership="none">
-              <type name="URIHandler" c:type="GstURIHandler*"/>
-            </parameter>
-            <parameter name="uri" transfer-ownership="none">
-              <type name="utf8" c:type="gchar*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="get_type_full">
-        <callback name="get_type_full" c:type="get_type_full">
-          <return-value transfer-ownership="full">
-            <type name="URIType" c:type="GstURIType"/>
-          </return-value>
-          <parameters>
-            <parameter name="type" transfer-ownership="none">
-              <type name="GType" c:type="GType"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="get_protocols_full">
-        <callback name="get_protocols_full" c:type="get_protocols_full">
-          <return-value transfer-ownership="full">
-            <array c:type="gchar**">
-              <type name="utf8"/>
-            </array>
-          </return-value>
-          <parameters>
-            <parameter name="type" transfer-ownership="none">
-              <type name="GType" c:type="GType"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="_gst_reserved">
-        <array zero-terminated="0" c:type="gpointer" fixed-size="2">
-          <type name="any"/>
-        </array>
-      </field>
-    </record>
-    <enumeration name="URIType"
-                 doc="The different types of URI direction."
-                 c:type="GstURIType">
-      <member name="unknown" value="0" c:identifier="GST_URI_UNKNOWN"/>
-      <member name="sink" value="1" c:identifier="GST_URI_SINK"/>
-      <member name="src" value="2" c:identifier="GST_URI_SRC"/>
-    </enumeration>
-    <constant name="USECOND" value="0">
-      <type name="int"/>
-    </constant>
-    <constant name="VALUE_EQUAL" value="0">
-      <type name="int"/>
-    </constant>
-    <constant name="VALUE_GREATER_THAN" value="1">
-      <type name="int"/>
-    </constant>
-    <constant name="VALUE_LESS_THAN" value="-1">
-      <type name="int"/>
-    </constant>
-    <constant name="VALUE_UNORDERED" value="2">
-      <type name="int"/>
-    </constant>
-    <callback name="ValueCompareFunc"
-              c:type="GstValueCompareFunc"
-              doc="Used together with gst_value_compare() to compare #GValue items.
-or GST_VALUE_UNORDERED">
-      <return-value transfer-ownership="none">
-        <type name="int" c:type="gint"/>
-      </return-value>
-      <parameters>
-        <parameter name="value1" transfer-ownership="none">
-          <type name="GObject.Value" c:type="GValue*"/>
-        </parameter>
-        <parameter name="value2" transfer-ownership="none">
-          <type name="GObject.Value" c:type="GValue*"/>
-        </parameter>
-      </parameters>
-    </callback>
-    <callback name="ValueDeserializeFunc"
-              c:type="GstValueDeserializeFunc"
-              doc="Used by gst_value_deserialize() to parse a non-binary form into the #GValue.">
-      <return-value transfer-ownership="none">
-        <type name="boolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="dest" transfer-ownership="none">
-          <type name="GObject.Value" c:type="GValue*"/>
-        </parameter>
-        <parameter name="s" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-      </parameters>
-    </callback>
-    <callback name="ValueIntersectFunc"
-              c:type="GstValueIntersectFunc"
-              doc="Used by gst_value_intersect() to perform intersection for a specific #GValue
-type. If the intersection is non-empty, the result is
-placed in @dest and TRUE is returned.  If the intersection is
-empty, @dest is unmodified and FALSE is returned.
-Register a new implementation with gst_value_register_intersect_func().">
-      <return-value transfer-ownership="none">
-        <type name="boolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="dest" transfer-ownership="none">
-          <type name="GObject.Value" c:type="GValue*"/>
-        </parameter>
-        <parameter name="value1" transfer-ownership="none">
-          <type name="GObject.Value" c:type="GValue*"/>
-        </parameter>
-        <parameter name="value2" transfer-ownership="none">
-          <type name="GObject.Value" c:type="GValue*"/>
-        </parameter>
-      </parameters>
-    </callback>
-    <callback name="ValueSerializeFunc"
-              c:type="GstValueSerializeFunc"
-              doc="Used by gst_value_serialize() to obtain a non-binary form of the #GValue.">
-      <return-value transfer-ownership="full">
-        <type name="utf8" c:type="gchar*"/>
-      </return-value>
-      <parameters>
-        <parameter name="value1" transfer-ownership="none">
-          <type name="GObject.Value" c:type="GValue*"/>
-        </parameter>
-      </parameters>
-    </callback>
-    <callback name="ValueSubtractFunc"
-              c:type="GstValueSubtractFunc"
-              doc="Used by gst_value_subtract() to perform subtraction for a specific #GValue
-type. Register a new implementation with gst_value_register_subtract_func().">
-      <return-value transfer-ownership="none">
-        <type name="boolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="dest" transfer-ownership="none">
-          <type name="GObject.Value" c:type="GValue*"/>
-        </parameter>
-        <parameter name="minuend" transfer-ownership="none">
-          <type name="GObject.Value" c:type="GValue*"/>
-        </parameter>
-        <parameter name="subtrahend" transfer-ownership="none">
-          <type name="GObject.Value" c:type="GValue*"/>
-        </parameter>
-      </parameters>
-    </callback>
-    <record name="ValueTable"
-            c:type="GstValueTable"
-            doc="VTable for the #GValue @type.">
-      <field name="type" writable="1">
-        <type name="GType" c:type="GType"/>
-      </field>
-      <field name="compare" writable="1">
-        <type name="ValueCompareFunc" c:type="GstValueCompareFunc"/>
-      </field>
-      <field name="serialize" writable="1">
-        <type name="ValueSerializeFunc" c:type="GstValueSerializeFunc"/>
-      </field>
-      <field name="deserialize" writable="1">
-        <type name="ValueDeserializeFunc" c:type="GstValueDeserializeFunc"/>
-      </field>
-      <field name="_gst_reserved" writable="1">
-        <array zero-terminated="0" c:type="void*" fixed-size="4">
-          <type name="any"/>
-        </array>
-      </field>
-    </record>
-    <callback name="ValueUnionFunc"
-              c:type="GstValueUnionFunc"
-              doc="Used by gst_value_union() to perform unification for a specific #GValue
-type. Register a new implementation with gst_value_register_union_func().">
-      <return-value transfer-ownership="none">
-        <type name="boolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="dest" transfer-ownership="none">
-          <type name="GObject.Value" c:type="GValue*"/>
-        </parameter>
-        <parameter name="value1" transfer-ownership="none">
-          <type name="GObject.Value" c:type="GValue*"/>
-        </parameter>
-        <parameter name="value2" transfer-ownership="none">
-          <type name="GObject.Value" c:type="GValue*"/>
-        </parameter>
-      </parameters>
-    </callback>
-    <class name="XML"
-           c:type="GstXML"
-           doc="XML parser object"
-           parent="Object"
-           glib:type-name="GstXML"
-           glib:get-type="gst_xml_get_type"
-           glib:type-struct="XMLClass">
-      <constructor name="new"
-                   c:identifier="gst_xml_new"
-                   doc="Create a new GstXML parser object.">
-        <return-value transfer-ownership="full">
-          <type name="XML" c:type="GstXML*"/>
-        </return-value>
-      </constructor>
-      <function name="write"
-                c:identifier="gst_xml_write"
-                doc="Converts the given element into an XML presentation.">
-        <return-value transfer-ownership="full">
-          <type name="libxml2.DocPtr" c:type="xmlDocPtr"/>
-        </return-value>
-        <parameters>
-          <parameter name="element" transfer-ownership="none">
-            <type name="Element" c:type="GstElement*"/>
-          </parameter>
-        </parameters>
-      </function>
-      <function name="make_element"
-                c:identifier="gst_xml_make_element"
-                doc="Load the element from the XML description">
-        <return-value transfer-ownership="full">
-          <type name="Element" c:type="GstElement*"/>
-        </return-value>
-        <parameters>
-          <parameter name="cur" transfer-ownership="none">
-            <type name="libxml2.NodePtr" c:type="xmlNodePtr"/>
-          </parameter>
-          <parameter name="parent" transfer-ownership="none">
-            <type name="Object" c:type="GstObject*"/>
-          </parameter>
-        </parameters>
-      </function>
-      <virtual-method name="object_saved">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="object" transfer-ownership="none">
-            <type name="Object" c:type="GstObject*"/>
-          </parameter>
-          <parameter name="self" transfer-ownership="none">
-            <type name="libxml2.NodePtr" c:type="xmlNodePtr"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <method name="parse_doc"
-              c:identifier="gst_xml_parse_doc"
-              doc="Fills the GstXML object with the elements from the
-xmlDocPtr.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="doc" transfer-ownership="none">
-            <type name="libxml2.DocPtr" c:type="xmlDocPtr"/>
-          </parameter>
-          <parameter name="root" transfer-ownership="none">
-            <array c:type="guchar*">
-              <type name="uint8"/>
-            </array>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="parse_file"
-              c:identifier="gst_xml_parse_file"
-              doc="Fills the GstXML object with the corresponding elements from
-the XML file fname. Optionally it will only build the element from
-the element node root (if it is not NULL). This feature is useful
-if you only want to build a specific element from an XML file
-but not the pipeline it is embedded in.
-Pass &quot;-&quot; as fname to read from stdin. You can also pass a URI
-of any format that libxml supports, including http.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="fname" transfer-ownership="none">
-            <array c:type="guchar*">
-              <type name="uint8"/>
-            </array>
-          </parameter>
-          <parameter name="root" transfer-ownership="none">
-            <array c:type="guchar*">
-              <type name="uint8"/>
-            </array>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="parse_memory"
-              c:identifier="gst_xml_parse_memory"
-              doc="Fills the GstXML object with the corresponding elements from
-an in memory XML buffer.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="buffer" transfer-ownership="none">
-            <array c:type="guchar*">
-              <type name="uint8"/>
-            </array>
-          </parameter>
-          <parameter name="size" transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
-          </parameter>
-          <parameter name="root" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_element"
-              c:identifier="gst_xml_get_element"
-              doc="This function is used to get a pointer to the GstElement corresponding
-to name in the pipeline description. You would use this if you have
-to do anything to the element after loading.">
-        <return-value transfer-ownership="full">
-          <type name="Element" c:type="GstElement*"/>
-        </return-value>
-        <parameters>
-          <parameter name="name" transfer-ownership="none">
-            <array c:type="guchar*">
-              <type name="uint8"/>
-            </array>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_topelements"
-              c:identifier="gst_xml_get_topelements"
-              doc="Retrieve a list of toplevel elements.
-of the list and must not free or modify the list. The caller also does not
-own a reference to any of the elements in the list and should obtain its own
-reference using gst_object_ref() if necessary.">
-        <return-value transfer-ownership="full">
-          <type name="GLib.List" c:type="GList*"/>
-        </return-value>
-      </method>
-      <field name="object">
-        <type name="Object" c:type="GstObject"/>
-      </field>
-      <field name="topelements">
-        <type name="GLib.List" c:type="GList*"/>
-      </field>
-      <field name="ns">
-        <type name="libxml2.NsPtr" c:type="xmlNsPtr"/>
-      </field>
-      <field name="_gst_reserved">
-        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
-          <type name="any"/>
-        </array>
-      </field>
-      <glib:signal name="object-loaded"
-                   doc="Signals that a new object has been deserialized.">
-        <return-value transfer-ownership="full">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="object" transfer-ownership="none">
-            <type name="Object" c:type="GstObject"/>
-          </parameter>
-          <parameter name="xml_node" transfer-ownership="none">
-            <type name="any" c:type="gpointer"/>
-          </parameter>
-        </parameters>
-      </glib:signal>
-    </class>
-    <record name="XMLClass"
-            c:type="GstXMLClass"
-            glib:is-gtype-struct-for="XML">
-      <field name="parent_class">
-        <type name="ObjectClass" c:type="GstObjectClass"/>
-      </field>
-      <field name="object_loaded">
-        <callback name="object_loaded" c:type="object_loaded">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="xml" transfer-ownership="none">
-              <type name="XML" c:type="GstXML*"/>
-            </parameter>
-            <parameter name="object" transfer-ownership="none">
-              <type name="Object" c:type="GstObject*"/>
-            </parameter>
-            <parameter name="self" transfer-ownership="none">
-              <type name="libxml2.NodePtr" c:type="xmlNodePtr"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="object_saved">
-        <callback name="object_saved" c:type="object_saved">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="xml" transfer-ownership="none">
-              <type name="XML" c:type="GstXML*"/>
-            </parameter>
-            <parameter name="object" transfer-ownership="none">
-              <type name="Object" c:type="GstObject*"/>
-            </parameter>
-            <parameter name="self" transfer-ownership="none">
-              <type name="libxml2.NodePtr" c:type="xmlNodePtr"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="_gst_reserved">
-        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
-          <type name="any"/>
-        </array>
-      </field>
-    </record>
-    <function name="alloc_trace_available"
-              c:identifier="gst_alloc_trace_available"
-              doc="Check if alloc tracing was compiled into the core
-tracing enabled.">
-      <return-value transfer-ownership="none">
-        <type name="boolean" c:type="gboolean"/>
-      </return-value>
-    </function>
-    <function name="alloc_trace_get"
-              c:identifier="gst_alloc_trace_get"
-              doc="Get the named alloc trace object.
-no alloc tracer was registered with that name.">
-      <return-value transfer-ownership="full">
-        <type name="AllocTrace" c:type="GstAllocTrace*"/>
-      </return-value>
-      <parameters>
-        <parameter name="name" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="alloc_trace_list"
-              c:identifier="gst_alloc_trace_list"
-              doc="Get a list of all registered alloc trace objects.">
-      <return-value transfer-ownership="none">
-        <type name="GLib.List" c:type="GList*"/>
-      </return-value>
-    </function>
-    <function name="alloc_trace_live_all"
-              c:identifier="gst_alloc_trace_live_all"
-              doc="Get the total number of live registered alloc trace objects.">
-      <return-value transfer-ownership="none">
-        <type name="int" c:type="int"/>
-      </return-value>
-    </function>
-    <function name="alloc_trace_print_all"
-              c:identifier="gst_alloc_trace_print_all"
-              doc="Print the status of all registered alloc trace objects.">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-    </function>
-    <function name="alloc_trace_print_live"
-              c:identifier="gst_alloc_trace_print_live"
-              doc="Print the status of all registered alloc trace objects, ignoring those
-without live objects.">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-    </function>
-    <function name="alloc_trace_set_flags_all"
-              c:identifier="gst_alloc_trace_set_flags_all"
-              doc="Enable the specified options on all registered alloc trace
-objects.">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="flags" transfer-ownership="none">
-          <type name="AllocTraceFlags" c:type="GstAllocTraceFlags"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="atomic_int_set"
-              c:identifier="gst_atomic_int_set"
-              doc="Unconditionally sets the atomic integer to @value."
-              deprecated="Use g_atomic_int_set().">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="atomic_int" direction="out" transfer-ownership="full">
-          <type name="int" c:type="gint*"/>
-        </parameter>
-        <parameter name="value" transfer-ownership="none">
-          <type name="int" c:type="gint"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="buffer_try_new_and_alloc"
-              c:identifier="gst_buffer_try_new_and_alloc"
-              doc="Tries to create a newly allocated buffer with data of the given size. If
-the requested amount of memory can&apos;t be allocated, NULL will be returned.
-The buffer memory is not cleared.
-Note that when @size == 0, the buffer data pointer will be NULL.
-MT safe."
-              version="0.10.13">
-      <return-value transfer-ownership="full">
-        <type name="Buffer" c:type="GstBuffer*"/>
-      </return-value>
-      <parameters>
-        <parameter name="size" transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="caps_from_string"
-              c:identifier="gst_caps_from_string"
-              doc="Converts @caps from a string representation.">
-      <return-value transfer-ownership="full">
-        <type name="Caps" c:type="GstCaps*"/>
-      </return-value>
-      <parameters>
-        <parameter name="string" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="caps_load_thyself"
-              c:identifier="gst_caps_load_thyself"
-              doc="Creates a #GstCaps from its XML serialization.">
-      <return-value transfer-ownership="full">
-        <type name="Caps" c:type="GstCaps*"/>
-      </return-value>
-      <parameters>
-        <parameter name="parent" transfer-ownership="none">
-          <type name="libxml2.NodePtr" c:type="xmlNodePtr"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="child_proxy_child_added"
-              c:identifier="gst_child_proxy_child_added"
-              doc="Emits the &quot;child-added&quot; signal.">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="object" transfer-ownership="none">
-          <type name="Object" c:type="GstObject*"/>
-        </parameter>
-        <parameter name="child" transfer-ownership="none">
-          <type name="Object" c:type="GstObject*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="child_proxy_child_removed"
-              c:identifier="gst_child_proxy_child_removed"
-              doc="Emits the &quot;child-removed&quot; signal.">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="object" transfer-ownership="none">
-          <type name="Object" c:type="GstObject*"/>
-        </parameter>
-        <parameter name="child" transfer-ownership="none">
-          <type name="Object" c:type="GstObject*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="child_proxy_get"
-              c:identifier="gst_child_proxy_get"
-              doc="Gets properties of the parent object and its children.">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="object" transfer-ownership="none">
-          <type name="Object" c:type="GstObject*"/>
-        </parameter>
-        <parameter name="first_property_name" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-        <parameter transfer-ownership="none">
-          <varargs>
-          </varargs>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="child_proxy_get_property"
-              c:identifier="gst_child_proxy_get_property"
-              doc="Gets a single property using the GstChildProxy mechanism.
-You are responsible for for freeing it by calling g_value_unset()">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="object" transfer-ownership="none">
-          <type name="Object" c:type="GstObject*"/>
-        </parameter>
-        <parameter name="name" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-        <parameter name="value" transfer-ownership="none">
-          <type name="GObject.Value" c:type="GValue*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="child_proxy_lookup"
-              c:identifier="gst_child_proxy_lookup"
-              doc="Looks up which object and #GParamSpec would be effected by the given @name.
-case the values for @pspec and @target are not modified. Unref @target after
-usage.
-MT safe.">
-      <return-value transfer-ownership="none">
-        <type name="boolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="object" transfer-ownership="none">
-          <type name="Object" c:type="GstObject*"/>
-        </parameter>
-        <parameter name="name" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-        <parameter name="target" transfer-ownership="none">
-          <type name="Object" c:type="GstObject**"/>
-        </parameter>
-        <parameter name="pspec" transfer-ownership="none">
-          <type name="GObject.ParamSpec" c:type="GParamSpec**"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="child_proxy_set"
-              c:identifier="gst_child_proxy_set"
-              doc="Sets properties of the parent object and its children.">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="object" transfer-ownership="none">
-          <type name="Object" c:type="GstObject*"/>
-        </parameter>
-        <parameter name="first_property_name" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-        <parameter transfer-ownership="none">
-          <varargs>
-          </varargs>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="child_proxy_set_property"
-              c:identifier="gst_child_proxy_set_property"
-              doc="Sets a single property using the GstChildProxy mechanism.">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="object" transfer-ownership="none">
-          <type name="Object" c:type="GstObject*"/>
-        </parameter>
-        <parameter name="name" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-        <parameter name="value" transfer-ownership="none">
-          <type name="GObject.Value" c:type="GValue*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="class_signal_connect"
-              c:identifier="gst_class_signal_connect">
-      <return-value transfer-ownership="none">
-        <type name="uint" c:type="guint"/>
-      </return-value>
-      <parameters>
-        <parameter name="klass" transfer-ownership="none">
-          <type name="ObjectClass" c:type="GstObjectClass*"/>
-        </parameter>
-        <parameter name="name" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-        <parameter name="func" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
-        </parameter>
-        <parameter name="func_data" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="class_signal_emit_by_name"
-              c:identifier="gst_class_signal_emit_by_name"
-              doc="emits the named class signal.">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="object" transfer-ownership="none">
-          <type name="Object" c:type="GstObject*"/>
-        </parameter>
-        <parameter name="name" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-        <parameter name="self" transfer-ownership="none">
-          <type name="libxml2.NodePtr" c:type="xmlNodePtr"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="debug_add_log_function"
-              c:identifier="gst_debug_add_log_function"
-              doc="Adds the logging function to the list of logging functions.
-Be sure to use G_GNUC_NO_INSTRUMENT on that function, it is needed.">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="func"
-                   transfer-ownership="none"
-                   scope="call"
-                   closure="1">
-          <type name="LogFunction" c:type="GstLogFunction"/>
-        </parameter>
-        <parameter name="data" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="debug_construct_term_color"
-              c:identifier="gst_debug_construct_term_color"
-              doc="Constructs a string that can be used for getting the desired color in color
-terminals.
-You need to free the string after use.">
-      <return-value transfer-ownership="full">
-        <type name="utf8" c:type="gchar*"/>
-      </return-value>
-      <parameters>
-        <parameter name="colorinfo" transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="debug_construct_win_color"
-              c:identifier="gst_debug_construct_win_color"
-              doc="Constructs an integer that can be used for getting the desired color in
-windows&apos; terminals (cmd.exe). As there is no mean to underline, we simply
-ignore this attribute.
-This function returns 0 on non-windows machines."
-              version="0.10.23">
-      <return-value transfer-ownership="none">
-        <type name="int" c:type="gint"/>
-      </return-value>
-      <parameters>
-        <parameter name="colorinfo" transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="debug_get_all_categories"
-              c:identifier="gst_debug_get_all_categories"
-              doc="Returns a snapshot of a all categories that are currently in use . This list
-may change anytime.
-The caller has to free the list after use.">
-      <return-value transfer-ownership="full">
-        <type name="GLib.SList" c:type="GSList*"/>
-      </return-value>
-    </function>
-    <function name="debug_get_default_threshold"
-              c:identifier="gst_debug_get_default_threshold"
-              doc="Returns the default threshold that is used for new categories.">
-      <return-value transfer-ownership="full">
-        <type name="DebugLevel" c:type="GstDebugLevel"/>
-      </return-value>
-    </function>
-    <function name="debug_is_active"
-              c:identifier="gst_debug_is_active"
-              doc="Checks if debugging output is activated.">
-      <return-value transfer-ownership="none">
-        <type name="boolean" c:type="gboolean"/>
-      </return-value>
-    </function>
-    <function name="debug_is_colored"
-              c:identifier="gst_debug_is_colored"
-              doc="Checks if the debugging output should be colored.">
-      <return-value transfer-ownership="none">
-        <type name="boolean" c:type="gboolean"/>
-      </return-value>
-    </function>
-    <function name="debug_level_get_name"
-              c:identifier="gst_debug_level_get_name"
-              doc="Get the string representation of a debugging level">
-      <return-value transfer-ownership="none">
-        <type name="utf8" c:type="gchar*"/>
-      </return-value>
-      <parameters>
-        <parameter name="level" transfer-ownership="none">
-          <type name="DebugLevel" c:type="GstDebugLevel"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="debug_log"
-              c:identifier="gst_debug_log"
-              doc="Logs the given message using the currently registered debugging handlers.">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="category" transfer-ownership="none">
-          <type name="DebugCategory" c:type="GstDebugCategory*"/>
-        </parameter>
-        <parameter name="level" transfer-ownership="none">
-          <type name="DebugLevel" c:type="GstDebugLevel"/>
-        </parameter>
-        <parameter name="file" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-        <parameter name="function" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-        <parameter name="line" transfer-ownership="none">
-          <type name="int" c:type="gint"/>
-        </parameter>
-        <parameter name="object" transfer-ownership="none">
-          <type name="GObject.Object" c:type="GObject*"/>
-        </parameter>
-        <parameter name="format" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-        <parameter transfer-ownership="none">
-          <varargs>
-          </varargs>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="debug_log_default"
-              c:identifier="gst_debug_log_default"
-              doc="The default logging handler used by GStreamer. Logging functions get called
-whenever a macro like GST_DEBUG or similar is used. This function outputs the
-message and additional info using the glib error handler.
-You can add other handlers by using gst_debug_add_log_function().
-And you can remove this handler by calling
-gst_debug_remove_log_function(gst_debug_log_default);">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="category" transfer-ownership="none">
-          <type name="DebugCategory" c:type="GstDebugCategory*"/>
-        </parameter>
-        <parameter name="level" transfer-ownership="none">
-          <type name="DebugLevel" c:type="GstDebugLevel"/>
-        </parameter>
-        <parameter name="file" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-        <parameter name="function" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-        <parameter name="line" transfer-ownership="none">
-          <type name="int" c:type="gint"/>
-        </parameter>
-        <parameter name="object" transfer-ownership="none">
-          <type name="GObject.Object" c:type="GObject*"/>
-        </parameter>
-        <parameter name="message" transfer-ownership="none">
-          <type name="DebugMessage" c:type="GstDebugMessage*"/>
-        </parameter>
-        <parameter name="unused" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="debug_print_stack_trace"
-              c:identifier="gst_debug_print_stack_trace"
-              doc="If GST_ENABLE_FUNC_INSTRUMENTATION is defined a stacktrace is available for
-gstreamer code, which can be printed with this function.">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-    </function>
-    <function name="debug_remove_log_function"
-              c:identifier="gst_debug_remove_log_function"
-              doc="Removes all registered instances of the given logging functions.">
-      <return-value transfer-ownership="none">
-        <type name="uint" c:type="guint"/>
-      </return-value>
-      <parameters>
-        <parameter name="func" transfer-ownership="none" scope="call">
-          <type name="LogFunction" c:type="GstLogFunction"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="debug_remove_log_function_by_data"
-              c:identifier="gst_debug_remove_log_function_by_data"
-              doc="Removes all registered instances of log functions with the given user data.">
-      <return-value transfer-ownership="none">
-        <type name="uint" c:type="guint"/>
-      </return-value>
-      <parameters>
-        <parameter name="data" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="debug_set_active"
-              c:identifier="gst_debug_set_active"
-              doc="If activated, debugging messages are sent to the debugging
-handlers.
-It makes sense to deactivate it for speed issues.
-&lt;note&gt;&lt;para&gt;This function is not threadsafe. It makes sense to only call it
-during initialization.&lt;/para&gt;&lt;/note&gt;">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="active" transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="debug_set_colored"
-              c:identifier="gst_debug_set_colored"
-              doc="Sets or unsets the use of coloured debugging output.">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="colored" transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="debug_set_default_threshold"
-              c:identifier="gst_debug_set_default_threshold"
-              doc="Sets the default threshold to the given level and updates all categories to
-use this threshold.">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="level" transfer-ownership="none">
-          <type name="DebugLevel" c:type="GstDebugLevel"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="debug_set_threshold_for_name"
-              c:identifier="gst_debug_set_threshold_for_name"
-              doc="Sets all categories which match the given glob style pattern to the given
-level.">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="name" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-        <parameter name="level" transfer-ownership="none">
-          <type name="DebugLevel" c:type="GstDebugLevel"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="debug_unset_threshold_for_name"
-              c:identifier="gst_debug_unset_threshold_for_name"
-              doc="Resets all categories with the given name back to the default level.">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="name" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="default_registry_check_feature_version"
-              c:identifier="gst_default_registry_check_feature_version"
-              doc="Checks whether a plugin feature by the given name exists in the
-default registry and whether its version is at least the
-version required.
-the same as the required version or newer, and #FALSE otherwise.">
-      <return-value transfer-ownership="none">
-        <type name="boolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="feature_name" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-        <parameter name="min_major" transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
-        </parameter>
-        <parameter name="min_minor" transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
-        </parameter>
-        <parameter name="min_micro" transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="deinit"
-              c:identifier="gst_deinit"
-              doc="Clean up any resources created by GStreamer in gst_init().
-It is normally not needed to call this function in a normal application
-as the resources will automatically be freed when the program terminates.
-This function is therefore mostly used by testsuites and other memory
-profiling tools.
-After this call GStreamer (including this method) should not be used anymore.">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-    </function>
-    <function name="error_get_message"
-              c:identifier="gst_error_get_message"
-              doc="Get a string describing the error message in the current locale.
-current locale.">
-      <return-value transfer-ownership="full">
-        <type name="utf8" c:type="gchar*"/>
-      </return-value>
-      <parameters>
-        <parameter name="domain" transfer-ownership="none">
-          <type name="GLib.Quark" c:type="GQuark"/>
-        </parameter>
-        <parameter name="code" transfer-ownership="none">
-          <type name="int" c:type="gint"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="event_type_get_flags"
-              c:identifier="gst_event_type_get_flags"
-              doc="Gets the #GstEventTypeFlags associated with @type.">
-      <return-value transfer-ownership="full">
-        <type name="EventTypeFlags" c:type="GstEventTypeFlags"/>
-      </return-value>
-      <parameters>
-        <parameter name="type" transfer-ownership="none">
-          <type name="EventType" c:type="GstEventType"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="event_type_get_name"
-              c:identifier="gst_event_type_get_name"
-              doc="Get a printable name for the given event type. Do not modify or free.">
-      <return-value transfer-ownership="none">
-        <type name="utf8" c:type="gchar*"/>
-      </return-value>
-      <parameters>
-        <parameter name="type" transfer-ownership="none">
-          <type name="EventType" c:type="GstEventType"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="event_type_to_quark"
-              c:identifier="gst_event_type_to_quark"
-              doc="Get the unique quark for the given event type.">
-      <return-value transfer-ownership="full">
-        <type name="GLib.Quark" c:type="GQuark"/>
-      </return-value>
-      <parameters>
-        <parameter name="type" transfer-ownership="none">
-          <type name="EventType" c:type="GstEventType"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="filter_run"
-              c:identifier="gst_filter_run"
-              doc="Iterates over the elements in @list, calling @func with the
-list item data for each item.  If @func returns TRUE, @data is
-prepended to the list of results returned.  If @first is true,
-the search is halted after the first result is found.
-Since gst_filter_run() knows nothing about the type of @data, no
-reference will be taken (if @data refers to an object) and no copy of
-results.
-(the data contained in the list is a flat copy and does need to be
-unreferenced or freed).">
-      <return-value transfer-ownership="full" doc="when no longer needed">
-        <type name="GLib.List" c:type="GList*"/>
-      </return-value>
-      <parameters>
-        <parameter name="list" transfer-ownership="none">
-          <type name="GLib.List" c:type="GList*"/>
-        </parameter>
-        <parameter name="func" transfer-ownership="none" scope="call">
-          <type name="FilterFunc" c:type="GstFilterFunc"/>
-        </parameter>
-        <parameter name="first" transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </parameter>
-        <parameter name="user_data" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="flow_get_name"
-              c:identifier="gst_flow_get_name"
-              doc="Gets a string representing the given flow return.">
-      <return-value transfer-ownership="none">
-        <type name="utf8" c:type="gchar*"/>
-      </return-value>
-      <parameters>
-        <parameter name="ret" transfer-ownership="none">
-          <type name="FlowReturn" c:type="GstFlowReturn"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="flow_to_quark"
-              c:identifier="gst_flow_to_quark"
-              doc="Get the unique quark for the given GstFlowReturn.
-invalid return was specified.">
-      <return-value transfer-ownership="full">
-        <type name="GLib.Quark" c:type="GQuark"/>
-      </return-value>
-      <parameters>
-        <parameter name="ret" transfer-ownership="none">
-          <type name="FlowReturn" c:type="GstFlowReturn"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="format_get_by_nick"
-              c:identifier="gst_format_get_by_nick"
-              doc="Return the format registered with the given nick.
-if the format was not registered.">
-      <return-value transfer-ownership="full">
-        <type name="Format" c:type="GstFormat"/>
-      </return-value>
-      <parameters>
-        <parameter name="nick" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="format_get_details"
-              c:identifier="gst_format_get_details"
-              doc="Get details about the given format.
-MT safe.">
-      <return-value transfer-ownership="none">
-        <type name="FormatDefinition" c:type="GstFormatDefinition*"/>
-      </return-value>
-      <parameters>
-        <parameter name="format" transfer-ownership="none">
-          <type name="Format" c:type="GstFormat"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="format_get_name"
-              c:identifier="gst_format_get_name"
-              doc="Get a printable name for the given format. Do not modify or free.
-the format is unknown.">
-      <return-value transfer-ownership="none">
-        <type name="utf8" c:type="gchar*"/>
-      </return-value>
-      <parameters>
-        <parameter name="format" transfer-ownership="none">
-          <type name="Format" c:type="GstFormat"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="format_iterate_definitions"
-              c:identifier="gst_format_iterate_definitions"
-              doc="Iterate all the registered formats. The format definition is read
-only.">
-      <return-value transfer-ownership="full">
-        <type name="Iterator" c:type="GstIterator*"/>
-      </return-value>
-    </function>
-    <function name="format_register"
-              c:identifier="gst_format_register"
-              doc="Create a new GstFormat based on the nick or return an
-already registered format with that nick.
-with the same nick.
-MT safe.">
-      <return-value transfer-ownership="full">
-        <type name="Format" c:type="GstFormat"/>
-      </return-value>
-      <parameters>
-        <parameter name="nick" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-        <parameter name="description" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="format_to_quark"
-              c:identifier="gst_format_to_quark"
-              doc="Get the unique quark for the given format.
-is unknown.">
-      <return-value transfer-ownership="full">
-        <type name="GLib.Quark" c:type="GQuark"/>
-      </return-value>
-      <parameters>
-        <parameter name="format" transfer-ownership="none">
-          <type name="Format" c:type="GstFormat"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="formats_contains"
-              c:identifier="gst_formats_contains"
-              doc="See if the given format is inside the format array.">
-      <return-value transfer-ownership="none">
-        <type name="boolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="formats" transfer-ownership="none">
-          <type name="Format" c:type="GstFormat*"/>
-        </parameter>
-        <parameter name="format" transfer-ownership="none">
-          <type name="Format" c:type="GstFormat"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="implements_interface_cast"
-              c:identifier="gst_implements_interface_cast"
-              doc="cast a given object to an interface type, and check whether this
-interface is supported for this specific instance.">
-      <return-value transfer-ownership="none">
-        <type name="any" c:type="gpointer"/>
-      </return-value>
-      <parameters>
-        <parameter name="from"
-                   transfer-ownership="none"
-                   doc="from which to cast to the interface">
-          <type name="any" c:type="gpointer"/>
-        </parameter>
-        <parameter name="type" transfer-ownership="none">
-          <type name="GType" c:type="GType"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="implements_interface_check"
-              c:identifier="gst_implements_interface_check"
-              doc="check a given object for an interface implementation, and check
-whether this interface is supported for this specific instance.">
-      <return-value transfer-ownership="none">
-        <type name="boolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="from"
-                   transfer-ownership="none"
-                   doc="from which to check from for the interface">
-          <type name="any" c:type="gpointer"/>
-        </parameter>
-        <parameter name="type" transfer-ownership="none">
-          <type name="GType" c:type="GType"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="init"
-              c:identifier="gst_init"
-              doc="Initializes the GStreamer library, setting up internal path lists,
-registering built-in elements, and loading standard plugins.
-Unless the plugin registry is disabled at compile time, the registry will be
-loaded. By default this will also check if the registry cache needs to be
-updated and rescan all plugins if needed. See gst_update_registry() for
-details and section
-&lt;link linkend=&quot;gst-running&quot;&gt;Running GStreamer Applications&lt;/link&gt;
-for how to disable automatic registry updates.
-This function should be called before calling any other GLib functions. If
-this is not an option, your program must initialise the GLib thread system
-using g_thread_init() before any other GLib functions are called.
-&lt;note&gt;&lt;para&gt;
-This function will terminate your program if it was unable to initialize
-GStreamer for some reason.  If you want your program to fall back,
-use gst_init_check() instead.
-&lt;/para&gt;&lt;/note&gt;
-functions in other glib-style libraries, such as gtk_init().  In
-particular, unknown command line options cause this function to
-abort program execution.">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="argc"
-                   direction="inout"
-                   transfer-ownership="full"
-                   doc="pointer to application&apos;s argc">
-          <type name="int" c:type="int*"/>
-        </parameter>
-        <parameter name="argv"
-                   direction="inout"
-                   transfer-ownership="full"
-                   allow-none="1"
-                   doc="pointer to application&apos;s argv">
-          <array length="0" c:type="char**">
-            <type name="utf8"/>
-          </array>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="init_check"
-              c:identifier="gst_init_check"
-              doc="Initializes the GStreamer library, setting up internal path lists,
-registering built-in elements, and loading standard plugins.
-This function will return %FALSE if GStreamer could not be initialized
-for some reason.  If you want your program to fail fatally,
-use gst_init() instead.
-This function should be called before calling any other GLib functions. If
-this is not an option, your program must initialise the GLib thread system
-using g_thread_init() before any other GLib functions are called."
-              throws="1">
-      <return-value transfer-ownership="none">
-        <type name="boolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="argc"
-                   direction="inout"
-                   transfer-ownership="full"
-                   doc="pointer to application&apos;s argc">
-          <type name="int" c:type="int*"/>
-        </parameter>
-        <parameter name="argv"
-                   direction="inout"
-                   transfer-ownership="full"
-                   allow-none="1"
-                   doc="pointer to application&apos;s argv">
-          <array length="0" c:type="char**">
-            <type name="utf8"/>
-          </array>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="init_get_option_group"
-              c:identifier="gst_init_get_option_group"
-              doc="Returns a #GOptionGroup with GStreamer&apos;s argument specifications. The
-group is set up to use standard GOption callbacks, so when using this
-group in combination with GOption parsing methods, all argument parsing
-and initialization is automated.
-This function is useful if you want to integrate GStreamer with other
-libraries that use GOption (see g_option_context_add_group() ).
-If you use this function, you should make sure you initialise the GLib
-threading system as one of the very first things in your program
-(see the example at the beginning of this section).">
-      <return-value transfer-ownership="full">
-        <type name="GLib.OptionGroup" c:type="GOptionGroup*"/>
-      </return-value>
-    </function>
-    <function name="is_tag_list"
-              c:identifier="gst_is_tag_list"
-              doc="Checks if the given pointer is a taglist.">
-      <return-value transfer-ownership="none">
-        <type name="boolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="p" transfer-ownership="none">
-          <type name="any" c:type="gconstpointer"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="message_type_get_name"
-              c:identifier="gst_message_type_get_name"
-              doc="Get a printable name for the given message type. Do not modify or free.">
-      <return-value transfer-ownership="none">
-        <type name="utf8" c:type="gchar*"/>
-      </return-value>
-      <parameters>
-        <parameter name="type" transfer-ownership="none">
-          <type name="MessageType" c:type="GstMessageType"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="message_type_to_quark"
-              c:identifier="gst_message_type_to_quark"
-              doc="Get the unique quark for the given message type.">
-      <return-value transfer-ownership="full">
-        <type name="GLib.Quark" c:type="GQuark"/>
-      </return-value>
-      <parameters>
-        <parameter name="type" transfer-ownership="none">
-          <type name="MessageType" c:type="GstMessageType"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="param_spec_fraction"
-              c:identifier="gst_param_spec_fraction"
-              doc="This function creates a fraction GParamSpec for use by objects/elements
-that want to expose properties of fraction type. This function is typically
-used in connection with g_object_class_install_property() in a GObjects&apos;s
-instance_init function."
-              version="0.10.14">
-      <return-value transfer-ownership="full">
-        <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
-      </return-value>
-      <parameters>
-        <parameter name="name" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-        <parameter name="nick" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-        <parameter name="blurb" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-        <parameter name="min_num" transfer-ownership="none">
-          <type name="int" c:type="gint"/>
-        </parameter>
-        <parameter name="min_denom" transfer-ownership="none">
-          <type name="int" c:type="gint"/>
-        </parameter>
-        <parameter name="max_num" transfer-ownership="none">
-          <type name="int" c:type="gint"/>
-        </parameter>
-        <parameter name="max_denom" transfer-ownership="none">
-          <type name="int" c:type="gint"/>
-        </parameter>
-        <parameter name="default_num" transfer-ownership="none">
-          <type name="int" c:type="gint"/>
-        </parameter>
-        <parameter name="default_denom" transfer-ownership="none">
-          <type name="int" c:type="gint"/>
-        </parameter>
-        <parameter name="flags" transfer-ownership="none">
-          <type name="GObject.ParamFlags" c:type="GParamFlags"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="param_spec_mini_object"
-              c:identifier="gst_param_spec_mini_object"
-              doc="Creates a new #GParamSpec instance that hold #GstMiniObject references.">
-      <return-value transfer-ownership="full">
-        <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
-      </return-value>
-      <parameters>
-        <parameter name="name" transfer-ownership="none">
-          <type name="utf8" c:type="char*"/>
-        </parameter>
-        <parameter name="nick" transfer-ownership="none">
-          <type name="utf8" c:type="char*"/>
-        </parameter>
-        <parameter name="blurb" transfer-ownership="none">
-          <type name="utf8" c:type="char*"/>
-        </parameter>
-        <parameter name="object_type" transfer-ownership="none">
-          <type name="GType" c:type="GType"/>
-        </parameter>
-        <parameter name="flags" transfer-ownership="none">
-          <type name="GObject.ParamFlags" c:type="GParamFlags"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="parse_bin_from_description"
-              c:identifier="gst_parse_bin_from_description"
-              doc="for unlinked source or sink pads within the bin
-This is a convenience wrapper around gst_parse_launch() to create a
-#GstBin from a gst-launch-style pipeline description. See
-gst_parse_launch() and the gst-launch man page for details about the
-syntax. Ghost pads on the bin for unlinked source or sink pads
-within the bin can automatically be created (but only a maximum of
-one ghost pad for each direction will be created; if you expect
-multiple unlinked source pads or multiple unlinked sink pads
-and want them all ghosted, you will have to create the ghost pads
-yourself)."
-              version="0.10.3"
-              throws="1">
-      <return-value transfer-ownership="full">
-        <type name="Element" c:type="GstElement*"/>
-      </return-value>
-      <parameters>
-        <parameter name="bin_description" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-        <parameter name="ghost_unlinked_pads" transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="parse_bin_from_description_full"
-              c:identifier="gst_parse_bin_from_description_full"
-              doc="for unlinked source or sink pads within the bin
-This is a convenience wrapper around gst_parse_launch() to create a
-#GstBin from a gst-launch-style pipeline description. See
-gst_parse_launch() and the gst-launch man page for details about the
-syntax. Ghost pads on the bin for unlinked source or sink pads
-within the bin can automatically be created (but only a maximum of
-one ghost pad for each direction will be created; if you expect
-multiple unlinked source pads or multiple unlinked sink pads
-and want them all ghosted, you will have to create the ghost pads
-yourself)."
-              version="0.10.20"
-              throws="1">
-      <return-value transfer-ownership="full">
-        <type name="Element" c:type="GstElement*"/>
-      </return-value>
-      <parameters>
-        <parameter name="bin_description" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-        <parameter name="ghost_unlinked_pads" transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </parameter>
-        <parameter name="context" transfer-ownership="none" doc="or %NULL">
-          <type name="ParseContext" c:type="GstParseContext*"/>
-        </parameter>
-        <parameter name="flags" transfer-ownership="none">
-          <type name="ParseFlags" c:type="GstParseFlags"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="parse_launch"
-              c:identifier="gst_parse_launch"
-              doc="Create a new pipeline based on command line syntax.
-Please note that you might get a return value that is not %NULL even though
-the @error is set. In this case there was a recoverable parsing error and you
-can try to play the pipeline.
-element is specified by the @pipeline_description, all elements are put into
-a #GstPipeline, which than is returned."
-              throws="1">
-      <return-value transfer-ownership="full">
-        <type name="Element" c:type="GstElement*"/>
-      </return-value>
-      <parameters>
-        <parameter name="pipeline_description" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="parse_launch_full"
-              c:identifier="gst_parse_launch_full"
-              doc="Create a new pipeline based on command line syntax.
-Please note that you might get a return value that is not %NULL even though
-the @error is set. In this case there was a recoverable parsing error and you
-can try to play the pipeline.
-element is specified by the @pipeline_description, all elements are put into
-a #GstPipeline, which then is returned."
-              version="0.10.20"
-              throws="1">
-      <return-value transfer-ownership="full">
-        <type name="Element" c:type="GstElement*"/>
-      </return-value>
-      <parameters>
-        <parameter name="pipeline_description" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-        <parameter name="context" transfer-ownership="none" doc="or %NULL">
-          <type name="ParseContext" c:type="GstParseContext*"/>
-        </parameter>
-        <parameter name="flags" transfer-ownership="none">
-          <type name="ParseFlags" c:type="GstParseFlags"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="parse_launchv"
-              c:identifier="gst_parse_launchv"
-              doc="Create a new element based on command line syntax.
-An error does not mean that the pipeline could not be constructed."
-              throws="1">
-      <return-value transfer-ownership="full">
-        <type name="Element" c:type="GstElement*"/>
-      </return-value>
-      <parameters>
-        <parameter name="argv" transfer-ownership="none">
-          <array c:type="gchar**">
-            <type name="utf8"/>
-          </array>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="parse_launchv_full"
-              c:identifier="gst_parse_launchv_full"
-              doc="Create a new element based on command line syntax.
-An error does not mean that the pipeline could not be constructed.
-partially-constructed bin or element will be returned and @error will be set
-(unless you passed #GST_PARSE_FLAG_FATAL_ERRORS in @flags, then %NULL will
-always be returned on failure)"
-              version="0.10.20"
-              throws="1">
-      <return-value transfer-ownership="full">
-        <type name="Element" c:type="GstElement*"/>
-      </return-value>
-      <parameters>
-        <parameter name="argv" transfer-ownership="none">
-          <array c:type="gchar**">
-            <type name="utf8"/>
-          </array>
-        </parameter>
-        <parameter name="context" transfer-ownership="none" doc="or %NULL">
-          <type name="ParseContext" c:type="GstParseContext*"/>
-        </parameter>
-        <parameter name="flags" transfer-ownership="none">
-          <type name="ParseFlags" c:type="GstParseFlags"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="print_element_args"
-              c:identifier="gst_print_element_args"
-              doc="Print the element argument in a human readable format in the given
-GString.">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="buf" transfer-ownership="none">
-          <type name="GLib.String" c:type="GString*"/>
-        </parameter>
-        <parameter name="indent" transfer-ownership="none">
-          <type name="int" c:type="gint"/>
-        </parameter>
-        <parameter name="element" transfer-ownership="none">
-          <type name="Element" c:type="GstElement*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="print_pad_caps"
-              c:identifier="gst_print_pad_caps"
-              doc="Write the pad capabilities in a human readable format into
-the given GString.">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="buf" transfer-ownership="none">
-          <type name="GLib.String" c:type="GString*"/>
-        </parameter>
-        <parameter name="indent" transfer-ownership="none">
-          <type name="int" c:type="gint"/>
-        </parameter>
-        <parameter name="pad" transfer-ownership="none">
-          <type name="Pad" c:type="GstPad*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="query_type_get_by_nick"
-              c:identifier="gst_query_type_get_by_nick"
-              doc="Get the query type registered with @nick.
-if the query was not registered.">
-      <return-value transfer-ownership="full">
-        <type name="QueryType" c:type="GstQueryType"/>
-      </return-value>
-      <parameters>
-        <parameter name="nick" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="query_type_get_details"
-              c:identifier="gst_query_type_get_details"
-              doc="Get details about the given #GstQueryType.">
-      <return-value transfer-ownership="none">
-        <type name="QueryTypeDefinition" c:type="GstQueryTypeDefinition*"/>
-      </return-value>
-      <parameters>
-        <parameter name="type" transfer-ownership="none">
-          <type name="QueryType" c:type="GstQueryType"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="query_type_get_name"
-              c:identifier="gst_query_type_get_name"
-              doc="Get a printable name for the given query type. Do not modify or free.">
-      <return-value transfer-ownership="none">
-        <type name="utf8" c:type="gchar*"/>
-      </return-value>
-      <parameters>
-        <parameter name="query" transfer-ownership="none">
-          <type name="QueryType" c:type="GstQueryType"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="query_type_iterate_definitions"
-              c:identifier="gst_query_type_iterate_definitions"
-              doc="Get a #GstIterator of all the registered query types. The definitions
-iterated over are read only.">
-      <return-value transfer-ownership="full">
-        <type name="Iterator" c:type="GstIterator*"/>
-      </return-value>
-    </function>
-    <function name="query_type_register"
-              c:identifier="gst_query_type_register"
-              doc="Create a new GstQueryType based on the nick or return an
-already registered query with that nick
-with the same nick.">
-      <return-value transfer-ownership="full">
-        <type name="QueryType" c:type="GstQueryType"/>
-      </return-value>
-      <parameters>
-        <parameter name="nick" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-        <parameter name="description" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="query_type_to_quark"
-              c:identifier="gst_query_type_to_quark"
-              doc="Get the unique quark for the given query type.">
-      <return-value transfer-ownership="full">
-        <type name="GLib.Quark" c:type="GQuark"/>
-      </return-value>
-      <parameters>
-        <parameter name="query" transfer-ownership="none">
-          <type name="QueryType" c:type="GstQueryType"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="query_types_contains"
-              c:identifier="gst_query_types_contains"
-              doc="See if the given #GstQueryType is inside the @types query types array.">
-      <return-value transfer-ownership="none">
-        <type name="boolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="types" transfer-ownership="none">
-          <type name="QueryType" c:type="GstQueryType*"/>
-        </parameter>
-        <parameter name="type" transfer-ownership="none">
-          <type name="QueryType" c:type="GstQueryType"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="segtrap_is_enabled"
-              c:identifier="gst_segtrap_is_enabled"
-              doc="Some functions in the GStreamer core might install a custom SIGSEGV handler
-to better catch and report errors to the application. Currently this feature
-is enabled by default when loading plugins.
-Applications might want to disable this behaviour with the
-gst_segtrap_set_enabled() function. This is typically done if the application
-wants to install its own handler without GStreamer interfering."
-              version="0.10.10">
-      <return-value transfer-ownership="none">
-        <type name="boolean" c:type="gboolean"/>
-      </return-value>
-    </function>
-    <function name="segtrap_set_enabled"
-              c:identifier="gst_segtrap_set_enabled"
-              doc="Applications might want to disable/enable the SIGSEGV handling of
-the GStreamer core. See gst_segtrap_is_enabled() for more information."
-              version="0.10.10">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="enabled" transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="structure_empty_new"
-              c:identifier="gst_structure_empty_new"
-              doc="Creates a new, empty #GstStructure with the given @name.
-See gst_structure_set_name() for constraints on the @name parameter.">
-      <return-value transfer-ownership="full">
-        <type name="Structure" c:type="GstStructure*"/>
-      </return-value>
-      <parameters>
-        <parameter name="name" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="structure_from_string"
-              c:identifier="gst_structure_from_string"
-              doc="Creates a #GstStructure from a string representation.
-If end is not NULL, a pointer to the place inside the given string
-where parsing ended will be returned.
-be parsed. Free with gst_structure_free() after use.">
-      <return-value transfer-ownership="full">
-        <type name="Structure" c:type="GstStructure*"/>
-      </return-value>
-      <parameters>
-        <parameter name="string" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-        <parameter name="end" transfer-ownership="none">
-          <array c:type="gchar**">
-            <type name="utf8"/>
-          </array>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="structure_id_empty_new"
-              c:identifier="gst_structure_id_empty_new"
-              doc="Creates a new, empty #GstStructure with the given name as a GQuark.">
-      <return-value transfer-ownership="full">
-        <type name="Structure" c:type="GstStructure*"/>
-      </return-value>
-      <parameters>
-        <parameter name="quark" transfer-ownership="none">
-          <type name="GLib.Quark" c:type="GQuark"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="structure_id_new"
-              c:identifier="gst_structure_id_new"
-              doc="Creates a new #GstStructure with the given name as a GQuark, followed by
-fieldname quark, GType, argument(s) &quot;triplets&quot; in the same format as
-gst_structure_id_set(). Basically a convenience wrapper around
-gst_structure_id_empty_new() and gst_structure_id_set().
-The last variable argument must be NULL (or 0)."
-              version="0.10.24">
-      <return-value transfer-ownership="full">
-        <type name="Structure" c:type="GstStructure*"/>
-      </return-value>
-      <parameters>
-        <parameter name="name_quark" transfer-ownership="none">
-          <type name="GLib.Quark" c:type="GQuark"/>
-        </parameter>
-        <parameter name="field_quark" transfer-ownership="none">
-          <type name="GLib.Quark" c:type="GQuark"/>
-        </parameter>
-        <parameter transfer-ownership="none">
-          <varargs>
-          </varargs>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="tag_exists"
-              c:identifier="gst_tag_exists"
-              doc="Checks if the given type is already registered.">
-      <return-value transfer-ownership="none">
-        <type name="boolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="tag" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="tag_get_description"
-              c:identifier="gst_tag_get_description"
-              doc="Returns the human-readable description of this tag, You must not change or
-free this string.">
-      <return-value transfer-ownership="none">
-        <type name="utf8" c:type="gchar*"/>
-      </return-value>
-      <parameters>
-        <parameter name="tag" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="tag_get_flag"
-              c:identifier="gst_tag_get_flag"
-              doc="Gets the flag of @tag.">
-      <return-value transfer-ownership="full">
-        <type name="TagFlag" c:type="GstTagFlag"/>
-      </return-value>
-      <parameters>
-        <parameter name="tag" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="tag_get_nick" c:identifier="gst_tag_get_nick">
-      <return-value transfer-ownership="none">
-        <type name="utf8" c:type="gchar*"/>
-      </return-value>
-      <parameters>
-        <parameter name="tag" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="tag_get_type"
-              c:identifier="gst_tag_get_type"
-              doc="Gets the #GType used for this tag.">
-      <return-value transfer-ownership="none">
-        <type name="GType" c:type="GType"/>
-      </return-value>
-      <parameters>
-        <parameter name="tag" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="tag_is_fixed"
-              c:identifier="gst_tag_is_fixed"
-              doc="Checks if the given tag is fixed. A fixed tag can only contain one value.
-Unfixed tags can contain lists of values.">
-      <return-value transfer-ownership="none">
-        <type name="boolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="tag" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="tag_list_copy_value"
-              c:identifier="gst_tag_list_copy_value"
-              doc="Copies the contents for the given tag into the value,
-merging multiple values into one if multiple values are associated
-with the tag.
-You must g_value_unset() the value after use.
-given list.">
-      <return-value transfer-ownership="none">
-        <type name="boolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="dest" transfer-ownership="none">
-          <type name="GObject.Value" c:type="GValue*"/>
-        </parameter>
-        <parameter name="list" transfer-ownership="none">
-          <type name="TagList" c:type="GstTagList*"/>
-        </parameter>
-        <parameter name="tag" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="tag_merge_strings_with_comma"
-              c:identifier="gst_tag_merge_strings_with_comma"
-              doc="This is a convenience function for the func argument of gst_tag_register().
-It concatenates all given strings using a comma. The tag must be registered
-as a G_TYPE_STRING or this function will fail.">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="dest" transfer-ownership="none">
-          <type name="GObject.Value" c:type="GValue*"/>
-        </parameter>
-        <parameter name="src" transfer-ownership="none">
-          <type name="GObject.Value" c:type="GValue*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="tag_merge_use_first"
-              c:identifier="gst_tag_merge_use_first"
-              doc="This is a convenience function for the func argument of gst_tag_register().
-It creates a copy of the first value from the list.">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="dest" transfer-ownership="none">
-          <type name="GObject.Value" c:type="GValue*"/>
-        </parameter>
-        <parameter name="src" transfer-ownership="none">
-          <type name="GObject.Value" c:type="GValue*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="tag_register"
-              c:identifier="gst_tag_register"
-              doc="Registers a new tag type for the use with GStreamer&apos;s type system. If a type
-with that name is already registered, that one is used.
-The old registration may have used a different type however. So don&apos;t rely
-on your supplied values.
-that there can only be one single value for this tag in a tag list and
-any additional values will silenty be discarded when being added (unless
-#GST_TAG_MERGE_REPLACE, #GST_TAG_MERGE_REPLACE_ALL, or
-#GST_TAG_MERGE_PREPEND is used as merge mode, in which case the new
-value will replace the old one in the list).
-The merge function will be called from gst_tag_list_copy_value() when
-it is required that one or more values for a tag be condensed into
-one single value. This may happen from gst_tag_list_get_string(),
-gst_tag_list_get_int(), gst_tag_list_get_double() etc. What will happen
-exactly in that case depends on how the tag was registered and if a
-merge function was supplied and if so which one.
-gst_tag_merge_strings_with_comma().">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="name" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-        <parameter name="flag" transfer-ownership="none">
-          <type name="TagFlag" c:type="GstTagFlag"/>
-        </parameter>
-        <parameter name="type" transfer-ownership="none">
-          <type name="GType" c:type="GType"/>
-        </parameter>
-        <parameter name="nick" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-        <parameter name="blurb" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-        <parameter name="func" transfer-ownership="none" scope="call">
-          <type name="TagMergeFunc" c:type="GstTagMergeFunc"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="trace_read_tsc"
-              c:identifier="gst_trace_read_tsc"
-              doc="Read a platform independent timer value that can be used in
-benchmarks.">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="dst" direction="out" transfer-ownership="full">
-          <type name="int64" c:type="gint64*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="type_find_register"
-              c:identifier="gst_type_find_register"
-              doc="passing NULL only works in GStreamer 0.10.16 and later)
-succeeds
-is unloaded.
-is unloaded.
-Registers a new typefind function to be used for typefinding. After
-registering this function will be available for typefinding.
-This function is typically called during an element&apos;s plugin initialization.">
-      <return-value transfer-ownership="none">
-        <type name="boolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="plugin" transfer-ownership="none">
-          <type name="Plugin" c:type="GstPlugin*"/>
-        </parameter>
-        <parameter name="name" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-        <parameter name="rank"
-                   transfer-ownership="none"
-                   doc="of this typefind function">
-          <type name="uint" c:type="guint"/>
-        </parameter>
-        <parameter name="func" transfer-ownership="none" scope="call">
-          <type name="TypeFindFunction" c:type="GstTypeFindFunction"/>
-        </parameter>
-        <parameter name="extensions" transfer-ownership="none">
-          <array c:type="gchar**">
-            <type name="utf8"/>
-          </array>
-        </parameter>
-        <parameter name="possible_caps" transfer-ownership="none">
-          <type name="Caps" c:type="GstCaps*"/>
-        </parameter>
-        <parameter name="data" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
-        </parameter>
-        <parameter name="data_notify" transfer-ownership="none" scope="call">
-          <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="type_register_static_full"
-              c:identifier="gst_type_register_static_full"
-              doc="derive from
-Location of the default vtable inititalization function for interface
-types. (optional)
-Location of the default vtable finalization function for interface types.
-(optional)
-instantiatable types only).
-memory for (0 indicates no caching). Ignored on recent GLib&apos;s.
-for instantiatable types only).
-GValues of this type (usually only useful for fundamental types).
-Helper function which constructs a #GTypeInfo structure and registers a
-GType, but which generates less linker overhead than a static const
-#GTypeInfo structure. For further details of the parameters, please see
-#GTypeInfo in the GLib documentation.
-Registers type_name as the name of a new static type derived from
-parent_type. The value of flags determines the nature (e.g. abstract or
-not) of the type. It works by filling a GTypeInfo struct and calling
-g_type_register_static()."
-              version="0.10.14">
-      <return-value transfer-ownership="none">
-        <type name="GType" c:type="GType"/>
-      </return-value>
-      <parameters>
-        <parameter name="parent_type" transfer-ownership="none">
-          <type name="GType" c:type="GType"/>
-        </parameter>
-        <parameter name="type_name" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-        <parameter name="class_size" transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
-        </parameter>
-        <parameter name="base_init" transfer-ownership="none" scope="call">
-          <type name="GObject.BaseInitFunc" c:type="GBaseInitFunc"/>
-        </parameter>
-        <parameter name="base_finalize" transfer-ownership="none" scope="call">
-          <type name="GObject.BaseFinalizeFunc" c:type="GBaseFinalizeFunc"/>
-        </parameter>
-        <parameter name="class_init" transfer-ownership="none" scope="call">
-          <type name="GObject.ClassInitFunc" c:type="GClassInitFunc"/>
-        </parameter>
-        <parameter name="class_finalize"
-                   transfer-ownership="none"
-                   scope="call"
-                   closure="7">
-          <type name="GObject.ClassFinalizeFunc" c:type="GClassFinalizeFunc"/>
-        </parameter>
-        <parameter name="class_data" transfer-ownership="none">
-          <type name="any" c:type="gconstpointer"/>
-        </parameter>
-        <parameter name="instance_size"
-                   transfer-ownership="none"
-                   doc="structure (required for">
-          <type name="uint" c:type="guint"/>
-        </parameter>
-        <parameter name="n_preallocs"
-                   transfer-ownership="none"
-                   doc="instances to reserve">
-          <type name="uint16" c:type="guint16"/>
-        </parameter>
-        <parameter name="instance_init" transfer-ownership="none" scope="call">
-          <type name="GObject.InstanceInitFunc" c:type="GInstanceInitFunc"/>
-        </parameter>
-        <parameter name="value_table" transfer-ownership="none">
-          <type name="GObject.TypeValueTable" c:type="GTypeValueTable*"/>
-        </parameter>
-        <parameter name="flags" transfer-ownership="none">
-          <type name="GObject.TypeFlags" c:type="GTypeFlags"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="update_registry"
-              c:identifier="gst_update_registry"
-              doc="Forces GStreamer to re-scan its plugin paths and update the default
-plugin registry.
-Applications will almost never need to call this function, it is only
-useful if the application knows new plugins have been installed (or old
-ones removed) since the start of the application (or, to be precise, the
-first call to gst_init()) and the application wants to make use of any
-newly-installed plugins without restarting the application.
-Applications should assume that the registry update is neither atomic nor
-thread-safe and should therefore not have any dynamic pipelines running
-(including the playbin and decodebin elements) and should also not create
-any elements or access the GStreamer registry while the update is in
-progress.
-Note that this function may block for a significant amount of time.
-imply that there were changes), otherwise %FALSE."
-              version="0.10.12">
-      <return-value transfer-ownership="none">
-        <type name="boolean" c:type="gboolean"/>
-      </return-value>
-    </function>
-    <function name="uri_construct"
-              c:identifier="gst_uri_construct"
-              doc="Constructs a URI for a given valid protocol and location.
-is not valid, or the given location is NULL.">
-      <return-value transfer-ownership="full">
-        <type name="utf8" c:type="gchar*"/>
-      </return-value>
-      <parameters>
-        <parameter name="protocol" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-        <parameter name="location" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="uri_get_location"
-              c:identifier="gst_uri_get_location"
-              doc="Extracts the location out of a given valid URI, ie. the protocol and &quot;://&quot;
-are stripped from the URI, which means that the location returned includes
-the hostname if one is specified. The returned string must be freed using
-g_free().
-the URI does not contain a location, an empty string is returned.">
-      <return-value transfer-ownership="full">
-        <type name="utf8" c:type="gchar*"/>
-      </return-value>
-      <parameters>
-        <parameter name="uri" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="uri_get_protocol"
-              c:identifier="gst_uri_get_protocol"
-              doc="Extracts the protocol out of a given valid URI. The returned string must be
-freed using g_free().">
-      <return-value transfer-ownership="full">
-        <type name="utf8" c:type="gchar*"/>
-      </return-value>
-      <parameters>
-        <parameter name="uri" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="uri_has_protocol"
-              c:identifier="gst_uri_has_protocol"
-              doc="Checks if the protocol of a given valid URI matches @protocol."
-              version="0.10.4">
-      <return-value transfer-ownership="none">
-        <type name="boolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="uri" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-        <parameter name="protocol" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="uri_is_valid"
-              c:identifier="gst_uri_is_valid"
-              doc="Tests if the given string is a valid URI identifier. URIs start with a valid
-scheme followed by &quot;:&quot; and maybe a string identifying the location.">
-      <return-value transfer-ownership="none">
-        <type name="boolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="uri" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="uri_protocol_is_supported"
-              c:identifier="gst_uri_protocol_is_supported"
-              doc="Checks if an element exists that supports the given URI protocol. Note
-that a positive return value does not imply that a subsequent call to
-gst_element_make_from_uri() is guaranteed to work."
-              version="0.10.13">
-      <return-value transfer-ownership="none">
-        <type name="boolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="type" transfer-ownership="none">
-          <type name="URIType" c:type="GstURIType"/>
-        </parameter>
-        <parameter name="protocol" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="uri_protocol_is_valid"
-              c:identifier="gst_uri_protocol_is_valid"
-              doc="Tests if the given string is a valid protocol identifier. Protocols
-must consist of alphanumeric characters, &apos;+&apos;, &apos;-&apos; and &apos;.&apos; and must
-start with a alphabetic character. See RFC 3986 Section 3.1.">
-      <return-value transfer-ownership="none">
-        <type name="boolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="protocol" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="util_array_binary_search"
-              c:identifier="gst_util_array_binary_search"
-              doc="Searches inside @array for @search_data by using the comparison function
-As @search_data is always passed as second argument to @search_func it&apos;s
-not required that @search_data has the same type as the array elements.
-The complexity of this search function is O(log (num_elements))."
-              version="0.10.23">
-      <return-value transfer-ownership="none">
-        <type name="any" c:type="gpointer"/>
-      </return-value>
-      <parameters>
-        <parameter name="array" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
-        </parameter>
-        <parameter name="num_elements" transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
-        </parameter>
-        <parameter name="element_size" transfer-ownership="none">
-          <type name="size_t" c:type="gsize"/>
-        </parameter>
-        <parameter name="search_func" transfer-ownership="none" scope="call">
-          <type name="GLib.CompareDataFunc" c:type="GCompareDataFunc"/>
-        </parameter>
-        <parameter name="mode" transfer-ownership="none">
-          <type name="SearchMode" c:type="GstSearchMode"/>
-        </parameter>
-        <parameter name="search_data" transfer-ownership="none">
-          <type name="any" c:type="gconstpointer"/>
-        </parameter>
-        <parameter name="user_data" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="util_double_to_fraction"
-              c:identifier="gst_util_double_to_fraction"
-              doc="Transforms a #gdouble to a fraction and simplifies
-the result."
-              version="0.10.26">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="src" transfer-ownership="none">
-          <type name="double" c:type="gdouble"/>
-        </parameter>
-        <parameter name="dest_n" direction="out" transfer-ownership="full">
-          <type name="int" c:type="gint*"/>
-        </parameter>
-        <parameter name="dest_d" direction="out" transfer-ownership="full">
-          <type name="int" c:type="gint*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="util_dump_mem"
-              c:identifier="gst_util_dump_mem"
-              doc="Dumps the memory block into a hex representation. Useful for debugging.">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="mem" transfer-ownership="none">
-          <array c:type="guchar*">
-            <type name="uint8"/>
-          </array>
-        </parameter>
-        <parameter name="size" transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="util_fraction_add"
-              c:identifier="gst_util_fraction_add"
-              doc="Adds the fractions @a_n/@a_d and @b_n/@b_d and stores
-the result in @res_n and @res_d."
-              version="0.10.26">
-      <return-value transfer-ownership="none">
-        <type name="boolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="a_n" transfer-ownership="none">
-          <type name="int" c:type="gint"/>
-        </parameter>
-        <parameter name="a_d" transfer-ownership="none">
-          <type name="int" c:type="gint"/>
-        </parameter>
-        <parameter name="b_n" transfer-ownership="none">
-          <type name="int" c:type="gint"/>
-        </parameter>
-        <parameter name="b_d" transfer-ownership="none">
-          <type name="int" c:type="gint"/>
-        </parameter>
-        <parameter name="res_n" direction="out" transfer-ownership="full">
-          <type name="int" c:type="gint*"/>
-        </parameter>
-        <parameter name="res_d" direction="out" transfer-ownership="full">
-          <type name="int" c:type="gint*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="util_fraction_multiply"
-              c:identifier="gst_util_fraction_multiply"
-              doc="Multiplies the fractions @a_n/@a_d and @b_n/@b_d and stores
-the result in @res_n and @res_d."
-              version="0.10.26">
-      <return-value transfer-ownership="none">
-        <type name="boolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="a_n" transfer-ownership="none">
-          <type name="int" c:type="gint"/>
-        </parameter>
-        <parameter name="a_d" transfer-ownership="none">
-          <type name="int" c:type="gint"/>
-        </parameter>
-        <parameter name="b_n" transfer-ownership="none">
-          <type name="int" c:type="gint"/>
-        </parameter>
-        <parameter name="b_d" transfer-ownership="none">
-          <type name="int" c:type="gint"/>
-        </parameter>
-        <parameter name="res_n" direction="out" transfer-ownership="full">
-          <type name="int" c:type="gint*"/>
-        </parameter>
-        <parameter name="res_d" direction="out" transfer-ownership="full">
-          <type name="int" c:type="gint*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="util_fraction_to_double"
-              c:identifier="gst_util_fraction_to_double"
-              doc="Transforms a #gdouble to a fraction and simplifies the result."
-              version="0.10.26">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="src_n" transfer-ownership="none">
-          <type name="int" c:type="gint"/>
-        </parameter>
-        <parameter name="src_d" transfer-ownership="none">
-          <type name="int" c:type="gint"/>
-        </parameter>
-        <parameter name="dest" direction="out" transfer-ownership="full">
-          <type name="double" c:type="gdouble*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="util_gdouble_to_guint64"
-              c:identifier="gst_util_gdouble_to_guint64">
-      <return-value transfer-ownership="none">
-        <type name="uint64" c:type="guint64"/>
-      </return-value>
-      <parameters>
-        <parameter name="value" transfer-ownership="none">
-          <type name="double" c:type="gdouble"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="util_get_timestamp"
-              c:identifier="gst_util_get_timestamp"
-              doc="Get a timestamp as GstClockTime to be used for interval meassurements.
-The timestamp should not be interpreted in any other way."
-              version="0.10.16">
-      <return-value transfer-ownership="full">
-        <type name="ClockTime" c:type="GstClockTime"/>
-      </return-value>
-    </function>
-    <function name="util_greatest_common_divisor"
-              c:identifier="gst_util_greatest_common_divisor"
-              doc="Calculates the greatest common divisor of @a
-and @b."
-              version="0.10.26">
-      <return-value transfer-ownership="none">
-        <type name="int" c:type="gint"/>
-      </return-value>
-      <parameters>
-        <parameter name="a" transfer-ownership="none">
-          <type name="int" c:type="gint"/>
-        </parameter>
-        <parameter name="b" transfer-ownership="none">
-          <type name="int" c:type="gint"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="util_guint64_to_gdouble"
-              c:identifier="gst_util_guint64_to_gdouble">
-      <return-value transfer-ownership="none">
-        <type name="double" c:type="gdouble"/>
-      </return-value>
-      <parameters>
-        <parameter name="value" transfer-ownership="none">
-          <type name="uint64" c:type="guint64"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="util_seqnum_compare"
-              c:identifier="gst_util_seqnum_compare"
-              doc="Compare two sequence numbers, handling wraparound.
-The current implementation just returns (gint32)(@s1 - @s2).
-positive number if @s1 is after @s2."
-              version="0.10.22">
-      <return-value transfer-ownership="none">
-        <type name="int32" c:type="gint32"/>
-      </return-value>
-      <parameters>
-        <parameter name="s1" transfer-ownership="none">
-          <type name="uint32" c:type="guint32"/>
-        </parameter>
-        <parameter name="s2" transfer-ownership="none">
-          <type name="uint32" c:type="guint32"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="util_seqnum_next"
-              c:identifier="gst_util_seqnum_next"
-              doc="Return a constantly incrementing sequence number.
-This function is used internally to GStreamer to be able to determine which
-events and messages are &quot;the same&quot;. For example, elements may set the seqnum
-on a segment-done message to be the same as that of the last seek event, to
-indicate that event and the message correspond to the same segment.
-overflow back to 0 at some point. Use gst_util_seqnum_compare() to make sure
-you handle wraparound correctly."
-              version="0.10.22">
-      <return-value transfer-ownership="none">
-        <type name="uint32" c:type="guint32"/>
-      </return-value>
-    </function>
-    <function name="util_set_object_arg"
-              c:identifier="gst_util_set_object_arg"
-              doc="Convertes the string value to the type of the objects argument and
-sets the argument with it.
-Note that this function silently returns if @object has no property named">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="object" transfer-ownership="none">
-          <type name="GObject.Object" c:type="GObject*"/>
-        </parameter>
-        <parameter name="name" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-        <parameter name="value" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="util_set_value_from_string"
-              c:identifier="gst_util_set_value_from_string"
-              doc="Converts the string to the type of the value and
-sets the value with it.
-Note that this function is dangerous as it does not return any indication
-if the conversion worked or not.">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="value" transfer-ownership="none">
-          <type name="GObject.Value" c:type="GValue*"/>
-        </parameter>
-        <parameter name="value_str" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="util_uint64_scale"
-              c:identifier="gst_util_uint64_scale"
-              doc="Scale @val by the rational number @num / @denom, avoiding overflows and
-underflows and without loss of precision.
-This function can potentially be very slow if val and num are both
-greater than G_MAXUINT32.
-function returns G_MAXUINT64.  If the result is not exactly
-representable as an integer it is truncated.  See also
-gst_util_uint64_scale_round(), gst_util_uint64_scale_ceil(),
-gst_util_uint64_scale_int(), gst_util_uint64_scale_int_round(),
-gst_util_uint64_scale_int_ceil().">
-      <return-value transfer-ownership="none">
-        <type name="uint64" c:type="guint64"/>
-      </return-value>
-      <parameters>
-        <parameter name="val" transfer-ownership="none">
-          <type name="uint64" c:type="guint64"/>
-        </parameter>
-        <parameter name="num" transfer-ownership="none">
-          <type name="uint64" c:type="guint64"/>
-        </parameter>
-        <parameter name="denom" transfer-ownership="none">
-          <type name="uint64" c:type="guint64"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="util_uint64_scale_ceil"
-              c:identifier="gst_util_uint64_scale_ceil"
-              doc="Scale @val by the rational number @num / @denom, avoiding overflows and
-underflows and without loss of precision.
-This function can potentially be very slow if val and num are both
-greater than G_MAXUINT32.
-function returns G_MAXUINT64.  If the result is not exactly
-representable as an integer, it is rounded up.  See also
-gst_util_uint64_scale(), gst_util_uint64_scale_round(),
-gst_util_uint64_scale_int(), gst_util_uint64_scale_int_round(),
-gst_util_uint64_scale_int_ceil().">
-      <return-value transfer-ownership="none">
-        <type name="uint64" c:type="guint64"/>
-      </return-value>
-      <parameters>
-        <parameter name="val" transfer-ownership="none">
-          <type name="uint64" c:type="guint64"/>
-        </parameter>
-        <parameter name="num" transfer-ownership="none">
-          <type name="uint64" c:type="guint64"/>
-        </parameter>
-        <parameter name="denom" transfer-ownership="none">
-          <type name="uint64" c:type="guint64"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="util_uint64_scale_int"
-              c:identifier="gst_util_uint64_scale_int"
-              doc="Scale @val by the rational number @num / @denom, avoiding overflows and
-underflows and without loss of precision.  @num must be non-negative and
-function returns G_MAXUINT64.  If the result is not exactly
-representable as an integer, it is truncated.  See also
-gst_util_uint64_scale_int_round(), gst_util_uint64_scale_int_ceil(),
-gst_util_uint64_scale(), gst_util_uint64_scale_round(),
-gst_util_uint64_scale_ceil().">
-      <return-value transfer-ownership="none">
-        <type name="uint64" c:type="guint64"/>
-      </return-value>
-      <parameters>
-        <parameter name="val" transfer-ownership="none" doc="to scale.">
-          <type name="uint64" c:type="guint64"/>
-        </parameter>
-        <parameter name="num" transfer-ownership="none">
-          <type name="int" c:type="gint"/>
-        </parameter>
-        <parameter name="denom" transfer-ownership="none">
-          <type name="int" c:type="gint"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="util_uint64_scale_int_ceil"
-              c:identifier="gst_util_uint64_scale_int_ceil"
-              doc="Scale @val by the rational number @num / @denom, avoiding overflows and
-underflows and without loss of precision.  @num must be non-negative and
-function returns G_MAXUINT64.  If the result is not exactly
-representable as an integer, it is rounded up.  See also
-gst_util_uint64_scale_int(), gst_util_uint64_scale_int_round(),
-gst_util_uint64_scale(), gst_util_uint64_scale_round(),
-gst_util_uint64_scale_ceil().">
-      <return-value transfer-ownership="none">
-        <type name="uint64" c:type="guint64"/>
-      </return-value>
-      <parameters>
-        <parameter name="val" transfer-ownership="none" doc="to scale.">
-          <type name="uint64" c:type="guint64"/>
-        </parameter>
-        <parameter name="num" transfer-ownership="none">
-          <type name="int" c:type="gint"/>
-        </parameter>
-        <parameter name="denom" transfer-ownership="none">
-          <type name="int" c:type="gint"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="util_uint64_scale_int_round"
-              c:identifier="gst_util_uint64_scale_int_round"
-              doc="Scale @val by the rational number @num / @denom, avoiding overflows and
-underflows and without loss of precision.  @num must be non-negative and
-function returns G_MAXUINT64.  If the result is not exactly
-representable as an integer, it is rounded to the nearest integer
-(half-way cases are rounded up).  See also gst_util_uint64_scale_int(),
-gst_util_uint64_scale_int_ceil(), gst_util_uint64_scale(),
-gst_util_uint64_scale_round(), gst_util_uint64_scale_ceil().">
-      <return-value transfer-ownership="none">
-        <type name="uint64" c:type="guint64"/>
-      </return-value>
-      <parameters>
-        <parameter name="val" transfer-ownership="none" doc="to scale.">
-          <type name="uint64" c:type="guint64"/>
-        </parameter>
-        <parameter name="num" transfer-ownership="none">
-          <type name="int" c:type="gint"/>
-        </parameter>
-        <parameter name="denom" transfer-ownership="none">
-          <type name="int" c:type="gint"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="util_uint64_scale_round"
-              c:identifier="gst_util_uint64_scale_round"
-              doc="Scale @val by the rational number @num / @denom, avoiding overflows and
-underflows and without loss of precision.
-This function can potentially be very slow if val and num are both
-greater than G_MAXUINT32.
-function returns G_MAXUINT64.  If the result is not exactly
-representable as an integer, it is rounded to the nearest integer
-(half-way cases are rounded up).  See also gst_util_uint64_scale(),
-gst_util_uint64_scale_ceil(), gst_util_uint64_scale_int(),
-gst_util_uint64_scale_int_round(), gst_util_uint64_scale_int_ceil().">
-      <return-value transfer-ownership="none">
-        <type name="uint64" c:type="guint64"/>
-      </return-value>
-      <parameters>
-        <parameter name="val" transfer-ownership="none">
-          <type name="uint64" c:type="guint64"/>
-        </parameter>
-        <parameter name="num" transfer-ownership="none">
-          <type name="uint64" c:type="guint64"/>
-        </parameter>
-        <parameter name="denom" transfer-ownership="none">
-          <type name="uint64" c:type="guint64"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="value_array_append_value"
-              c:identifier="gst_value_array_append_value"
-              doc="Appends @append_value to the GstValueArray in @value.">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="value" transfer-ownership="none">
-          <type name="GObject.Value" c:type="GValue*"/>
-        </parameter>
-        <parameter name="append_value" transfer-ownership="none">
-          <type name="GObject.Value" c:type="GValue*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="value_array_get_size"
-              c:identifier="gst_value_array_get_size"
-              doc="Gets the number of values contained in @value.">
-      <return-value transfer-ownership="none">
-        <type name="uint" c:type="guint"/>
-      </return-value>
-      <parameters>
-        <parameter name="value" transfer-ownership="none">
-          <type name="GObject.Value" c:type="GValue*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="value_array_get_value"
-              c:identifier="gst_value_array_get_value"
-              doc="Gets the value that is a member of the array contained in @value and
-has the index @index.">
-      <return-value transfer-ownership="none">
-        <type name="GObject.Value" c:type="GValue*"/>
-      </return-value>
-      <parameters>
-        <parameter name="value" transfer-ownership="none">
-          <type name="GObject.Value" c:type="GValue*"/>
-        </parameter>
-        <parameter name="index" transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="value_array_prepend_value"
-              c:identifier="gst_value_array_prepend_value"
-              doc="Prepends @prepend_value to the GstValueArray in @value.">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="value" transfer-ownership="none">
-          <type name="GObject.Value" c:type="GValue*"/>
-        </parameter>
-        <parameter name="prepend_value" transfer-ownership="none">
-          <type name="GObject.Value" c:type="GValue*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="value_can_compare"
-              c:identifier="gst_value_can_compare"
-              doc="Determines if @value1 and @value2 can be compared.">
-      <return-value transfer-ownership="none">
-        <type name="boolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="value1" transfer-ownership="none">
-          <type name="GObject.Value" c:type="GValue*"/>
-        </parameter>
-        <parameter name="value2" transfer-ownership="none">
-          <type name="GObject.Value" c:type="GValue*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="value_can_intersect"
-              c:identifier="gst_value_can_intersect"
-              doc="Determines if intersecting two values will produce a valid result.
-Two values will produce a valid intersection if they have the same
-type, or if there is a method (registered by
-gst_value_register_intersect_func()) to calculate the intersection.">
-      <return-value transfer-ownership="none">
-        <type name="boolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="value1" transfer-ownership="none">
-          <type name="GObject.Value" c:type="GValue*"/>
-        </parameter>
-        <parameter name="value2" transfer-ownership="none">
-          <type name="GObject.Value" c:type="GValue*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="value_can_subtract"
-              c:identifier="gst_value_can_subtract"
-              doc="Checks if it&apos;s possible to subtract @subtrahend from @minuend.">
-      <return-value transfer-ownership="none">
-        <type name="boolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="minuend" transfer-ownership="none">
-          <type name="GObject.Value" c:type="GValue*"/>
-        </parameter>
-        <parameter name="subtrahend" transfer-ownership="none">
-          <type name="GObject.Value" c:type="GValue*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="value_can_union"
-              c:identifier="gst_value_can_union"
-              doc="Determines if @value1 and @value2 can be non-trivially unioned.
-Any two values can be trivially unioned by adding both of them
-to a GstValueList.  However, certain types have the possibility
-to be unioned in a simpler way.  For example, an integer range
-and an integer can be unioned if the integer is a subset of the
-integer range.  If there is the possibility that two values can
-be unioned, this function returns TRUE.
-be unioned.">
-      <return-value transfer-ownership="none">
-        <type name="boolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="value1" transfer-ownership="none">
-          <type name="GObject.Value" c:type="GValue*"/>
-        </parameter>
-        <parameter name="value2" transfer-ownership="none">
-          <type name="GObject.Value" c:type="GValue*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="value_compare"
-              c:identifier="gst_value_compare"
-              doc="Compares @value1 and @value2.  If @value1 and @value2 cannot be
-compared, the function returns GST_VALUE_UNORDERED.  Otherwise,
-if @value1 is greater than @value2, GST_VALUE_GREATER_THAN is returned.
-If @value1 is less than @value2, GST_VALUE_LESS_THAN is returned.
-If the values are equal, GST_VALUE_EQUAL is returned.">
-      <return-value transfer-ownership="none">
-        <type name="int" c:type="gint"/>
-      </return-value>
-      <parameters>
-        <parameter name="value1" transfer-ownership="none">
-          <type name="GObject.Value" c:type="GValue*"/>
-        </parameter>
-        <parameter name="value2" transfer-ownership="none">
-          <type name="GObject.Value" c:type="GValue*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="value_deserialize"
-              c:identifier="gst_value_deserialize"
-              doc="Tries to deserialize a string into the type specified by the given GValue.
-If the operation succeeds, TRUE is returned, FALSE otherwise.">
-      <return-value transfer-ownership="none">
-        <type name="boolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="dest" transfer-ownership="none">
-          <type name="GObject.Value" c:type="GValue*"/>
-        </parameter>
-        <parameter name="src" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="value_dup_mini_object"
-              c:identifier="gst_value_dup_mini_object"
-              doc="Get the contents of a %GST_TYPE_MINI_OBJECT derived #GValue,
-increasing its reference count."
-              version="0.10.20">
-      <return-value transfer-ownership="full">
-        <type name="MiniObject" c:type="GstMiniObject*"/>
-      </return-value>
-      <parameters>
-        <parameter name="value" transfer-ownership="none">
-          <type name="GObject.Value" c:type="GValue*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="value_fraction_multiply"
-              c:identifier="gst_value_fraction_multiply"
-              doc="Multiplies the two #GValue items containing a #GST_TYPE_FRACTION and sets">
-      <return-value transfer-ownership="none" doc="TRUE otherwise.">
-        <type name="boolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="product" transfer-ownership="none">
-          <type name="GObject.Value" c:type="GValue*"/>
-        </parameter>
-        <parameter name="factor1" transfer-ownership="none">
-          <type name="GObject.Value" c:type="GValue*"/>
-        </parameter>
-        <parameter name="factor2" transfer-ownership="none">
-          <type name="GObject.Value" c:type="GValue*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="value_fraction_subtract"
-              c:identifier="gst_value_fraction_subtract"
-              doc="Subtracts the @subtrahend from the @minuend and sets @dest to the result.">
-      <return-value transfer-ownership="none" doc="TRUE otherwise.">
-        <type name="boolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="dest" transfer-ownership="none">
-          <type name="GObject.Value" c:type="GValue*"/>
-        </parameter>
-        <parameter name="minuend" transfer-ownership="none">
-          <type name="GObject.Value" c:type="GValue*"/>
-        </parameter>
-        <parameter name="subtrahend" transfer-ownership="none">
-          <type name="GObject.Value" c:type="GValue*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="value_get_caps"
-              c:identifier="gst_value_get_caps"
-              doc="Gets the contents of @value.">
-      <return-value transfer-ownership="none">
-        <type name="Caps" c:type="GstCaps*"/>
-      </return-value>
-      <parameters>
-        <parameter name="value" transfer-ownership="none">
-          <type name="GObject.Value" c:type="GValue*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="value_get_date"
-              c:identifier="gst_value_get_date"
-              doc="Gets the contents of @value.">
-      <return-value transfer-ownership="none">
-        <type name="GLib.Date" c:type="GDate*"/>
-      </return-value>
-      <parameters>
-        <parameter name="value" transfer-ownership="none">
-          <type name="GObject.Value" c:type="GValue*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="value_get_double_range_max"
-              c:identifier="gst_value_get_double_range_max"
-              doc="Gets the maximum of the range specified by @value.">
-      <return-value transfer-ownership="none">
-        <type name="double" c:type="gdouble"/>
-      </return-value>
-      <parameters>
-        <parameter name="value" transfer-ownership="none">
-          <type name="GObject.Value" c:type="GValue*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="value_get_double_range_min"
-              c:identifier="gst_value_get_double_range_min"
-              doc="Gets the minimum of the range specified by @value.">
-      <return-value transfer-ownership="none">
-        <type name="double" c:type="gdouble"/>
-      </return-value>
-      <parameters>
-        <parameter name="value" transfer-ownership="none">
-          <type name="GObject.Value" c:type="GValue*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="value_get_fourcc"
-              c:identifier="gst_value_get_fourcc"
-              doc="Gets the #guint32 fourcc contained in @value.">
-      <return-value transfer-ownership="none">
-        <type name="uint32" c:type="guint32"/>
-      </return-value>
-      <parameters>
-        <parameter name="value" transfer-ownership="none">
-          <type name="GObject.Value" c:type="GValue*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="value_get_fraction_denominator"
-              c:identifier="gst_value_get_fraction_denominator"
-              doc="Gets the denominator of the fraction specified by @value.">
-      <return-value transfer-ownership="none">
-        <type name="int" c:type="gint"/>
-      </return-value>
-      <parameters>
-        <parameter name="value" transfer-ownership="none">
-          <type name="GObject.Value" c:type="GValue*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="value_get_fraction_numerator"
-              c:identifier="gst_value_get_fraction_numerator"
-              doc="Gets the numerator of the fraction specified by @value.">
-      <return-value transfer-ownership="none">
-        <type name="int" c:type="gint"/>
-      </return-value>
-      <parameters>
-        <parameter name="value" transfer-ownership="none">
-          <type name="GObject.Value" c:type="GValue*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="value_get_fraction_range_max"
-              c:identifier="gst_value_get_fraction_range_max"
-              doc="Gets the maximum of the range specified by @value.">
-      <return-value transfer-ownership="none">
-        <type name="GObject.Value" c:type="GValue*"/>
-      </return-value>
-      <parameters>
-        <parameter name="value" transfer-ownership="none">
-          <type name="GObject.Value" c:type="GValue*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="value_get_fraction_range_min"
-              c:identifier="gst_value_get_fraction_range_min"
-              doc="Gets the minimum of the range specified by @value.">
-      <return-value transfer-ownership="none">
-        <type name="GObject.Value" c:type="GValue*"/>
-      </return-value>
-      <parameters>
-        <parameter name="value" transfer-ownership="none">
-          <type name="GObject.Value" c:type="GValue*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="value_get_int_range_max"
-              c:identifier="gst_value_get_int_range_max"
-              doc="Gets the maximum of the range specified by @value.">
-      <return-value transfer-ownership="none">
-        <type name="int" c:type="gint"/>
-      </return-value>
-      <parameters>
-        <parameter name="value" transfer-ownership="none">
-          <type name="GObject.Value" c:type="GValue*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="value_get_int_range_min"
-              c:identifier="gst_value_get_int_range_min"
-              doc="Gets the minimum of the range specified by @value.">
-      <return-value transfer-ownership="none">
-        <type name="int" c:type="gint"/>
-      </return-value>
-      <parameters>
-        <parameter name="value" transfer-ownership="none">
-          <type name="GObject.Value" c:type="GValue*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="value_get_mini_object"
-              c:identifier="gst_value_get_mini_object"
-              doc="Get the contents of a %GST_TYPE_MINI_OBJECT derived #GValue.
-Does not increase the refcount of the returned object.">
-      <return-value transfer-ownership="full">
-        <type name="MiniObject" c:type="GstMiniObject*"/>
-      </return-value>
-      <parameters>
-        <parameter name="value" transfer-ownership="none">
-          <type name="GObject.Value" c:type="GValue*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="value_get_structure"
-              c:identifier="gst_value_get_structure"
-              doc="Gets the contents of @value."
-              version="0.10.15">
-      <return-value transfer-ownership="none">
-        <type name="Structure" c:type="GstStructure*"/>
-      </return-value>
-      <parameters>
-        <parameter name="value" transfer-ownership="none">
-          <type name="GObject.Value" c:type="GValue*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="value_init_and_copy"
-              c:identifier="gst_value_init_and_copy"
-              doc="Initialises the target value to be of the same type as source and then copies
-the contents from source to target.">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="dest" transfer-ownership="none">
-          <type name="GObject.Value" c:type="GValue*"/>
-        </parameter>
-        <parameter name="src" transfer-ownership="none">
-          <type name="GObject.Value" c:type="GValue*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="value_intersect"
-              c:identifier="gst_value_intersect"
-              doc="intersection value
-Calculates the intersection of two values.  If the values have
-a non-empty intersection, the value representing the intersection
-is placed in @dest.  If the intersection is non-empty, @dest is
-not modified.">
-      <return-value transfer-ownership="none">
-        <type name="boolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="dest" transfer-ownership="none">
-          <type name="GObject.Value" c:type="GValue*"/>
-        </parameter>
-        <parameter name="value1" transfer-ownership="none">
-          <type name="GObject.Value" c:type="GValue*"/>
-        </parameter>
-        <parameter name="value2" transfer-ownership="none">
-          <type name="GObject.Value" c:type="GValue*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="value_is_fixed"
-              c:identifier="gst_value_is_fixed"
-              doc="Tests if the given GValue, if available in a GstStructure (or any other
-ranges) value.">
-      <return-value transfer-ownership="none">
-        <type name="boolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="value" transfer-ownership="none">
-          <type name="GObject.Value" c:type="GValue*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="value_list_append_value"
-              c:identifier="gst_value_list_append_value"
-              doc="Appends @append_value to the GstValueList in @value.">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="value" transfer-ownership="none">
-          <type name="GObject.Value" c:type="GValue*"/>
-        </parameter>
-        <parameter name="append_value" transfer-ownership="none">
-          <type name="GObject.Value" c:type="GValue*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="value_list_concat"
-              c:identifier="gst_value_list_concat"
-              doc="Concatenates copies of @value1 and @value2 into a list.  Values that are not
-of type #GST_TYPE_LIST are treated as if they were lists of length 1.">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="dest" transfer-ownership="none">
-          <type name="GObject.Value" c:type="GValue*"/>
-        </parameter>
-        <parameter name="value1" transfer-ownership="none">
-          <type name="GObject.Value" c:type="GValue*"/>
-        </parameter>
-        <parameter name="value2" transfer-ownership="none">
-          <type name="GObject.Value" c:type="GValue*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="value_list_get_size"
-              c:identifier="gst_value_list_get_size"
-              doc="Gets the number of values contained in @value.">
-      <return-value transfer-ownership="none">
-        <type name="uint" c:type="guint"/>
-      </return-value>
-      <parameters>
-        <parameter name="value" transfer-ownership="none">
-          <type name="GObject.Value" c:type="GValue*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="value_list_get_value"
-              c:identifier="gst_value_list_get_value"
-              doc="Gets the value that is a member of the list contained in @value and
-has the index @index.">
-      <return-value transfer-ownership="none">
-        <type name="GObject.Value" c:type="GValue*"/>
-      </return-value>
-      <parameters>
-        <parameter name="value" transfer-ownership="none">
-          <type name="GObject.Value" c:type="GValue*"/>
-        </parameter>
-        <parameter name="index" transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="value_list_prepend_value"
-              c:identifier="gst_value_list_prepend_value"
-              doc="Prepends @prepend_value to the GstValueList in @value.">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="value" transfer-ownership="none">
-          <type name="GObject.Value" c:type="GValue*"/>
-        </parameter>
-        <parameter name="prepend_value" transfer-ownership="none">
-          <type name="GObject.Value" c:type="GValue*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="value_register"
-              c:identifier="gst_value_register"
-              doc="Registers functions to perform calculations on #GValue items of a given
-type. Each type can only be added once.">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="table" transfer-ownership="none">
-          <type name="ValueTable" c:type="GstValueTable*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="value_register_intersect_func"
-              c:identifier="gst_value_register_intersect_func"
-              doc="Registers a function that is called to calculate the intersection
-of the values having the types @type1 and @type2.
-Intersect functions should be registered at startup before any pipelines are
-started, as gst_value_register_intersect_func() is not thread-safe and
-cannot be used at the same time as gst_value_intersect() or
-gst_value_can_intersect().">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="type1" transfer-ownership="none">
-          <type name="GType" c:type="GType"/>
-        </parameter>
-        <parameter name="type2" transfer-ownership="none">
-          <type name="GType" c:type="GType"/>
-        </parameter>
-        <parameter name="func" transfer-ownership="none" scope="call">
-          <type name="ValueIntersectFunc" c:type="GstValueIntersectFunc"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="value_register_subtract_func"
-              c:identifier="gst_value_register_subtract_func"
-              doc="Registers @func as a function capable of subtracting the values of
-Subtract functions should be registered at startup before any pipelines are
-started, as gst_value_register_subtract_func() is not thread-safe and
-cannot be used at the same time as gst_value_subtract().">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="minuend_type" transfer-ownership="none">
-          <type name="GType" c:type="GType"/>
-        </parameter>
-        <parameter name="subtrahend_type" transfer-ownership="none">
-          <type name="GType" c:type="GType"/>
-        </parameter>
-        <parameter name="func" transfer-ownership="none" scope="call">
-          <type name="ValueSubtractFunc" c:type="GstValueSubtractFunc"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="value_register_union_func"
-              c:identifier="gst_value_register_union_func"
-              doc="Registers a union function that can create a union between #GValue items
-of the type @type1 and @type2.
-Union functions should be registered at startup before any pipelines are
-started, as gst_value_register_union_func() is not thread-safe and cannot
-be used at the same time as gst_value_union() or gst_value_can_union().">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="type1" transfer-ownership="none">
-          <type name="GType" c:type="GType"/>
-        </parameter>
-        <parameter name="type2" transfer-ownership="none">
-          <type name="GType" c:type="GType"/>
-        </parameter>
-        <parameter name="func" transfer-ownership="none" scope="call">
-          <type name="ValueUnionFunc" c:type="GstValueUnionFunc"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="value_serialize"
-              c:identifier="gst_value_serialize"
-              doc="tries to transform the given @value into a string representation that allows
-getting back this string later on using gst_value_deserialize().">
-      <return-value transfer-ownership="full">
-        <type name="utf8" c:type="gchar*"/>
-      </return-value>
-      <parameters>
-        <parameter name="value" transfer-ownership="none">
-          <type name="GObject.Value" c:type="GValue*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="value_set_caps"
-              c:identifier="gst_value_set_caps"
-              doc="Sets the contents of @value to @caps.  The actual
-#GstCaps structure is copied before it is used.">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="value" transfer-ownership="none">
-          <type name="GObject.Value" c:type="GValue*"/>
-        </parameter>
-        <parameter name="caps" transfer-ownership="none">
-          <type name="Caps" c:type="GstCaps*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="value_set_date"
-              c:identifier="gst_value_set_date"
-              doc="Sets the contents of @value to coorespond to @date.  The actual
-#GDate structure is copied before it is used.">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="value" transfer-ownership="none">
-          <type name="GObject.Value" c:type="GValue*"/>
-        </parameter>
-        <parameter name="date" transfer-ownership="none">
-          <type name="GLib.Date" c:type="GDate*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="value_set_double_range"
-              c:identifier="gst_value_set_double_range"
-              doc="Sets @value to the range specified by @start and @end.">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="value" transfer-ownership="none">
-          <type name="GObject.Value" c:type="GValue*"/>
-        </parameter>
-        <parameter name="start" transfer-ownership="none">
-          <type name="double" c:type="gdouble"/>
-        </parameter>
-        <parameter name="end" transfer-ownership="none">
-          <type name="double" c:type="gdouble"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="value_set_fourcc"
-              c:identifier="gst_value_set_fourcc"
-              doc="Sets @value to @fourcc.">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="value" transfer-ownership="none">
-          <type name="GObject.Value" c:type="GValue*"/>
-        </parameter>
-        <parameter name="fourcc" transfer-ownership="none">
-          <type name="uint32" c:type="guint32"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="value_set_fraction"
-              c:identifier="gst_value_set_fraction"
-              doc="Sets @value to the fraction specified by @numerator over @denominator.
-The fraction gets reduced to the smallest numerator and denominator,
-and if necessary the sign is moved to the numerator.">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="value" transfer-ownership="none">
-          <type name="GObject.Value" c:type="GValue*"/>
-        </parameter>
-        <parameter name="numerator" transfer-ownership="none">
-          <type name="int" c:type="gint"/>
-        </parameter>
-        <parameter name="denominator" transfer-ownership="none">
-          <type name="int" c:type="gint"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="value_set_fraction_range"
-              c:identifier="gst_value_set_fraction_range"
-              doc="Sets @value to the range specified by @start and @end.">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="value" transfer-ownership="none">
-          <type name="GObject.Value" c:type="GValue*"/>
-        </parameter>
-        <parameter name="start" transfer-ownership="none">
-          <type name="GObject.Value" c:type="GValue*"/>
-        </parameter>
-        <parameter name="end" transfer-ownership="none">
-          <type name="GObject.Value" c:type="GValue*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="value_set_fraction_range_full"
-              c:identifier="gst_value_set_fraction_range_full"
-              doc="Sets @value to the range specified by @numerator_start/@denominator_start
-and @numerator_end/@denominator_end.">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="value" transfer-ownership="none">
-          <type name="GObject.Value" c:type="GValue*"/>
-        </parameter>
-        <parameter name="numerator_start" transfer-ownership="none">
-          <type name="int" c:type="gint"/>
-        </parameter>
-        <parameter name="denominator_start" transfer-ownership="none">
-          <type name="int" c:type="gint"/>
-        </parameter>
-        <parameter name="numerator_end" transfer-ownership="none">
-          <type name="int" c:type="gint"/>
-        </parameter>
-        <parameter name="denominator_end" transfer-ownership="none">
-          <type name="int" c:type="gint"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="value_set_int_range"
-              c:identifier="gst_value_set_int_range"
-              doc="Sets @value to the range specified by @start and @end.">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="value" transfer-ownership="none">
-          <type name="GObject.Value" c:type="GValue*"/>
-        </parameter>
-        <parameter name="start" transfer-ownership="none">
-          <type name="int" c:type="gint"/>
-        </parameter>
-        <parameter name="end" transfer-ownership="none">
-          <type name="int" c:type="gint"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="value_set_mini_object"
-              c:identifier="gst_value_set_mini_object"
-              doc="Set the contents of a %GST_TYPE_MINI_OBJECT derived #GValue to
-The caller retains ownership of the reference.">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="value" transfer-ownership="none">
-          <type name="GObject.Value" c:type="GValue*"/>
-        </parameter>
-        <parameter name="mini_object" transfer-ownership="none">
-          <type name="MiniObject" c:type="GstMiniObject*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="value_set_structure"
-              c:identifier="gst_value_set_structure"
-              doc="Sets the contents of @value to @structure.  The actual"
-              version="0.10.15">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="value" transfer-ownership="none">
-          <type name="GObject.Value" c:type="GValue*"/>
-        </parameter>
-        <parameter name="structure" transfer-ownership="none">
-          <type name="Structure" c:type="GstStructure*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="value_subtract"
-              c:identifier="gst_value_subtract"
-              doc="Subtracts @subtrahend from @minuend and stores the result in @dest.
-Note that this means subtraction as in sets, not as in mathematics.">
-      <return-value transfer-ownership="none">
-        <type name="boolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="dest" transfer-ownership="none">
-          <type name="GObject.Value" c:type="GValue*"/>
-        </parameter>
-        <parameter name="minuend" transfer-ownership="none">
-          <type name="GObject.Value" c:type="GValue*"/>
-        </parameter>
-        <parameter name="subtrahend" transfer-ownership="none">
-          <type name="GObject.Value" c:type="GValue*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="value_take_mini_object"
-              c:identifier="gst_value_take_mini_object"
-              doc="Set the contents of a %GST_TYPE_MINI_OBJECT derived #GValue to
-Takes over the ownership of the caller&apos;s reference to @mini_object;
-the caller doesn&apos;t have to unref it any more.">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="value" transfer-ownership="none">
-          <type name="GObject.Value" c:type="GValue*"/>
-        </parameter>
-        <parameter name="mini_object" transfer-ownership="none">
-          <type name="MiniObject" c:type="GstMiniObject*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="value_union"
-              c:identifier="gst_value_union"
-              doc="Creates a GValue corresponding to the union of @value1 and @value2.">
-      <return-value transfer-ownership="none">
-        <type name="boolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="dest" transfer-ownership="none">
-          <type name="GObject.Value" c:type="GValue*"/>
-        </parameter>
-        <parameter name="value1" transfer-ownership="none">
-          <type name="GObject.Value" c:type="GValue*"/>
-        </parameter>
-        <parameter name="value2" transfer-ownership="none">
-          <type name="GObject.Value" c:type="GValue*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="version"
-              c:identifier="gst_version"
-              doc="Gets the version number of the GStreamer library.">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="major" direction="out" transfer-ownership="full">
-          <type name="uint" c:type="guint*"/>
-        </parameter>
-        <parameter name="minor" direction="out" transfer-ownership="full">
-          <type name="uint" c:type="guint*"/>
-        </parameter>
-        <parameter name="micro" direction="out" transfer-ownership="full">
-          <type name="uint" c:type="guint*"/>
-        </parameter>
-        <parameter name="nano" direction="out" transfer-ownership="full">
-          <type name="uint" c:type="guint*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="version_string"
-              c:identifier="gst_version_string"
-              doc="This function returns a string that is useful for describing this version">
-      <return-value transfer-ownership="full">
-        <type name="utf8" c:type="gchar*"/>
-      </return-value>
-    </function>
-  </namespace>
-</repository>
diff --git a/extra/gstreamer/app/GstApp-0.10.gir b/extra/gstreamer/app/GstApp-0.10.gir
deleted file mode 100644 (file)
index 40ccd7e..0000000
+++ /dev/null
@@ -1,951 +0,0 @@
-<?xml version="1.0"?>
-<!-- This file was automatically generated from C sources - DO NOT EDIT!
-To affect the contents of this file, edit the original C definitions,
-and/or use gtk-doc annotations.  -->
-<repository version="1.0"
-            xmlns="http://www.gtk.org/introspection/core/1.0"
-            xmlns:c="http://www.gtk.org/introspection/c/1.0"
-            xmlns:glib="http://www.gtk.org/introspection/glib/1.0">
-  <include name="GLib" version="2.0"/>
-  <include name="GModule" version="2.0"/>
-  <include name="GObject" version="2.0"/>
-  <include name="Gst" version="0.10"/>
-  <include name="GstBase" version="0.10"/>
-  <include name="libxml2" version="2.0"/>
-  <package name="gstreamer-0.10"/>
-  <package name="gstreamer-base-0.10"/>
-  <c:include name="gst/app/gstappbuffer.h"/>
-  <c:include name="gst/app/gstappsink.h"/>
-  <c:include name="gst/app/gstappsrc.h"/>
-  <namespace name="GstApp"
-             version="0.10"
-             shared-library="libgstapp-0.10.so.0"
-             c:prefix="Gst">
-    <record name="AppBuffer" c:type="GstAppBuffer">
-      <field name="buffer" writable="1">
-        <type name="Gst.Buffer" c:type="GstBuffer"/>
-      </field>
-      <field name="finalize" writable="1">
-        <type name="AppBufferFinalizeFunc" c:type="GstAppBufferFinalizeFunc"/>
-      </field>
-      <field name="priv" writable="1">
-        <type name="any" c:type="void*"/>
-      </field>
-      <constructor name="new" c:identifier="gst_app_buffer_new">
-        <return-value transfer-ownership="full">
-          <type name="AppBuffer" c:type="GstBuffer*"/>
-        </return-value>
-        <parameters>
-          <parameter name="data" transfer-ownership="none">
-            <type name="any" c:type="void*"/>
-          </parameter>
-          <parameter name="length" transfer-ownership="none">
-            <type name="int" c:type="int"/>
-          </parameter>
-          <parameter name="finalize" transfer-ownership="none" scope="call">
-            <type name="AppBufferFinalizeFunc"
-                  c:type="GstAppBufferFinalizeFunc"/>
-          </parameter>
-          <parameter name="priv" transfer-ownership="none">
-            <type name="any" c:type="void*"/>
-          </parameter>
-        </parameters>
-      </constructor>
-    </record>
-    <record name="AppBufferClass" c:type="GstAppBufferClass">
-      <field name="buffer_class" writable="1">
-        <type name="Gst.BufferClass" c:type="GstBufferClass"/>
-      </field>
-    </record>
-    <callback name="AppBufferFinalizeFunc" c:type="GstAppBufferFinalizeFunc">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="priv" transfer-ownership="none">
-          <type name="any" c:type="void*"/>
-        </parameter>
-      </parameters>
-    </callback>
-    <class name="AppSink"
-           c:type="GstAppSink"
-           parent="GstBase.BaseSink"
-           glib:type-name="GstAppSink"
-           glib:get-type="gst_app_sink_get_type"
-           glib:type-struct="AppSinkClass">
-      <implements name="Gst.URIHandler"/>
-      <method name="set_caps"
-              c:identifier="gst_app_sink_set_caps"
-              doc="Set the capabilities on the appsink element.  This function takes
-a copy of the caps structure. After calling this method, the sink will only
-accept caps that match @caps. If @caps is non-fixed, you must check the caps
-on the buffers to get the actual used caps."
-              version="0.10.22">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="caps" transfer-ownership="none">
-            <type name="Gst.Caps" c:type="GstCaps*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_caps"
-              c:identifier="gst_app_sink_get_caps"
-              doc="Get the configured caps on @appsink."
-              version="0.10.22">
-        <return-value transfer-ownership="full" doc="after usage.">
-          <type name="Gst.Caps" c:type="GstCaps*"/>
-        </return-value>
-      </method>
-      <method name="is_eos"
-              c:identifier="gst_app_sink_is_eos"
-              doc="Check if @appsink is EOS, which is when no more buffers can be pulled because
-an EOS event was received.
-This function also returns %TRUE when the appsink is not in the PAUSED or
-PLAYING state."
-              version="0.10.22">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-      </method>
-      <method name="set_emit_signals"
-              c:identifier="gst_app_sink_set_emit_signals"
-              doc="Make appsink emit the &quot;new-preroll&quot; and &quot;new-buffer&quot; signals. This option is
-by default disabled because signal emission is expensive and unneeded when
-the application prefers to operate in pull mode."
-              version="0.10.22">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="emit" transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_emit_signals"
-              c:identifier="gst_app_sink_get_emit_signals"
-              doc="Check if appsink will emit the &quot;new-preroll&quot; and &quot;new-buffer&quot; signals.
-signals."
-              version="0.10.22">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-      </method>
-      <method name="set_max_buffers"
-              c:identifier="gst_app_sink_set_max_buffers"
-              doc="Set the maximum amount of buffers that can be queued in @appsink. After this
-amount of buffers are queued in appsink, any more buffers will block upstream
-elements until a buffer is pulled from @appsink."
-              version="0.10.22">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="max" transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_max_buffers"
-              c:identifier="gst_app_sink_get_max_buffers"
-              doc="Get the maximum amount of buffers that can be queued in @appsink."
-              version="0.10.22">
-        <return-value transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
-        </return-value>
-      </method>
-      <method name="set_drop"
-              c:identifier="gst_app_sink_set_drop"
-              doc="Instruct @appsink to drop old buffers when the maximum amount of queued
-buffers is reached."
-              version="0.10.22">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="drop" transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_drop"
-              c:identifier="gst_app_sink_get_drop"
-              doc="Check if @appsink will drop old buffers when the maximum amount of queued
-buffers is reached.
-filled."
-              version="0.10.22">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-      </method>
-      <method name="pull_preroll"
-              c:identifier="gst_app_sink_pull_preroll"
-              doc="Get the last preroll buffer in @appsink. This was the buffer that caused the
-appsink to preroll in the PAUSED state. This buffer can be pulled many times
-and remains available to the application even after EOS.
-This function is typically used when dealing with a pipeline in the PAUSED
-state. Calling this function after doing a seek will give the buffer right
-after the seek position.
-Note that the preroll buffer will also be returned as the first buffer
-when calling gst_app_sink_pull_buffer().
-If an EOS event was received before any buffers, this function returns
-%NULL. Use gst_app_sink_is_eos () to check for the EOS condition.
-This function blocks until a preroll buffer or EOS is received or the appsink
-element is set to the READY/NULL state."
-              version="0.10.22">
-        <return-value transfer-ownership="full">
-          <type name="Gst.Buffer" c:type="GstBuffer*"/>
-        </return-value>
-      </method>
-      <method name="pull_buffer"
-              c:identifier="gst_app_sink_pull_buffer"
-              doc="This function blocks until a buffer or EOS becomes available or the appsink
-element is set to the READY/NULL state.
-This function will only return buffers when the appsink is in the PLAYING
-state. All rendered buffers will be put in a queue so that the application
-can pull buffers at its own rate. Note that when the application does not
-pull buffers fast enough, the queued buffers could consume a lot of memory,
-especially when dealing with raw video frames.
-If an EOS event was received before any buffers, this function returns
-%NULL. Use gst_app_sink_is_eos () to check for the EOS condition."
-              version="0.10.22">
-        <return-value transfer-ownership="full">
-          <type name="Gst.Buffer" c:type="GstBuffer*"/>
-        </return-value>
-      </method>
-      <method name="pull_buffer_list"
-              c:identifier="gst_app_sink_pull_buffer_list"
-              doc="This function blocks until a buffer list or EOS becomes available or the
-appsink element is set to the READY/NULL state.
-This function will only return buffer lists when the appsink is in the
-PLAYING state. All rendered buffer lists will be put in a queue so that
-the application can pull buffer lists at its own rate. Note that when
-the application does not pull buffer lists fast enough, the queued buffer
-lists could consume a lot of memory, especially when dealing with raw
-video frames.
-If an EOS event was received before any buffer lists, this function returns
-%NULL. Use gst_app_sink_is_eos () to check for the EOS condition.">
-        <return-value transfer-ownership="full">
-          <type name="Gst.BufferList" c:type="GstBufferList*"/>
-        </return-value>
-      </method>
-      <method name="set_callbacks"
-              c:identifier="gst_app_sink_set_callbacks"
-              doc="Set callbacks which will be executed for each new preroll, new buffer and eos.
-This is an alternative to using the signals, it has lower overhead and is thus
-less expensive, but also less flexible.
-If callbacks are installed, no signals will be emited for performance
-reasons."
-              version="0.10.23">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="callbacks" transfer-ownership="none">
-            <type name="AppSinkCallbacks" c:type="GstAppSinkCallbacks*"/>
-          </parameter>
-          <parameter name="user_data" transfer-ownership="none">
-            <type name="any" c:type="gpointer"/>
-          </parameter>
-          <parameter name="notify" transfer-ownership="none" scope="call">
-            <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
-          </parameter>
-        </parameters>
-      </method>
-      <property name="caps" writable="1">
-        <type name="Gst.Caps" c:type="GstCaps"/>
-      </property>
-      <property name="drop" writable="1">
-        <type name="boolean" c:type="gboolean"/>
-      </property>
-      <property name="emit-signals" writable="1">
-        <type name="boolean" c:type="gboolean"/>
-      </property>
-      <property name="eos">
-        <type name="boolean" c:type="gboolean"/>
-      </property>
-      <property name="max-buffers" writable="1">
-        <type name="uint" c:type="guint"/>
-      </property>
-      <field name="basesink">
-        <type name="GstBase.BaseSink" c:type="GstBaseSink"/>
-      </field>
-      <field name="priv">
-        <type name="AppSinkPrivate" c:type="GstAppSinkPrivate*"/>
-      </field>
-      <field name="_gst_reserved">
-        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
-          <type name="any"/>
-        </array>
-      </field>
-      <glib:signal name="eos"
-                   doc="Signal that the end-of-stream has been reached. This signal is emited from
-the steaming thread.">
-        <return-value transfer-ownership="full">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </glib:signal>
-      <glib:signal name="new-buffer"
-                   doc="Signal that a new buffer is available.
-This signal is emited from the steaming thread and only when the
-&quot;emit-signals&quot; property is %TRUE.
-The new buffer can be retrieved with the &quot;pull-buffer&quot; action
-signal or gst_app_sink_pull_buffer() either from this signal callback
-or from any other thread.
-Note that this signal is only emited when the &quot;emit-signals&quot; property is
-set to %TRUE, which it is not by default for performance reasons.">
-        <return-value transfer-ownership="full">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </glib:signal>
-      <glib:signal name="new-buffer-list"
-                   doc="Signal that a new bufferlist is available.
-This signal is emited from the steaming thread and only when the
-&quot;emit-signals&quot; property is %TRUE.
-The new buffer can be retrieved with the &quot;pull-buffer-list&quot; action
-signal or gst_app_sink_pull_buffe_listr() either from this signal callback
-or from any other thread.
-Note that this signal is only emited when the &quot;emit-signals&quot; property is
-set to %TRUE, which it is not by default for performance reasons.">
-        <return-value transfer-ownership="full">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </glib:signal>
-      <glib:signal name="new-preroll"
-                   doc="Signal that a new preroll buffer is available.
-This signal is emited from the steaming thread and only when the
-&quot;emit-signals&quot; property is %TRUE.
-The new preroll buffer can be retrieved with the &quot;pull-preroll&quot; action
-signal or gst_app_sink_pull_preroll() either from this signal callback
-or from any other thread.
-Note that this signal is only emited when the &quot;emit-signals&quot; property is
-set to %TRUE, which it is not by default for performance reasons.">
-        <return-value transfer-ownership="full">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </glib:signal>
-      <glib:signal name="pull-buffer"
-                   doc="This function blocks until a buffer or EOS becomes available or the appsink
-element is set to the READY/NULL state.
-This function will only return buffers when the appsink is in the PLAYING
-state. All rendered buffers will be put in a queue so that the application
-can pull buffers at its own rate.
-Note that when the application does not pull buffers fast enough, the
-queued buffers could consume a lot of memory, especially when dealing with
-raw video frames. It&apos;s possible to control the behaviour of the queue with
-the &quot;drop&quot; and &quot;max-buffers&quot; properties.
-If an EOS event was received before any buffers, this function returns
-%NULL. Use gst_app_sink_is_eos () to check for the EOS condition.">
-        <return-value transfer-ownership="full">
-          <type name="Gst.Buffer" c:type="GstBuffer"/>
-        </return-value>
-      </glib:signal>
-      <glib:signal name="pull-buffer-list"
-                   doc="This function blocks until a buffer list or EOS becomes available or the appsink
-element is set to the READY/NULL state.
-This function will only return bufferlists when the appsink is in the PLAYING
-state. All rendered bufferlists will be put in a queue so that the application
-can pull bufferlists at its own rate.
-Note that when the application does not pull bufferlists fast enough, the
-queued bufferlists could consume a lot of memory, especially when dealing with
-raw video frames. It&apos;s possible to control the behaviour of the queue with
-the &quot;drop&quot; and &quot;max-buffers&quot; properties.
-If an EOS event was received before any buffers, this function returns
-%NULL. Use gst_app_sink_is_eos () to check for the EOS condition.">
-        <return-value transfer-ownership="full">
-          <type name="Gst.BufferList" c:type="GstBufferList"/>
-        </return-value>
-      </glib:signal>
-      <glib:signal name="pull-preroll"
-                   doc="Get the last preroll buffer in @appsink. This was the buffer that caused the
-appsink to preroll in the PAUSED state. This buffer can be pulled many times
-and remains available to the application even after EOS.
-This function is typically used when dealing with a pipeline in the PAUSED
-state. Calling this function after doing a seek will give the buffer right
-after the seek position.
-Note that the preroll buffer will also be returned as the first buffer
-when calling gst_app_sink_pull_buffer() or the &quot;pull-buffer&quot; action signal.
-If an EOS event was received before any buffers, this function returns
-%NULL. Use gst_app_sink_is_eos () to check for the EOS condition.
-This function blocks until a preroll buffer or EOS is received or the appsink
-element is set to the READY/NULL state.">
-        <return-value transfer-ownership="full">
-          <type name="Gst.Buffer" c:type="GstBuffer"/>
-        </return-value>
-      </glib:signal>
-    </class>
-    <record name="AppSinkCallbacks"
-            c:type="GstAppSinkCallbacks"
-            doc="is called from the steaming thread.
-This callback is called from the steaming thread.
-The new preroll buffer can be retrieved with
-gst_app_sink_pull_preroll() either from this callback
-or from any other thread.
-This callback is called from the steaming thread.
-The new buffer can be retrieved with
-gst_app_sink_pull_buffer() either from this callback
-or from any other thread.
-This callback is called from the steaming thread.
-The new bufferlist can be retrieved with
-gst_app_sink_pull_buffer_list() either from this callback
-or from any other thread.
-A set of callbacks that can be installed on the appsink with
-gst_app_sink_set_callbacks()."
-            version="0.10.23">
-      <field name="eos">
-        <type name="any" c:type="pointer"/>
-      </field>
-      <field name="new_preroll">
-        <type name="any" c:type="pointer"/>
-      </field>
-      <field name="new_buffer">
-        <type name="any" c:type="pointer"/>
-      </field>
-      <field name="new_buffer_list">
-        <type name="any" c:type="pointer"/>
-      </field>
-      <field name="_gst_reserved" writable="1">
-        <array zero-terminated="0" c:type="gpointer" fixed-size="3">
-          <type name="any"/>
-        </array>
-      </field>
-    </record>
-    <record name="AppSinkClass"
-            c:type="GstAppSinkClass"
-            glib:is-gtype-struct-for="AppSink">
-      <field name="basesink_class">
-        <type name="GstBase.BaseSinkClass" c:type="GstBaseSinkClass"/>
-      </field>
-      <field name="eos">
-        <callback name="eos" c:type="eos">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="sink" transfer-ownership="none">
-              <type name="AppSink" c:type="GstAppSink*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="new_preroll">
-        <callback name="new_preroll" c:type="new_preroll">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="sink" transfer-ownership="none">
-              <type name="AppSink" c:type="GstAppSink*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="new_buffer">
-        <callback name="new_buffer" c:type="new_buffer">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="sink" transfer-ownership="none">
-              <type name="AppSink" c:type="GstAppSink*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="pull_preroll">
-        <callback name="pull_preroll" c:type="pull_preroll">
-          <return-value transfer-ownership="full">
-            <type name="Gst.Buffer" c:type="GstBuffer*"/>
-          </return-value>
-          <parameters>
-            <parameter name="sink" transfer-ownership="none">
-              <type name="AppSink" c:type="GstAppSink*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="pull_buffer">
-        <callback name="pull_buffer" c:type="pull_buffer">
-          <return-value transfer-ownership="full">
-            <type name="Gst.Buffer" c:type="GstBuffer*"/>
-          </return-value>
-          <parameters>
-            <parameter name="sink" transfer-ownership="none">
-              <type name="AppSink" c:type="GstAppSink*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="new_buffer_list">
-        <callback name="new_buffer_list" c:type="new_buffer_list">
-          <return-value transfer-ownership="full">
-            <type name="Gst.BufferList" c:type="GstBufferList*"/>
-          </return-value>
-          <parameters>
-            <parameter name="sink" transfer-ownership="none">
-              <type name="AppSink" c:type="GstAppSink*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="pull_buffer_list">
-        <callback name="pull_buffer_list" c:type="pull_buffer_list">
-          <return-value transfer-ownership="full">
-            <type name="Gst.BufferList" c:type="GstBufferList*"/>
-          </return-value>
-          <parameters>
-            <parameter name="sink" transfer-ownership="none">
-              <type name="AppSink" c:type="GstAppSink*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="_gst_reserved">
-        <array zero-terminated="0" c:type="gpointer" fixed-size="2">
-          <type name="any"/>
-        </array>
-      </field>
-    </record>
-    <record name="AppSinkPrivate" c:type="GstAppSinkPrivate">
-    </record>
-    <class name="AppSrc"
-           c:type="GstAppSrc"
-           parent="GstBase.BaseSrc"
-           glib:type-name="GstAppSrc"
-           glib:get-type="gst_app_src_get_type"
-           glib:type-struct="AppSrcClass">
-      <implements name="Gst.URIHandler"/>
-      <method name="set_caps"
-              c:identifier="gst_app_src_set_caps"
-              doc="Set the capabilities on the appsrc element.  This function takes
-a copy of the caps structure. After calling this method, the source will
-only produce caps that match @caps. @caps must be fixed and the caps on the
-buffers must match the caps or left NULL."
-              version="0.10.22">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="caps" transfer-ownership="none">
-            <type name="Gst.Caps" c:type="GstCaps*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_caps"
-              c:identifier="gst_app_src_get_caps"
-              doc="Get the configured caps on @appsrc."
-              version="0.10.22">
-        <return-value transfer-ownership="full" doc="after usage.">
-          <type name="Gst.Caps" c:type="GstCaps*"/>
-        </return-value>
-      </method>
-      <method name="set_size"
-              c:identifier="gst_app_src_set_size"
-              doc="Set the size of the stream in bytes. A value of -1 means that the size is
-not known."
-              version="0.10.22">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="size" transfer-ownership="none">
-            <type name="int64" c:type="gint64"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_size"
-              c:identifier="gst_app_src_get_size"
-              doc="Get the size of the stream in bytes. A value of -1 means that the size is
-not known."
-              version="0.10.22">
-        <return-value transfer-ownership="none">
-          <type name="int64" c:type="gint64"/>
-        </return-value>
-      </method>
-      <method name="set_stream_type"
-              c:identifier="gst_app_src_set_stream_type"
-              doc="Set the stream type on @appsrc. For seekable streams, the &quot;seek&quot; signal must
-be connected to.
-A stream_type stream"
-              version="0.10.22">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="type" transfer-ownership="none">
-            <type name="AppStreamType" c:type="GstAppStreamType"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_stream_type"
-              c:identifier="gst_app_src_get_stream_type"
-              doc="Get the stream type. Control the stream type of @appsrc
-with gst_app_src_set_stream_type()."
-              version="0.10.22">
-        <return-value transfer-ownership="full">
-          <type name="AppStreamType" c:type="GstAppStreamType"/>
-        </return-value>
-      </method>
-      <method name="set_max_bytes"
-              c:identifier="gst_app_src_set_max_bytes"
-              doc="Set the maximum amount of bytes that can be queued in @appsrc.
-After the maximum amount of bytes are queued, @appsrc will emit the
-&quot;enough-data&quot; signal."
-              version="0.10.22">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="max" transfer-ownership="none">
-            <type name="uint64" c:type="guint64"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_max_bytes"
-              c:identifier="gst_app_src_get_max_bytes"
-              doc="Get the maximum amount of bytes that can be queued in @appsrc."
-              version="0.10.22">
-        <return-value transfer-ownership="none">
-          <type name="uint64" c:type="guint64"/>
-        </return-value>
-      </method>
-      <method name="set_latency"
-              c:identifier="gst_app_src_set_latency"
-              doc="Configure the @min and @max latency in @src. If @min is set to -1, the
-default latency calculations for pseudo-live sources will be used."
-              version="0.10.22">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="min" transfer-ownership="none">
-            <type name="uint64" c:type="guint64"/>
-          </parameter>
-          <parameter name="max" transfer-ownership="none">
-            <type name="uint64" c:type="guint64"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_latency"
-              c:identifier="gst_app_src_get_latency"
-              doc="Retrieve the min and max latencies in @min and @max respectively."
-              version="0.10.22">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="min" direction="out" transfer-ownership="full">
-            <type name="uint64" c:type="guint64*"/>
-          </parameter>
-          <parameter name="max" direction="out" transfer-ownership="full">
-            <type name="uint64" c:type="guint64*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_emit_signals"
-              c:identifier="gst_app_src_set_emit_signals"
-              doc="Make appsrc emit the &quot;new-preroll&quot; and &quot;new-buffer&quot; signals. This option is
-by default disabled because signal emission is expensive and unneeded when
-the application prefers to operate in pull mode."
-              version="0.10.23">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="emit" transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_emit_signals"
-              c:identifier="gst_app_src_get_emit_signals"
-              doc="Check if appsrc will emit the &quot;new-preroll&quot; and &quot;new-buffer&quot; signals.
-signals."
-              version="0.10.23">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-      </method>
-      <method name="push_buffer"
-              c:identifier="gst_app_src_push_buffer"
-              doc="Adds a buffer to the queue of buffers that the appsrc element will
-push to its source pad.  This function takes ownership of the buffer.
-When the block property is TRUE, this function can block until free
-space becomes available in the queue.
-#GST_FLOW_WRONG_STATE when @appsrc is not PAUSED or PLAYING.
-#GST_FLOW_UNEXPECTED when EOS occured."
-              version="0.10.22">
-        <return-value transfer-ownership="full">
-          <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
-        </return-value>
-        <parameters>
-          <parameter name="buffer" transfer-ownership="none">
-            <type name="Gst.Buffer" c:type="GstBuffer*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="end_of_stream"
-              c:identifier="gst_app_src_end_of_stream"
-              doc="Indicates to the appsrc element that the last buffer queued in the
-element is the last buffer of the stream.
-#GST_FLOW_WRONG_STATE when @appsrc is not PAUSED or PLAYING."
-              version="0.10.22">
-        <return-value transfer-ownership="full">
-          <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
-        </return-value>
-      </method>
-      <method name="set_callbacks"
-              c:identifier="gst_app_src_set_callbacks"
-              doc="Set callbacks which will be executed when data is needed, enough data has
-been collected or when a seek should be performed.
-This is an alternative to using the signals, it has lower overhead and is thus
-less expensive, but also less flexible.
-If callbacks are installed, no signals will be emited for performance
-reasons."
-              version="0.10.23">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="callbacks" transfer-ownership="none">
-            <type name="AppSrcCallbacks" c:type="GstAppSrcCallbacks*"/>
-          </parameter>
-          <parameter name="user_data" transfer-ownership="none">
-            <type name="any" c:type="gpointer"/>
-          </parameter>
-          <parameter name="notify" transfer-ownership="none" scope="call">
-            <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
-          </parameter>
-        </parameters>
-      </method>
-      <property name="block" writable="1">
-        <type name="boolean" c:type="gboolean"/>
-      </property>
-      <property name="caps" writable="1">
-        <type name="Gst.Caps" c:type="GstCaps"/>
-      </property>
-      <property name="emit-signals" writable="1">
-        <type name="boolean" c:type="gboolean"/>
-      </property>
-      <property name="format" writable="1">
-        <type name="Gst.Format" c:type="GstFormat"/>
-      </property>
-      <property name="is-live" writable="1">
-        <type name="boolean" c:type="gboolean"/>
-      </property>
-      <property name="max-bytes" writable="1">
-        <type name="uint64" c:type="guint64"/>
-      </property>
-      <property name="max-latency" writable="1">
-        <type name="int64" c:type="gint64"/>
-      </property>
-      <property name="min-latency" writable="1">
-        <type name="int64" c:type="gint64"/>
-      </property>
-      <property name="min-percent" writable="1">
-        <type name="uint" c:type="guint"/>
-      </property>
-      <property name="size" writable="1">
-        <type name="int64" c:type="gint64"/>
-      </property>
-      <property name="stream-type" writable="1">
-        <type name="AppStreamType" c:type="GstAppStreamType"/>
-      </property>
-      <field name="basesrc">
-        <type name="GstBase.BaseSrc" c:type="GstBaseSrc"/>
-      </field>
-      <field name="priv">
-        <type name="AppSrcPrivate" c:type="GstAppSrcPrivate*"/>
-      </field>
-      <field name="_gst_reserved">
-        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
-          <type name="any"/>
-        </array>
-      </field>
-      <glib:signal name="end-of-stream"
-                   doc="Notify @appsrc that no more buffer are available.">
-        <return-value transfer-ownership="full">
-          <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
-        </return-value>
-      </glib:signal>
-      <glib:signal name="enough-data"
-                   doc="Signal that the source has enough data. It is recommended that the
-application stops calling push-buffer until the need-data signal is
-emited again to avoid excessive buffer queueing.">
-        <return-value transfer-ownership="full">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </glib:signal>
-      <glib:signal name="need-data"
-                   doc="Signal that the source needs more data. In the callback or from another
-thread you should call push-buffer or end-of-stream.
-pushed into @appsrc.
-You can call push-buffer multiple times until the enough-data signal is
-fired.">
-        <return-value transfer-ownership="full">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="length" transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
-          </parameter>
-        </parameters>
-      </glib:signal>
-      <glib:signal name="push-buffer"
-                   doc="Adds a buffer to the queue of buffers that the appsrc element will
-push to its source pad. This function does not take ownership of the
-buffer so the buffer needs to be unreffed after calling this function.
-When the block property is TRUE, this function can block until free space
-becomes available in the queue.">
-        <return-value transfer-ownership="full">
-          <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
-        </return-value>
-        <parameters>
-          <parameter name="buffer" transfer-ownership="none">
-            <type name="Gst.Buffer" c:type="GstBuffer"/>
-          </parameter>
-        </parameters>
-      </glib:signal>
-      <glib:signal name="seek-data"
-                   doc="Seek to the given offset. The next push-buffer should produce buffers from
-the new @offset.
-This callback is only called for seekable stream types.">
-        <return-value transfer-ownership="full">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="offset" transfer-ownership="none">
-            <type name="uint64" c:type="guint64"/>
-          </parameter>
-        </parameters>
-      </glib:signal>
-    </class>
-    <record name="AppSrcCallbacks"
-            c:type="GstAppSrcCallbacks"
-            doc="pushed to appsrc from this thread or another thread. @length is just a hint
-and when it is set to -1, any number of bytes can be pushed into @appsrc.
-application stops calling push-buffer until the need_data callback is
-emited again to avoid excessive buffer queueing.
-The next push-buffer should produce buffers from the new @offset.
-This callback is only called for seekable stream types.
-A set of callbacks that can be installed on the appsrc with
-gst_app_src_set_callbacks()."
-            version="0.10.23">
-      <field name="need_data">
-        <type name="any" c:type="pointer"/>
-      </field>
-      <field name="enough_data">
-        <type name="any" c:type="pointer"/>
-      </field>
-      <field name="seek_data">
-        <type name="any" c:type="pointer"/>
-      </field>
-      <field name="_gst_reserved" writable="1">
-        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
-          <type name="any"/>
-        </array>
-      </field>
-    </record>
-    <record name="AppSrcClass"
-            c:type="GstAppSrcClass"
-            glib:is-gtype-struct-for="AppSrc">
-      <field name="basesrc_class">
-        <type name="GstBase.BaseSrcClass" c:type="GstBaseSrcClass"/>
-      </field>
-      <field name="need_data">
-        <callback name="need_data" c:type="need_data">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="src" transfer-ownership="none">
-              <type name="AppSrc" c:type="GstAppSrc*"/>
-            </parameter>
-            <parameter name="length" transfer-ownership="none">
-              <type name="uint" c:type="guint"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="enough_data">
-        <callback name="enough_data" c:type="enough_data">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="src" transfer-ownership="none">
-              <type name="AppSrc" c:type="GstAppSrc*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="seek_data">
-        <callback name="seek_data" c:type="seek_data">
-          <return-value transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </return-value>
-          <parameters>
-            <parameter name="src" transfer-ownership="none">
-              <type name="AppSrc" c:type="GstAppSrc*"/>
-            </parameter>
-            <parameter name="offset" transfer-ownership="none">
-              <type name="uint64" c:type="guint64"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="push_buffer">
-        <callback name="push_buffer" c:type="push_buffer">
-          <return-value transfer-ownership="full">
-            <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
-          </return-value>
-          <parameters>
-            <parameter name="src" transfer-ownership="none">
-              <type name="AppSrc" c:type="GstAppSrc*"/>
-            </parameter>
-            <parameter name="buffer" transfer-ownership="none">
-              <type name="Gst.Buffer" c:type="GstBuffer*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="end_of_stream">
-        <callback name="end_of_stream" c:type="end_of_stream">
-          <return-value transfer-ownership="full">
-            <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
-          </return-value>
-          <parameters>
-            <parameter name="src" transfer-ownership="none">
-              <type name="AppSrc" c:type="GstAppSrc*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="_gst_reserved">
-        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
-          <type name="any"/>
-        </array>
-      </field>
-    </record>
-    <record name="AppSrcPrivate" c:type="GstAppSrcPrivate">
-    </record>
-    <enumeration name="AppStreamType"
-                 doc="live stream.
-be very fast, such as data from a webserver.
-such as in a local file.
-The stream type."
-                 c:type="GstAppStreamType">
-      <member name="stream"
-              value="0"
-              c:identifier="GST_APP_STREAM_TYPE_STREAM"/>
-      <member name="seekable"
-              value="1"
-              c:identifier="GST_APP_STREAM_TYPE_SEEKABLE"/>
-      <member name="random_access"
-              value="2"
-              c:identifier="GST_APP_STREAM_TYPE_RANDOM_ACCESS"/>
-    </enumeration>
-  </namespace>
-</repository>
diff --git a/extra/gstreamer/app/app.factor b/extra/gstreamer/app/app.factor
deleted file mode 100644 (file)
index ae80d54..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-! Copyright (C) 2010 Anton Gorenko.
-! See http://factorcode.org/license.txt for BSD license.
-USING: gstreamer.app.ffi ;
-IN: gstreamer.app
-
diff --git a/extra/gstreamer/app/ffi/ffi.factor b/extra/gstreamer/app/ffi/ffi.factor
deleted file mode 100644 (file)
index b92d568..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-! Copyright (C) 2010 Anton Gorenko.
-! See http://factorcode.org/license.txt for BSD license.
-USING: alien alien.c-types alien.libraries combinators kernel
-system
-gobject-introspection glib.ffi gstreamer.ffi ;
-IN: gstreamer.app.ffi
-
-<<
-"gstreamer.app" {
-    { [ os winnt? ] [ drop ] }
-    { [ os macosx? ] [ drop ] }
-    { [ os unix? ] [ "libgstapp-0.10.so" cdecl add-library ] }
-} cond
->>
-
-GIR: vocab:gstreamer/app/GstApp-0.10.gir
-
diff --git a/extra/gstreamer/audio/GstAudio-0.10.gir b/extra/gstreamer/audio/GstAudio-0.10.gir
deleted file mode 100644 (file)
index 73d9983..0000000
+++ /dev/null
@@ -1,2360 +0,0 @@
-<?xml version="1.0"?>
-<!-- This file was automatically generated from C sources - DO NOT EDIT!
-To affect the contents of this file, edit the original C definitions,
-and/or use gtk-doc annotations.  -->
-<repository version="1.0"
-            xmlns="http://www.gtk.org/introspection/core/1.0"
-            xmlns:c="http://www.gtk.org/introspection/c/1.0"
-            xmlns:glib="http://www.gtk.org/introspection/glib/1.0">
-  <include name="GLib" version="2.0"/>
-  <include name="GModule" version="2.0"/>
-  <include name="GObject" version="2.0"/>
-  <include name="Gst" version="0.10"/>
-  <include name="GstBase" version="0.10"/>
-  <include name="GstInterfaces" version="0.10"/>
-  <include name="libxml2" version="2.0"/>
-  <package name="gstreamer-0.10"/>
-  <package name="gstreamer-base-0.10"/>
-  <package name="gstreamer-interfaces-0.10"/>
-  <c:include name="gst/audio/audio-enumtypes.h"/>
-  <c:include name="gst/audio/audio.h"/>
-  <c:include name="gst/audio/gstaudioclock.h"/>
-  <c:include name="gst/audio/gstaudiofilter.h"/>
-  <c:include name="gst/audio/gstaudiosink.h"/>
-  <c:include name="gst/audio/gstaudiosrc.h"/>
-  <c:include name="gst/audio/gstbaseaudiosink.h"/>
-  <c:include name="gst/audio/gstbaseaudiosrc.h"/>
-  <c:include name="gst/audio/gstringbuffer.h"/>
-  <c:include name="gst/audio/mixerutils.h"/>
-  <c:include name="gst/audio/multichannel.h"/>
-  <namespace name="GstAudio"
-             version="0.10"
-             shared-library="libgstaudio-0.10.so.0"
-             c:prefix="Gst">
-    <enumeration name="AudioChannelPosition"
-                 doc="from a sound card that records 1024 channels; mutually exclusive with
-any other channel position"
-                 glib:type-name="GstAudioChannelPosition"
-                 glib:get-type="gst_audio_channel_position_get_type"
-                 c:type="GstAudioChannelPosition">
-      <member name="invalid"
-              value="-1"
-              c:identifier="GST_AUDIO_CHANNEL_POSITION_INVALID"
-              glib:nick="invalid"/>
-      <member name="front_mono"
-              value="0"
-              c:identifier="GST_AUDIO_CHANNEL_POSITION_FRONT_MONO"
-              glib:nick="front-mono"/>
-      <member name="front_left"
-              value="1"
-              c:identifier="GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT"
-              glib:nick="front-left"/>
-      <member name="front_right"
-              value="2"
-              c:identifier="GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT"
-              glib:nick="front-right"/>
-      <member name="rear_center"
-              value="3"
-              c:identifier="GST_AUDIO_CHANNEL_POSITION_REAR_CENTER"
-              glib:nick="rear-center"/>
-      <member name="rear_left"
-              value="4"
-              c:identifier="GST_AUDIO_CHANNEL_POSITION_REAR_LEFT"
-              glib:nick="rear-left"/>
-      <member name="rear_right"
-              value="5"
-              c:identifier="GST_AUDIO_CHANNEL_POSITION_REAR_RIGHT"
-              glib:nick="rear-right"/>
-      <member name="lfe"
-              value="6"
-              c:identifier="GST_AUDIO_CHANNEL_POSITION_LFE"
-              glib:nick="lfe"/>
-      <member name="front_center"
-              value="7"
-              c:identifier="GST_AUDIO_CHANNEL_POSITION_FRONT_CENTER"
-              glib:nick="front-center"/>
-      <member name="front_left_of_center"
-              value="8"
-              c:identifier="GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT_OF_CENTER"
-              glib:nick="front-left-of-center"/>
-      <member name="front_right_of_center"
-              value="9"
-              c:identifier="GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT_OF_CENTER"
-              glib:nick="front-right-of-center"/>
-      <member name="side_left"
-              value="10"
-              c:identifier="GST_AUDIO_CHANNEL_POSITION_SIDE_LEFT"
-              glib:nick="side-left"/>
-      <member name="side_right"
-              value="11"
-              c:identifier="GST_AUDIO_CHANNEL_POSITION_SIDE_RIGHT"
-              glib:nick="side-right"/>
-      <member name="none"
-              value="12"
-              c:identifier="GST_AUDIO_CHANNEL_POSITION_NONE"
-              glib:nick="none"/>
-      <member name="num"
-              value="13"
-              c:identifier="GST_AUDIO_CHANNEL_POSITION_NUM"
-              glib:nick="num"/>
-    </enumeration>
-    <class name="AudioClock"
-           c:type="GstAudioClock"
-           doc="Opaque #GstAudioClock."
-           parent="Gst.SystemClock"
-           glib:type-name="GstAudioClock"
-           glib:get-type="gst_audio_clock_get_type"
-           glib:type-struct="AudioClockClass">
-      <constructor name="new"
-                   c:identifier="gst_audio_clock_new"
-                   doc="Create a new #GstAudioClock instance. Whenever the clock time should be
-calculated it will call @func with @user_data. When @func returns
-#GST_CLOCK_TIME_NONE, the clock will return the last reported time.">
-        <return-value transfer-ownership="full">
-          <type name="AudioClock" c:type="GstClock*"/>
-        </return-value>
-        <parameters>
-          <parameter name="name" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="func"
-                     transfer-ownership="none"
-                     scope="call"
-                     closure="2">
-            <type name="AudioClockGetTimeFunc"
-                  c:type="GstAudioClockGetTimeFunc"/>
-          </parameter>
-          <parameter name="user_data" transfer-ownership="none">
-            <type name="any" c:type="gpointer"/>
-          </parameter>
-        </parameters>
-      </constructor>
-      <method name="reset"
-              c:identifier="gst_audio_clock_reset"
-              doc="Inform @clock that future calls to #GstAudioClockGetTimeFunc will return values
-starting from @time. The clock will update an internal offset to make sure that
-future calls to internal_time will return an increasing result as required by
-the #GstClock object.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="time" transfer-ownership="none">
-            <type name="Gst.ClockTime" c:type="GstClockTime"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_time"
-              c:identifier="gst_audio_clock_get_time"
-              doc="Report the time as returned by the #GstAudioClockGetTimeFunc without applying
-any offsets."
-              version="0.10.23">
-        <return-value transfer-ownership="full">
-          <type name="Gst.ClockTime" c:type="GstClockTime"/>
-        </return-value>
-      </method>
-      <method name="adjust"
-              c:identifier="gst_audio_clock_adjust"
-              doc="Adjust @time with the internal offset of the audio clock."
-              version="0.10.23">
-        <return-value transfer-ownership="full">
-          <type name="Gst.ClockTime" c:type="GstClockTime"/>
-        </return-value>
-        <parameters>
-          <parameter name="time" transfer-ownership="none">
-            <type name="Gst.ClockTime" c:type="GstClockTime"/>
-          </parameter>
-        </parameters>
-      </method>
-      <field name="clock">
-        <type name="Gst.SystemClock" c:type="GstSystemClock"/>
-      </field>
-      <field name="func">
-        <type name="AudioClockGetTimeFunc" c:type="GstAudioClockGetTimeFunc"/>
-      </field>
-      <field name="user_data">
-        <type name="any" c:type="gpointer"/>
-      </field>
-      <field name="last_time">
-        <type name="Gst.ClockTime" c:type="GstClockTime"/>
-      </field>
-      <union name="abidata" c:type="abidata">
-        <record name="ABI" c:type="ABI">
-          <field name="time_offset" writable="1">
-            <type name="Gst.ClockTimeDiff" c:type="GstClockTimeDiff"/>
-          </field>
-        </record>
-        <field name="_gst_reserved" writable="1">
-          <array zero-terminated="0" c:type="gpointer" fixed-size="4">
-            <type name="any"/>
-          </array>
-        </field>
-      </union>
-    </class>
-    <record name="AudioClockClass"
-            c:type="GstAudioClockClass"
-            glib:is-gtype-struct-for="AudioClock">
-      <field name="parent_class">
-        <type name="Gst.SystemClockClass" c:type="GstSystemClockClass"/>
-      </field>
-      <field name="_gst_reserved">
-        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
-          <type name="any"/>
-        </array>
-      </field>
-    </record>
-    <callback name="AudioClockGetTimeFunc"
-              c:type="GstAudioClockGetTimeFunc"
-              doc="This function will be called whenever the current clock time needs to be
-calculated. If this function returns #GST_CLOCK_TIME_NONE, the last reported
-time will be returned by the clock.
-be used.">
-      <return-value transfer-ownership="full">
-        <type name="Gst.ClockTime" c:type="GstClockTime"/>
-      </return-value>
-      <parameters>
-        <parameter name="clock" transfer-ownership="none">
-          <type name="Gst.Clock" c:type="GstClock*"/>
-        </parameter>
-        <parameter name="user_data" transfer-ownership="none" closure="1">
-          <type name="any" c:type="gpointer"/>
-        </parameter>
-      </parameters>
-    </callback>
-    <bitfield name="AudioFieldFlag"
-              doc="Do not use anymore."
-              deprecated="use gst_structure_set() directly"
-              c:type="GstAudioFieldFlag">
-      <member name="rate" value="1" c:identifier="GST_AUDIO_FIELD_RATE"/>
-      <member name="channels"
-              value="2"
-              c:identifier="GST_AUDIO_FIELD_CHANNELS"/>
-      <member name="endianness"
-              value="4"
-              c:identifier="GST_AUDIO_FIELD_ENDIANNESS"/>
-      <member name="width" value="8" c:identifier="GST_AUDIO_FIELD_WIDTH"/>
-      <member name="depth" value="16" c:identifier="GST_AUDIO_FIELD_DEPTH"/>
-      <member name="signed" value="32" c:identifier="GST_AUDIO_FIELD_SIGNED"/>
-    </bitfield>
-    <class name="AudioFilter"
-           c:type="GstAudioFilter"
-           doc="Base class for audio filters with the same format for input and output."
-           version="0.10.12"
-           parent="GstBase.BaseTransform"
-           abstract="1"
-           glib:type-name="GstAudioFilter"
-           glib:get-type="gst_audio_filter_get_type"
-           glib:type-struct="AudioFilterClass">
-      <virtual-method name="setup">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="format" transfer-ownership="none">
-            <type name="RingBufferSpec" c:type="GstRingBufferSpec*"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <field name="basetransform">
-        <type name="GstBase.BaseTransform" c:type="GstBaseTransform"/>
-      </field>
-      <field name="format">
-        <type name="RingBufferSpec" c:type="GstRingBufferSpec"/>
-      </field>
-      <field name="_gst_reserved">
-        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
-          <type name="any"/>
-        </array>
-      </field>
-    </class>
-    <record name="AudioFilterClass"
-            c:type="GstAudioFilterClass"
-            glib:is-gtype-struct-for="AudioFilter"
-            doc="In addition to the @setup virtual function, you should also override the
-GstBaseTransform::transform and/or GstBaseTransform::transform_ip virtual
-function."
-            version="0.10.12">
-      <field name="basetransformclass">
-        <type name="GstBase.BaseTransformClass"
-              c:type="GstBaseTransformClass"/>
-      </field>
-      <field name="setup">
-        <callback name="setup" c:type="setup">
-          <return-value transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </return-value>
-          <parameters>
-            <parameter name="filter" transfer-ownership="none">
-              <type name="AudioFilter" c:type="GstAudioFilter*"/>
-            </parameter>
-            <parameter name="format" transfer-ownership="none">
-              <type name="RingBufferSpec" c:type="GstRingBufferSpec*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="_gst_reserved">
-        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
-          <type name="any"/>
-        </array>
-      </field>
-      <method name="add_pad_templates"
-              c:identifier="gst_audio_filter_class_add_pad_templates"
-              doc="Convenience function to add pad templates to this element class, with
-This function is usually used from within a GObject base_init function."
-              version="0.10.12">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="allowed_caps" transfer-ownership="none">
-            <type name="Gst.Caps" c:type="GstCaps*"/>
-          </parameter>
-        </parameters>
-      </method>
-    </record>
-    <callback name="AudioMixerFilterFunc"
-              c:type="GstAudioMixerFilterFunc"
-              doc="Function that will be called by gst_audio_default_registry_mixer_filter()
-so the caller can decide which mixer elements should be kept and returned.
-When the mixer element is passed to the callback function, it is opened
-and in READY state. If you decide to keep the element, you need to set it
-back to NULL state yourself (unless you want to keep it opened of course).">
-      <return-value transfer-ownership="none">
-        <type name="boolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="mixer" transfer-ownership="none">
-          <type name="GstInterfaces.Mixer" c:type="GstMixer*"/>
-        </parameter>
-        <parameter name="user_data" transfer-ownership="none" closure="1">
-          <type name="any" c:type="gpointer"/>
-        </parameter>
-      </parameters>
-    </callback>
-    <class name="AudioSink"
-           c:type="GstAudioSink"
-           doc="Opaque #GstAudioSink."
-           parent="BaseAudioSink"
-           glib:type-name="GstAudioSink"
-           glib:get-type="gst_audio_sink_get_type"
-           glib:type-struct="AudioSinkClass">
-      <virtual-method name="open">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-      </virtual-method>
-      <virtual-method name="prepare">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="spec" transfer-ownership="none">
-            <type name="RingBufferSpec" c:type="GstRingBufferSpec*"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <virtual-method name="unprepare">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-      </virtual-method>
-      <virtual-method name="close">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-      </virtual-method>
-      <virtual-method name="write">
-        <return-value transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
-        </return-value>
-        <parameters>
-          <parameter name="data" transfer-ownership="none">
-            <type name="any" c:type="gpointer"/>
-          </parameter>
-          <parameter name="length" transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <virtual-method name="delay">
-        <return-value transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
-        </return-value>
-      </virtual-method>
-      <virtual-method name="reset">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </virtual-method>
-      <field name="element">
-        <type name="BaseAudioSink" c:type="GstBaseAudioSink"/>
-      </field>
-      <field name="thread">
-        <type name="GLib.Thread" c:type="GThread*"/>
-      </field>
-      <field name="_gst_reserved">
-        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
-          <type name="any"/>
-        </array>
-      </field>
-    </class>
-    <record name="AudioSinkClass"
-            c:type="GstAudioSinkClass"
-            glib:is-gtype-struct-for="AudioSink"
-            doc="This function is also used to check if the device is available.
-drive the synchronisation.
-samples from the device.
-#GstAudioSink class. Override the vmethods to implement functionality.">
-      <field name="parent_class">
-        <type name="BaseAudioSinkClass" c:type="GstBaseAudioSinkClass"/>
-      </field>
-      <field name="open">
-        <callback name="open" c:type="open">
-          <return-value transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </return-value>
-          <parameters>
-            <parameter name="sink" transfer-ownership="none">
-              <type name="AudioSink" c:type="GstAudioSink*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="prepare">
-        <callback name="prepare" c:type="prepare">
-          <return-value transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </return-value>
-          <parameters>
-            <parameter name="sink" transfer-ownership="none">
-              <type name="AudioSink" c:type="GstAudioSink*"/>
-            </parameter>
-            <parameter name="spec" transfer-ownership="none">
-              <type name="RingBufferSpec" c:type="GstRingBufferSpec*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="unprepare">
-        <callback name="unprepare" c:type="unprepare">
-          <return-value transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </return-value>
-          <parameters>
-            <parameter name="sink" transfer-ownership="none">
-              <type name="AudioSink" c:type="GstAudioSink*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="close">
-        <callback name="close" c:type="close">
-          <return-value transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </return-value>
-          <parameters>
-            <parameter name="sink" transfer-ownership="none">
-              <type name="AudioSink" c:type="GstAudioSink*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="write">
-        <callback name="write" c:type="write">
-          <return-value transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
-          </return-value>
-          <parameters>
-            <parameter name="sink" transfer-ownership="none">
-              <type name="AudioSink" c:type="GstAudioSink*"/>
-            </parameter>
-            <parameter name="data" transfer-ownership="none">
-              <type name="any" c:type="gpointer"/>
-            </parameter>
-            <parameter name="length" transfer-ownership="none">
-              <type name="uint" c:type="guint"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="delay">
-        <callback name="delay" c:type="delay">
-          <return-value transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
-          </return-value>
-          <parameters>
-            <parameter name="sink" transfer-ownership="none">
-              <type name="AudioSink" c:type="GstAudioSink*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="reset">
-        <callback name="reset" c:type="reset">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="sink" transfer-ownership="none">
-              <type name="AudioSink" c:type="GstAudioSink*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="_gst_reserved">
-        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
-          <type name="any"/>
-        </array>
-      </field>
-    </record>
-    <class name="AudioSrc"
-           c:type="GstAudioSrc"
-           doc="Base class for simple audio sources."
-           parent="BaseAudioSrc"
-           glib:type-name="GstAudioSrc"
-           glib:get-type="gst_audio_src_get_type"
-           glib:type-struct="AudioSrcClass">
-      <virtual-method name="open">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-      </virtual-method>
-      <virtual-method name="prepare">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="spec" transfer-ownership="none">
-            <type name="RingBufferSpec" c:type="GstRingBufferSpec*"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <virtual-method name="unprepare">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-      </virtual-method>
-      <virtual-method name="close">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-      </virtual-method>
-      <virtual-method name="read">
-        <return-value transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
-        </return-value>
-        <parameters>
-          <parameter name="data" transfer-ownership="none">
-            <type name="any" c:type="gpointer"/>
-          </parameter>
-          <parameter name="length" transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <virtual-method name="delay">
-        <return-value transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
-        </return-value>
-      </virtual-method>
-      <virtual-method name="reset">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </virtual-method>
-      <field name="element">
-        <type name="BaseAudioSrc" c:type="GstBaseAudioSrc"/>
-      </field>
-      <field name="thread">
-        <type name="GLib.Thread" c:type="GThread*"/>
-      </field>
-      <field name="_gst_reserved">
-        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
-          <type name="any"/>
-        </array>
-      </field>
-    </class>
-    <record name="AudioSrcClass"
-            c:type="GstAudioSrcClass"
-            glib:is-gtype-struct-for="AudioSrc"
-            doc="#GstAudioSrc class. Override the vmethod to implement
-functionality.">
-      <field name="parent_class">
-        <type name="BaseAudioSrcClass" c:type="GstBaseAudioSrcClass"/>
-      </field>
-      <field name="open">
-        <callback name="open" c:type="open">
-          <return-value transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </return-value>
-          <parameters>
-            <parameter name="src" transfer-ownership="none">
-              <type name="AudioSrc" c:type="GstAudioSrc*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="prepare">
-        <callback name="prepare" c:type="prepare">
-          <return-value transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </return-value>
-          <parameters>
-            <parameter name="src" transfer-ownership="none">
-              <type name="AudioSrc" c:type="GstAudioSrc*"/>
-            </parameter>
-            <parameter name="spec" transfer-ownership="none">
-              <type name="RingBufferSpec" c:type="GstRingBufferSpec*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="unprepare">
-        <callback name="unprepare" c:type="unprepare">
-          <return-value transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </return-value>
-          <parameters>
-            <parameter name="src" transfer-ownership="none">
-              <type name="AudioSrc" c:type="GstAudioSrc*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="close">
-        <callback name="close" c:type="close">
-          <return-value transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </return-value>
-          <parameters>
-            <parameter name="src" transfer-ownership="none">
-              <type name="AudioSrc" c:type="GstAudioSrc*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="read">
-        <callback name="read" c:type="read">
-          <return-value transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
-          </return-value>
-          <parameters>
-            <parameter name="src" transfer-ownership="none">
-              <type name="AudioSrc" c:type="GstAudioSrc*"/>
-            </parameter>
-            <parameter name="data" transfer-ownership="none">
-              <type name="any" c:type="gpointer"/>
-            </parameter>
-            <parameter name="length" transfer-ownership="none">
-              <type name="uint" c:type="guint"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="delay">
-        <callback name="delay" c:type="delay">
-          <return-value transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
-          </return-value>
-          <parameters>
-            <parameter name="src" transfer-ownership="none">
-              <type name="AudioSrc" c:type="GstAudioSrc*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="reset">
-        <callback name="reset" c:type="reset">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="src" transfer-ownership="none">
-              <type name="AudioSrc" c:type="GstAudioSrc*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="_gst_reserved">
-        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
-          <type name="any"/>
-        </array>
-      </field>
-    </record>
-    <class name="BaseAudioSink"
-           c:type="GstBaseAudioSink"
-           doc="Opaque #GstBaseAudioSink."
-           parent="GstBase.BaseSink"
-           glib:type-name="GstBaseAudioSink"
-           glib:get-type="gst_base_audio_sink_get_type"
-           glib:type-struct="BaseAudioSinkClass">
-      <virtual-method name="create_ringbuffer" invoker="create_ringbuffer">
-        <return-value transfer-ownership="full">
-          <type name="RingBuffer" c:type="GstRingBuffer*"/>
-        </return-value>
-      </virtual-method>
-      <method name="create_ringbuffer"
-              c:identifier="gst_base_audio_sink_create_ringbuffer"
-              doc="Create and return the #GstRingBuffer for @sink. This function will call the
-::create_ringbuffer vmethod and will set @sink as the parent of the returned
-buffer (see gst_object_set_parent()).">
-        <return-value transfer-ownership="full">
-          <type name="RingBuffer" c:type="GstRingBuffer*"/>
-        </return-value>
-      </method>
-      <method name="set_provide_clock"
-              c:identifier="gst_base_audio_sink_set_provide_clock"
-              doc="Controls whether @sink will provide a clock or not. If @provide is %TRUE,
-gst_element_provide_clock() will return a clock that reflects the datarate
-of @sink. If @provide is %FALSE, gst_element_provide_clock() will return NULL."
-              version="0.10.16">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="provide" transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_provide_clock"
-              c:identifier="gst_base_audio_sink_get_provide_clock"
-              doc="Queries whether @sink will provide a clock or not. See also
-gst_base_audio_sink_set_provide_clock."
-              version="0.10.16">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-      </method>
-      <method name="set_slave_method"
-              c:identifier="gst_base_audio_sink_set_slave_method"
-              doc="Controls how clock slaving will be performed in @sink."
-              version="0.10.16">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="method" transfer-ownership="none">
-            <type name="BaseAudioSinkSlaveMethod"
-                  c:type="GstBaseAudioSinkSlaveMethod"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_slave_method"
-              c:identifier="gst_base_audio_sink_get_slave_method"
-              doc="Get the current slave method used by @sink."
-              version="0.10.16">
-        <return-value transfer-ownership="full">
-          <type name="BaseAudioSinkSlaveMethod"
-                c:type="GstBaseAudioSinkSlaveMethod"/>
-        </return-value>
-      </method>
-      <property name="buffer-time" writable="1">
-        <type name="int64" c:type="gint64"/>
-      </property>
-      <property name="can-activate-pull" writable="1">
-        <type name="boolean" c:type="gboolean"/>
-      </property>
-      <property name="drift-tolerance" writable="1">
-        <type name="int64" c:type="gint64"/>
-      </property>
-      <property name="latency-time" writable="1">
-        <type name="int64" c:type="gint64"/>
-      </property>
-      <property name="provide-clock" writable="1">
-        <type name="boolean" c:type="gboolean"/>
-      </property>
-      <property name="slave-method" writable="1">
-        <type name="BaseAudioSinkSlaveMethod"
-              c:type="GstBaseAudioSinkSlaveMethod"/>
-      </property>
-      <field name="element">
-        <type name="GstBase.BaseSink" c:type="GstBaseSink"/>
-      </field>
-      <field name="ringbuffer">
-        <type name="RingBuffer" c:type="GstRingBuffer*"/>
-      </field>
-      <field name="buffer_time">
-        <type name="uint64" c:type="guint64"/>
-      </field>
-      <field name="latency_time">
-        <type name="uint64" c:type="guint64"/>
-      </field>
-      <field name="next_sample">
-        <type name="uint64" c:type="guint64"/>
-      </field>
-      <field name="provide_clock">
-        <type name="boolean" c:type="gboolean"/>
-      </field>
-      <field name="provided_clock">
-        <type name="Gst.Clock" c:type="GstClock*"/>
-      </field>
-      <field name="priv">
-        <type name="BaseAudioSinkPrivate" c:type="GstBaseAudioSinkPrivate*"/>
-      </field>
-      <field name="_gst_reserved">
-        <array zero-terminated="0" c:type="gpointer" fixed-size="3">
-          <type name="any"/>
-        </array>
-      </field>
-    </class>
-    <record name="BaseAudioSinkClass"
-            c:type="GstBaseAudioSinkClass"
-            glib:is-gtype-struct-for="BaseAudioSink"
-            doc="#GstBaseAudioSink class. Override the vmethod to implement
-functionality.">
-      <field name="parent_class">
-        <type name="GstBase.BaseSinkClass" c:type="GstBaseSinkClass"/>
-      </field>
-      <field name="create_ringbuffer">
-        <callback name="create_ringbuffer" c:type="create_ringbuffer">
-          <return-value transfer-ownership="full">
-            <type name="RingBuffer" c:type="GstRingBuffer*"/>
-          </return-value>
-          <parameters>
-            <parameter name="sink" transfer-ownership="none">
-              <type name="BaseAudioSink" c:type="GstBaseAudioSink*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="_gst_reserved">
-        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
-          <type name="any"/>
-        </array>
-      </field>
-    </record>
-    <record name="BaseAudioSinkPrivate" c:type="GstBaseAudioSinkPrivate">
-    </record>
-    <enumeration name="BaseAudioSinkSlaveMethod"
-                 doc="drifts too much.
-Different possible clock slaving algorithms used when the internal audio
-clock is not selected as the pipeline master clock."
-                 glib:type-name="GstBaseAudioSinkSlaveMethod"
-                 glib:get-type="gst_base_audio_sink_slave_method_get_type"
-                 c:type="GstBaseAudioSinkSlaveMethod">
-      <member name="resample"
-              value="0"
-              c:identifier="GST_BASE_AUDIO_SINK_SLAVE_RESAMPLE"
-              glib:nick="resample"/>
-      <member name="skew"
-              value="1"
-              c:identifier="GST_BASE_AUDIO_SINK_SLAVE_SKEW"
-              glib:nick="skew"/>
-      <member name="none"
-              value="2"
-              c:identifier="GST_BASE_AUDIO_SINK_SLAVE_NONE"
-              glib:nick="none"/>
-    </enumeration>
-    <class name="BaseAudioSrc"
-           c:type="GstBaseAudioSrc"
-           doc="Opaque #GstBaseAudioSrc."
-           parent="GstBase.PushSrc"
-           glib:type-name="GstBaseAudioSrc"
-           glib:get-type="gst_base_audio_src_get_type"
-           glib:type-struct="BaseAudioSrcClass">
-      <virtual-method name="create_ringbuffer" invoker="create_ringbuffer">
-        <return-value transfer-ownership="full">
-          <type name="RingBuffer" c:type="GstRingBuffer*"/>
-        </return-value>
-      </virtual-method>
-      <method name="create_ringbuffer"
-              c:identifier="gst_base_audio_src_create_ringbuffer"
-              doc="Create and return the #GstRingBuffer for @src. This function will call the
-::create_ringbuffer vmethod and will set @src as the parent of the returned
-buffer (see gst_object_set_parent()).">
-        <return-value transfer-ownership="full">
-          <type name="RingBuffer" c:type="GstRingBuffer*"/>
-        </return-value>
-      </method>
-      <method name="set_provide_clock"
-              c:identifier="gst_base_audio_src_set_provide_clock"
-              doc="Controls whether @src will provide a clock or not. If @provide is %TRUE,
-gst_element_provide_clock() will return a clock that reflects the datarate
-of @src. If @provide is %FALSE, gst_element_provide_clock() will return NULL."
-              version="0.10.16">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="provide" transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_provide_clock"
-              c:identifier="gst_base_audio_src_get_provide_clock"
-              doc="Queries whether @src will provide a clock or not. See also
-gst_base_audio_src_set_provide_clock."
-              version="0.10.16">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-      </method>
-      <method name="set_slave_method"
-              c:identifier="gst_base_audio_src_set_slave_method"
-              doc="Controls how clock slaving will be performed in @src."
-              version="0.10.20">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="method" transfer-ownership="none">
-            <type name="BaseAudioSrcSlaveMethod"
-                  c:type="GstBaseAudioSrcSlaveMethod"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_slave_method"
-              c:identifier="gst_base_audio_src_get_slave_method"
-              doc="Get the current slave method used by @src."
-              version="0.10.20">
-        <return-value transfer-ownership="full">
-          <type name="BaseAudioSrcSlaveMethod"
-                c:type="GstBaseAudioSrcSlaveMethod"/>
-        </return-value>
-      </method>
-      <property name="actual-buffer-time"
-                version="0.10.20"
-                doc="Actual configured size of audio buffer in microseconds.">
-        <type name="int64" c:type="gint64"/>
-      </property>
-      <property name="actual-latency-time"
-                version="0.10.20"
-                doc="Actual configured audio latency in microseconds.">
-        <type name="int64" c:type="gint64"/>
-      </property>
-      <property name="buffer-time" writable="1">
-        <type name="int64" c:type="gint64"/>
-      </property>
-      <property name="latency-time" writable="1">
-        <type name="int64" c:type="gint64"/>
-      </property>
-      <property name="provide-clock" writable="1">
-        <type name="boolean" c:type="gboolean"/>
-      </property>
-      <property name="slave-method" writable="1">
-        <type name="BaseAudioSrcSlaveMethod"
-              c:type="GstBaseAudioSrcSlaveMethod"/>
-      </property>
-      <field name="element">
-        <type name="GstBase.PushSrc" c:type="GstPushSrc"/>
-      </field>
-      <field name="ringbuffer">
-        <type name="RingBuffer" c:type="GstRingBuffer*"/>
-      </field>
-      <field name="buffer_time">
-        <type name="Gst.ClockTime" c:type="GstClockTime"/>
-      </field>
-      <field name="latency_time">
-        <type name="Gst.ClockTime" c:type="GstClockTime"/>
-      </field>
-      <field name="next_sample">
-        <type name="uint64" c:type="guint64"/>
-      </field>
-      <field name="clock">
-        <type name="Gst.Clock" c:type="GstClock*"/>
-      </field>
-      <field name="priv">
-        <type name="BaseAudioSrcPrivate" c:type="GstBaseAudioSrcPrivate*"/>
-      </field>
-      <field name="_gst_reserved">
-        <array zero-terminated="0" c:type="gpointer" fixed-size="3">
-          <type name="any"/>
-        </array>
-      </field>
-    </class>
-    <record name="BaseAudioSrcClass"
-            c:type="GstBaseAudioSrcClass"
-            glib:is-gtype-struct-for="BaseAudioSrc"
-            doc="#GstBaseAudioSrc class. Override the vmethod to implement
-functionality.">
-      <field name="parent_class">
-        <type name="GstBase.PushSrcClass" c:type="GstPushSrcClass"/>
-      </field>
-      <field name="create_ringbuffer">
-        <callback name="create_ringbuffer" c:type="create_ringbuffer">
-          <return-value transfer-ownership="full">
-            <type name="RingBuffer" c:type="GstRingBuffer*"/>
-          </return-value>
-          <parameters>
-            <parameter name="src" transfer-ownership="none">
-              <type name="BaseAudioSrc" c:type="GstBaseAudioSrc*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="_gst_reserved">
-        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
-          <type name="any"/>
-        </array>
-      </field>
-    </record>
-    <record name="BaseAudioSrcPrivate" c:type="GstBaseAudioSrcPrivate">
-    </record>
-    <enumeration name="BaseAudioSrcSlaveMethod"
-                 doc="clock time.
-drifts too much.
-Different possible clock slaving algorithms when the internal audio clock was
-not selected as the pipeline clock."
-                 glib:type-name="GstBaseAudioSrcSlaveMethod"
-                 glib:get-type="gst_base_audio_src_slave_method_get_type"
-                 c:type="GstBaseAudioSrcSlaveMethod">
-      <member name="resample"
-              value="0"
-              c:identifier="GST_BASE_AUDIO_SRC_SLAVE_RESAMPLE"
-              glib:nick="resample"/>
-      <member name="re_timestamp"
-              value="1"
-              c:identifier="GST_BASE_AUDIO_SRC_SLAVE_RETIMESTAMP"
-              glib:nick="re-timestamp"/>
-      <member name="skew" value="2" c:identifier="GST_BASE_AUDIO_SRC_SLAVE_SKEW" glib:nick="skew"/>
-      <member name="none"
-              value="3"
-              c:identifier="GST_BASE_AUDIO_SRC_SLAVE_NONE"
-              glib:nick="none"/>
-    </enumeration>
-    <enumeration name="BufferFormat"
-                 glib:type-name="GstBufferFormat"
-                 glib:get-type="gst_buffer_format_get_type"
-                 c:type="GstBufferFormat">
-      <member name="unknown"
-              value="0"
-              c:identifier="GST_UNKNOWN"
-              glib:nick="unknown"/>
-      <member name="s8" value="1" c:identifier="GST_S8" glib:nick="s8"/>
-      <member name="u8" value="2" c:identifier="GST_U8" glib:nick="u8"/>
-      <member name="s16_le"
-              value="3"
-              c:identifier="GST_S16_LE"
-              glib:nick="s16-le"/>
-      <member name="s16_be"
-              value="4"
-              c:identifier="GST_S16_BE"
-              glib:nick="s16-be"/>
-      <member name="u16_le"
-              value="5"
-              c:identifier="GST_U16_LE"
-              glib:nick="u16-le"/>
-      <member name="u16_be"
-              value="6"
-              c:identifier="GST_U16_BE"
-              glib:nick="u16-be"/>
-      <member name="s24_le"
-              value="7"
-              c:identifier="GST_S24_LE"
-              glib:nick="s24-le"/>
-      <member name="s24_be"
-              value="8"
-              c:identifier="GST_S24_BE"
-              glib:nick="s24-be"/>
-      <member name="u24_le"
-              value="9"
-              c:identifier="GST_U24_LE"
-              glib:nick="u24-le"/>
-      <member name="u24_be"
-              value="10"
-              c:identifier="GST_U24_BE"
-              glib:nick="u24-be"/>
-      <member name="s32_le"
-              value="11"
-              c:identifier="GST_S32_LE"
-              glib:nick="s32-le"/>
-      <member name="s32_be"
-              value="12"
-              c:identifier="GST_S32_BE"
-              glib:nick="s32-be"/>
-      <member name="u32_le"
-              value="13"
-              c:identifier="GST_U32_LE"
-              glib:nick="u32-le"/>
-      <member name="u32_be"
-              value="14"
-              c:identifier="GST_U32_BE"
-              glib:nick="u32-be"/>
-      <member name="s24_3le"
-              value="15"
-              c:identifier="GST_S24_3LE"
-              glib:nick="s24-3le"/>
-      <member name="s24_3be"
-              value="16"
-              c:identifier="GST_S24_3BE"
-              glib:nick="s24-3be"/>
-      <member name="u24_3le"
-              value="17"
-              c:identifier="GST_U24_3LE"
-              glib:nick="u24-3le"/>
-      <member name="u24_3be"
-              value="18"
-              c:identifier="GST_U24_3BE"
-              glib:nick="u24-3be"/>
-      <member name="s20_3le"
-              value="19"
-              c:identifier="GST_S20_3LE"
-              glib:nick="s20-3le"/>
-      <member name="s20_3be"
-              value="20"
-              c:identifier="GST_S20_3BE"
-              glib:nick="s20-3be"/>
-      <member name="u20_3le"
-              value="21"
-              c:identifier="GST_U20_3LE"
-              glib:nick="u20-3le"/>
-      <member name="u20_3be"
-              value="22"
-              c:identifier="GST_U20_3BE"
-              glib:nick="u20-3be"/>
-      <member name="s18_3le"
-              value="23"
-              c:identifier="GST_S18_3LE"
-              glib:nick="s18-3le"/>
-      <member name="s18_3be"
-              value="24"
-              c:identifier="GST_S18_3BE"
-              glib:nick="s18-3be"/>
-      <member name="u18_3le"
-              value="25"
-              c:identifier="GST_U18_3LE"
-              glib:nick="u18-3le"/>
-      <member name="u18_3be"
-              value="26"
-              c:identifier="GST_U18_3BE"
-              glib:nick="u18-3be"/>
-      <member name="float32_le"
-              value="27"
-              c:identifier="GST_FLOAT32_LE"
-              glib:nick="float32-le"/>
-      <member name="float32_be"
-              value="28"
-              c:identifier="GST_FLOAT32_BE"
-              glib:nick="float32-be"/>
-      <member name="float64_le"
-              value="29"
-              c:identifier="GST_FLOAT64_LE"
-              glib:nick="float64-le"/>
-      <member name="float64_be"
-              value="30"
-              c:identifier="GST_FLOAT64_BE"
-              glib:nick="float64-be"/>
-      <member name="mu_law"
-              value="31"
-              c:identifier="GST_MU_LAW"
-              glib:nick="mu-law"/>
-      <member name="a_law"
-              value="32"
-              c:identifier="GST_A_LAW"
-              glib:nick="a-law"/>
-      <member name="ima_adpcm"
-              value="33"
-              c:identifier="GST_IMA_ADPCM"
-              glib:nick="ima-adpcm"/>
-      <member name="mpeg" value="34" c:identifier="GST_MPEG" glib:nick="mpeg"/>
-      <member name="gsm" value="35" c:identifier="GST_GSM" glib:nick="gsm"/>
-      <member name="iec958"
-              value="36"
-              c:identifier="GST_IEC958"
-              glib:nick="iec958"/>
-      <member name="ac3" value="37" c:identifier="GST_AC3" glib:nick="ac3"/>
-      <member name="eac3" value="38" c:identifier="GST_EAC3" glib:nick="eac3"/>
-      <member name="dts" value="39" c:identifier="GST_DTS" glib:nick="dts"/>
-    </enumeration>
-    <enumeration name="BufferFormatType"
-                 doc="The format of the samples in the ringbuffer."
-                 glib:type-name="GstBufferFormatType"
-                 glib:get-type="gst_buffer_format_type_get_type"
-                 c:type="GstBufferFormatType">
-      <member name="linear"
-              value="0"
-              c:identifier="GST_BUFTYPE_LINEAR"
-              glib:nick="linear"/>
-      <member name="float"
-              value="1"
-              c:identifier="GST_BUFTYPE_FLOAT"
-              glib:nick="float"/>
-      <member name="mu_law"
-              value="2"
-              c:identifier="GST_BUFTYPE_MU_LAW"
-              glib:nick="mu-law"/>
-      <member name="a_law"
-              value="3"
-              c:identifier="GST_BUFTYPE_A_LAW"
-              glib:nick="a-law"/>
-      <member name="ima_adpcm"
-              value="4"
-              c:identifier="GST_BUFTYPE_IMA_ADPCM"
-              glib:nick="ima-adpcm"/>
-      <member name="mpeg"
-              value="5"
-              c:identifier="GST_BUFTYPE_MPEG"
-              glib:nick="mpeg"/>
-      <member name="gsm"
-              value="6"
-              c:identifier="GST_BUFTYPE_GSM"
-              glib:nick="gsm"/>
-      <member name="iec958"
-              value="7"
-              c:identifier="GST_BUFTYPE_IEC958"
-              glib:nick="iec958"/>
-      <member name="ac3"
-              value="8"
-              c:identifier="GST_BUFTYPE_AC3"
-              glib:nick="ac3"/>
-      <member name="eac3"
-              value="9"
-              c:identifier="GST_BUFTYPE_EAC3"
-              glib:nick="eac3"/>
-      <member name="dts"
-              value="10"
-              c:identifier="GST_BUFTYPE_DTS"
-              glib:nick="dts"/>
-    </enumeration>
-    <constant name="DEF_RATE" value="44100">
-      <type name="int"/>
-    </constant>
-    <constant name="FLOAT_PAD_TEMPLATE_CAPS"
-              value="audio/x-raw-float, rate = (int) [ 1, MAX ], channels = (int) [ 1, MAX ], endianness = (int) { LITTLE_ENDIAN , BIG_ENDIAN }, width = (int) { 32, 64 }">
-      <type name="utf8"/>
-    </constant>
-    <constant name="FLOAT_STANDARD_PAD_TEMPLATE_CAPS"
-              value="audio/x-raw-float, width = (int) 32, rate = (int) [ 1, MAX ], channels = (int) 1, endianness = (int) BYTE_ORDER">
-      <type name="utf8"/>
-    </constant>
-    <constant name="INT_PAD_TEMPLATE_CAPS"
-              value="audio/x-raw-int, rate = (int) [ 1, MAX ], channels = (int) [ 1, MAX ], endianness = (int) { LITTLE_ENDIAN, BIG_ENDIAN }, width = (int) { 8, 16, 24, 32 }, depth = (int) [ 1, 32 ], signed = (boolean) { true, false }">
-      <type name="utf8"/>
-    </constant>
-    <constant name="INT_STANDARD_PAD_TEMPLATE_CAPS"
-              value="audio/x-raw-int, rate = (int) [ 1, MAX ], channels = (int) 2, endianness = (int) BYTE_ORDER, width = (int) 16, depth = (int) 16, signed = (boolean) true">
-      <type name="utf8"/>
-    </constant>
-    <class name="RingBuffer"
-           c:type="GstRingBuffer"
-           doc="The ringbuffer base class structure."
-           parent="Gst.Object"
-           abstract="1"
-           glib:type-name="GstRingBuffer"
-           glib:get-type="gst_ring_buffer_get_type"
-           glib:type-struct="RingBufferClass">
-      <function name="parse_caps"
-                c:identifier="gst_ring_buffer_parse_caps"
-                doc="Parse @caps into @spec.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="spec" transfer-ownership="none">
-            <type name="RingBufferSpec" c:type="GstRingBufferSpec*"/>
-          </parameter>
-          <parameter name="caps" transfer-ownership="none">
-            <type name="Gst.Caps" c:type="GstCaps*"/>
-          </parameter>
-        </parameters>
-      </function>
-      <function name="debug_spec_caps"
-                c:identifier="gst_ring_buffer_debug_spec_caps"
-                doc="Print debug info about the parsed caps in @spec to the debug log.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="spec" transfer-ownership="none">
-            <type name="RingBufferSpec" c:type="GstRingBufferSpec*"/>
-          </parameter>
-        </parameters>
-      </function>
-      <function name="debug_spec_buff"
-                c:identifier="gst_ring_buffer_debug_spec_buff"
-                doc="Print debug info about the buffer sized in @spec to the debug log.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="spec" transfer-ownership="none">
-            <type name="RingBufferSpec" c:type="GstRingBufferSpec*"/>
-          </parameter>
-        </parameters>
-      </function>
-      <virtual-method name="open_device" invoker="open_device">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-      </virtual-method>
-      <virtual-method name="acquire" invoker="acquire">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="spec" transfer-ownership="none">
-            <type name="RingBufferSpec" c:type="GstRingBufferSpec*"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <virtual-method name="release" invoker="release">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-      </virtual-method>
-      <virtual-method name="close_device" invoker="close_device">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-      </virtual-method>
-      <virtual-method name="start" invoker="start">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-      </virtual-method>
-      <virtual-method name="pause" invoker="pause">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-      </virtual-method>
-      <virtual-method name="resume">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-      </virtual-method>
-      <virtual-method name="stop" invoker="stop">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-      </virtual-method>
-      <virtual-method name="delay" invoker="delay">
-        <return-value transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
-        </return-value>
-      </virtual-method>
-      <virtual-method name="activate" invoker="activate">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="active" transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <virtual-method name="commit">
-        <return-value transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
-        </return-value>
-        <parameters>
-          <parameter name="sample" direction="out" transfer-ownership="full">
-            <type name="uint64" c:type="guint64*"/>
-          </parameter>
-          <parameter name="data" transfer-ownership="none">
-            <array c:type="guchar*">
-              <type name="uint8"/>
-            </array>
-          </parameter>
-          <parameter name="in_samples" transfer-ownership="none">
-            <type name="int" c:type="gint"/>
-          </parameter>
-          <parameter name="out_samples" transfer-ownership="none">
-            <type name="int" c:type="gint"/>
-          </parameter>
-          <parameter name="accum" direction="out" transfer-ownership="full">
-            <type name="int" c:type="gint*"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <virtual-method name="clear_all" invoker="clear_all">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </virtual-method>
-      <method name="set_callback"
-              c:identifier="gst_ring_buffer_set_callback"
-              doc="Sets the given callback function on the buffer. This function
-will be called every time a segment has been written to a device.
-MT safe.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="cb"
-                     transfer-ownership="none"
-                     scope="call"
-                     closure="2">
-            <type name="RingBufferCallback" c:type="GstRingBufferCallback"/>
-          </parameter>
-          <parameter name="user_data" transfer-ownership="none">
-            <type name="any" c:type="gpointer"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="convert"
-              c:identifier="gst_ring_buffer_convert"
-              doc="Convert @src_val in @src_fmt to the equivalent value in @dest_fmt. The result
-will be put in @dest_val."
-              version="0.10.22.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="src_fmt" transfer-ownership="none">
-            <type name="Gst.Format" c:type="GstFormat"/>
-          </parameter>
-          <parameter name="src_val" transfer-ownership="none">
-            <type name="int64" c:type="gint64"/>
-          </parameter>
-          <parameter name="dest_fmt" transfer-ownership="none">
-            <type name="Gst.Format" c:type="GstFormat"/>
-          </parameter>
-          <parameter name="dest_val" direction="out" transfer-ownership="full">
-            <type name="int64" c:type="gint64*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="open_device"
-              c:identifier="gst_ring_buffer_open_device"
-              doc="Open the audio device associated with the ring buffer. Does not perform any
-setup on the device. You must open the device before acquiring the ring
-buffer.
-MT safe.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-      </method>
-      <method name="close_device"
-              c:identifier="gst_ring_buffer_close_device"
-              doc="Close the audio device associated with the ring buffer. The ring buffer
-should already have been released via gst_ring_buffer_release().
-MT safe.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-      </method>
-      <method name="device_is_open"
-              c:identifier="gst_ring_buffer_device_is_open"
-              doc="Checks the status of the device associated with the ring buffer.
-MT safe.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-      </method>
-      <method name="acquire"
-              c:identifier="gst_ring_buffer_acquire"
-              doc="Allocate the resources for the ringbuffer. This function fills
-in the data pointer of the ring buffer with a valid #GstBuffer
-to which samples can be written.
-MT safe.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="spec" transfer-ownership="none">
-            <type name="RingBufferSpec" c:type="GstRingBufferSpec*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="release"
-              c:identifier="gst_ring_buffer_release"
-              doc="Free the resources of the ringbuffer.
-MT safe.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-      </method>
-      <method name="is_acquired"
-              c:identifier="gst_ring_buffer_is_acquired"
-              doc="Check if the ringbuffer is acquired and ready to use.
-MT safe.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-      </method>
-      <method name="activate"
-              c:identifier="gst_ring_buffer_activate"
-              doc="Activate @buf to start or stop pulling data.
-MT safe.
-FALSE on error."
-              version="0.10.22.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="active" transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="is_active"
-              c:identifier="gst_ring_buffer_is_active"
-              doc="Check if @buf is activated.
-MT safe."
-              version="0.10.22.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-      </method>
-      <method name="set_flushing"
-              c:identifier="gst_ring_buffer_set_flushing"
-              doc="Set the ringbuffer to flushing mode or normal mode.
-MT safe.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="flushing" transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="start"
-              c:identifier="gst_ring_buffer_start"
-              doc="Start processing samples from the ringbuffer.
-MT safe.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-      </method>
-      <method name="pause"
-              c:identifier="gst_ring_buffer_pause"
-              doc="Pause processing samples from the ringbuffer.
-MT safe.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-      </method>
-      <method name="stop"
-              c:identifier="gst_ring_buffer_stop"
-              doc="Stop processing samples from the ringbuffer.
-MT safe.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-      </method>
-      <method name="delay"
-              c:identifier="gst_ring_buffer_delay"
-              doc="Get the number of samples queued in the audio device. This is
-usually less than the segment size but can be bigger when the
-implementation uses another internal buffer between the audio
-device.
-For playback ringbuffers this is the amount of samples transfered from the
-ringbuffer to the device but still not played.
-For capture ringbuffers this is the amount of samples in the device that are
-not yet transfered to the ringbuffer.
-MT safe.">
-        <return-value transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
-        </return-value>
-      </method>
-      <method name="samples_done"
-              c:identifier="gst_ring_buffer_samples_done"
-              doc="Get the number of samples that were processed by the ringbuffer
-since it was last started. This does not include the number of samples not
-yet processed (see gst_ring_buffer_delay()).
-MT safe.">
-        <return-value transfer-ownership="none">
-          <type name="uint64" c:type="guint64"/>
-        </return-value>
-      </method>
-      <method name="set_sample"
-              c:identifier="gst_ring_buffer_set_sample"
-              doc="Make sure that the next sample written to the device is
-accounted for as being the @sample sample written to the
-device. This value will be used in reporting the current
-sample position of the ringbuffer.
-This function will also clear the buffer with silence.
-MT safe.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="sample" transfer-ownership="none">
-            <type name="uint64" c:type="guint64"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="clear_all"
-              c:identifier="gst_ring_buffer_clear_all"
-              doc="Fill the ringbuffer with silence.
-MT safe.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </method>
-      <method name="commit"
-              c:identifier="gst_ring_buffer_commit"
-              doc="Same as gst_ring_buffer_commit_full() but with a in_samples and out_samples
-equal to @len, ignoring accum.
-error.
-MT safe.">
-        <return-value transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
-        </return-value>
-        <parameters>
-          <parameter name="sample" transfer-ownership="none">
-            <type name="uint64" c:type="guint64"/>
-          </parameter>
-          <parameter name="data" transfer-ownership="none">
-            <array c:type="guchar*">
-              <type name="uint8"/>
-            </array>
-          </parameter>
-          <parameter name="len" transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="commit_full"
-              c:identifier="gst_ring_buffer_commit_full"
-              doc="Commit @in_samples samples pointed to by @data to the ringbuffer @buf.
-samples in @data. For negative rates, @out_samples must be negative and
-When @out_samples is positive, the first sample will be written at position @sample
-in the ringbuffer. When @out_samples is negative, the last sample will be written to
-although it is recommended for optimal performance.
-set to 0 when this function is first called. In case the commit operation is
-interrupted, one can resume the processing by passing the previously returned
-MT safe.
-number of samples written can be less than @out_samples when @buf was interrupted
-with a flush or stop."
-              version="0.10.11.">
-        <return-value transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
-        </return-value>
-        <parameters>
-          <parameter name="sample" direction="out" transfer-ownership="full">
-            <type name="uint64" c:type="guint64*"/>
-          </parameter>
-          <parameter name="data" transfer-ownership="none">
-            <array c:type="guchar*">
-              <type name="uint8"/>
-            </array>
-          </parameter>
-          <parameter name="in_samples" transfer-ownership="none">
-            <type name="int" c:type="gint"/>
-          </parameter>
-          <parameter name="out_samples" transfer-ownership="none">
-            <type name="int" c:type="gint"/>
-          </parameter>
-          <parameter name="accum" direction="out" transfer-ownership="full">
-            <type name="int" c:type="gint*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="read"
-              c:identifier="gst_ring_buffer_read"
-              doc="Read @len samples from the ringbuffer into the memory pointed
-to by @data.
-The first sample should be read from position @sample in
-the ringbuffer.
-although it is recommended.
-error.
-MT safe.">
-        <return-value transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
-        </return-value>
-        <parameters>
-          <parameter name="sample" transfer-ownership="none">
-            <type name="uint64" c:type="guint64"/>
-          </parameter>
-          <parameter name="data" transfer-ownership="none">
-            <array c:type="guchar*">
-              <type name="uint8"/>
-            </array>
-          </parameter>
-          <parameter name="len" transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="prepare_read"
-              c:identifier="gst_ring_buffer_prepare_read"
-              doc="Returns a pointer to memory where the data from segment @segment
-can be found. This function is mostly used by subclasses.
-MT safe.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="segment" direction="out" transfer-ownership="full">
-            <type name="int" c:type="gint*"/>
-          </parameter>
-          <parameter name="readptr" direction="out" transfer-ownership="full">
-            <type name="uint8" c:type="guint8**"/>
-          </parameter>
-          <parameter name="len" direction="out" transfer-ownership="full">
-            <type name="int" c:type="gint*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="clear"
-              c:identifier="gst_ring_buffer_clear"
-              doc="Clear the given segment of the buffer with silence samples.
-This function is used by subclasses.
-MT safe.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="segment" transfer-ownership="none">
-            <type name="int" c:type="gint"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="advance"
-              c:identifier="gst_ring_buffer_advance"
-              doc="Subclasses should call this function to notify the fact that
-MT safe.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="advance" transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="may_start"
-              c:identifier="gst_ring_buffer_may_start"
-              doc="Tell the ringbuffer that it is allowed to start playback when
-the ringbuffer is filled with samples.
-MT safe."
-              version="0.10.6">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="allowed" transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </parameter>
-        </parameters>
-      </method>
-      <field name="object">
-        <type name="Gst.Object" c:type="GstObject"/>
-      </field>
-      <field name="cond">
-        <type name="GLib.Cond" c:type="GCond*"/>
-      </field>
-      <field name="open">
-        <type name="boolean" c:type="gboolean"/>
-      </field>
-      <field name="acquired">
-        <type name="boolean" c:type="gboolean"/>
-      </field>
-      <field name="data">
-        <type name="Gst.Buffer" c:type="GstBuffer*"/>
-      </field>
-      <field name="spec">
-        <type name="RingBufferSpec" c:type="GstRingBufferSpec"/>
-      </field>
-      <field name="segstate">
-        <type name="RingBufferSegState" c:type="GstRingBufferSegState*"/>
-      </field>
-      <field name="samples_per_seg">
-        <type name="int" c:type="gint"/>
-      </field>
-      <field name="empty_seg">
-        <type name="any" c:type="guint8*"/>
-      </field>
-      <field name="state">
-        <type name="int" c:type="gint"/>
-      </field>
-      <field name="segdone">
-        <type name="int" c:type="gint"/>
-      </field>
-      <field name="segbase">
-        <type name="int" c:type="gint"/>
-      </field>
-      <field name="waiting">
-        <type name="int" c:type="gint"/>
-      </field>
-      <field name="callback">
-        <type name="RingBufferCallback" c:type="GstRingBufferCallback"/>
-      </field>
-      <field name="cb_data">
-        <type name="any" c:type="gpointer"/>
-      </field>
-      <union name="abidata" c:type="abidata">
-        <record name="ABI" c:type="ABI">
-          <field name="flushing" writable="1">
-            <type name="boolean" c:type="gboolean"/>
-          </field>
-          <field name="may_start" writable="1">
-            <type name="int" c:type="gint"/>
-          </field>
-          <field name="active" writable="1">
-            <type name="boolean" c:type="gboolean"/>
-          </field>
-        </record>
-        <field name="_gst_reserved" writable="1">
-          <array zero-terminated="0" c:type="gpointer" fixed-size="4">
-            <type name="any"/>
-          </array>
-        </field>
-      </union>
-    </class>
-    <callback name="RingBufferCallback"
-              c:type="GstRingBufferCallback"
-              doc="This function is set with gst_ring_buffer_set_callback() and is
-called to fill the memory at @data with @len bytes of samples.">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="rbuf" transfer-ownership="none">
-          <type name="RingBuffer" c:type="GstRingBuffer*"/>
-        </parameter>
-        <parameter name="data" transfer-ownership="none">
-          <array c:type="guint8*">
-            <type name="uint8"/>
-          </array>
-        </parameter>
-        <parameter name="len" transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
-        </parameter>
-        <parameter name="user_data" transfer-ownership="none" closure="3">
-          <type name="any" c:type="gpointer"/>
-        </parameter>
-      </parameters>
-    </callback>
-    <record name="RingBufferClass"
-            c:type="GstRingBufferClass"
-            glib:is-gtype-struct-for="RingBuffer"
-            doc="consumed segments in the device. Since 0.10.22
-The vmethods that subclasses can override to implement the ringbuffer.">
-      <field name="parent_class">
-        <type name="Gst.ObjectClass" c:type="GstObjectClass"/>
-      </field>
-      <field name="open_device">
-        <callback name="open_device" c:type="open_device">
-          <return-value transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </return-value>
-          <parameters>
-            <parameter name="buf" transfer-ownership="none">
-              <type name="RingBuffer" c:type="GstRingBuffer*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="acquire">
-        <callback name="acquire" c:type="acquire">
-          <return-value transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </return-value>
-          <parameters>
-            <parameter name="buf" transfer-ownership="none">
-              <type name="RingBuffer" c:type="GstRingBuffer*"/>
-            </parameter>
-            <parameter name="spec" transfer-ownership="none">
-              <type name="RingBufferSpec" c:type="GstRingBufferSpec*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="release">
-        <callback name="release" c:type="release">
-          <return-value transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </return-value>
-          <parameters>
-            <parameter name="buf" transfer-ownership="none">
-              <type name="RingBuffer" c:type="GstRingBuffer*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="close_device">
-        <callback name="close_device" c:type="close_device">
-          <return-value transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </return-value>
-          <parameters>
-            <parameter name="buf" transfer-ownership="none">
-              <type name="RingBuffer" c:type="GstRingBuffer*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="start">
-        <callback name="start" c:type="start">
-          <return-value transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </return-value>
-          <parameters>
-            <parameter name="buf" transfer-ownership="none">
-              <type name="RingBuffer" c:type="GstRingBuffer*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="pause">
-        <callback name="pause" c:type="pause">
-          <return-value transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </return-value>
-          <parameters>
-            <parameter name="buf" transfer-ownership="none">
-              <type name="RingBuffer" c:type="GstRingBuffer*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="resume">
-        <callback name="resume" c:type="resume">
-          <return-value transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </return-value>
-          <parameters>
-            <parameter name="buf" transfer-ownership="none">
-              <type name="RingBuffer" c:type="GstRingBuffer*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="stop">
-        <callback name="stop" c:type="stop">
-          <return-value transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </return-value>
-          <parameters>
-            <parameter name="buf" transfer-ownership="none">
-              <type name="RingBuffer" c:type="GstRingBuffer*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="delay">
-        <callback name="delay" c:type="delay">
-          <return-value transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
-          </return-value>
-          <parameters>
-            <parameter name="buf" transfer-ownership="none">
-              <type name="RingBuffer" c:type="GstRingBuffer*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="activate">
-        <callback name="activate" c:type="activate">
-          <return-value transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </return-value>
-          <parameters>
-            <parameter name="buf" transfer-ownership="none">
-              <type name="RingBuffer" c:type="GstRingBuffer*"/>
-            </parameter>
-            <parameter name="active" transfer-ownership="none">
-              <type name="boolean" c:type="gboolean"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="commit">
-        <callback name="commit" c:type="commit">
-          <return-value transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
-          </return-value>
-          <parameters>
-            <parameter name="buf" transfer-ownership="none">
-              <type name="RingBuffer" c:type="GstRingBuffer*"/>
-            </parameter>
-            <parameter name="sample" direction="out" transfer-ownership="full">
-              <type name="uint64" c:type="guint64*"/>
-            </parameter>
-            <parameter name="data" transfer-ownership="none">
-              <array c:type="guchar*">
-                <type name="uint8"/>
-              </array>
-            </parameter>
-            <parameter name="in_samples" transfer-ownership="none">
-              <type name="int" c:type="gint"/>
-            </parameter>
-            <parameter name="out_samples" transfer-ownership="none">
-              <type name="int" c:type="gint"/>
-            </parameter>
-            <parameter name="accum" direction="out" transfer-ownership="full">
-              <type name="int" c:type="gint*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="clear_all">
-        <callback name="clear_all" c:type="clear_all">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="buf" transfer-ownership="none">
-              <type name="RingBuffer" c:type="GstRingBuffer*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="_gst_reserved">
-        <array zero-terminated="0" c:type="gpointer" fixed-size="1">
-          <type name="any"/>
-        </array>
-      </field>
-    </record>
-    <enumeration name="RingBufferSegState"
-                 doc="The state of a segment in the ringbuffer."
-                 glib:type-name="GstRingBufferSegState"
-                 glib:get-type="gst_ring_buffer_seg_state_get_type"
-                 c:type="GstRingBufferSegState">
-      <member name="invalid"
-              value="0"
-              c:identifier="GST_SEGSTATE_INVALID"
-              glib:nick="invalid"/>
-      <member name="empty"
-              value="1"
-              c:identifier="GST_SEGSTATE_EMPTY"
-              glib:nick="empty"/>
-      <member name="filled"
-              value="2"
-              c:identifier="GST_SEGSTATE_FILLED"
-              glib:nick="filled"/>
-      <member name="partial"
-              value="3"
-              c:identifier="GST_SEGSTATE_PARTIAL"
-              glib:nick="partial"/>
-    </enumeration>
-    <record name="RingBufferSpec"
-            c:type="GstRingBufferSpec"
-            doc="defaults to segtotal
-The structure containing the format specification of the ringbuffer.">
-      <field name="caps" writable="1">
-        <type name="Gst.Caps" c:type="GstCaps*"/>
-      </field>
-      <field name="type" writable="1">
-        <type name="BufferFormatType" c:type="GstBufferFormatType"/>
-      </field>
-      <field name="format" writable="1">
-        <type name="BufferFormat" c:type="GstBufferFormat"/>
-      </field>
-      <field name="sign" writable="1">
-        <type name="boolean" c:type="gboolean"/>
-      </field>
-      <field name="bigend" writable="1">
-        <type name="boolean" c:type="gboolean"/>
-      </field>
-      <field name="width" writable="1">
-        <type name="int" c:type="gint"/>
-      </field>
-      <field name="depth" writable="1">
-        <type name="int" c:type="gint"/>
-      </field>
-      <field name="rate" writable="1">
-        <type name="int" c:type="gint"/>
-      </field>
-      <field name="channels" writable="1">
-        <type name="int" c:type="gint"/>
-      </field>
-      <field name="latency_time" writable="1">
-        <type name="uint64" c:type="guint64"/>
-      </field>
-      <field name="buffer_time" writable="1">
-        <type name="uint64" c:type="guint64"/>
-      </field>
-      <field name="segsize" writable="1">
-        <type name="int" c:type="gint"/>
-      </field>
-      <field name="segtotal" writable="1">
-        <type name="int" c:type="gint"/>
-      </field>
-      <field name="bytes_per_sample" writable="1">
-        <type name="int" c:type="gint"/>
-      </field>
-      <field name="silence_sample" writable="1">
-        <array zero-terminated="0" c:type="guint8" fixed-size="32">
-          <type name="uint8"/>
-        </array>
-      </field>
-      <field name="seglatency" writable="1">
-        <type name="int" c:type="gint"/>
-      </field>
-      <field name="_gst_reserved" writable="1">
-        <array zero-terminated="0" c:type="guint8" fixed-size="0">
-          <type name="uint8"/>
-        </array>
-      </field>
-    </record>
-    <enumeration name="RingBufferState"
-                 doc="The state of the ringbuffer."
-                 glib:type-name="GstRingBufferState"
-                 glib:get-type="gst_ring_buffer_state_get_type"
-                 c:type="GstRingBufferState">
-      <member name="stopped"
-              value="0"
-              c:identifier="GST_RING_BUFFER_STATE_STOPPED"
-              glib:nick="stopped"/>
-      <member name="paused"
-              value="1"
-              c:identifier="GST_RING_BUFFER_STATE_PAUSED"
-              glib:nick="paused"/>
-      <member name="started"
-              value="2"
-              c:identifier="GST_RING_BUFFER_STATE_STARTED"
-              glib:nick="started"/>
-    </enumeration>
-    <function name="buffer_clip"
-              c:identifier="gst_audio_buffer_clip"
-              doc="Clip the the buffer to the given %GstSegment.
-After calling this function the caller does not own a reference to
-otherwise the clipped buffer is returned.
-If the buffer has no timestamp, it is assumed to be inside the segment and
-is not clipped"
-              version="0.10.14">
-      <return-value transfer-ownership="full">
-        <type name="Gst.Buffer" c:type="GstBuffer*"/>
-      </return-value>
-      <parameters>
-        <parameter name="buffer" transfer-ownership="none">
-          <type name="Gst.Buffer" c:type="GstBuffer*"/>
-        </parameter>
-        <parameter name="segment" transfer-ownership="none">
-          <type name="Gst.Segment" c:type="GstSegment*"/>
-        </parameter>
-        <parameter name="rate" transfer-ownership="none">
-          <type name="int" c:type="gint"/>
-        </parameter>
-        <parameter name="frame_size" transfer-ownership="none">
-          <type name="int" c:type="gint"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="check_channel_positions"
-              c:identifier="gst_audio_check_channel_positions"
-              doc="This functions checks if the given channel positions are valid. Channel
-positions are valid if:
-&lt;itemizedlist&gt;
-&lt;listitem&gt;&lt;para&gt;No channel positions appears twice or all positions are %GST_AUDIO_CHANNEL_POSITION_NONE.
-&lt;/para&gt;&lt;/listitem&gt;
-&lt;listitem&gt;&lt;para&gt;Either all or none of the channel positions are %GST_AUDIO_CHANNEL_POSITION_NONE.
-&lt;/para&gt;&lt;/listitem&gt;
-&lt;listitem&gt;&lt;para&gt;%GST_AUDIO_CHANNEL_POSITION_FRONT_MONO and %GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT or %GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT don&apos;t appear together in the given positions.
-&lt;/para&gt;&lt;/listitem&gt;
-&lt;/itemizedlist&gt;
-and %FALSE otherwise."
-              version="0.10.20">
-      <return-value transfer-ownership="none">
-        <type name="boolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="pos" transfer-ownership="none">
-          <type name="AudioChannelPosition" c:type="GstAudioChannelPosition*"/>
-        </parameter>
-        <parameter name="channels" transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="default_registry_mixer_filter"
-              c:identifier="gst_audio_default_registry_mixer_filter"
-              doc="Utility function to find audio mixer elements.
-Will traverse the default plugin registry in order of plugin rank and
-find usable audio mixer elements. The caller may optionally fine-tune
-the selection by specifying a filter function.
-element in the list by setting it to NULL state and calling
-gst_object_unref(). After that the list itself should be freed
-using g_list_free()."
-              version="0.10.2">
-      <return-value transfer-ownership="full">
-        <type name="GLib.List" c:type="GList*"/>
-      </return-value>
-      <parameters>
-        <parameter name="filter_func" transfer-ownership="none" scope="call">
-          <type name="AudioMixerFilterFunc" c:type="GstAudioMixerFilterFunc"/>
-        </parameter>
-        <parameter name="first" transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </parameter>
-        <parameter name="user_data" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="duration_from_pad_buffer"
-              c:identifier="gst_audio_duration_from_pad_buffer"
-              doc="Calculate length in nanoseconds of audio buffer @buf based on capabilities of">
-      <return-value transfer-ownership="full">
-        <type name="Gst.ClockTime" c:type="GstClockTime"/>
-      </return-value>
-      <parameters>
-        <parameter name="pad" transfer-ownership="none">
-          <type name="Gst.Pad" c:type="GstPad*"/>
-        </parameter>
-        <parameter name="buf" transfer-ownership="none">
-          <type name="Gst.Buffer" c:type="GstBuffer*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="fixate_channel_positions"
-              c:identifier="gst_audio_fixate_channel_positions"
-              doc="&quot;channel-positions&quot; field.
-Custom fixate function. Elements that implement some sort of
-channel conversion algorithm should use this function for
-fixating on GstAudioChannelPosition properties. It will take
-care of equal channel positioning (left/right). Caller g_free()s
-the return value. The input properties may be (and are supposed
-to be) unfixed.
-Note that this function is mostly a hack because we currently
-have no way to add default fixation functions for new GTypes.
-set of #GstAudioChannelPosition values.">
-      <return-value transfer-ownership="full">
-        <type name="AudioChannelPosition" c:type="GstAudioChannelPosition*"/>
-      </return-value>
-      <parameters>
-        <parameter name="str" transfer-ownership="none">
-          <type name="Gst.Structure" c:type="GstStructure*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="frame_byte_size"
-              c:identifier="gst_audio_frame_byte_size"
-              doc="Calculate byte size of an audio frame.">
-      <return-value transfer-ownership="none">
-        <type name="int" c:type="int"/>
-      </return-value>
-      <parameters>
-        <parameter name="pad" transfer-ownership="none">
-          <type name="Gst.Pad" c:type="GstPad*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="frame_length"
-              c:identifier="gst_audio_frame_length"
-              doc="Calculate length of buffer in frames.">
-      <return-value transfer-ownership="none">
-        <type name="long" c:type="long"/>
-      </return-value>
-      <parameters>
-        <parameter name="pad" transfer-ownership="none">
-          <type name="Gst.Pad" c:type="GstPad*"/>
-        </parameter>
-        <parameter name="buf" transfer-ownership="none">
-          <type name="Gst.Buffer" c:type="GstBuffer*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="get_channel_positions"
-              c:identifier="gst_audio_get_channel_positions"
-              doc="Retrieves a number of (fixed!) audio channel positions from
-the provided #GstStructure and returns it as a newly allocated
-array. The caller should g_free () this array. The caller
-should also check that the members in this #GstStructure are
-indeed &quot;fixed&quot; before calling this function.
-positions as provided in the given #GstStructure. Returns
-NULL on error.">
-      <return-value transfer-ownership="full">
-        <type name="AudioChannelPosition" c:type="GstAudioChannelPosition*"/>
-      </return-value>
-      <parameters>
-        <parameter name="str" transfer-ownership="none">
-          <type name="Gst.Structure" c:type="GstStructure*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="is_buffer_framed"
-              c:identifier="gst_audio_is_buffer_framed"
-              doc="Check if the buffer size is a whole multiple of the frame size.">
-      <return-value transfer-ownership="none">
-        <type name="boolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="pad" transfer-ownership="none">
-          <type name="Gst.Pad" c:type="GstPad*"/>
-        </parameter>
-        <parameter name="buf" transfer-ownership="none">
-          <type name="Gst.Buffer" c:type="GstBuffer*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="set_caps_channel_positions_list"
-              c:identifier="gst_audio_set_caps_channel_positions_list"
-              doc="channel positions that we should add in each value
-of the array in the given structure.
-Sets a (possibly non-fixed) list of possible audio channel
-positions (given in pos) on the given caps. Each of the
-structures of the caps, after this function has been called,
-will contain a &quot;channel-positions&quot; field with an array.
-Each value in the array will contain each of the values given
-in the pos array. Note that the size of the caps might be
-increased by this, since each structure with a &quot;channel-
-positions&quot; field needs to have a fixed &quot;channels&quot; field.
-The input caps is not required to have this.">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="caps" transfer-ownership="none">
-          <type name="Gst.Caps" c:type="GstCaps*"/>
-        </parameter>
-        <parameter name="pos" transfer-ownership="none">
-          <type name="AudioChannelPosition" c:type="GstAudioChannelPosition*"/>
-        </parameter>
-        <parameter name="num_positions" transfer-ownership="none">
-          <type name="int" c:type="gint"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="set_channel_positions"
-              c:identifier="gst_audio_set_channel_positions"
-              doc="in this array should be equal to the (fixed!) number
-of the &quot;channels&quot; field in the given #GstStructure.
-Adds a &quot;channel-positions&quot; field to the given #GstStructure,
-which will represent the channel positions as given in the
-provided #GstAudioChannelPosition array.">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="str" transfer-ownership="none">
-          <type name="Gst.Structure" c:type="GstStructure*"/>
-        </parameter>
-        <parameter name="pos" transfer-ownership="none">
-          <type name="AudioChannelPosition" c:type="GstAudioChannelPosition*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="set_structure_channel_positions_list"
-              c:identifier="gst_audio_set_structure_channel_positions_list"
-              doc="on.
-channel positions that we should add in each value
-of the array in the given structure.
-Sets a (possibly non-fixed) list of possible audio channel
-positions (given in pos) on the given structure. The
-structure, after this function has been called, will contain
-a &quot;channel-positions&quot; field with an array of the size of
-the &quot;channels&quot; field value in the given structure (note
-that this means that the channels field in the provided
-structure should be fixed!). Each value in the array will
-contain each of the values given in the pos array.">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="str" transfer-ownership="none">
-          <type name="Gst.Structure" c:type="GstStructure*"/>
-        </parameter>
-        <parameter name="pos" transfer-ownership="none">
-          <type name="AudioChannelPosition" c:type="GstAudioChannelPosition*"/>
-        </parameter>
-        <parameter name="num_positions" transfer-ownership="none">
-          <type name="int" c:type="gint"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="structure_set_int"
-              c:identifier="gst_audio_structure_set_int"
-              doc="Do not use anymore."
-              deprecated="use gst_structure_set()">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="structure" transfer-ownership="none">
-          <type name="Gst.Structure" c:type="GstStructure*"/>
-        </parameter>
-        <parameter name="flag" transfer-ownership="none">
-          <type name="AudioFieldFlag" c:type="GstAudioFieldFlag"/>
-        </parameter>
-      </parameters>
-    </function>
-  </namespace>
-</repository>
diff --git a/extra/gstreamer/audio/audio.factor b/extra/gstreamer/audio/audio.factor
deleted file mode 100644 (file)
index 1495be4..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-! Copyright (C) 2010 Anton Gorenko.
-! See http://factorcode.org/license.txt for BSD license.
-USING: gstreamer.audio.ffi ;
-IN: gstreamer.audio
-
diff --git a/extra/gstreamer/audio/ffi/ffi.factor b/extra/gstreamer/audio/ffi/ffi.factor
deleted file mode 100644 (file)
index 5b0be1d..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-! Copyright (C) 2010 Anton Gorenko.
-! See http://factorcode.org/license.txt for BSD license.
-USING: alien alien.c-types alien.libraries combinators kernel
-system
-gobject-introspection glib.ffi gstreamer.ffi gstreamer.base.ffi
-gstreamer.interfaces.ffi ;
-IN: gstreamer.audio.ffi
-
-<<
-"gstreamer.audio" {
-    { [ os winnt? ] [ drop ] }
-    { [ os macosx? ] [ drop ] }
-    { [ os unix? ] [ "libgstaudio-0.10.so" cdecl add-library ] }
-} cond
->>
-
-GIR: vocab:gstreamer/audio/GstAudio-0.10.gir
-
diff --git a/extra/gstreamer/authors.txt b/extra/gstreamer/authors.txt
deleted file mode 100644 (file)
index ce9bcc8..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Anton Gorenko
\ No newline at end of file
diff --git a/extra/gstreamer/base/GstBase-0.10.gir b/extra/gstreamer/base/GstBase-0.10.gir
deleted file mode 100644 (file)
index a4ebc01..0000000
+++ /dev/null
@@ -1,5397 +0,0 @@
-<?xml version="1.0"?>
-<!-- This file was automatically generated from C sources - DO NOT EDIT!
-To affect the contents of this file, edit the original C definitions,
-and/or use gtk-doc annotations.  -->
-<repository version="1.0"
-            xmlns="http://www.gtk.org/introspection/core/1.0"
-            xmlns:c="http://www.gtk.org/introspection/c/1.0"
-            xmlns:glib="http://www.gtk.org/introspection/glib/1.0">
-  <include name="GLib" version="2.0"/>
-  <include name="GModule" version="2.0"/>
-  <include name="GObject" version="2.0"/>
-  <include name="Gst" version="0.10"/>
-  <include name="libxml2" version="2.0"/>
-  <package name="gstreamer-0.10"/>
-  <c:include name="gst/base/gstadapter.h"/>
-  <c:include name="gst/base/gstbasesink.h"/>
-  <c:include name="gst/base/gstbasesrc.h"/>
-  <c:include name="gst/base/gstbasetransform.h"/>
-  <c:include name="gst/base/gstbitreader.h"/>
-  <c:include name="gst/base/gstbytereader.h"/>
-  <c:include name="gst/base/gstbytewriter.h"/>
-  <c:include name="gst/base/gstcollectpads.h"/>
-  <c:include name="gst/base/gstdataqueue.h"/>
-  <c:include name="gst/base/gstpushsrc.h"/>
-  <c:include name="gst/base/gsttypefindhelper.h"/>
-  <namespace name="GstBase"
-             version="0.10"
-             shared-library="libgstbase-0.10.so.0"
-             c:prefix="Gst">
-    <class name="Adapter"
-           c:type="GstAdapter"
-           doc="The opaque #GstAdapter data structure."
-           parent="GObject.Object"
-           glib:type-name="GstAdapter"
-           glib:get-type="gst_adapter_get_type"
-           glib:type-struct="AdapterClass">
-      <constructor name="new"
-                   c:identifier="gst_adapter_new"
-                   doc="Creates a new #GstAdapter. Free with g_object_unref().">
-        <return-value transfer-ownership="full">
-          <type name="Adapter" c:type="GstAdapter*"/>
-        </return-value>
-      </constructor>
-      <method name="clear"
-              c:identifier="gst_adapter_clear"
-              doc="Removes all buffers from @adapter.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </method>
-      <method name="push"
-              c:identifier="gst_adapter_push"
-              doc="Adds the data from @buf to the data stored inside @adapter and takes
-ownership of the buffer.
-Empty buffers will be automatically dereferenced and not stored in the">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="buf" transfer-ownership="none">
-            <type name="Gst.Buffer" c:type="GstBuffer*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="peek"
-              c:identifier="gst_adapter_peek"
-              doc="Gets the first @size bytes stored in the @adapter. The returned pointer is
-valid until the next function is called on the adapter.
-Note that setting the returned pointer as the data of a #GstBuffer is
-incorrect for general-purpose plugins. The reason is that if a downstream
-element stores the buffer so that it has access to it outside of the bounds
-of its chain function, the buffer will have an invalid data pointer after
-your element flushes the bytes. In that case you should use
-gst_adapter_take(), which returns a freshly-allocated buffer that you can set
-as #GstBuffer malloc_data or the potentially more performant
-gst_adapter_take_buffer().
-Returns #NULL if @size bytes are not available.">
-        <return-value transfer-ownership="none">
-          <array c:type="guint8*">
-            <type name="uint8"/>
-          </array>
-        </return-value>
-        <parameters>
-          <parameter name="size" transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="copy"
-              c:identifier="gst_adapter_copy"
-              doc="Copies @size bytes of data starting at @offset out of the buffers
-contained in @GstAdapter into an array @dest provided by the caller.
-The array @dest should be large enough to contain @size bytes.
-The user should check that the adapter has (@offset + @size) bytes
-available before calling this function."
-              version="0.10.12">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="dest" transfer-ownership="none">
-            <array c:type="guint8*">
-              <type name="uint8"/>
-            </array>
-          </parameter>
-          <parameter name="offset" transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
-          </parameter>
-          <parameter name="size" transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="flush"
-              c:identifier="gst_adapter_flush"
-              doc="Flushes the first @flush bytes in the @adapter. The caller must ensure that
-at least this many bytes are available.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="flush" transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="take"
-              c:identifier="gst_adapter_take"
-              doc="Returns a freshly allocated buffer containing the first @nbytes bytes of the
-Caller owns returned value. g_free after usage.">
-        <return-value transfer-ownership="full">
-          <array c:type="guint8*">
-            <type name="uint8"/>
-          </array>
-        </return-value>
-        <parameters>
-          <parameter name="nbytes" transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="take_buffer"
-              c:identifier="gst_adapter_take_buffer"
-              doc="Returns a #GstBuffer containing the first @nbytes bytes of the
-This function is potentially more performant than gst_adapter_take()
-since it can reuse the memory in pushed buffers by subbuffering
-or merging.
-Caller owns returned value. gst_buffer_unref() after usage.
-or #NULL if @nbytes bytes are not available"
-              version="0.10.6">
-        <return-value transfer-ownership="full">
-          <type name="Gst.Buffer" c:type="GstBuffer*"/>
-        </return-value>
-        <parameters>
-          <parameter name="nbytes" transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="available"
-              c:identifier="gst_adapter_available"
-              doc="Gets the maximum amount of bytes available, that is it returns the maximum
-value that can be supplied to gst_adapter_peek() without that function
-returning NULL.">
-        <return-value transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
-        </return-value>
-      </method>
-      <method name="available_fast"
-              c:identifier="gst_adapter_available_fast"
-              doc="Gets the maximum number of bytes that are immediately available without
-requiring any expensive operations (like copying the data into a
-temporary buffer).
-operations">
-        <return-value transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
-        </return-value>
-      </method>
-      <method name="prev_timestamp"
-              c:identifier="gst_adapter_prev_timestamp"
-              doc="Get the timestamp that was before the current byte in the adapter. When
-position is returned.
-The timestamp is reset to GST_CLOCK_TIME_NONE when the adapter is first
-created or when it is cleared."
-              version="0.10.24">
-        <return-value transfer-ownership="full">
-          <type name="Gst.ClockTime" c:type="GstClockTime"/>
-        </return-value>
-        <parameters>
-          <parameter name="distance" direction="out" transfer-ownership="full">
-            <type name="uint64" c:type="guint64*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="masked_scan_uint32"
-              c:identifier="gst_adapter_masked_scan_uint32"
-              doc="the last scanned position.
-Scan for pattern @pattern with applied mask @mask in the adapter data,
-starting from offset @offset.
-The bytes in @pattern and @mask are interpreted left-to-right, regardless
-of endianness.  All four bytes of the pattern must be present in the
-adapter for it to match, even if the first or last bytes are masked out.
-It is an error to call this function without making sure that there is
-enough data (offset+size bytes) in the adapter.
-Example:
-&lt;programlisting&gt;
-// Assume the adapter contains 0x00 0x01 0x02 ... 0xfe 0xff
-gst_adapter_masked_scan_uint32 (adapter, 0xffffffff, 0x00010203, 0, 256);
-// -&gt; returns 0
-gst_adapter_masked_scan_uint32 (adapter, 0xffffffff, 0x00010203, 1, 255);
-// -&gt; returns -1
-gst_adapter_masked_scan_uint32 (adapter, 0xffffffff, 0x01020304, 1, 255);
-// -&gt; returns 1
-gst_adapter_masked_scan_uint32 (adapter, 0xffff, 0x0001, 0, 256);
-// -&gt; returns -1
-gst_adapter_masked_scan_uint32 (adapter, 0xffff, 0x0203, 0, 256);
-// -&gt; returns 0
-gst_adapter_masked_scan_uint32 (adapter, 0xffff0000, 0x02030000, 0, 256);
-// -&gt; returns 2
-gst_adapter_masked_scan_uint32 (adapter, 0xffff0000, 0x02030000, 0, 4);
-// -&gt; returns -1
-&lt;/programlisting&gt;"
-              version="0.10.24">
-        <return-value transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
-        </return-value>
-        <parameters>
-          <parameter name="mask" transfer-ownership="none">
-            <type name="uint32" c:type="guint32"/>
-          </parameter>
-          <parameter name="pattern" transfer-ownership="none">
-            <type name="uint32" c:type="guint32"/>
-          </parameter>
-          <parameter name="offset" transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
-          </parameter>
-          <parameter name="size" transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
-          </parameter>
-        </parameters>
-      </method>
-      <field name="object">
-        <type name="GObject.Object" c:type="GObject"/>
-      </field>
-      <field name="buflist">
-        <type name="GLib.SList" c:type="GSList*"/>
-      </field>
-      <field name="size">
-        <type name="uint" c:type="guint"/>
-      </field>
-      <field name="skip">
-        <type name="uint" c:type="guint"/>
-      </field>
-      <field name="assembled_data">
-        <type name="any" c:type="guint8*"/>
-      </field>
-      <field name="assembled_size">
-        <type name="uint" c:type="guint"/>
-      </field>
-      <field name="assembled_len">
-        <type name="uint" c:type="guint"/>
-      </field>
-      <field name="buflist_end">
-        <type name="GLib.SList" c:type="GSList*"/>
-      </field>
-      <field name="priv">
-        <type name="AdapterPrivate" c:type="GstAdapterPrivate*"/>
-      </field>
-      <field name="_gst_reserved">
-        <array zero-terminated="0" c:type="gpointer" fixed-size="2">
-          <type name="any"/>
-        </array>
-      </field>
-    </class>
-    <record name="AdapterClass"
-            c:type="GstAdapterClass"
-            glib:is-gtype-struct-for="Adapter">
-      <field name="parent_class">
-        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
-      </field>
-      <field name="_gst_reserved">
-        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
-          <type name="any"/>
-        </array>
-      </field>
-    </record>
-    <record name="AdapterPrivate" c:type="GstAdapterPrivate">
-    </record>
-    <class name="BaseSink"
-           c:type="GstBaseSink"
-           doc="The opaque #GstBaseSink data structure."
-           parent="Gst.Element"
-           abstract="1"
-           glib:type-name="GstBaseSink"
-           glib:get-type="gst_base_sink_get_type"
-           glib:type-struct="BaseSinkClass">
-      <virtual-method name="get_caps">
-        <return-value transfer-ownership="full">
-          <type name="Gst.Caps" c:type="GstCaps*"/>
-        </return-value>
-      </virtual-method>
-      <virtual-method name="set_caps">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="caps" transfer-ownership="none">
-            <type name="Gst.Caps" c:type="GstCaps*"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <virtual-method name="buffer_alloc">
-        <return-value transfer-ownership="full">
-          <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
-        </return-value>
-        <parameters>
-          <parameter name="offset" transfer-ownership="none">
-            <type name="uint64" c:type="guint64"/>
-          </parameter>
-          <parameter name="size" transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
-          </parameter>
-          <parameter name="caps" transfer-ownership="none">
-            <type name="Gst.Caps" c:type="GstCaps*"/>
-          </parameter>
-          <parameter name="buf" transfer-ownership="none">
-            <type name="Gst.Buffer" c:type="GstBuffer**"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <virtual-method name="get_times">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="buffer" transfer-ownership="none">
-            <type name="Gst.Buffer" c:type="GstBuffer*"/>
-          </parameter>
-          <parameter name="start" transfer-ownership="none">
-            <type name="Gst.ClockTime" c:type="GstClockTime*"/>
-          </parameter>
-          <parameter name="end" transfer-ownership="none">
-            <type name="Gst.ClockTime" c:type="GstClockTime*"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <virtual-method name="start">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-      </virtual-method>
-      <virtual-method name="stop">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-      </virtual-method>
-      <virtual-method name="unlock">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-      </virtual-method>
-      <virtual-method name="event">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="event" transfer-ownership="none">
-            <type name="Gst.Event" c:type="GstEvent*"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <virtual-method name="preroll">
-        <return-value transfer-ownership="full">
-          <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
-        </return-value>
-        <parameters>
-          <parameter name="buffer" transfer-ownership="none">
-            <type name="Gst.Buffer" c:type="GstBuffer*"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <virtual-method name="render">
-        <return-value transfer-ownership="full">
-          <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
-        </return-value>
-        <parameters>
-          <parameter name="buffer" transfer-ownership="none">
-            <type name="Gst.Buffer" c:type="GstBuffer*"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <virtual-method name="async_play">
-        <return-value transfer-ownership="full">
-          <type name="Gst.StateChangeReturn" c:type="GstStateChangeReturn"/>
-        </return-value>
-      </virtual-method>
-      <virtual-method name="activate_pull">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="active" transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <virtual-method name="fixate">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="caps" transfer-ownership="none">
-            <type name="Gst.Caps" c:type="GstCaps*"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <virtual-method name="unlock_stop">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-      </virtual-method>
-      <virtual-method name="render_list">
-        <return-value transfer-ownership="full">
-          <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
-        </return-value>
-        <parameters>
-          <parameter name="buffer_list" transfer-ownership="none">
-            <type name="Gst.BufferList" c:type="GstBufferList*"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <method name="do_preroll"
-              c:identifier="gst_base_sink_do_preroll"
-              doc="If the @sink spawns its own thread for pulling buffers from upstream it
-should call this method after it has pulled a buffer. If the element needed
-to preroll, this function will perform the preroll and will then block
-until the element state is changed.
-This function should be called with the PREROLL_LOCK held.
-Since 0.10.22
-continue. Any other return value should be returned from the render vmethod.">
-        <return-value transfer-ownership="full">
-          <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
-        </return-value>
-        <parameters>
-          <parameter name="obj" transfer-ownership="none">
-            <type name="Gst.MiniObject" c:type="GstMiniObject*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="wait_preroll"
-              c:identifier="gst_base_sink_wait_preroll"
-              doc="If the #GstBaseSinkClass.render() method performs its own synchronisation
-against the clock it must unblock when going from PLAYING to the PAUSED state
-and call this method before continuing to render the remaining data.
-This function will block until a state change to PLAYING happens (in which
-case this function returns #GST_FLOW_OK) or the processing must be stopped due
-to a state change to READY or a FLUSH event (in which case this function
-returns #GST_FLOW_WRONG_STATE).
-This function should only be called with the PREROLL_LOCK held, like in the
-render function.
-continue. Any other return value should be returned from the render vmethod."
-              version="0.10.11">
-        <return-value transfer-ownership="full">
-          <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
-        </return-value>
-      </method>
-      <method name="set_sync"
-              c:identifier="gst_base_sink_set_sync"
-              doc="Configures @sink to synchronize on the clock or not. When
-possible. If @sync is TRUE, the timestamps of the incomming
-buffers will be used to schedule the exact render time of its
-contents."
-              version="0.10.4">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="sync" transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_sync"
-              c:identifier="gst_base_sink_get_sync"
-              doc="Checks if @sink is currently configured to synchronize against the
-clock."
-              version="0.10.4">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-      </method>
-      <method name="set_max_lateness"
-              c:identifier="gst_base_sink_set_max_lateness"
-              doc="Sets the new max lateness value to @max_lateness. This value is
-used to decide if a buffer should be dropped or not based on the
-buffer timestamp and the current clock time. A value of -1 means
-an unlimited time."
-              version="0.10.4">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="max_lateness" transfer-ownership="none">
-            <type name="int64" c:type="gint64"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_max_lateness"
-              c:identifier="gst_base_sink_get_max_lateness"
-              doc="Gets the max lateness value. See gst_base_sink_set_max_lateness for
-more details.
-before it is dropped and not rendered. A value of -1 means an
-unlimited time."
-              version="0.10.4">
-        <return-value transfer-ownership="none">
-          <type name="int64" c:type="gint64"/>
-        </return-value>
-      </method>
-      <method name="set_qos_enabled"
-              c:identifier="gst_base_sink_set_qos_enabled"
-              doc="Configures @sink to send Quality-of-Service events upstream."
-              version="0.10.5">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="enabled" transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="is_qos_enabled"
-              c:identifier="gst_base_sink_is_qos_enabled"
-              doc="Checks if @sink is currently configured to send Quality-of-Service events
-upstream."
-              version="0.10.5">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-      </method>
-      <method name="set_async_enabled"
-              c:identifier="gst_base_sink_set_async_enabled"
-              doc="Configures @sink to perform all state changes asynchronusly. When async is
-disabled, the sink will immediatly go to PAUSED instead of waiting for a
-preroll buffer. This feature is usefull if the sink does not synchronize
-against the clock or when it is dealing with sparse streams."
-              version="0.10.15">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="enabled" transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="is_async_enabled"
-              c:identifier="gst_base_sink_is_async_enabled"
-              doc="Checks if @sink is currently configured to perform asynchronous state
-changes to PAUSED.
-changes."
-              version="0.10.15">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-      </method>
-      <method name="set_ts_offset"
-              c:identifier="gst_base_sink_set_ts_offset"
-              doc="Adjust the synchronisation of @sink with @offset. A negative value will
-render buffers earlier than their timestamp. A positive value will delay
-rendering. This function can be used to fix playback of badly timestamped
-buffers."
-              version="0.10.15">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="offset" transfer-ownership="none">
-            <type name="Gst.ClockTimeDiff" c:type="GstClockTimeDiff"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_ts_offset"
-              c:identifier="gst_base_sink_get_ts_offset"
-              doc="Get the synchronisation offset of @sink."
-              version="0.10.15">
-        <return-value transfer-ownership="full">
-          <type name="Gst.ClockTimeDiff" c:type="GstClockTimeDiff"/>
-        </return-value>
-      </method>
-      <method name="get_last_buffer"
-              c:identifier="gst_base_sink_get_last_buffer"
-              doc="Get the last buffer that arrived in the sink and was used for preroll or for
-rendering. This property can be used to generate thumbnails.
-The #GstCaps on the buffer can be used to determine the type of the buffer.
-NULL when no buffer has arrived in the sink yet or when the sink is not in
-PAUSED or PLAYING."
-              version="0.10.15">
-        <return-value transfer-ownership="full"
-                      doc="after usage. This function returns">
-          <type name="Gst.Buffer" c:type="GstBuffer*"/>
-        </return-value>
-      </method>
-      <method name="query_latency"
-              c:identifier="gst_base_sink_query_latency"
-              doc="Query the sink for the latency parameters. The latency will be queried from
-the upstream elements. @live will be TRUE if @sink is configured to
-synchronize against the clock. @upstream_live will be TRUE if an upstream
-element is live.
-If both @live and @upstream_live are TRUE, the sink will want to compensate
-for the latency introduced by the upstream elements by setting the
-This function is mostly used by subclasses."
-              version="0.10.12">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="live" direction="out" transfer-ownership="full">
-            <type name="boolean" c:type="gboolean*"/>
-          </parameter>
-          <parameter name="upstream_live"
-                     direction="out"
-                     transfer-ownership="full">
-            <type name="boolean" c:type="gboolean*"/>
-          </parameter>
-          <parameter name="min_latency" transfer-ownership="none">
-            <type name="Gst.ClockTime" c:type="GstClockTime*"/>
-          </parameter>
-          <parameter name="max_latency" transfer-ownership="none">
-            <type name="Gst.ClockTime" c:type="GstClockTime*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_latency"
-              c:identifier="gst_base_sink_get_latency"
-              doc="Get the currently configured latency."
-              version="0.10.12">
-        <return-value transfer-ownership="full">
-          <type name="Gst.ClockTime" c:type="GstClockTime"/>
-        </return-value>
-      </method>
-      <method name="set_render_delay"
-              c:identifier="gst_base_sink_set_render_delay"
-              doc="Set the render delay in @sink to @delay. The render delay is the time
-between actual rendering of a buffer and its synchronisation time. Some
-devices might delay media rendering which can be compensated for with this
-function.
-After calling this function, this sink will report additional latency and
-other sinks will adjust their latency to delay the rendering of their media.
-This function is usually called by subclasses."
-              version="0.10.21">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="delay" transfer-ownership="none">
-            <type name="Gst.ClockTime" c:type="GstClockTime"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_render_delay"
-              c:identifier="gst_base_sink_get_render_delay"
-              doc="Get the render delay of @sink. see gst_base_sink_set_render_delay() for more
-information about the render delay."
-              version="0.10.21">
-        <return-value transfer-ownership="full">
-          <type name="Gst.ClockTime" c:type="GstClockTime"/>
-        </return-value>
-      </method>
-      <method name="set_blocksize"
-              c:identifier="gst_base_sink_set_blocksize"
-              doc="Set the number of bytes that the sink will pull when it is operating in pull
-mode."
-              version="0.10.22">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="blocksize" transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_blocksize"
-              c:identifier="gst_base_sink_get_blocksize"
-              doc="Get the number of bytes that the sink will pull when it is operating in pull
-mode."
-              version="0.10.22">
-        <return-value transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
-        </return-value>
-      </method>
-      <method name="wait_clock"
-              c:identifier="gst_base_sink_wait_clock"
-              doc="This function will block until @time is reached. It is usually called by
-subclasses that use their own internal synchronisation.
-If @time is not valid, no sycnhronisation is done and #GST_CLOCK_BADTIME is
-returned. Likewise, if synchronisation is disabled in the element or there
-is no clock, no synchronisation is done and #GST_CLOCK_BADTIME is returned.
-This function should only be called with the PREROLL_LOCK held, like when
-receiving an EOS event in the #GstBaseSinkClass.event() vmethod or when
-receiving a buffer in
-the #GstBaseSinkClass.render() vmethod.
-The @time argument should be the running_time of when this method should
-return and is not adjusted with any latency or offset configured in the
-sink.
-Since 0.10.20">
-        <return-value transfer-ownership="full">
-          <type name="Gst.ClockReturn" c:type="GstClockReturn"/>
-        </return-value>
-        <parameters>
-          <parameter name="time" transfer-ownership="none">
-            <type name="Gst.ClockTime" c:type="GstClockTime"/>
-          </parameter>
-          <parameter name="jitter" transfer-ownership="none">
-            <type name="Gst.ClockTimeDiff" c:type="GstClockTimeDiff*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="wait_eos"
-              c:identifier="gst_base_sink_wait_eos"
-              doc="This function will block until @time is reached. It is usually called by
-subclasses that use their own internal synchronisation but want to let the
-EOS be handled by the base class.
-This function should only be called with the PREROLL_LOCK held, like when
-receiving an EOS event in the ::event vmethod.
-The @time argument should be the running_time of when the EOS should happen
-and will be adjusted with any latency and offset configured in the sink.
-Since 0.10.15">
-        <return-value transfer-ownership="full">
-          <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
-        </return-value>
-        <parameters>
-          <parameter name="time" transfer-ownership="none">
-            <type name="Gst.ClockTime" c:type="GstClockTime"/>
-          </parameter>
-          <parameter name="jitter" transfer-ownership="none">
-            <type name="Gst.ClockTimeDiff" c:type="GstClockTimeDiff*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <property name="async" writable="1">
-        <type name="boolean" c:type="gboolean"/>
-      </property>
-      <property name="blocksize" writable="1">
-        <type name="uint" c:type="guint"/>
-      </property>
-      <property name="last-buffer">
-        <type name="Gst.Buffer" c:type="GstBuffer"/>
-      </property>
-      <property name="max-lateness" writable="1">
-        <type name="int64" c:type="gint64"/>
-      </property>
-      <property name="preroll-queue-len" writable="1" construct="1">
-        <type name="uint" c:type="guint"/>
-      </property>
-      <property name="qos" writable="1">
-        <type name="boolean" c:type="gboolean"/>
-      </property>
-      <property name="render-delay" writable="1">
-        <type name="uint64" c:type="guint64"/>
-      </property>
-      <property name="sync" writable="1">
-        <type name="boolean" c:type="gboolean"/>
-      </property>
-      <property name="ts-offset" writable="1">
-        <type name="int64" c:type="gint64"/>
-      </property>
-      <field name="element">
-        <type name="Gst.Element" c:type="GstElement"/>
-      </field>
-      <field name="sinkpad">
-        <type name="Gst.Pad" c:type="GstPad*"/>
-      </field>
-      <field name="pad_mode">
-        <type name="Gst.ActivateMode" c:type="GstActivateMode"/>
-      </field>
-      <field name="offset">
-        <type name="uint64" c:type="guint64"/>
-      </field>
-      <field name="can_activate_pull">
-        <type name="boolean" c:type="gboolean"/>
-      </field>
-      <field name="can_activate_push">
-        <type name="boolean" c:type="gboolean"/>
-      </field>
-      <field name="preroll_queue">
-        <type name="GLib.Queue" c:type="GQueue*"/>
-      </field>
-      <field name="preroll_queue_max_len">
-        <type name="int" c:type="gint"/>
-      </field>
-      <field name="preroll_queued">
-        <type name="int" c:type="gint"/>
-      </field>
-      <field name="buffers_queued">
-        <type name="int" c:type="gint"/>
-      </field>
-      <field name="events_queued">
-        <type name="int" c:type="gint"/>
-      </field>
-      <field name="eos">
-        <type name="boolean" c:type="gboolean"/>
-      </field>
-      <field name="eos_queued">
-        <type name="boolean" c:type="gboolean"/>
-      </field>
-      <field name="need_preroll">
-        <type name="boolean" c:type="gboolean"/>
-      </field>
-      <field name="have_preroll">
-        <type name="boolean" c:type="gboolean"/>
-      </field>
-      <field name="playing_async">
-        <type name="boolean" c:type="gboolean"/>
-      </field>
-      <field name="have_newsegment">
-        <type name="boolean" c:type="gboolean"/>
-      </field>
-      <field name="segment">
-        <type name="Gst.Segment" c:type="GstSegment"/>
-      </field>
-      <field name="clock_id">
-        <type name="Gst.ClockID" c:type="GstClockID"/>
-      </field>
-      <field name="end_time">
-        <type name="Gst.ClockTime" c:type="GstClockTime"/>
-      </field>
-      <field name="sync">
-        <type name="boolean" c:type="gboolean"/>
-      </field>
-      <field name="flushing">
-        <type name="boolean" c:type="gboolean"/>
-      </field>
-      <union name="abidata" c:type="abidata">
-        <record name="ABI" c:type="ABI">
-          <field name="clip_segment" writable="1">
-            <type name="Gst.Segment" c:type="GstSegment*"/>
-          </field>
-          <field name="max_lateness" writable="1">
-            <type name="int64" c:type="gint64"/>
-          </field>
-          <field name="running" writable="1">
-            <type name="boolean" c:type="gboolean"/>
-          </field>
-        </record>
-        <field name="_gst_reserved" writable="1">
-          <array zero-terminated="0" c:type="gpointer" fixed-size="19">
-            <type name="any"/>
-          </array>
-        </field>
-      </union>
-      <field name="priv">
-        <type name="BaseSinkPrivate" c:type="GstBaseSinkPrivate*"/>
-      </field>
-    </class>
-    <record name="BaseSinkClass"
-            c:type="GstBaseSinkClass"
-            glib:is-gtype-struct-for="BaseSink"
-            doc="the passed buffer to the clock
-unblock any blocked function ASAP
-any state they set during unlock(), such as clearing command queues.
-correct moment if the #GstBaseSink has been set to sync to the clock.
-special processing when changing to the PLAYING state asynchronously.
-Called with the OBJECT_LOCK held.
-alternate method of spawning a thread to drive the pipeline in pull mode.
-Should start or stop the pulling thread, depending on the value of the
-&quot;active&quot; argument. Called after actually activating the sink pad in pull
-mode. The default implementation starts a task on the sink pad.
-gst_pad_fixate_caps() being called on the sink pad. Implement if you have
-ideas about what should be the default values for the caps you support.
-Subclasses can override any of the available virtual methods or not, as
-needed. At the minimum, the @render method should be overridden to
-output/present buffers.">
-      <field name="parent_class">
-        <type name="Gst.ElementClass" c:type="GstElementClass"/>
-      </field>
-      <field name="get_caps">
-        <callback name="get_caps" c:type="get_caps">
-          <return-value transfer-ownership="full">
-            <type name="Gst.Caps" c:type="GstCaps*"/>
-          </return-value>
-          <parameters>
-            <parameter name="sink" transfer-ownership="none">
-              <type name="BaseSink" c:type="GstBaseSink*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="set_caps">
-        <callback name="set_caps" c:type="set_caps">
-          <return-value transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </return-value>
-          <parameters>
-            <parameter name="sink" transfer-ownership="none">
-              <type name="BaseSink" c:type="GstBaseSink*"/>
-            </parameter>
-            <parameter name="caps" transfer-ownership="none">
-              <type name="Gst.Caps" c:type="GstCaps*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="buffer_alloc">
-        <callback name="buffer_alloc" c:type="buffer_alloc">
-          <return-value transfer-ownership="full">
-            <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
-          </return-value>
-          <parameters>
-            <parameter name="sink" transfer-ownership="none">
-              <type name="BaseSink" c:type="GstBaseSink*"/>
-            </parameter>
-            <parameter name="offset" transfer-ownership="none">
-              <type name="uint64" c:type="guint64"/>
-            </parameter>
-            <parameter name="size" transfer-ownership="none">
-              <type name="uint" c:type="guint"/>
-            </parameter>
-            <parameter name="caps" transfer-ownership="none">
-              <type name="Gst.Caps" c:type="GstCaps*"/>
-            </parameter>
-            <parameter name="buf" transfer-ownership="none">
-              <type name="Gst.Buffer" c:type="GstBuffer**"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="get_times">
-        <callback name="get_times" c:type="get_times">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="sink" transfer-ownership="none">
-              <type name="BaseSink" c:type="GstBaseSink*"/>
-            </parameter>
-            <parameter name="buffer" transfer-ownership="none">
-              <type name="Gst.Buffer" c:type="GstBuffer*"/>
-            </parameter>
-            <parameter name="start" transfer-ownership="none">
-              <type name="Gst.ClockTime" c:type="GstClockTime*"/>
-            </parameter>
-            <parameter name="end" transfer-ownership="none">
-              <type name="Gst.ClockTime" c:type="GstClockTime*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="start">
-        <callback name="start" c:type="start">
-          <return-value transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </return-value>
-          <parameters>
-            <parameter name="sink" transfer-ownership="none">
-              <type name="BaseSink" c:type="GstBaseSink*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="stop">
-        <callback name="stop" c:type="stop">
-          <return-value transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </return-value>
-          <parameters>
-            <parameter name="sink" transfer-ownership="none">
-              <type name="BaseSink" c:type="GstBaseSink*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="unlock">
-        <callback name="unlock" c:type="unlock">
-          <return-value transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </return-value>
-          <parameters>
-            <parameter name="sink" transfer-ownership="none">
-              <type name="BaseSink" c:type="GstBaseSink*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="event">
-        <callback name="event" c:type="event">
-          <return-value transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </return-value>
-          <parameters>
-            <parameter name="sink" transfer-ownership="none">
-              <type name="BaseSink" c:type="GstBaseSink*"/>
-            </parameter>
-            <parameter name="event" transfer-ownership="none">
-              <type name="Gst.Event" c:type="GstEvent*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="preroll">
-        <callback name="preroll" c:type="preroll">
-          <return-value transfer-ownership="full">
-            <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
-          </return-value>
-          <parameters>
-            <parameter name="sink" transfer-ownership="none">
-              <type name="BaseSink" c:type="GstBaseSink*"/>
-            </parameter>
-            <parameter name="buffer" transfer-ownership="none">
-              <type name="Gst.Buffer" c:type="GstBuffer*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="render">
-        <callback name="render" c:type="render">
-          <return-value transfer-ownership="full">
-            <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
-          </return-value>
-          <parameters>
-            <parameter name="sink" transfer-ownership="none">
-              <type name="BaseSink" c:type="GstBaseSink*"/>
-            </parameter>
-            <parameter name="buffer" transfer-ownership="none">
-              <type name="Gst.Buffer" c:type="GstBuffer*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="async_play">
-        <callback name="async_play" c:type="async_play">
-          <return-value transfer-ownership="full">
-            <type name="Gst.StateChangeReturn" c:type="GstStateChangeReturn"/>
-          </return-value>
-          <parameters>
-            <parameter name="sink" transfer-ownership="none">
-              <type name="BaseSink" c:type="GstBaseSink*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="activate_pull">
-        <callback name="activate_pull" c:type="activate_pull">
-          <return-value transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </return-value>
-          <parameters>
-            <parameter name="sink" transfer-ownership="none">
-              <type name="BaseSink" c:type="GstBaseSink*"/>
-            </parameter>
-            <parameter name="active" transfer-ownership="none">
-              <type name="boolean" c:type="gboolean"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="fixate">
-        <callback name="fixate" c:type="fixate">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="sink" transfer-ownership="none">
-              <type name="BaseSink" c:type="GstBaseSink*"/>
-            </parameter>
-            <parameter name="caps" transfer-ownership="none">
-              <type name="Gst.Caps" c:type="GstCaps*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="unlock_stop">
-        <callback name="unlock_stop" c:type="unlock_stop">
-          <return-value transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </return-value>
-          <parameters>
-            <parameter name="sink" transfer-ownership="none">
-              <type name="BaseSink" c:type="GstBaseSink*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="render_list">
-        <callback name="render_list" c:type="render_list">
-          <return-value transfer-ownership="full">
-            <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
-          </return-value>
-          <parameters>
-            <parameter name="sink" transfer-ownership="none">
-              <type name="BaseSink" c:type="GstBaseSink*"/>
-            </parameter>
-            <parameter name="buffer_list" transfer-ownership="none">
-              <type name="Gst.BufferList" c:type="GstBufferList*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="_gst_reserved">
-        <array zero-terminated="0" c:type="gpointer" fixed-size="15">
-          <type name="any"/>
-        </array>
-      </field>
-    </record>
-    <record name="BaseSinkPrivate" c:type="GstBaseSinkPrivate">
-    </record>
-    <class name="BaseSrc"
-           c:type="GstBaseSrc"
-           doc="The opaque #GstBaseSrc data structure."
-           parent="Gst.Element"
-           abstract="1"
-           glib:type-name="GstBaseSrc"
-           glib:get-type="gst_base_src_get_type"
-           glib:type-struct="BaseSrcClass">
-      <virtual-method name="get_caps">
-        <return-value transfer-ownership="full">
-          <type name="Gst.Caps" c:type="GstCaps*"/>
-        </return-value>
-      </virtual-method>
-      <virtual-method name="set_caps">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="caps" transfer-ownership="none">
-            <type name="Gst.Caps" c:type="GstCaps*"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <virtual-method name="negotiate">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-      </virtual-method>
-      <virtual-method name="newsegment">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-      </virtual-method>
-      <virtual-method name="start">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-      </virtual-method>
-      <virtual-method name="stop">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-      </virtual-method>
-      <virtual-method name="get_times">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="buffer" transfer-ownership="none">
-            <type name="Gst.Buffer" c:type="GstBuffer*"/>
-          </parameter>
-          <parameter name="start" transfer-ownership="none">
-            <type name="Gst.ClockTime" c:type="GstClockTime*"/>
-          </parameter>
-          <parameter name="end" transfer-ownership="none">
-            <type name="Gst.ClockTime" c:type="GstClockTime*"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <virtual-method name="get_size">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="size" direction="out" transfer-ownership="full">
-            <type name="uint64" c:type="guint64*"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <virtual-method name="is_seekable">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-      </virtual-method>
-      <virtual-method name="unlock">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-      </virtual-method>
-      <virtual-method name="event">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="event" transfer-ownership="none">
-            <type name="Gst.Event" c:type="GstEvent*"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <virtual-method name="create">
-        <return-value transfer-ownership="full">
-          <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
-        </return-value>
-        <parameters>
-          <parameter name="offset" transfer-ownership="none">
-            <type name="uint64" c:type="guint64"/>
-          </parameter>
-          <parameter name="size" transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
-          </parameter>
-          <parameter name="buf" transfer-ownership="none">
-            <type name="Gst.Buffer" c:type="GstBuffer**"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <virtual-method name="do_seek">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="segment" transfer-ownership="none">
-            <type name="Gst.Segment" c:type="GstSegment*"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <virtual-method name="query">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="query" transfer-ownership="none">
-            <type name="Gst.Query" c:type="GstQuery*"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <virtual-method name="check_get_range">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-      </virtual-method>
-      <virtual-method name="fixate">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="caps" transfer-ownership="none">
-            <type name="Gst.Caps" c:type="GstCaps*"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <virtual-method name="unlock_stop">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-      </virtual-method>
-      <virtual-method name="prepare_seek_segment">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="seek" transfer-ownership="none">
-            <type name="Gst.Event" c:type="GstEvent*"/>
-          </parameter>
-          <parameter name="segment" transfer-ownership="none">
-            <type name="Gst.Segment" c:type="GstSegment*"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <method name="wait_playing"
-              c:identifier="gst_base_src_wait_playing"
-              doc="If the #GstBaseSrcClass.create() method performs its own synchronisation
-against the clock it must unblock when going from PLAYING to the PAUSED state
-and call this method before continuing to produce the remaining data.
-This function will block until a state change to PLAYING happens (in which
-case this function returns #GST_FLOW_OK) or the processing must be stopped due
-to a state change to READY or a FLUSH event (in which case this function
-returns #GST_FLOW_WRONG_STATE).
-continue. Any other return value should be returned from the create vmethod."
-              version="0.10.12">
-        <return-value transfer-ownership="full">
-          <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
-        </return-value>
-      </method>
-      <method name="set_live"
-              c:identifier="gst_base_src_set_live"
-              doc="If the element listens to a live source, @live should
-be set to %TRUE.
-A live source will not produce data in the PAUSED state and
-will therefore not be able to participate in the PREROLL phase
-of a pipeline. To signal this fact to the application and the
-pipeline, the state change return value of the live source will
-be GST_STATE_CHANGE_NO_PREROLL.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="live" transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="is_live"
-              c:identifier="gst_base_src_is_live"
-              doc="Check if an element is in live mode.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-      </method>
-      <method name="set_format"
-              c:identifier="gst_base_src_set_format"
-              doc="Sets the default format of the source. This will be the format used
-for sending NEW_SEGMENT events and for performing seeks.
-If a format of GST_FORMAT_BYTES is set, the element will be able to
-operate in pull mode if the #GstBaseSrc.is_seekable() returns TRUE.
-This function must only be called in states &lt; %GST_STATE_PAUSED."
-              version="0.10.1">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="format" transfer-ownership="none">
-            <type name="Gst.Format" c:type="GstFormat"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="query_latency"
-              c:identifier="gst_base_src_query_latency"
-              doc="Query the source for the latency parameters. @live will be TRUE when @src is
-configured as a live source. @min_latency will be set to the difference
-between the running time and the timestamp of the first buffer.
-This function is mostly used by subclasses."
-              version="0.10.13">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="live" direction="out" transfer-ownership="full">
-            <type name="boolean" c:type="gboolean*"/>
-          </parameter>
-          <parameter name="min_latency" transfer-ownership="none">
-            <type name="Gst.ClockTime" c:type="GstClockTime*"/>
-          </parameter>
-          <parameter name="max_latency" transfer-ownership="none">
-            <type name="Gst.ClockTime" c:type="GstClockTime*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_blocksize"
-              c:identifier="gst_base_src_set_blocksize"
-              doc="Set the number of bytes that @src will push out with each buffer. When"
-              version="0.10.22">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="blocksize" transfer-ownership="none">
-            <type name="ulong" c:type="gulong"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_blocksize"
-              c:identifier="gst_base_src_get_blocksize"
-              doc="Get the number of bytes that @src will push out with each buffer."
-              version="0.10.22">
-        <return-value transfer-ownership="none">
-          <type name="ulong" c:type="gulong"/>
-        </return-value>
-      </method>
-      <method name="set_do_timestamp"
-              c:identifier="gst_base_src_set_do_timestamp"
-              doc="Configure @src to automatically timestamp outgoing buffers based on the
-current running_time of the pipeline. This property is mostly useful for live
-sources."
-              version="0.10.15">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="timestamp" transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_do_timestamp"
-              c:identifier="gst_base_src_get_do_timestamp"
-              doc="Query if @src timestamps outgoing buffers based on the current running_time."
-              version="0.10.15">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-      </method>
-      <method name="new_seamless_segment"
-              c:identifier="gst_base_src_new_seamless_segment"
-              doc="Prepare a new seamless segment for emission downstream. This function must
-only be called by derived sub-classes, and only from the create() function,
-as the stream-lock needs to be held.
-The format for the new segment will be the current format of the source, as
-configured with gst_base_src_set_format()"
-              version="0.10.26">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="start" transfer-ownership="none">
-            <type name="int64" c:type="gint64"/>
-          </parameter>
-          <parameter name="stop" transfer-ownership="none">
-            <type name="int64" c:type="gint64"/>
-          </parameter>
-          <parameter name="position" transfer-ownership="none">
-            <type name="int64" c:type="gint64"/>
-          </parameter>
-        </parameters>
-      </method>
-      <property name="blocksize" writable="1">
-        <type name="ulong" c:type="gulong"/>
-      </property>
-      <property name="do-timestamp" writable="1">
-        <type name="boolean" c:type="gboolean"/>
-      </property>
-      <property name="num-buffers" writable="1">
-        <type name="int" c:type="gint"/>
-      </property>
-      <property name="typefind" writable="1">
-        <type name="boolean" c:type="gboolean"/>
-      </property>
-      <field name="element">
-        <type name="Gst.Element" c:type="GstElement"/>
-      </field>
-      <field name="srcpad">
-        <type name="Gst.Pad" c:type="GstPad*"/>
-      </field>
-      <field name="live_lock">
-        <type name="GLib.Mutex" c:type="GMutex*"/>
-      </field>
-      <field name="live_cond">
-        <type name="GLib.Cond" c:type="GCond*"/>
-      </field>
-      <field name="is_live">
-        <type name="boolean" c:type="gboolean"/>
-      </field>
-      <field name="live_running">
-        <type name="boolean" c:type="gboolean"/>
-      </field>
-      <field name="blocksize">
-        <type name="int" c:type="gint"/>
-      </field>
-      <field name="can_activate_push">
-        <type name="boolean" c:type="gboolean"/>
-      </field>
-      <field name="pad_mode">
-        <type name="Gst.ActivateMode" c:type="GstActivateMode"/>
-      </field>
-      <field name="seekable">
-        <type name="boolean" c:type="gboolean"/>
-      </field>
-      <field name="random_access">
-        <type name="boolean" c:type="gboolean"/>
-      </field>
-      <field name="clock_id">
-        <type name="Gst.ClockID" c:type="GstClockID"/>
-      </field>
-      <field name="end_time">
-        <type name="Gst.ClockTime" c:type="GstClockTime"/>
-      </field>
-      <field name="segment">
-        <type name="Gst.Segment" c:type="GstSegment"/>
-      </field>
-      <field name="need_newsegment">
-        <type name="boolean" c:type="gboolean"/>
-      </field>
-      <field name="offset">
-        <type name="uint64" c:type="guint64"/>
-      </field>
-      <field name="size">
-        <type name="uint64" c:type="guint64"/>
-      </field>
-      <field name="num_buffers">
-        <type name="int" c:type="gint"/>
-      </field>
-      <field name="num_buffers_left">
-        <type name="int" c:type="gint"/>
-      </field>
-      <union name="data" c:type="data">
-        <record name="ABI" c:type="ABI">
-          <field name="typefind" writable="1">
-            <type name="boolean" c:type="gboolean"/>
-          </field>
-          <field name="running" writable="1">
-            <type name="boolean" c:type="gboolean"/>
-          </field>
-          <field name="pending_seek" writable="1">
-            <type name="Gst.Event" c:type="GstEvent*"/>
-          </field>
-        </record>
-        <field name="_gst_reserved" writable="1">
-          <array zero-terminated="0" c:type="gpointer" fixed-size="19">
-            <type name="any"/>
-          </array>
-        </field>
-      </union>
-      <field name="priv">
-        <type name="BaseSrcPrivate" c:type="GstBaseSrcPrivate*"/>
-      </field>
-    </class>
-    <record name="BaseSrcClass"
-            c:type="GstBaseSrcClass"
-            glib:is-gtype-struct-for="BaseSrc"
-            doc="to produce data.
-should be pushed out. The base class will sync on the clock using
-these times.
-unblock any blocked function ASAP
-any state they set during unlock(), such as clearing command queues.
-do_seek vmethod for executing a seek request. Sub-classes should override
-this if they support seeking in formats other than the configured native
-format. By default, it tries to convert the seek arguments to the
-configured native format and prepare a segment in that format.
-operation if it were to be opened now. This vfunc is optional, but
-should be implemented if possible to avoid unnecessary start/stop
-cycles. The default implementation will open and close the resource
-to find out whether get_range is supported, and that is usually
-undesirable.
-setting a fixate function on the source pad.
-Subclasses can override any of the available virtual methods or not, as
-needed. At the minimum, the @create method should be overridden to produce
-buffers."
-            version="0.10.13">
-      <field name="parent_class">
-        <type name="Gst.ElementClass" c:type="GstElementClass"/>
-      </field>
-      <field name="get_caps">
-        <callback name="get_caps" c:type="get_caps">
-          <return-value transfer-ownership="full">
-            <type name="Gst.Caps" c:type="GstCaps*"/>
-          </return-value>
-          <parameters>
-            <parameter name="src" transfer-ownership="none">
-              <type name="BaseSrc" c:type="GstBaseSrc*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="set_caps">
-        <callback name="set_caps" c:type="set_caps">
-          <return-value transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </return-value>
-          <parameters>
-            <parameter name="src" transfer-ownership="none">
-              <type name="BaseSrc" c:type="GstBaseSrc*"/>
-            </parameter>
-            <parameter name="caps" transfer-ownership="none">
-              <type name="Gst.Caps" c:type="GstCaps*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="negotiate">
-        <callback name="negotiate" c:type="negotiate">
-          <return-value transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </return-value>
-          <parameters>
-            <parameter name="src" transfer-ownership="none">
-              <type name="BaseSrc" c:type="GstBaseSrc*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="newsegment">
-        <callback name="newsegment" c:type="newsegment">
-          <return-value transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </return-value>
-          <parameters>
-            <parameter name="src" transfer-ownership="none">
-              <type name="BaseSrc" c:type="GstBaseSrc*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="start">
-        <callback name="start" c:type="start">
-          <return-value transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </return-value>
-          <parameters>
-            <parameter name="src" transfer-ownership="none">
-              <type name="BaseSrc" c:type="GstBaseSrc*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="stop">
-        <callback name="stop" c:type="stop">
-          <return-value transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </return-value>
-          <parameters>
-            <parameter name="src" transfer-ownership="none">
-              <type name="BaseSrc" c:type="GstBaseSrc*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="get_times">
-        <callback name="get_times" c:type="get_times">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="src" transfer-ownership="none">
-              <type name="BaseSrc" c:type="GstBaseSrc*"/>
-            </parameter>
-            <parameter name="buffer" transfer-ownership="none">
-              <type name="Gst.Buffer" c:type="GstBuffer*"/>
-            </parameter>
-            <parameter name="start" transfer-ownership="none">
-              <type name="Gst.ClockTime" c:type="GstClockTime*"/>
-            </parameter>
-            <parameter name="end" transfer-ownership="none">
-              <type name="Gst.ClockTime" c:type="GstClockTime*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="get_size">
-        <callback name="get_size" c:type="get_size">
-          <return-value transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </return-value>
-          <parameters>
-            <parameter name="src" transfer-ownership="none">
-              <type name="BaseSrc" c:type="GstBaseSrc*"/>
-            </parameter>
-            <parameter name="size" direction="out" transfer-ownership="full">
-              <type name="uint64" c:type="guint64*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="is_seekable">
-        <callback name="is_seekable" c:type="is_seekable">
-          <return-value transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </return-value>
-          <parameters>
-            <parameter name="src" transfer-ownership="none">
-              <type name="BaseSrc" c:type="GstBaseSrc*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="unlock">
-        <callback name="unlock" c:type="unlock">
-          <return-value transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </return-value>
-          <parameters>
-            <parameter name="src" transfer-ownership="none">
-              <type name="BaseSrc" c:type="GstBaseSrc*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="event">
-        <callback name="event" c:type="event">
-          <return-value transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </return-value>
-          <parameters>
-            <parameter name="src" transfer-ownership="none">
-              <type name="BaseSrc" c:type="GstBaseSrc*"/>
-            </parameter>
-            <parameter name="event" transfer-ownership="none">
-              <type name="Gst.Event" c:type="GstEvent*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="create">
-        <callback name="create" c:type="create">
-          <return-value transfer-ownership="full">
-            <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
-          </return-value>
-          <parameters>
-            <parameter name="src" transfer-ownership="none">
-              <type name="BaseSrc" c:type="GstBaseSrc*"/>
-            </parameter>
-            <parameter name="offset" transfer-ownership="none">
-              <type name="uint64" c:type="guint64"/>
-            </parameter>
-            <parameter name="size" transfer-ownership="none">
-              <type name="uint" c:type="guint"/>
-            </parameter>
-            <parameter name="buf" transfer-ownership="none">
-              <type name="Gst.Buffer" c:type="GstBuffer**"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="do_seek">
-        <callback name="do_seek" c:type="do_seek">
-          <return-value transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </return-value>
-          <parameters>
-            <parameter name="src" transfer-ownership="none">
-              <type name="BaseSrc" c:type="GstBaseSrc*"/>
-            </parameter>
-            <parameter name="segment" transfer-ownership="none">
-              <type name="Gst.Segment" c:type="GstSegment*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="query">
-        <callback name="query" c:type="query">
-          <return-value transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </return-value>
-          <parameters>
-            <parameter name="src" transfer-ownership="none">
-              <type name="BaseSrc" c:type="GstBaseSrc*"/>
-            </parameter>
-            <parameter name="query" transfer-ownership="none">
-              <type name="Gst.Query" c:type="GstQuery*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="check_get_range">
-        <callback name="check_get_range" c:type="check_get_range">
-          <return-value transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </return-value>
-          <parameters>
-            <parameter name="src" transfer-ownership="none">
-              <type name="BaseSrc" c:type="GstBaseSrc*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="fixate">
-        <callback name="fixate" c:type="fixate">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="src" transfer-ownership="none">
-              <type name="BaseSrc" c:type="GstBaseSrc*"/>
-            </parameter>
-            <parameter name="caps" transfer-ownership="none">
-              <type name="Gst.Caps" c:type="GstCaps*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="unlock_stop">
-        <callback name="unlock_stop" c:type="unlock_stop">
-          <return-value transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </return-value>
-          <parameters>
-            <parameter name="src" transfer-ownership="none">
-              <type name="BaseSrc" c:type="GstBaseSrc*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="prepare_seek_segment">
-        <callback name="prepare_seek_segment" c:type="prepare_seek_segment">
-          <return-value transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </return-value>
-          <parameters>
-            <parameter name="src" transfer-ownership="none">
-              <type name="BaseSrc" c:type="GstBaseSrc*"/>
-            </parameter>
-            <parameter name="seek" transfer-ownership="none">
-              <type name="Gst.Event" c:type="GstEvent*"/>
-            </parameter>
-            <parameter name="segment" transfer-ownership="none">
-              <type name="Gst.Segment" c:type="GstSegment*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="_gst_reserved">
-        <array zero-terminated="0" c:type="gpointer" fixed-size="14">
-          <type name="any"/>
-        </array>
-      </field>
-    </record>
-    <bitfield name="BaseSrcFlags"
-              doc="The #GstElement flags that a basesrc element may have."
-              c:type="GstBaseSrcFlags">
-      <member name="started"
-              value="1048576"
-              c:identifier="GST_BASE_SRC_STARTED"/>
-      <member name="flag_last"
-              value="4194304"
-              c:identifier="GST_BASE_SRC_FLAG_LAST"/>
-    </bitfield>
-    <record name="BaseSrcPrivate" c:type="GstBaseSrcPrivate">
-    </record>
-    <class name="BaseTransform"
-           c:type="GstBaseTransform"
-           doc="The opaque #GstBaseTransform data structure."
-           parent="Gst.Element"
-           abstract="1"
-           glib:type-name="GstBaseTransform"
-           glib:get-type="gst_base_transform_get_type"
-           glib:type-struct="BaseTransformClass">
-      <virtual-method name="transform_caps">
-        <return-value transfer-ownership="full">
-          <type name="Gst.Caps" c:type="GstCaps*"/>
-        </return-value>
-        <parameters>
-          <parameter name="direction" transfer-ownership="none">
-            <type name="Gst.PadDirection" c:type="GstPadDirection"/>
-          </parameter>
-          <parameter name="caps" transfer-ownership="none">
-            <type name="Gst.Caps" c:type="GstCaps*"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <virtual-method name="fixate_caps">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="direction" transfer-ownership="none">
-            <type name="Gst.PadDirection" c:type="GstPadDirection"/>
-          </parameter>
-          <parameter name="caps" transfer-ownership="none">
-            <type name="Gst.Caps" c:type="GstCaps*"/>
-          </parameter>
-          <parameter name="othercaps" transfer-ownership="none">
-            <type name="Gst.Caps" c:type="GstCaps*"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <virtual-method name="transform_size">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="direction" transfer-ownership="none">
-            <type name="Gst.PadDirection" c:type="GstPadDirection"/>
-          </parameter>
-          <parameter name="caps" transfer-ownership="none">
-            <type name="Gst.Caps" c:type="GstCaps*"/>
-          </parameter>
-          <parameter name="size" transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
-          </parameter>
-          <parameter name="othercaps" transfer-ownership="none">
-            <type name="Gst.Caps" c:type="GstCaps*"/>
-          </parameter>
-          <parameter name="othersize"
-                     direction="out"
-                     transfer-ownership="full">
-            <type name="uint" c:type="guint*"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <virtual-method name="get_unit_size">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="caps" transfer-ownership="none">
-            <type name="Gst.Caps" c:type="GstCaps*"/>
-          </parameter>
-          <parameter name="size" direction="out" transfer-ownership="full">
-            <type name="uint" c:type="guint*"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <virtual-method name="set_caps">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="incaps" transfer-ownership="none">
-            <type name="Gst.Caps" c:type="GstCaps*"/>
-          </parameter>
-          <parameter name="outcaps" transfer-ownership="none">
-            <type name="Gst.Caps" c:type="GstCaps*"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <virtual-method name="start">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-      </virtual-method>
-      <virtual-method name="stop">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-      </virtual-method>
-      <virtual-method name="event">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="event" transfer-ownership="none">
-            <type name="Gst.Event" c:type="GstEvent*"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <virtual-method name="transform">
-        <return-value transfer-ownership="full">
-          <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
-        </return-value>
-        <parameters>
-          <parameter name="inbuf" transfer-ownership="none">
-            <type name="Gst.Buffer" c:type="GstBuffer*"/>
-          </parameter>
-          <parameter name="outbuf" transfer-ownership="none">
-            <type name="Gst.Buffer" c:type="GstBuffer*"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <virtual-method name="transform_ip">
-        <return-value transfer-ownership="full">
-          <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
-        </return-value>
-        <parameters>
-          <parameter name="buf" transfer-ownership="none">
-            <type name="Gst.Buffer" c:type="GstBuffer*"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <virtual-method name="prepare_output_buffer">
-        <return-value transfer-ownership="full">
-          <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
-        </return-value>
-        <parameters>
-          <parameter name="input" transfer-ownership="none">
-            <type name="Gst.Buffer" c:type="GstBuffer*"/>
-          </parameter>
-          <parameter name="size" transfer-ownership="none">
-            <type name="int" c:type="gint"/>
-          </parameter>
-          <parameter name="caps" transfer-ownership="none">
-            <type name="Gst.Caps" c:type="GstCaps*"/>
-          </parameter>
-          <parameter name="buf" transfer-ownership="none">
-            <type name="Gst.Buffer" c:type="GstBuffer**"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <virtual-method name="src_event">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="event" transfer-ownership="none">
-            <type name="Gst.Event" c:type="GstEvent*"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <virtual-method name="before_transform">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="buffer" transfer-ownership="none">
-            <type name="Gst.Buffer" c:type="GstBuffer*"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <method name="set_passthrough"
-              c:identifier="gst_base_transform_set_passthrough"
-              doc="Set passthrough mode for this filter by default. This is mostly
-useful for filters that do not care about negotiation.
-Always TRUE for filters which don&apos;t implement either a transform
-or transform_ip method.
-MT safe.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="passthrough" transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="is_passthrough"
-              c:identifier="gst_base_transform_is_passthrough"
-              doc="See if @trans is configured as a passthrough transform.
-MT safe.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-      </method>
-      <method name="set_in_place"
-              c:identifier="gst_base_transform_set_in_place"
-              doc="on in_place buffers.
-Determines whether a non-writable buffer will be copied before passing
-to the transform_ip function.
-&lt;itemizedlist&gt;
-&lt;listitem&gt;Always TRUE if no transform function is implemented.&lt;/listitem&gt;
-&lt;listitem&gt;Always FALSE if ONLY transform function is implemented.&lt;/listitem&gt;
-&lt;/itemizedlist&gt;
-MT safe.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="in_place" transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="is_in_place"
-              c:identifier="gst_base_transform_is_in_place"
-              doc="See if @trans is configured as a in_place transform.
-MT safe.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-      </method>
-      <method name="update_qos"
-              c:identifier="gst_base_transform_update_qos"
-              doc="running_time.
-Set the QoS parameters in the transform. This function is called internally
-when a QOS event is received but subclasses can provide custom information
-when needed.
-MT safe."
-              version="0.10.5">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="proportion" transfer-ownership="none">
-            <type name="double" c:type="gdouble"/>
-          </parameter>
-          <parameter name="diff" transfer-ownership="none">
-            <type name="Gst.ClockTimeDiff" c:type="GstClockTimeDiff"/>
-          </parameter>
-          <parameter name="timestamp" transfer-ownership="none">
-            <type name="Gst.ClockTime" c:type="GstClockTime"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_qos_enabled"
-              c:identifier="gst_base_transform_set_qos_enabled"
-              doc="Enable or disable QoS handling in the transform.
-MT safe."
-              version="0.10.5">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="enabled" transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="is_qos_enabled"
-              c:identifier="gst_base_transform_is_qos_enabled"
-              doc="Queries if the transform will handle QoS.
-MT safe."
-              version="0.10.5">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-      </method>
-      <method name="set_gap_aware"
-              c:identifier="gst_base_transform_set_gap_aware"
-              doc="If @gap_aware is %FALSE (the default), output buffers will have the
-%GST_BUFFER_FLAG_GAP flag unset.
-If set to %TRUE, the element must handle output buffers with this flag set
-correctly, i.e. it can assume that the buffer contains neutral data but must
-unset the flag if the output is no neutral data.
-MT safe."
-              version="0.10.16">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="gap_aware" transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="suggest"
-              c:identifier="gst_base_transform_suggest"
-              doc="Instructs @trans to suggest new @caps upstream. A copy of @caps will be
-taken."
-              version="0.10.21">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="caps" transfer-ownership="none">
-            <type name="Gst.Caps" c:type="GstCaps*"/>
-          </parameter>
-          <parameter name="size" transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="reconfigure"
-              c:identifier="gst_base_transform_reconfigure"
-              doc="Instructs @trans to renegotiate a new downstream transform on the next
-buffer. This function is typically called after properties on the transform
-were set that influence the output format."
-              version="0.10.21">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </method>
-      <property name="qos" writable="1">
-        <type name="boolean" c:type="gboolean"/>
-      </property>
-      <field name="element">
-        <type name="Gst.Element" c:type="GstElement"/>
-      </field>
-      <field name="sinkpad">
-        <type name="Gst.Pad" c:type="GstPad*"/>
-      </field>
-      <field name="srcpad">
-        <type name="Gst.Pad" c:type="GstPad*"/>
-      </field>
-      <field name="passthrough">
-        <type name="boolean" c:type="gboolean"/>
-      </field>
-      <field name="always_in_place">
-        <type name="boolean" c:type="gboolean"/>
-      </field>
-      <field name="cache_caps1">
-        <type name="Gst.Caps" c:type="GstCaps*"/>
-      </field>
-      <field name="cache_caps1_size">
-        <type name="uint" c:type="guint"/>
-      </field>
-      <field name="cache_caps2">
-        <type name="Gst.Caps" c:type="GstCaps*"/>
-      </field>
-      <field name="cache_caps2_size">
-        <type name="uint" c:type="guint"/>
-      </field>
-      <field name="have_same_caps">
-        <type name="boolean" c:type="gboolean"/>
-      </field>
-      <field name="delay_configure">
-        <type name="boolean" c:type="gboolean"/>
-      </field>
-      <field name="pending_configure">
-        <type name="boolean" c:type="gboolean"/>
-      </field>
-      <field name="negotiated">
-        <type name="boolean" c:type="gboolean"/>
-      </field>
-      <field name="have_newsegment">
-        <type name="boolean" c:type="gboolean"/>
-      </field>
-      <field name="segment">
-        <type name="Gst.Segment" c:type="GstSegment"/>
-      </field>
-      <field name="transform_lock">
-        <type name="GLib.Mutex" c:type="GMutex*"/>
-      </field>
-      <field name="priv">
-        <type name="BaseTransformPrivate" c:type="GstBaseTransformPrivate*"/>
-      </field>
-      <field name="_gst_reserved">
-        <array zero-terminated="0" c:type="gpointer" fixed-size="19">
-          <type name="any"/>
-        </array>
-      </field>
-    </class>
-    <record name="BaseTransformClass"
-            c:type="GstBaseTransformClass"
-            glib:is-gtype-struct-for="BaseTransform"
-            doc="caps, what caps are allowed on the other pad in this
-element ?
-caps, fixate the caps on the other pad.
-with the given caps, calculate the size in bytes of a buffer
-on the other pad with the given other caps.
-The default implementation uses get_unit_size and keeps
-the number of units the same.
-get the size in bytes of one unit for the given caps.
-Called when the element starts processing.
-Allows opening external resources.
-Called when the element stops processing.
-Allows closing external resources.
-Transforms one incoming buffer to one outgoing buffer.
-The function is allowed to change size/timestamp/duration
-of the outgoing buffer.
-Transform the incoming buffer in-place.
-Event handler on the sink pad. This function should return
-TRUE if the base class should forward the event.
-Event handler on the source pad.
-automatically enabled if the caps are the same.
-Subclasses can override this to do their own
-allocation of output buffers.  Elements that only do
-analysis can return a subbuffer or even just
-increment the reference to the input buffer (if in
-passthrough mode)
-This method is called right before the base class will
-start processing. Dynamic properties or other delayed
-configuration could be performed in this method.
-Subclasses can override any of the available virtual methods or not, as
-needed. At minimum either @transform or @transform_ip need to be overridden.
-If the element can overwrite the input data with the results (data is of the
-same type and quantity) it should provide @transform_ip.">
-      <field name="parent_class">
-        <type name="Gst.ElementClass" c:type="GstElementClass"/>
-      </field>
-      <field name="transform_caps">
-        <callback name="transform_caps" c:type="transform_caps">
-          <return-value transfer-ownership="full">
-            <type name="Gst.Caps" c:type="GstCaps*"/>
-          </return-value>
-          <parameters>
-            <parameter name="trans" transfer-ownership="none">
-              <type name="BaseTransform" c:type="GstBaseTransform*"/>
-            </parameter>
-            <parameter name="direction" transfer-ownership="none">
-              <type name="Gst.PadDirection" c:type="GstPadDirection"/>
-            </parameter>
-            <parameter name="caps" transfer-ownership="none">
-              <type name="Gst.Caps" c:type="GstCaps*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="fixate_caps">
-        <callback name="fixate_caps" c:type="fixate_caps">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="trans" transfer-ownership="none">
-              <type name="BaseTransform" c:type="GstBaseTransform*"/>
-            </parameter>
-            <parameter name="direction" transfer-ownership="none">
-              <type name="Gst.PadDirection" c:type="GstPadDirection"/>
-            </parameter>
-            <parameter name="caps" transfer-ownership="none">
-              <type name="Gst.Caps" c:type="GstCaps*"/>
-            </parameter>
-            <parameter name="othercaps" transfer-ownership="none">
-              <type name="Gst.Caps" c:type="GstCaps*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="transform_size">
-        <callback name="transform_size" c:type="transform_size">
-          <return-value transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </return-value>
-          <parameters>
-            <parameter name="trans" transfer-ownership="none">
-              <type name="BaseTransform" c:type="GstBaseTransform*"/>
-            </parameter>
-            <parameter name="direction" transfer-ownership="none">
-              <type name="Gst.PadDirection" c:type="GstPadDirection"/>
-            </parameter>
-            <parameter name="caps" transfer-ownership="none">
-              <type name="Gst.Caps" c:type="GstCaps*"/>
-            </parameter>
-            <parameter name="size" transfer-ownership="none">
-              <type name="uint" c:type="guint"/>
-            </parameter>
-            <parameter name="othercaps" transfer-ownership="none">
-              <type name="Gst.Caps" c:type="GstCaps*"/>
-            </parameter>
-            <parameter name="othersize"
-                       direction="out"
-                       transfer-ownership="full">
-              <type name="uint" c:type="guint*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="get_unit_size">
-        <callback name="get_unit_size" c:type="get_unit_size">
-          <return-value transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </return-value>
-          <parameters>
-            <parameter name="trans" transfer-ownership="none">
-              <type name="BaseTransform" c:type="GstBaseTransform*"/>
-            </parameter>
-            <parameter name="caps" transfer-ownership="none">
-              <type name="Gst.Caps" c:type="GstCaps*"/>
-            </parameter>
-            <parameter name="size" direction="out" transfer-ownership="full">
-              <type name="uint" c:type="guint*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="set_caps">
-        <callback name="set_caps" c:type="set_caps">
-          <return-value transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </return-value>
-          <parameters>
-            <parameter name="trans" transfer-ownership="none">
-              <type name="BaseTransform" c:type="GstBaseTransform*"/>
-            </parameter>
-            <parameter name="incaps" transfer-ownership="none">
-              <type name="Gst.Caps" c:type="GstCaps*"/>
-            </parameter>
-            <parameter name="outcaps" transfer-ownership="none">
-              <type name="Gst.Caps" c:type="GstCaps*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="start">
-        <callback name="start" c:type="start">
-          <return-value transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </return-value>
-          <parameters>
-            <parameter name="trans" transfer-ownership="none">
-              <type name="BaseTransform" c:type="GstBaseTransform*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="stop">
-        <callback name="stop" c:type="stop">
-          <return-value transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </return-value>
-          <parameters>
-            <parameter name="trans" transfer-ownership="none">
-              <type name="BaseTransform" c:type="GstBaseTransform*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="event">
-        <callback name="event" c:type="event">
-          <return-value transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </return-value>
-          <parameters>
-            <parameter name="trans" transfer-ownership="none">
-              <type name="BaseTransform" c:type="GstBaseTransform*"/>
-            </parameter>
-            <parameter name="event" transfer-ownership="none">
-              <type name="Gst.Event" c:type="GstEvent*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="transform">
-        <callback name="transform" c:type="transform">
-          <return-value transfer-ownership="full">
-            <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
-          </return-value>
-          <parameters>
-            <parameter name="trans" transfer-ownership="none">
-              <type name="BaseTransform" c:type="GstBaseTransform*"/>
-            </parameter>
-            <parameter name="inbuf" transfer-ownership="none">
-              <type name="Gst.Buffer" c:type="GstBuffer*"/>
-            </parameter>
-            <parameter name="outbuf" transfer-ownership="none">
-              <type name="Gst.Buffer" c:type="GstBuffer*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="transform_ip">
-        <callback name="transform_ip" c:type="transform_ip">
-          <return-value transfer-ownership="full">
-            <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
-          </return-value>
-          <parameters>
-            <parameter name="trans" transfer-ownership="none">
-              <type name="BaseTransform" c:type="GstBaseTransform*"/>
-            </parameter>
-            <parameter name="buf" transfer-ownership="none">
-              <type name="Gst.Buffer" c:type="GstBuffer*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="passthrough_on_same_caps">
-        <type name="boolean" c:type="gboolean"/>
-      </field>
-      <field name="prepare_output_buffer">
-        <callback name="prepare_output_buffer" c:type="prepare_output_buffer">
-          <return-value transfer-ownership="full">
-            <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
-          </return-value>
-          <parameters>
-            <parameter name="trans" transfer-ownership="none">
-              <type name="BaseTransform" c:type="GstBaseTransform*"/>
-            </parameter>
-            <parameter name="input" transfer-ownership="none">
-              <type name="Gst.Buffer" c:type="GstBuffer*"/>
-            </parameter>
-            <parameter name="size" transfer-ownership="none">
-              <type name="int" c:type="gint"/>
-            </parameter>
-            <parameter name="caps" transfer-ownership="none">
-              <type name="Gst.Caps" c:type="GstCaps*"/>
-            </parameter>
-            <parameter name="buf" transfer-ownership="none">
-              <type name="Gst.Buffer" c:type="GstBuffer**"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="src_event">
-        <callback name="src_event" c:type="src_event">
-          <return-value transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </return-value>
-          <parameters>
-            <parameter name="trans" transfer-ownership="none">
-              <type name="BaseTransform" c:type="GstBaseTransform*"/>
-            </parameter>
-            <parameter name="event" transfer-ownership="none">
-              <type name="Gst.Event" c:type="GstEvent*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="before_transform">
-        <callback name="before_transform" c:type="before_transform">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="trans" transfer-ownership="none">
-              <type name="BaseTransform" c:type="GstBaseTransform*"/>
-            </parameter>
-            <parameter name="buffer" transfer-ownership="none">
-              <type name="Gst.Buffer" c:type="GstBuffer*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="_gst_reserved">
-        <array zero-terminated="0" c:type="gpointer" fixed-size="18">
-          <type name="any"/>
-        </array>
-      </field>
-    </record>
-    <record name="BaseTransformPrivate" c:type="GstBaseTransformPrivate">
-    </record>
-    <record name="BitReader"
-            c:type="GstBitReader"
-            doc="A bit reader instance.">
-      <field name="data" writable="1">
-        <type name="any" c:type="guint8*"/>
-      </field>
-      <field name="size" writable="1">
-        <type name="uint" c:type="guint"/>
-      </field>
-      <field name="byte" writable="1">
-        <type name="uint" c:type="guint"/>
-      </field>
-      <field name="bit" writable="1">
-        <type name="uint" c:type="guint"/>
-      </field>
-      <constructor name="new"
-                   c:identifier="gst_bit_reader_new"
-                   doc="Create a new #GstBitReader instance, which will read from @data."
-                   version="0.10.22">
-        <return-value transfer-ownership="full">
-          <type name="BitReader" c:type="GstBitReader*"/>
-        </return-value>
-        <parameters>
-          <parameter name="data" transfer-ownership="none">
-            <array c:type="guint8*">
-              <type name="uint8"/>
-            </array>
-          </parameter>
-          <parameter name="size" transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
-          </parameter>
-        </parameters>
-      </constructor>
-      <constructor name="new_from_buffer"
-                   c:identifier="gst_bit_reader_new_from_buffer"
-                   doc="Create a new #GstBitReader instance, which will read from the
-#GstBuffer @buffer."
-                   version="0.10.22">
-        <return-value transfer-ownership="full">
-          <type name="BitReader" c:type="GstBitReader*"/>
-        </return-value>
-        <parameters>
-          <parameter name="buffer" transfer-ownership="none">
-            <type name="Gst.Buffer" c:type="GstBuffer*"/>
-          </parameter>
-        </parameters>
-      </constructor>
-      <method name="free"
-              c:identifier="gst_bit_reader_free"
-              doc="Frees a #GstBitReader instance, which was previously allocated by
-gst_bit_reader_new() or gst_bit_reader_new_from_buffer()."
-              version="0.10.22">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </method>
-      <method name="init"
-              c:identifier="gst_bit_reader_init"
-              doc="Initializes a #GstBitReader instance to read from @data. This function
-can be called on already initialized instances."
-              version="0.10.22">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="data" transfer-ownership="none">
-            <array c:type="guint8*">
-              <type name="uint8"/>
-            </array>
-          </parameter>
-          <parameter name="size" transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="init_from_buffer"
-              c:identifier="gst_bit_reader_init_from_buffer"
-              doc="Initializes a #GstBitReader instance to read from @buffer. This function
-can be called on already initialized instances."
-              version="0.10.22">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="buffer" transfer-ownership="none">
-            <type name="Gst.Buffer" c:type="GstBuffer*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_pos"
-              c:identifier="gst_bit_reader_set_pos"
-              doc="Sets the new position of a #GstBitReader instance to @pos in bits.
-otherwise."
-              version="0.10.22">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="pos" transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_pos"
-              c:identifier="gst_bit_reader_get_pos"
-              doc="Returns the current position of a #GstBitReader instance in bits."
-              version="0.10.22">
-        <return-value transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
-        </return-value>
-      </method>
-      <method name="get_remaining"
-              c:identifier="gst_bit_reader_get_remaining"
-              doc="Returns the remaining number of bits of a #GstBitReader instance."
-              version="0.10.22">
-        <return-value transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
-        </return-value>
-      </method>
-      <method name="get_size"
-              c:identifier="gst_bit_reader_get_size"
-              doc="Returns the total number of bits of a #GstBitReader instance."
-              version="0.10.26">
-        <return-value transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
-        </return-value>
-      </method>
-      <method name="skip"
-              c:identifier="gst_bit_reader_skip"
-              doc="Skips @nbits bits of the #GstBitReader instance."
-              version="0.10.22">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="nbits" transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="skip_to_byte"
-              c:identifier="gst_bit_reader_skip_to_byte"
-              doc="Skips until the next byte."
-              version="0.10.22">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-      </method>
-      <method name="get_bits_uint8"
-              c:identifier="gst_bit_reader_get_bits_uint8"
-              doc="Read @nbits bits into @val and update the current position."
-              version="0.10.22">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="val" transfer-ownership="none">
-            <array c:type="guint8*">
-              <type name="uint8"/>
-            </array>
-          </parameter>
-          <parameter name="nbits" transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_bits_uint16"
-              c:identifier="gst_bit_reader_get_bits_uint16"
-              doc="Read @nbits bits into @val and update the current position."
-              version="0.10.22">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="val" direction="out" transfer-ownership="full">
-            <type name="uint16" c:type="guint16*"/>
-          </parameter>
-          <parameter name="nbits" transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_bits_uint32"
-              c:identifier="gst_bit_reader_get_bits_uint32"
-              doc="Read @nbits bits into @val and update the current position."
-              version="0.10.22">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="val" direction="out" transfer-ownership="full">
-            <type name="uint32" c:type="guint32*"/>
-          </parameter>
-          <parameter name="nbits" transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_bits_uint64"
-              c:identifier="gst_bit_reader_get_bits_uint64"
-              doc="Read @nbits bits into @val and update the current position."
-              version="0.10.22">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="val" direction="out" transfer-ownership="full">
-            <type name="uint64" c:type="guint64*"/>
-          </parameter>
-          <parameter name="nbits" transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="peek_bits_uint8"
-              c:identifier="gst_bit_reader_peek_bits_uint8"
-              doc="Read @nbits bits into @val but keep the current position."
-              version="0.10.22">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="val" transfer-ownership="none">
-            <array c:type="guint8*">
-              <type name="uint8"/>
-            </array>
-          </parameter>
-          <parameter name="nbits" transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="peek_bits_uint16"
-              c:identifier="gst_bit_reader_peek_bits_uint16"
-              doc="Read @nbits bits into @val but keep the current position."
-              version="0.10.22">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="val" direction="out" transfer-ownership="full">
-            <type name="uint16" c:type="guint16*"/>
-          </parameter>
-          <parameter name="nbits" transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="peek_bits_uint32"
-              c:identifier="gst_bit_reader_peek_bits_uint32"
-              doc="Read @nbits bits into @val but keep the current position."
-              version="0.10.22">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="val" direction="out" transfer-ownership="full">
-            <type name="uint32" c:type="guint32*"/>
-          </parameter>
-          <parameter name="nbits" transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="peek_bits_uint64"
-              c:identifier="gst_bit_reader_peek_bits_uint64"
-              doc="Read @nbits bits into @val but keep the current position."
-              version="0.10.22">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="val" direction="out" transfer-ownership="full">
-            <type name="uint64" c:type="guint64*"/>
-          </parameter>
-          <parameter name="nbits" transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
-          </parameter>
-        </parameters>
-      </method>
-    </record>
-    <record name="ByteReader"
-            c:type="GstByteReader"
-            doc="A byte reader instance.">
-      <field name="data" writable="1">
-        <type name="any" c:type="guint8*"/>
-      </field>
-      <field name="size" writable="1">
-        <type name="uint" c:type="guint"/>
-      </field>
-      <field name="byte" writable="1">
-        <type name="uint" c:type="guint"/>
-      </field>
-      <constructor name="new"
-                   c:identifier="gst_byte_reader_new"
-                   doc="Create a new #GstByteReader instance, which will read from @data."
-                   version="0.10.22">
-        <return-value transfer-ownership="full">
-          <type name="ByteReader" c:type="GstByteReader*"/>
-        </return-value>
-        <parameters>
-          <parameter name="data" transfer-ownership="none">
-            <array c:type="guint8*">
-              <type name="uint8"/>
-            </array>
-          </parameter>
-          <parameter name="size" transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
-          </parameter>
-        </parameters>
-      </constructor>
-      <constructor name="new_from_buffer"
-                   c:identifier="gst_byte_reader_new_from_buffer"
-                   doc="Create a new #GstByteReader instance, which will read from the
-#GstBuffer @buffer."
-                   version="0.10.22">
-        <return-value transfer-ownership="full">
-          <type name="ByteReader" c:type="GstByteReader*"/>
-        </return-value>
-        <parameters>
-          <parameter name="buffer" transfer-ownership="none">
-            <type name="Gst.Buffer" c:type="GstBuffer*"/>
-          </parameter>
-        </parameters>
-      </constructor>
-      <method name="free"
-              c:identifier="gst_byte_reader_free"
-              doc="Frees a #GstByteReader instance, which was previously allocated by
-gst_byte_reader_new() or gst_byte_reader_new_from_buffer()."
-              version="0.10.22">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </method>
-      <method name="init"
-              c:identifier="gst_byte_reader_init"
-              doc="Initializes a #GstByteReader instance to read from @data. This function
-can be called on already initialized instances."
-              version="0.10.22">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="data" transfer-ownership="none">
-            <array c:type="guint8*">
-              <type name="uint8"/>
-            </array>
-          </parameter>
-          <parameter name="size" transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="init_from_buffer"
-              c:identifier="gst_byte_reader_init_from_buffer"
-              doc="Initializes a #GstByteReader instance to read from @buffer. This function
-can be called on already initialized instances."
-              version="0.10.22">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="buffer" transfer-ownership="none">
-            <type name="Gst.Buffer" c:type="GstBuffer*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_pos"
-              c:identifier="gst_byte_reader_set_pos"
-              doc="Sets the new position of a #GstByteReader instance to @pos in bytes.
-otherwise."
-              version="0.10.22">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="pos" transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_pos"
-              c:identifier="gst_byte_reader_get_pos"
-              doc="Returns the current position of a #GstByteReader instance in bytes."
-              version="0.10.22">
-        <return-value transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
-        </return-value>
-      </method>
-      <method name="get_remaining"
-              c:identifier="gst_byte_reader_get_remaining"
-              doc="Returns the remaining number of bytes of a #GstByteReader instance."
-              version="0.10.22">
-        <return-value transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
-        </return-value>
-      </method>
-      <method name="get_size"
-              c:identifier="gst_byte_reader_get_size"
-              doc="Returns the total number of bytes of a #GstByteReader instance."
-              version="0.10.26">
-        <return-value transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
-        </return-value>
-      </method>
-      <method name="skip"
-              c:identifier="gst_byte_reader_skip"
-              doc="Skips @nbytes bytes of the #GstByteReader instance."
-              version="0.10.22">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="nbytes" transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_uint8"
-              c:identifier="gst_byte_reader_get_uint8"
-              doc="Read an unsigned 8 bit integer into @val and update the current position."
-              version="0.10.22">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="val" transfer-ownership="none">
-            <array c:type="guint8*">
-              <type name="uint8"/>
-            </array>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_int8"
-              c:identifier="gst_byte_reader_get_int8"
-              doc="Read a signed 8 bit integer into @val and update the current position."
-              version="0.10.22">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="val" direction="out" transfer-ownership="full">
-            <type name="int8" c:type="gint8*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_uint16_le"
-              c:identifier="gst_byte_reader_get_uint16_le"
-              doc="Read an unsigned 16 bit little endian integer into @val
-and update the current position."
-              version="0.10.22">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="val" direction="out" transfer-ownership="full">
-            <type name="uint16" c:type="guint16*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_int16_le"
-              c:identifier="gst_byte_reader_get_int16_le"
-              doc="Read a signed 16 bit little endian integer into @val
-and update the current position."
-              version="0.10.22">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="val" direction="out" transfer-ownership="full">
-            <type name="int16" c:type="gint16*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_uint16_be"
-              c:identifier="gst_byte_reader_get_uint16_be"
-              doc="Read an unsigned 16 bit big endian integer into @val
-and update the current position."
-              version="0.10.22">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="val" direction="out" transfer-ownership="full">
-            <type name="uint16" c:type="guint16*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_int16_be"
-              c:identifier="gst_byte_reader_get_int16_be"
-              doc="Read a signed 16 bit big endian integer into @val
-and update the current position."
-              version="0.10.22">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="val" direction="out" transfer-ownership="full">
-            <type name="int16" c:type="gint16*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_uint24_le"
-              c:identifier="gst_byte_reader_get_uint24_le"
-              doc="Read an unsigned 24 bit little endian integer into @val
-and update the current position."
-              version="0.10.22">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="val" direction="out" transfer-ownership="full">
-            <type name="uint32" c:type="guint32*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_int24_le"
-              c:identifier="gst_byte_reader_get_int24_le"
-              doc="Read a signed 24 bit little endian integer into @val
-and update the current position."
-              version="0.10.22">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="val" direction="out" transfer-ownership="full">
-            <type name="int32" c:type="gint32*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_uint24_be"
-              c:identifier="gst_byte_reader_get_uint24_be"
-              doc="Read an unsigned 24 bit big endian integer into @val
-and update the current position."
-              version="0.10.22">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="val" direction="out" transfer-ownership="full">
-            <type name="uint32" c:type="guint32*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_int24_be"
-              c:identifier="gst_byte_reader_get_int24_be"
-              doc="Read a signed 24 bit big endian integer into @val
-and update the current position."
-              version="0.10.22">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="val" direction="out" transfer-ownership="full">
-            <type name="int32" c:type="gint32*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_uint32_le"
-              c:identifier="gst_byte_reader_get_uint32_le"
-              doc="Read an unsigned 32 bit little endian integer into @val
-and update the current position."
-              version="0.10.22">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="val" direction="out" transfer-ownership="full">
-            <type name="uint32" c:type="guint32*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_int32_le"
-              c:identifier="gst_byte_reader_get_int32_le"
-              doc="Read a signed 32 bit little endian integer into @val
-and update the current position."
-              version="0.10.22">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="val" direction="out" transfer-ownership="full">
-            <type name="int32" c:type="gint32*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_uint32_be"
-              c:identifier="gst_byte_reader_get_uint32_be"
-              doc="Read an unsigned 32 bit big endian integer into @val
-and update the current position."
-              version="0.10.22">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="val" direction="out" transfer-ownership="full">
-            <type name="uint32" c:type="guint32*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_int32_be"
-              c:identifier="gst_byte_reader_get_int32_be"
-              doc="Read a signed 32 bit big endian integer into @val
-and update the current position."
-              version="0.10.22">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="val" direction="out" transfer-ownership="full">
-            <type name="int32" c:type="gint32*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_uint64_le"
-              c:identifier="gst_byte_reader_get_uint64_le"
-              doc="Read an unsigned 64 bit little endian integer into @val
-and update the current position."
-              version="0.10.22">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="val" direction="out" transfer-ownership="full">
-            <type name="uint64" c:type="guint64*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_int64_le"
-              c:identifier="gst_byte_reader_get_int64_le"
-              doc="Read a signed 64 bit little endian integer into @val
-and update the current position."
-              version="0.10.22">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="val" direction="out" transfer-ownership="full">
-            <type name="int64" c:type="gint64*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_uint64_be"
-              c:identifier="gst_byte_reader_get_uint64_be"
-              doc="Read an unsigned 64 bit big endian integer into @val
-and update the current position."
-              version="0.10.22">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="val" direction="out" transfer-ownership="full">
-            <type name="uint64" c:type="guint64*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_int64_be"
-              c:identifier="gst_byte_reader_get_int64_be"
-              doc="Read a signed 64 bit big endian integer into @val
-and update the current position."
-              version="0.10.22">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="val" direction="out" transfer-ownership="full">
-            <type name="int64" c:type="gint64*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="peek_uint8"
-              c:identifier="gst_byte_reader_peek_uint8"
-              doc="Read a signed 8 bit integer into @val but keep the current position."
-              version="0.10.22">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="val" transfer-ownership="none">
-            <array c:type="guint8*">
-              <type name="uint8"/>
-            </array>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="peek_int8"
-              c:identifier="gst_byte_reader_peek_int8"
-              doc="Read a signed 8 bit integer into @val but keep the current position."
-              version="0.10.22">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="val" direction="out" transfer-ownership="full">
-            <type name="int8" c:type="gint8*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="peek_uint16_le"
-              c:identifier="gst_byte_reader_peek_uint16_le"
-              doc="Read a signed 16 bit little endian integer into @val
-but keep the current position."
-              version="0.10.22">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="val" direction="out" transfer-ownership="full">
-            <type name="uint16" c:type="guint16*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="peek_int16_le"
-              c:identifier="gst_byte_reader_peek_int16_le"
-              doc="Read a signed 16 bit little endian integer into @val
-but keep the current position."
-              version="0.10.22">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="val" direction="out" transfer-ownership="full">
-            <type name="int16" c:type="gint16*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="peek_uint16_be"
-              c:identifier="gst_byte_reader_peek_uint16_be"
-              doc="Read a signed 16 bit big endian integer into @val
-but keep the current position."
-              version="0.10.22">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="val" direction="out" transfer-ownership="full">
-            <type name="uint16" c:type="guint16*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="peek_int16_be"
-              c:identifier="gst_byte_reader_peek_int16_be"
-              doc="Read a signed 16 bit big endian integer into @val
-but keep the current position."
-              version="0.10.22">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="val" direction="out" transfer-ownership="full">
-            <type name="int16" c:type="gint16*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="peek_uint24_le"
-              c:identifier="gst_byte_reader_peek_uint24_le"
-              doc="Read a signed 24 bit little endian integer into @val
-but keep the current position."
-              version="0.10.22">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="val" direction="out" transfer-ownership="full">
-            <type name="uint32" c:type="guint32*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="peek_int24_le"
-              c:identifier="gst_byte_reader_peek_int24_le"
-              doc="Read a signed 24 bit little endian integer into @val
-but keep the current position."
-              version="0.10.22">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="val" direction="out" transfer-ownership="full">
-            <type name="int32" c:type="gint32*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="peek_uint24_be"
-              c:identifier="gst_byte_reader_peek_uint24_be"
-              doc="Read a signed 24 bit big endian integer into @val
-but keep the current position."
-              version="0.10.22">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="val" direction="out" transfer-ownership="full">
-            <type name="uint32" c:type="guint32*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="peek_int24_be"
-              c:identifier="gst_byte_reader_peek_int24_be"
-              doc="Read a signed 24 bit big endian integer into @val
-but keep the current position."
-              version="0.10.22">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="val" direction="out" transfer-ownership="full">
-            <type name="int32" c:type="gint32*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="peek_uint32_le"
-              c:identifier="gst_byte_reader_peek_uint32_le"
-              doc="Read a signed 32 bit little endian integer into @val
-but keep the current position."
-              version="0.10.22">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="val" direction="out" transfer-ownership="full">
-            <type name="uint32" c:type="guint32*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="peek_int32_le"
-              c:identifier="gst_byte_reader_peek_int32_le"
-              doc="Read a signed 32 bit little endian integer into @val
-but keep the current position."
-              version="0.10.22">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="val" direction="out" transfer-ownership="full">
-            <type name="int32" c:type="gint32*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="peek_uint32_be"
-              c:identifier="gst_byte_reader_peek_uint32_be"
-              doc="Read a signed 32 bit big endian integer into @val
-but keep the current position."
-              version="0.10.22">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="val" direction="out" transfer-ownership="full">
-            <type name="uint32" c:type="guint32*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="peek_int32_be"
-              c:identifier="gst_byte_reader_peek_int32_be"
-              doc="Read a signed 32 bit big endian integer into @val
-but keep the current position."
-              version="0.10.22">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="val" direction="out" transfer-ownership="full">
-            <type name="int32" c:type="gint32*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="peek_uint64_le"
-              c:identifier="gst_byte_reader_peek_uint64_le"
-              doc="Read a signed 64 bit little endian integer into @val
-but keep the current position."
-              version="0.10.22">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="val" direction="out" transfer-ownership="full">
-            <type name="uint64" c:type="guint64*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="peek_int64_le"
-              c:identifier="gst_byte_reader_peek_int64_le"
-              doc="Read a signed 64 bit little endian integer into @val
-but keep the current position."
-              version="0.10.22">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="val" direction="out" transfer-ownership="full">
-            <type name="int64" c:type="gint64*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="peek_uint64_be"
-              c:identifier="gst_byte_reader_peek_uint64_be"
-              doc="Read a signed 64 bit big endian integer into @val
-but keep the current position."
-              version="0.10.22">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="val" direction="out" transfer-ownership="full">
-            <type name="uint64" c:type="guint64*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="peek_int64_be"
-              c:identifier="gst_byte_reader_peek_int64_be"
-              doc="Read a signed 64 bit big endian integer into @val
-but keep the current position."
-              version="0.10.22">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="val" direction="out" transfer-ownership="full">
-            <type name="int64" c:type="gint64*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_float32_le"
-              c:identifier="gst_byte_reader_get_float32_le"
-              doc="Read a 32 bit little endian floating point value into @val
-and update the current position."
-              version="0.10.22">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="val" direction="out" transfer-ownership="full">
-            <type name="float" c:type="gfloat*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_float32_be"
-              c:identifier="gst_byte_reader_get_float32_be"
-              doc="Read a 32 bit big endian floating point value into @val
-and update the current position."
-              version="0.10.22">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="val" direction="out" transfer-ownership="full">
-            <type name="float" c:type="gfloat*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_float64_le"
-              c:identifier="gst_byte_reader_get_float64_le"
-              doc="Read a 64 bit little endian floating point value into @val
-and update the current position."
-              version="0.10.22">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="val" direction="out" transfer-ownership="full">
-            <type name="double" c:type="gdouble*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_float64_be"
-              c:identifier="gst_byte_reader_get_float64_be"
-              doc="Read a 64 bit big endian floating point value into @val
-and update the current position."
-              version="0.10.22">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="val" direction="out" transfer-ownership="full">
-            <type name="double" c:type="gdouble*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="peek_float32_le"
-              c:identifier="gst_byte_reader_peek_float32_le"
-              doc="Read a 32 bit little endian floating point value into @val
-but keep the current position."
-              version="0.10.22">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="val" direction="out" transfer-ownership="full">
-            <type name="float" c:type="gfloat*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="peek_float32_be"
-              c:identifier="gst_byte_reader_peek_float32_be"
-              doc="Read a 32 bit big endian floating point value into @val
-but keep the current position."
-              version="0.10.22">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="val" direction="out" transfer-ownership="full">
-            <type name="float" c:type="gfloat*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="peek_float64_le"
-              c:identifier="gst_byte_reader_peek_float64_le"
-              doc="Read a 64 bit little endian floating point value into @val
-but keep the current position."
-              version="0.10.22">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="val" direction="out" transfer-ownership="full">
-            <type name="double" c:type="gdouble*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="peek_float64_be"
-              c:identifier="gst_byte_reader_peek_float64_be"
-              doc="Read a 64 bit big endian floating point value into @val
-but keep the current position."
-              version="0.10.22">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="val" direction="out" transfer-ownership="full">
-            <type name="double" c:type="gdouble*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="dup_data"
-              c:identifier="gst_byte_reader_dup_data"
-              doc="Returns a newly-allocated copy of the current data
-position if at least @size bytes are left and
-updates the current position."
-              version="0.10.24">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="size" transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
-          </parameter>
-          <parameter name="val" direction="out" transfer-ownership="full">
-            <type name="uint8" c:type="guint8**"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_data"
-              c:identifier="gst_byte_reader_get_data"
-              doc="Returns a constant pointer to the current data
-position if at least @size bytes are left and
-updates the current position."
-              version="0.10.22">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="size" transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
-          </parameter>
-          <parameter name="val" direction="out" transfer-ownership="full">
-            <type name="uint8" c:type="guint8**"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="peek_data"
-              c:identifier="gst_byte_reader_peek_data"
-              doc="Returns a constant pointer to the current data
-position if at least @size bytes are left and
-keeps the current position."
-              version="0.10.22">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="size" transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
-          </parameter>
-          <parameter name="val" direction="out" transfer-ownership="full">
-            <type name="uint8" c:type="guint8**"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="dup_string_utf8"
-              c:identifier="gst_byte_reader_dup_string_utf8"
-              doc="FIXME:Reads (copies) a NUL-terminated string in the #GstByteReader instance,
-advancing the current position to the byte after the string. This will work
-for any NUL-terminated string with a character width of 8 bits, so ASCII,
-UTF-8, ISO-8859-N etc. No input checking for valid UTF-8 is done.
-This function will fail if no NUL-terminator was found in in the data.
-string put into @str must be freed with g_free() when no longer needed."
-              version="0.10.24">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="str" transfer-ownership="none">
-            <array c:type="gchar**">
-              <type name="utf8"/>
-            </array>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="dup_string_utf16"
-              c:identifier="gst_byte_reader_dup_string_utf16"
-              doc="Returns a newly-allocated copy of the current data position if there is
-a NUL-terminated UTF-16 string in the data (this could be an empty string
-as well), and advances the current position.
-No input checking for valid UTF-16 is done. This function is endianness
-agnostic - you should not assume the UTF-16 characters are in host
-endianness.
-This function will fail if no NUL-terminator was found in in the data.
-byte alignment of the UTF-16 string.
-string put into @str must be freed with g_free() when no longer needed."
-              version="0.10.24">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="str" direction="out" transfer-ownership="full">
-            <type name="uint16" c:type="guint16**"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="dup_string_utf32"
-              c:identifier="gst_byte_reader_dup_string_utf32"
-              doc="Returns a newly-allocated copy of the current data position if there is
-a NUL-terminated UTF-32 string in the data (this could be an empty string
-as well), and advances the current position.
-No input checking for valid UTF-32 is done. This function is endianness
-agnostic - you should not assume the UTF-32 characters are in host
-endianness.
-This function will fail if no NUL-terminator was found in in the data.
-byte alignment of the UTF-32 string.
-string put into @str must be freed with g_free() when no longer needed."
-              version="0.10.24">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="str" direction="out" transfer-ownership="full">
-            <type name="uint32" c:type="guint32**"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="skip_string_utf8"
-              c:identifier="gst_byte_reader_skip_string_utf8"
-              doc="Skips a NUL-terminated string in the #GstByteReader instance, advancing
-the current position to the byte after the string. This will work for
-any NUL-terminated string with a character width of 8 bits, so ASCII,
-UTF-8, ISO-8859-N etc. No input checking for valid UTF-8 is done.
-This function will fail if no NUL-terminator was found in in the data."
-              version="0.10.24">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-      </method>
-      <method name="skip_string_utf16"
-              c:identifier="gst_byte_reader_skip_string_utf16"
-              doc="Skips a NUL-terminated UTF-16 string in the #GstByteReader instance,
-advancing the current position to the byte after the string.
-No input checking for valid UTF-16 is done.
-This function will fail if no NUL-terminator was found in in the data."
-              version="0.10.24">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-      </method>
-      <method name="skip_string_utf32"
-              c:identifier="gst_byte_reader_skip_string_utf32"
-              doc="Skips a NUL-terminated UTF-32 string in the #GstByteReader instance,
-advancing the current position to the byte after the string.
-No input checking for valid UTF-32 is done.
-This function will fail if no NUL-terminator was found in in the data."
-              version="0.10.24">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-      </method>
-      <method name="get_string_utf8"
-              c:identifier="gst_byte_reader_get_string_utf8"
-              doc="Returns a constant pointer to the current data position if there is
-a NUL-terminated string in the data (this could be just a NUL terminator),
-advancing the current position to the byte after the string. This will work
-for any NUL-terminated string with a character width of 8 bits, so ASCII,
-UTF-8, ISO-8859-N etc.
-No input checking for valid UTF-8 is done.
-This function will fail if no NUL-terminator was found in in the data."
-              version="0.10.24">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="str" transfer-ownership="none">
-            <array c:type="gchar**">
-              <type name="utf8"/>
-            </array>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="peek_string_utf8"
-              c:identifier="gst_byte_reader_peek_string_utf8"
-              doc="Returns a constant pointer to the current data position if there is
-a NUL-terminated string in the data (this could be just a NUL terminator).
-The current position will be maintained. This will work for any
-NUL-terminated string with a character width of 8 bits, so ASCII,
-UTF-8, ISO-8859-N etc.
-No input checking for valid UTF-8 is done.
-This function will fail if no NUL-terminator was found in in the data."
-              version="0.10.24">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="str" transfer-ownership="none">
-            <array c:type="gchar**">
-              <type name="utf8"/>
-            </array>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="masked_scan_uint32"
-              c:identifier="gst_byte_reader_masked_scan_uint32"
-              doc="position
-Scan for pattern @pattern with applied mask @mask in the byte reader data,
-starting from offset @offset relative to the current position.
-The bytes in @pattern and @mask are interpreted left-to-right, regardless
-of endianness.  All four bytes of the pattern must be present in the
-byte reader data for it to match, even if the first or last bytes are masked
-out.
-It is an error to call this function without making sure that there is
-enough data (offset+size bytes) in the byte reader.
-Example:
-&lt;programlisting&gt;
-// Assume the reader contains 0x00 0x01 0x02 ... 0xfe 0xff
-gst_byte_reader_masked_scan_uint32 (reader, 0xffffffff, 0x00010203, 0, 256);
-// -&gt; returns 0
-gst_byte_reader_masked_scan_uint32 (reader, 0xffffffff, 0x00010203, 1, 255);
-// -&gt; returns -1
-gst_byte_reader_masked_scan_uint32 (reader, 0xffffffff, 0x01020304, 1, 255);
-// -&gt; returns 1
-gst_byte_reader_masked_scan_uint32 (reader, 0xffff, 0x0001, 0, 256);
-// -&gt; returns -1
-gst_byte_reader_masked_scan_uint32 (reader, 0xffff, 0x0203, 0, 256);
-// -&gt; returns 0
-gst_byte_reader_masked_scan_uint32 (reader, 0xffff0000, 0x02030000, 0, 256);
-// -&gt; returns 2
-gst_byte_reader_masked_scan_uint32 (reader, 0xffff0000, 0x02030000, 0, 4);
-// -&gt; returns -1
-&lt;/programlisting&gt;"
-              version="0.10.24">
-        <return-value transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
-        </return-value>
-        <parameters>
-          <parameter name="mask" transfer-ownership="none">
-            <type name="uint32" c:type="guint32"/>
-          </parameter>
-          <parameter name="pattern" transfer-ownership="none">
-            <type name="uint32" c:type="guint32"/>
-          </parameter>
-          <parameter name="offset" transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
-          </parameter>
-          <parameter name="size" transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
-          </parameter>
-        </parameters>
-      </method>
-    </record>
-    <record name="ByteWriter"
-            c:type="GstByteWriter"
-            doc="A byte writer instance.">
-      <field name="parent" writable="1">
-        <type name="ByteReader" c:type="GstByteReader"/>
-      </field>
-      <field name="alloc_size" writable="1">
-        <type name="uint" c:type="guint"/>
-      </field>
-      <field name="fixed" writable="1">
-        <type name="boolean" c:type="gboolean"/>
-      </field>
-      <field name="owned" writable="1">
-        <type name="boolean" c:type="gboolean"/>
-      </field>
-      <constructor name="new"
-                   c:identifier="gst_byte_writer_new"
-                   doc="Creates a new, empty #GstByteWriter instance"
-                   version="0.10.26">
-        <return-value transfer-ownership="full">
-          <type name="ByteWriter" c:type="GstByteWriter*"/>
-        </return-value>
-      </constructor>
-      <constructor name="new_with_size"
-                   c:identifier="gst_byte_writer_new_with_size"
-                   doc="Creates a new #GstByteWriter instance with the given
-initial data size."
-                   version="0.10.26">
-        <return-value transfer-ownership="full">
-          <type name="ByteWriter" c:type="GstByteWriter*"/>
-        </return-value>
-        <parameters>
-          <parameter name="size" transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
-          </parameter>
-          <parameter name="fixed" transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </parameter>
-        </parameters>
-      </constructor>
-      <constructor name="new_with_data"
-                   c:identifier="gst_byte_writer_new_with_data"
-                   doc="Creates a new #GstByteWriter instance with the given
-memory area. If @initialized is %TRUE it is possible to
-read @size bytes from the #GstByteWriter from the beginning."
-                   version="0.10.26">
-        <return-value transfer-ownership="full">
-          <type name="ByteWriter" c:type="GstByteWriter*"/>
-        </return-value>
-        <parameters>
-          <parameter name="data" transfer-ownership="none">
-            <array c:type="guint8*">
-              <type name="uint8"/>
-            </array>
-          </parameter>
-          <parameter name="size" transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
-          </parameter>
-          <parameter name="initialized" transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </parameter>
-        </parameters>
-      </constructor>
-      <constructor name="new_with_buffer"
-                   c:identifier="gst_byte_writer_new_with_buffer"
-                   doc="Creates a new #GstByteWriter instance with the given
-buffer. If @initialized is %TRUE it is possible to
-read the complete buffer from the #GstByteWriter from the beginning.
-&lt;note&gt;@buffer must be writable&lt;/note&gt;"
-                   version="0.10.26">
-        <return-value transfer-ownership="full">
-          <type name="ByteWriter" c:type="GstByteWriter*"/>
-        </return-value>
-        <parameters>
-          <parameter name="buffer" transfer-ownership="none">
-            <type name="Gst.Buffer" c:type="GstBuffer*"/>
-          </parameter>
-          <parameter name="initialized" transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </parameter>
-        </parameters>
-      </constructor>
-      <method name="init"
-              c:identifier="gst_byte_writer_init"
-              doc="Initializes @writer to an empty instance"
-              version="0.10.26">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </method>
-      <method name="init_with_size"
-              c:identifier="gst_byte_writer_init_with_size"
-              doc="Initializes @writer with the given initial data size."
-              version="0.10.26">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="size" transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
-          </parameter>
-          <parameter name="fixed" transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="init_with_data"
-              c:identifier="gst_byte_writer_init_with_data"
-              doc="Initializes @writer with the given
-memory area. If @initialized is %TRUE it is possible to
-read @size bytes from the #GstByteWriter from the beginning."
-              version="0.10.26">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="data" transfer-ownership="none">
-            <array c:type="guint8*">
-              <type name="uint8"/>
-            </array>
-          </parameter>
-          <parameter name="size" transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
-          </parameter>
-          <parameter name="initialized" transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="init_with_buffer"
-              c:identifier="gst_byte_writer_init_with_buffer"
-              doc="Initializes @writer with the given
-buffer. If @initialized is %TRUE it is possible to
-read the complete buffer from the #GstByteWriter from the beginning.
-&lt;note&gt;@buffer must be writable&lt;/note&gt;"
-              version="0.10.26">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="buffer" transfer-ownership="none">
-            <type name="Gst.Buffer" c:type="GstBuffer*"/>
-          </parameter>
-          <parameter name="initialized" transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="free"
-              c:identifier="gst_byte_writer_free"
-              doc="Frees @writer and all memory allocated by it."
-              version="0.10.26">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </method>
-      <method name="free_and_get_data"
-              c:identifier="gst_byte_writer_free_and_get_data"
-              doc="Frees @writer and all memory allocated by it except
-the current data, which is returned."
-              version="0.10.26">
-        <return-value transfer-ownership="full" doc="after usage.">
-          <array c:type="guint8*">
-            <type name="uint8"/>
-          </array>
-        </return-value>
-      </method>
-      <method name="free_and_get_buffer"
-              c:identifier="gst_byte_writer_free_and_get_buffer"
-              doc="Frees @writer and all memory allocated by it except
-the current data, which is returned as #GstBuffer."
-              version="0.10.26">
-        <return-value transfer-ownership="full" doc="after usage.">
-          <type name="Gst.Buffer" c:type="GstBuffer*"/>
-        </return-value>
-      </method>
-      <method name="reset"
-              c:identifier="gst_byte_writer_reset"
-              doc="Resets @writer and frees the data if it&apos;s
-owned by @writer."
-              version="0.10.26">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </method>
-      <method name="reset_and_get_data"
-              c:identifier="gst_byte_writer_reset_and_get_data"
-              doc="Resets @writer and returns the current data."
-              version="0.10.26">
-        <return-value transfer-ownership="full" doc="after usage.">
-          <array c:type="guint8*">
-            <type name="uint8"/>
-          </array>
-        </return-value>
-      </method>
-      <method name="reset_and_get_buffer"
-              c:identifier="gst_byte_writer_reset_and_get_buffer"
-              doc="Resets @writer and returns the current data as buffer."
-              version="0.10.26">
-        <return-value transfer-ownership="full" doc="after usage.">
-          <type name="Gst.Buffer" c:type="GstBuffer*"/>
-        </return-value>
-      </method>
-      <method name="get_remaining"
-              c:identifier="gst_byte_writer_get_remaining"
-              doc="Returns the remaining size of data that can still be written. If
--1 is returned the remaining size is only limited by system resources."
-              version="0.10.26">
-        <return-value transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
-        </return-value>
-      </method>
-      <method name="ensure_free_space"
-              c:identifier="gst_byte_writer_ensure_free_space"
-              doc="Checks if enough free space from the current write cursor is
-available and reallocates if necessary."
-              version="0.10.26">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="size" transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="put_uint8"
-              c:identifier="gst_byte_writer_put_uint8"
-              doc="Writes a unsigned 8 bit integer to @writer."
-              version="0.10.26">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="val" transfer-ownership="none">
-            <type name="uint8" c:type="guint8"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="put_int8"
-              c:identifier="gst_byte_writer_put_int8"
-              doc="Writes a signed 8 bit integer to @writer."
-              version="0.10.26">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="val" transfer-ownership="none">
-            <type name="int8" c:type="gint8"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="put_uint16_be"
-              c:identifier="gst_byte_writer_put_uint16_be"
-              doc="Writes a unsigned big endian 16 bit integer to @writer."
-              version="0.10.26">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="val" transfer-ownership="none">
-            <type name="uint16" c:type="guint16"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="put_uint16_le"
-              c:identifier="gst_byte_writer_put_uint16_le"
-              doc="Writes a unsigned little endian 16 bit integer to @writer."
-              version="0.10.26">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="val" transfer-ownership="none">
-            <type name="uint16" c:type="guint16"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="put_int16_be"
-              c:identifier="gst_byte_writer_put_int16_be"
-              doc="Writes a signed big endian 16 bit integer to @writer."
-              version="0.10.26">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="val" transfer-ownership="none">
-            <type name="int16" c:type="gint16"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="put_int16_le"
-              c:identifier="gst_byte_writer_put_int16_le"
-              doc="Writes a signed little endian 16 bit integer to @writer."
-              version="0.10.26">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="val" transfer-ownership="none">
-            <type name="int16" c:type="gint16"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="put_uint24_be"
-              c:identifier="gst_byte_writer_put_uint24_be"
-              doc="Writes a unsigned big endian 24 bit integer to @writer."
-              version="0.10.26">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="val" transfer-ownership="none">
-            <type name="uint32" c:type="guint32"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="put_uint24_le"
-              c:identifier="gst_byte_writer_put_uint24_le"
-              doc="Writes a unsigned little endian 24 bit integer to @writer."
-              version="0.10.26">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="val" transfer-ownership="none">
-            <type name="uint32" c:type="guint32"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="put_int24_be"
-              c:identifier="gst_byte_writer_put_int24_be"
-              doc="Writes a signed big endian 24 bit integer to @writer."
-              version="0.10.26">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="val" transfer-ownership="none">
-            <type name="int32" c:type="gint32"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="put_int24_le"
-              c:identifier="gst_byte_writer_put_int24_le"
-              doc="Writes a signed little endian 24 bit integer to @writer."
-              version="0.10.26">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="val" transfer-ownership="none">
-            <type name="int32" c:type="gint32"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="put_uint32_be"
-              c:identifier="gst_byte_writer_put_uint32_be"
-              doc="Writes a unsigned big endian 32 bit integer to @writer."
-              version="0.10.26">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="val" transfer-ownership="none">
-            <type name="uint32" c:type="guint32"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="put_uint32_le"
-              c:identifier="gst_byte_writer_put_uint32_le"
-              doc="Writes a unsigned little endian 32 bit integer to @writer."
-              version="0.10.26">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="val" transfer-ownership="none">
-            <type name="uint32" c:type="guint32"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="put_int32_be"
-              c:identifier="gst_byte_writer_put_int32_be"
-              doc="Writes a signed big endian 32 bit integer to @writer."
-              version="0.10.26">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="val" transfer-ownership="none">
-            <type name="int32" c:type="gint32"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="put_int32_le"
-              c:identifier="gst_byte_writer_put_int32_le"
-              doc="Writes a signed little endian 32 bit integer to @writer."
-              version="0.10.26">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="val" transfer-ownership="none">
-            <type name="int32" c:type="gint32"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="put_uint64_be"
-              c:identifier="gst_byte_writer_put_uint64_be"
-              doc="Writes a unsigned big endian 64 bit integer to @writer."
-              version="0.10.26">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="val" transfer-ownership="none">
-            <type name="uint64" c:type="guint64"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="put_uint64_le"
-              c:identifier="gst_byte_writer_put_uint64_le"
-              doc="Writes a unsigned little endian 64 bit integer to @writer."
-              version="0.10.26">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="val" transfer-ownership="none">
-            <type name="uint64" c:type="guint64"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="put_int64_be"
-              c:identifier="gst_byte_writer_put_int64_be"
-              doc="Writes a signed big endian 64 bit integer to @writer."
-              version="0.10.26">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="val" transfer-ownership="none">
-            <type name="int64" c:type="gint64"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="put_int64_le"
-              c:identifier="gst_byte_writer_put_int64_le"
-              doc="Writes a signed little endian 64 bit integer to @writer."
-              version="0.10.26">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="val" transfer-ownership="none">
-            <type name="int64" c:type="gint64"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="put_float32_be"
-              c:identifier="gst_byte_writer_put_float32_be"
-              doc="Writes a big endian 32 bit float to @writer."
-              version="0.10.27">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="val" transfer-ownership="none">
-            <type name="float" c:type="gfloat"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="put_float32_le"
-              c:identifier="gst_byte_writer_put_float32_le"
-              doc="Writes a little endian 32 bit float to @writer."
-              version="0.10.27">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="val" transfer-ownership="none">
-            <type name="float" c:type="gfloat"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="put_float64_be"
-              c:identifier="gst_byte_writer_put_float64_be"
-              doc="Writes a big endian 64 bit float to @writer."
-              version="0.10.27">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="val" transfer-ownership="none">
-            <type name="double" c:type="gdouble"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="put_float64_le"
-              c:identifier="gst_byte_writer_put_float64_le"
-              doc="Writes a little endian 64 bit float to @writer."
-              version="0.10.27">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="val" transfer-ownership="none">
-            <type name="double" c:type="gdouble"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="put_data"
-              c:identifier="gst_byte_writer_put_data"
-              doc="Writes @size bytes of @data to @writer."
-              version="0.10.26">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="data" transfer-ownership="none">
-            <array c:type="guint8*">
-              <type name="uint8"/>
-            </array>
-          </parameter>
-          <parameter name="size" transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="fill"
-              c:identifier="gst_byte_writer_fill"
-              doc="Writes @size bytes containing @value to @writer."
-              version="0.10.27">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="value" transfer-ownership="none">
-            <type name="uint8" c:type="guint8"/>
-          </parameter>
-          <parameter name="size" transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="put_string_utf8"
-              c:identifier="gst_byte_writer_put_string_utf8"
-              doc="Writes a null-terminated UTF8 string to @writer."
-              version="0.10.26">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="data" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="put_string_utf16"
-              c:identifier="gst_byte_writer_put_string_utf16"
-              doc="Writes a null-terminated UTF16 string to @writer."
-              version="0.10.26">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="data" direction="out" transfer-ownership="none">
-            <type name="uint16" c:type="guint16*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="put_string_utf32"
-              c:identifier="gst_byte_writer_put_string_utf32"
-              doc="Writes a null-terminated UTF32 string to @writer."
-              version="0.10.26">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="data" direction="out" transfer-ownership="none">
-            <type name="uint32" c:type="guint32*"/>
-          </parameter>
-        </parameters>
-      </method>
-    </record>
-    <record name="CollectData"
-            c:type="GstCollectData"
-            doc="Structure used by the collect_pads.">
-      <field name="collect" writable="1">
-        <type name="CollectPads" c:type="GstCollectPads*"/>
-      </field>
-      <field name="pad" writable="1">
-        <type name="Gst.Pad" c:type="GstPad*"/>
-      </field>
-      <field name="buffer" writable="1">
-        <type name="Gst.Buffer" c:type="GstBuffer*"/>
-      </field>
-      <field name="pos" writable="1">
-        <type name="uint" c:type="guint"/>
-      </field>
-      <field name="segment" writable="1">
-        <type name="Gst.Segment" c:type="GstSegment"/>
-      </field>
-      <union name="abidata" c:type="abidata">
-        <record name="ABI" c:type="ABI">
-          <field name="flushing" writable="1">
-            <type name="boolean" c:type="gboolean"/>
-          </field>
-          <field name="new_segment" writable="1">
-            <type name="boolean" c:type="gboolean"/>
-          </field>
-          <field name="eos" writable="1">
-            <type name="boolean" c:type="gboolean"/>
-          </field>
-          <field name="refcount" writable="1">
-            <type name="int" c:type="gint"/>
-          </field>
-        </record>
-        <field name="_gst_reserved" writable="1">
-          <array zero-terminated="0" c:type="gpointer" fixed-size="4">
-            <type name="any"/>
-          </array>
-        </field>
-      </union>
-    </record>
-    <callback name="CollectDataDestroyNotify"
-              c:type="GstCollectDataDestroyNotify"
-              doc="A function that will be called when the #GstCollectData will be freed.
-It is passed the pointer to the structure and should free any custom
-memory and resources allocated for it."
-              version="0.10.12">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="data" transfer-ownership="none">
-          <type name="CollectData" c:type="GstCollectData*"/>
-        </parameter>
-      </parameters>
-    </callback>
-    <class name="CollectPads"
-           c:type="GstCollectPads"
-           doc="Collectpads object.
-Note that @data doesn&apos;t contain the complete #GstCollectData list
-at all times and should not be used for iterating them."
-           parent="Gst.Object"
-           glib:type-name="GstCollectPads"
-           glib:get-type="gst_collect_pads_get_type"
-           glib:type-struct="CollectPadsClass">
-      <constructor name="new"
-                   c:identifier="gst_collect_pads_new"
-                   doc="Create a new instance of #GstCollectPads.
-MT safe.">
-        <return-value transfer-ownership="full">
-          <type name="CollectPads" c:type="GstCollectPads*"/>
-        </return-value>
-      </constructor>
-      <method name="set_function"
-              c:identifier="gst_collect_pads_set_function"
-              doc="Set the callback function and user data that will be called when
-all the pads added to the collection have buffers queued.
-MT safe.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="func"
-                     transfer-ownership="none"
-                     scope="call"
-                     closure="2">
-            <type name="CollectPadsFunction" c:type="GstCollectPadsFunction"/>
-          </parameter>
-          <parameter name="user_data" transfer-ownership="none">
-            <type name="any" c:type="gpointer"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_clip_function"
-              c:identifier="gst_collect_pads_set_clip_function"
-              doc="Install a clipping function that is called right after a buffer is received
-on a pad managed by @pads. See #GstCollectDataClipFunction for more info."
-              version="0.10.26">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="clipfunc"
-                     transfer-ownership="none"
-                     scope="call"
-                     closure="2">
-            <type name="CollectPadsClipFunction"
-                  c:type="GstCollectPadsClipFunction"/>
-          </parameter>
-          <parameter name="user_data" transfer-ownership="none">
-            <type name="any" c:type="gpointer"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="add_pad"
-              c:identifier="gst_collect_pads_add_pad"
-              doc="Add a pad to the collection of collect pads. The pad has to be
-a sinkpad. The refcount of the pad is incremented. Use
-gst_collect_pads_remove_pad() to remove the pad from the collection
-again.
-This function will override the chain and event functions of the pad
-along with the element_private data, which is used to store private
-information for the collectpads.
-You specify a size for the returned #GstCollectData structure
-so that you can use it to store additional information.
-The pad will be automatically activated in push mode when @pads is
-started.
-This function calls gst_collect_pads_add_pad() passing a value of NULL
-for destroy_notify.
-if wrong parameters are supplied.
-MT safe.">
-        <return-value transfer-ownership="full">
-          <type name="CollectData" c:type="GstCollectData*"/>
-        </return-value>
-        <parameters>
-          <parameter name="pad" transfer-ownership="none">
-            <type name="Gst.Pad" c:type="GstPad*"/>
-          </parameter>
-          <parameter name="size" transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="add_pad_full"
-              c:identifier="gst_collect_pads_add_pad_full"
-              doc="structure is freed
-Add a pad to the collection of collect pads. The pad has to be
-a sinkpad. The refcount of the pad is incremented. Use
-gst_collect_pads_remove_pad() to remove the pad from the collection
-again.
-You specify a size for the returned #GstCollectData structure
-so that you can use it to store additional information.
-You can also specify a #GstCollectDataDestroyNotify that will be called
-just before the #GstCollectData structure is freed. It is passed the
-pointer to the structure and should free any custom memory and resources
-allocated for it.
-The pad will be automatically activated in push mode when @pads is
-started.
-if wrong parameters are supplied.
-MT safe."
-              version="0.10.12">
-        <return-value transfer-ownership="full">
-          <type name="CollectData" c:type="GstCollectData*"/>
-        </return-value>
-        <parameters>
-          <parameter name="pad" transfer-ownership="none">
-            <type name="Gst.Pad" c:type="GstPad*"/>
-          </parameter>
-          <parameter name="size" transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
-          </parameter>
-          <parameter name="destroy_notify"
-                     transfer-ownership="none"
-                     scope="call">
-            <type name="CollectDataDestroyNotify"
-                  c:type="GstCollectDataDestroyNotify"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="remove_pad"
-              c:identifier="gst_collect_pads_remove_pad"
-              doc="Remove a pad from the collection of collect pads. This function will also
-free the #GstCollectData and all the resources that were allocated with
-gst_collect_pads_add_pad().
-The pad will be deactivated automatically when @pads is stopped.
-MT safe.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="pad" transfer-ownership="none">
-            <type name="Gst.Pad" c:type="GstPad*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="is_active"
-              c:identifier="gst_collect_pads_is_active"
-              doc="Check if a pad is active.
-This function is currently not implemented.
-MT safe.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="pad" transfer-ownership="none">
-            <type name="Gst.Pad" c:type="GstPad*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="collect"
-              c:identifier="gst_collect_pads_collect"
-              doc="Collect data on all pads. This function is usually called
-from a #GstTask function in an element.
-This function is currently not implemented.
-MT safe.">
-        <return-value transfer-ownership="full">
-          <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
-        </return-value>
-      </method>
-      <method name="collect_range"
-              c:identifier="gst_collect_pads_collect_range"
-              doc="Collect data with @offset and @length on all pads. This function
-is typically called in the getrange function of an element.
-This function is currently not implemented.
-MT safe.">
-        <return-value transfer-ownership="full">
-          <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
-        </return-value>
-        <parameters>
-          <parameter name="offset" transfer-ownership="none">
-            <type name="uint64" c:type="guint64"/>
-          </parameter>
-          <parameter name="length" transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="start"
-              c:identifier="gst_collect_pads_start"
-              doc="Starts the processing of data in the collect_pads.
-MT safe.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </method>
-      <method name="stop"
-              c:identifier="gst_collect_pads_stop"
-              doc="Stops the processing of data in the collect_pads. this function
-will also unblock any blocking operations.
-MT safe.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </method>
-      <method name="set_flushing"
-              c:identifier="gst_collect_pads_set_flushing"
-              doc="Change the flushing state of all the pads in the collection. No pad
-is able to accept anymore data when @flushing is %TRUE. Calling this
-function with @flushing %FALSE makes @pads accept data again.
-MT safe."
-              version="0.10.7.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="flushing" transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="peek"
-              c:identifier="gst_collect_pads_peek"
-              doc="Peek at the buffer currently queued in @data. This function
-should be called with the @pads LOCK held, such as in the callback
-handler.
-should unref the buffer after usage.
-MT safe.">
-        <return-value transfer-ownership="full">
-          <type name="Gst.Buffer" c:type="GstBuffer*"/>
-        </return-value>
-        <parameters>
-          <parameter name="data" transfer-ownership="none">
-            <type name="CollectData" c:type="GstCollectData*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="pop"
-              c:identifier="gst_collect_pads_pop"
-              doc="Pop the buffer currently queued in @data. This function
-should be called with the @pads LOCK held, such as in the callback
-handler.
-You should unref the buffer after usage.
-MT safe.">
-        <return-value transfer-ownership="full">
-          <type name="Gst.Buffer" c:type="GstBuffer*"/>
-        </return-value>
-        <parameters>
-          <parameter name="data" transfer-ownership="none">
-            <type name="CollectData" c:type="GstCollectData*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="available"
-              c:identifier="gst_collect_pads_available"
-              doc="Query how much bytes can be read from each queued buffer. This means
-that the result of this call is the maximum number of bytes that can
-be read from each of the pads.
-This function should be called with @pads LOCK held, such as
-in the callback.
-returns 0 if a pad has no queued buffer.
-MT safe.">
-        <return-value transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
-        </return-value>
-      </method>
-      <method name="read"
-              c:identifier="gst_collect_pads_read"
-              doc="Get a pointer in @bytes where @size bytes can be read from the
-given pad @data.
-This function should be called with @pads LOCK held, such as
-in the callback.
-memory pointed to by @bytes. This can be less than @size and
-is 0 if the pad is end-of-stream.
-MT safe.">
-        <return-value transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
-        </return-value>
-        <parameters>
-          <parameter name="data" transfer-ownership="none">
-            <type name="CollectData" c:type="GstCollectData*"/>
-          </parameter>
-          <parameter name="bytes" direction="out" transfer-ownership="full">
-            <type name="uint8" c:type="guint8**"/>
-          </parameter>
-          <parameter name="size" transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="read_buffer"
-              c:identifier="gst_collect_pads_read_buffer"
-              doc="Get a buffer of @size bytes from the given pad @data.
-This function should be called with @pads LOCK held, such as in the callback.
-A return of NULL signals that the pad is end-of-stream.
-Unref the buffer after use.
-MT safe."
-              version="0.10.18">
-        <return-value transfer-ownership="full">
-          <type name="Gst.Buffer" c:type="GstBuffer*"/>
-        </return-value>
-        <parameters>
-          <parameter name="data" transfer-ownership="none">
-            <type name="CollectData" c:type="GstCollectData*"/>
-          </parameter>
-          <parameter name="size" transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="take_buffer"
-              c:identifier="gst_collect_pads_take_buffer"
-              doc="Get a buffer of @size bytes from the given pad @data. Flushes the amount
-of read bytes.
-This function should be called with @pads LOCK held, such as in the callback.
-A return of NULL signals that the pad is end-of-stream.
-Unref the buffer after use.
-MT safe."
-              version="0.10.18">
-        <return-value transfer-ownership="full">
-          <type name="Gst.Buffer" c:type="GstBuffer*"/>
-        </return-value>
-        <parameters>
-          <parameter name="data" transfer-ownership="none">
-            <type name="CollectData" c:type="GstCollectData*"/>
-          </parameter>
-          <parameter name="size" transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="flush"
-              c:identifier="gst_collect_pads_flush"
-              doc="Flush @size bytes from the pad @data.
-This function should be called with @pads LOCK held, such as
-in the callback.
-is 0 if the pad was end-of-stream.
-MT safe.">
-        <return-value transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
-        </return-value>
-        <parameters>
-          <parameter name="data" transfer-ownership="none">
-            <type name="CollectData" c:type="GstCollectData*"/>
-          </parameter>
-          <parameter name="size" transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
-          </parameter>
-        </parameters>
-      </method>
-      <field name="object">
-        <type name="Gst.Object" c:type="GstObject"/>
-      </field>
-      <field name="data">
-        <type name="GLib.SList" c:type="GSList*"/>
-      </field>
-      <field name="cookie">
-        <type name="uint32" c:type="guint32"/>
-      </field>
-      <field name="cond">
-        <type name="GLib.Cond" c:type="GCond*"/>
-      </field>
-      <field name="func">
-        <type name="CollectPadsFunction" c:type="GstCollectPadsFunction"/>
-      </field>
-      <field name="user_data">
-        <type name="any" c:type="gpointer"/>
-      </field>
-      <field name="numpads">
-        <type name="uint" c:type="guint"/>
-      </field>
-      <field name="queuedpads">
-        <type name="uint" c:type="guint"/>
-      </field>
-      <field name="eospads">
-        <type name="uint" c:type="guint"/>
-      </field>
-      <field name="started">
-        <type name="boolean" c:type="gboolean"/>
-      </field>
-      <union name="abidata" c:type="abidata">
-        <record name="ABI" c:type="ABI">
-          <field name="pad_lock" writable="1">
-            <type name="GLib.Mutex" c:type="GMutex*"/>
-          </field>
-          <field name="pad_list" writable="1">
-            <type name="GLib.SList" c:type="GSList*"/>
-          </field>
-          <field name="pad_cookie" writable="1">
-            <type name="uint32" c:type="guint32"/>
-          </field>
-          <field name="priv" writable="1">
-            <type name="CollectPadsPrivate" c:type="GstCollectPadsPrivate*"/>
-          </field>
-        </record>
-        <field name="_gst_reserved" writable="1">
-          <array zero-terminated="0" c:type="gpointer" fixed-size="4">
-            <type name="any"/>
-          </array>
-        </field>
-      </union>
-    </class>
-    <record name="CollectPadsClass"
-            c:type="GstCollectPadsClass"
-            glib:is-gtype-struct-for="CollectPads">
-      <field name="parent_class">
-        <type name="Gst.ObjectClass" c:type="GstObjectClass"/>
-      </field>
-      <field name="_gst_reserved">
-        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
-          <type name="any"/>
-        </array>
-      </field>
-    </record>
-    <callback name="CollectPadsClipFunction"
-              c:type="GstCollectPadsClipFunction"
-              doc="A function that will be called when @buffer is received on the pad managed
-by @data in the collecpad object @pads.
-The function should use the segment of @data and the negotiated media type on
-the pad to perform clipping of @buffer.
-This function takes ownership of @buffer.
-the buffer has been clipped completely."
-              version="0.10.26">
-      <return-value transfer-ownership="full">
-        <type name="Gst.Buffer" c:type="GstBuffer*"/>
-      </return-value>
-      <parameters>
-        <parameter name="pads" transfer-ownership="none">
-          <type name="CollectPads" c:type="GstCollectPads*"/>
-        </parameter>
-        <parameter name="data" transfer-ownership="none">
-          <type name="CollectData" c:type="GstCollectData*"/>
-        </parameter>
-        <parameter name="buffer" transfer-ownership="none">
-          <type name="Gst.Buffer" c:type="GstBuffer*"/>
-        </parameter>
-        <parameter name="user_data" transfer-ownership="none" closure="3">
-          <type name="any" c:type="gpointer"/>
-        </parameter>
-      </parameters>
-    </callback>
-    <callback name="CollectPadsFunction"
-              c:type="GstCollectPadsFunction"
-              doc="A function that will be called when all pads have received data.">
-      <return-value transfer-ownership="full">
-        <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
-      </return-value>
-      <parameters>
-        <parameter name="pads" transfer-ownership="none">
-          <type name="CollectPads" c:type="GstCollectPads*"/>
-        </parameter>
-        <parameter name="user_data" transfer-ownership="none" closure="1">
-          <type name="any" c:type="gpointer"/>
-        </parameter>
-      </parameters>
-    </callback>
-    <record name="CollectPadsPrivate" c:type="GstCollectPadsPrivate">
-    </record>
-    <class name="DataQueue"
-           c:type="GstDataQueue"
-           doc="Opaque #GstDataQueue structure."
-           parent="GObject.Object"
-           glib:type-name="GstDataQueue"
-           glib:get-type="gst_data_queue_get_type"
-           glib:type-struct="DataQueueClass">
-      <constructor name="new" c:identifier="gst_data_queue_new" doc="or not.">
-        <return-value transfer-ownership="full">
-          <type name="DataQueue" c:type="GstDataQueue*"/>
-        </return-value>
-        <parameters>
-          <parameter name="checkfull"
-                     transfer-ownership="none"
-                     scope="call"
-                     closure="1">
-            <type name="DataQueueCheckFullFunction"
-                  c:type="GstDataQueueCheckFullFunction"/>
-          </parameter>
-          <parameter name="checkdata" transfer-ownership="none">
-            <type name="any" c:type="gpointer"/>
-          </parameter>
-        </parameters>
-      </constructor>
-      <constructor name="new_full"
-                   c:identifier="gst_data_queue_new_full"
-                   doc="or not.
-Creates a new #GstDataQueue. The difference with @gst_data_queue_new is that it will
-not emit the &apos;full&apos; and &apos;empty&apos; signals, but instead calling directly @fullcallback
-or @emptycallback."
-                   version="0.10.26">
-        <return-value transfer-ownership="full">
-          <type name="DataQueue" c:type="GstDataQueue*"/>
-        </return-value>
-        <parameters>
-          <parameter name="checkfull" transfer-ownership="none" scope="call">
-            <type name="DataQueueCheckFullFunction"
-                  c:type="GstDataQueueCheckFullFunction"/>
-          </parameter>
-          <parameter name="fullcallback"
-                     transfer-ownership="none"
-                     scope="call">
-            <type name="DataQueueFullCallback"
-                  c:type="GstDataQueueFullCallback"/>
-          </parameter>
-          <parameter name="emptycallback"
-                     transfer-ownership="none"
-                     scope="call"
-                     closure="3">
-            <type name="DataQueueEmptyCallback"
-                  c:type="GstDataQueueEmptyCallback"/>
-          </parameter>
-          <parameter name="checkdata" transfer-ownership="none">
-            <type name="any" c:type="gpointer"/>
-          </parameter>
-        </parameters>
-      </constructor>
-      <method name="push"
-              c:identifier="gst_data_queue_push"
-              doc="Pushes a #GstDataQueueItem (or a structure that begins with the same fields)
-on the @queue. If the @queue is full, the call will block until space is
-available, OR the @queue is set to flushing state.
-MT safe.
-Note that this function has slightly different semantics than gst_pad_push()
-the #GstMiniObject contained in @item if the push was successful. If FALSE
-is returned, the caller is responsible for freeing @item and its contents.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="item" transfer-ownership="none">
-            <type name="DataQueueItem" c:type="GstDataQueueItem*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="pop"
-              c:identifier="gst_data_queue_pop"
-              doc="Retrieves the first @item available on the @queue. If the queue is currently
-empty, the call will block until at least one item is available, OR the
-MT safe.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="item" transfer-ownership="none">
-            <type name="DataQueueItem" c:type="GstDataQueueItem**"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="flush"
-              c:identifier="gst_data_queue_flush"
-              doc="Flushes all the contents of the @queue. Any call to #gst_data_queue_push and
-#gst_data_queue_pop will be released.
-MT safe.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </method>
-      <method name="set_flushing"
-              c:identifier="gst_data_queue_set_flushing"
-              doc="Sets the queue to flushing state if @flushing is #TRUE. If set to flushing
-state, any incoming data on the @queue will be discarded. Any call currently
-blocking on #gst_data_queue_push or #gst_data_queue_pop will return straight
-away with a return value of #FALSE. While the @queue is in flushing state,
-all calls to those two functions will return #FALSE.
-MT Safe.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="flushing" transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="drop_head"
-              c:identifier="gst_data_queue_drop_head"
-              doc="Pop and unref the head-most #GstMiniObject with the given #GType.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="type" transfer-ownership="none">
-            <type name="GType" c:type="GType"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="is_full"
-              c:identifier="gst_data_queue_is_full"
-              doc="Queries if @queue is full. This check will be done using the
-#GstDataQueueCheckFullFunction registered with @queue.
-MT safe.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-      </method>
-      <method name="is_empty"
-              c:identifier="gst_data_queue_is_empty"
-              doc="Queries if there are any items in the @queue.
-MT safe.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-      </method>
-      <method name="get_level"
-              c:identifier="gst_data_queue_get_level"
-              doc="Get the current level of the queue.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="level" transfer-ownership="none">
-            <type name="DataQueueSize" c:type="GstDataQueueSize*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="limits_changed"
-              c:identifier="gst_data_queue_limits_changed"
-              doc="Inform the queue that the limits for the fullness check have changed and that
-any blocking gst_data_queue_push() should be unblocked to recheck the limts.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </method>
-      <property name="current-level-bytes">
-        <type name="uint" c:type="guint"/>
-      </property>
-      <property name="current-level-time">
-        <type name="uint64" c:type="guint64"/>
-      </property>
-      <property name="current-level-visible">
-        <type name="uint" c:type="guint"/>
-      </property>
-      <field name="object">
-        <type name="GObject.Object" c:type="GObject"/>
-      </field>
-      <field name="queue">
-        <type name="GLib.Queue" c:type="GQueue*"/>
-      </field>
-      <field name="cur_level">
-        <type name="DataQueueSize" c:type="GstDataQueueSize"/>
-      </field>
-      <field name="checkfull">
-        <type name="DataQueueCheckFullFunction"
-              c:type="GstDataQueueCheckFullFunction"/>
-      </field>
-      <field name="checkdata">
-        <type name="any" c:type="gpointer*"/>
-      </field>
-      <field name="qlock">
-        <type name="GLib.Mutex" c:type="GMutex*"/>
-      </field>
-      <field name="item_add">
-        <type name="GLib.Cond" c:type="GCond*"/>
-      </field>
-      <field name="item_del">
-        <type name="GLib.Cond" c:type="GCond*"/>
-      </field>
-      <field name="flushing">
-        <type name="boolean" c:type="gboolean"/>
-      </field>
-      <field name="fullcallback">
-        <type name="DataQueueFullCallback" c:type="GstDataQueueFullCallback"/>
-      </field>
-      <field name="emptycallback">
-        <type name="DataQueueEmptyCallback"
-              c:type="GstDataQueueEmptyCallback"/>
-      </field>
-      <field name="_gst_reserved">
-        <array zero-terminated="0" c:type="gpointer" fixed-size="2">
-          <type name="any"/>
-        </array>
-      </field>
-      <glib:signal name="empty"
-                   doc="Reports that the queue became empty (empty).
-A queue is empty if the total amount of visible items inside it (num-visible, time,
-size) is lower than the boundary values which can be set through the GObject
-properties.">
-        <return-value transfer-ownership="full">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </glib:signal>
-      <glib:signal name="full"
-                   doc="Reports that the queue became full (full).
-A queue is full if the total amount of data inside it (num-visible, time,
-size) is higher than the boundary values which can be set through the GObject
-properties.">
-        <return-value transfer-ownership="full">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </glib:signal>
-    </class>
-    <callback name="DataQueueCheckFullFunction"
-              c:type="GstDataQueueCheckFullFunction"
-              doc="The prototype of the function used to inform the queue that it should be
-considered as full.">
-      <return-value transfer-ownership="none">
-        <type name="boolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="queue" transfer-ownership="none">
-          <type name="DataQueue" c:type="GstDataQueue*"/>
-        </parameter>
-        <parameter name="visible" transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
-        </parameter>
-        <parameter name="bytes" transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
-        </parameter>
-        <parameter name="time" transfer-ownership="none">
-          <type name="uint64" c:type="guint64"/>
-        </parameter>
-        <parameter name="checkdata" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
-        </parameter>
-      </parameters>
-    </callback>
-    <record name="DataQueueClass"
-            c:type="GstDataQueueClass"
-            glib:is-gtype-struct-for="DataQueue">
-      <field name="parent_class">
-        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
-      </field>
-      <field name="empty">
-        <callback name="empty" c:type="empty">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="queue" transfer-ownership="none">
-              <type name="DataQueue" c:type="GstDataQueue*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="full">
-        <callback name="full" c:type="full">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="queue" transfer-ownership="none">
-              <type name="DataQueue" c:type="GstDataQueue*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="_gst_reserved">
-        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
-          <type name="any"/>
-        </array>
-      </field>
-    </record>
-    <callback name="DataQueueEmptyCallback" c:type="GstDataQueueEmptyCallback">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="queue" transfer-ownership="none">
-          <type name="DataQueue" c:type="GstDataQueue*"/>
-        </parameter>
-        <parameter name="checkdata" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
-        </parameter>
-      </parameters>
-    </callback>
-    <callback name="DataQueueFullCallback" c:type="GstDataQueueFullCallback">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="queue" transfer-ownership="none">
-          <type name="DataQueue" c:type="GstDataQueue*"/>
-        </parameter>
-        <parameter name="checkdata" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
-        </parameter>
-      </parameters>
-    </callback>
-    <record name="DataQueueItem"
-            c:type="GstDataQueueItem"
-            doc="#GST_CLOCK_TIME_NONE.
-This function should also drop the reference to @object the owner of the
-#GstDataQueueItem is assumed to hold.
-Structure used by #GstDataQueue. You can supply a different structure, as
-long as the top of the structure is identical to this structure.">
-      <field name="object" writable="1">
-        <type name="Gst.MiniObject" c:type="GstMiniObject*"/>
-      </field>
-      <field name="size" writable="1">
-        <type name="uint" c:type="guint"/>
-      </field>
-      <field name="duration" writable="1">
-        <type name="uint64" c:type="guint64"/>
-      </field>
-      <field name="visible" writable="1">
-        <type name="boolean" c:type="gboolean"/>
-      </field>
-      <field name="destroy" writable="1">
-        <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
-      </field>
-    </record>
-    <record name="DataQueueSize"
-            c:type="GstDataQueueSize"
-            doc="Structure describing the size of a queue.">
-      <field name="visible" writable="1">
-        <type name="uint" c:type="guint"/>
-      </field>
-      <field name="bytes" writable="1">
-        <type name="uint" c:type="guint"/>
-      </field>
-      <field name="time" writable="1">
-        <type name="uint64" c:type="guint64"/>
-      </field>
-    </record>
-    <class name="PushSrc"
-           c:type="GstPushSrc"
-           doc="The opaque #GstPushSrc data structure."
-           parent="BaseSrc"
-           glib:type-name="GstPushSrc"
-           glib:get-type="gst_push_src_get_type"
-           glib:type-struct="PushSrcClass">
-      <virtual-method name="create">
-        <return-value transfer-ownership="full">
-          <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
-        </return-value>
-        <parameters>
-          <parameter name="buf" transfer-ownership="none">
-            <type name="Gst.Buffer" c:type="GstBuffer**"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <field name="parent">
-        <type name="BaseSrc" c:type="GstBaseSrc"/>
-      </field>
-      <field name="_gst_reserved">
-        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
-          <type name="any"/>
-        </array>
-      </field>
-    </class>
-    <record name="PushSrcClass"
-            c:type="GstPushSrcClass"
-            glib:is-gtype-struct-for="PushSrc">
-      <field name="parent_class">
-        <type name="BaseSrcClass" c:type="GstBaseSrcClass"/>
-      </field>
-      <field name="create">
-        <callback name="create" c:type="create">
-          <return-value transfer-ownership="full">
-            <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
-          </return-value>
-          <parameters>
-            <parameter name="src" transfer-ownership="none">
-              <type name="PushSrc" c:type="GstPushSrc*"/>
-            </parameter>
-            <parameter name="buf" transfer-ownership="none">
-              <type name="Gst.Buffer" c:type="GstBuffer**"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="_gst_reserved">
-        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
-          <type name="any"/>
-        </array>
-      </field>
-    </record>
-    <constant name="TRANSFORM_SINK_NAME" value="sink">
-      <type name="utf8"/>
-    </constant>
-    <constant name="TRANSFORM_SRC_NAME" value="src">
-      <type name="utf8"/>
-    </constant>
-    <callback name="TypeFindHelperGetRangeFunction"
-              c:type="GstTypeFindHelperGetRangeFunction"
-              doc="This function will be called by gst_type_find_helper_get_range() when
-typefinding functions request to peek at the data of a stream at certain
-offsets. If this function returns GST_FLOW_OK, the result buffer will be
-stored in @buffer. The  contents of @buffer is invalid for any other
-return value.
-This function is supposed to behave exactly like a #GstPadGetRangeFunction.">
-      <return-value transfer-ownership="full">
-        <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
-      </return-value>
-      <parameters>
-        <parameter name="obj" transfer-ownership="none">
-          <type name="Gst.Object" c:type="GstObject*"/>
-        </parameter>
-        <parameter name="offset" transfer-ownership="none">
-          <type name="uint64" c:type="guint64"/>
-        </parameter>
-        <parameter name="length" transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
-        </parameter>
-        <parameter name="buffer" transfer-ownership="none">
-          <type name="Gst.Buffer" c:type="GstBuffer**"/>
-        </parameter>
-      </parameters>
-    </callback>
-    <function name="type_find_helper"
-              c:identifier="gst_type_find_helper"
-              doc="Tries to find what type of data is flowing from the given source #GstPad.
-Returns #NULL if no #GstCaps matches the data stream.">
-      <return-value transfer-ownership="full">
-        <type name="Gst.Caps" c:type="GstCaps*"/>
-      </return-value>
-      <parameters>
-        <parameter name="src" transfer-ownership="none">
-          <type name="Gst.Pad" c:type="GstPad*"/>
-        </parameter>
-        <parameter name="size" transfer-ownership="none">
-          <type name="uint64" c:type="guint64"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="type_find_helper_for_buffer"
-              c:identifier="gst_type_find_helper_for_buffer"
-              doc="Tries to find what type of data is contained in the given #GstBuffer, the
-assumption being that the buffer represents the beginning of the stream or
-file.
-All available typefinders will be called on the data in order of rank. If
-a typefinding function returns a probability of #GST_TYPE_FIND_MAXIMUM,
-typefinding is stopped immediately and the found caps will be returned
-right away. Otherwise, all available typefind functions will the tried,
-and the caps with the highest probability will be returned, or #NULL if
-the content of the buffer could not be identified.
-be found. The caller should free the caps returned with gst_caps_unref().">
-      <return-value transfer-ownership="full">
-        <type name="Gst.Caps" c:type="GstCaps*"/>
-      </return-value>
-      <parameters>
-        <parameter name="obj" transfer-ownership="none">
-          <type name="Gst.Object" c:type="GstObject*"/>
-        </parameter>
-        <parameter name="buf" transfer-ownership="none">
-          <type name="Gst.Buffer" c:type="GstBuffer*"/>
-        </parameter>
-        <parameter name="prob" transfer-ownership="none">
-          <type name="Gst.TypeFindProbability"
-                c:type="GstTypeFindProbability*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="type_find_helper_for_extension"
-              c:identifier="gst_type_find_helper_for_extension"
-              doc="Tries to find the best #GstCaps associated with @extension.
-All available typefinders will be checked against the extension in order
-of rank. The caps of the first typefinder that can handle @extension will be
-returned.
-be found. The caller should free the caps returned with gst_caps_unref()."
-              version="0.10.23">
-      <return-value transfer-ownership="full">
-        <type name="Gst.Caps" c:type="GstCaps*"/>
-      </return-value>
-      <parameters>
-        <parameter name="obj" transfer-ownership="none">
-          <type name="Gst.Object" c:type="GstObject*"/>
-        </parameter>
-        <parameter name="extension" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="type_find_helper_get_range"
-              c:identifier="gst_type_find_helper_get_range"
-              doc="to access data at random offsets when doing the typefinding
-Utility function to do pull-based typefinding. Unlike gst_type_find_helper()
-however, this function will use the specified function @func to obtain the
-data needed by the typefind functions, rather than operating on a given
-source pad. This is useful mostly for elements like tag demuxers which
-strip off data at the beginning and/or end of a file and want to typefind
-the stripped data stream before adding their own source pad (the specified
-callback can then call the upstream peer pad with offsets adjusted for the
-tag size, for example).
-Returns #NULL if no #GstCaps matches the data stream.">
-      <return-value transfer-ownership="full">
-        <type name="Gst.Caps" c:type="GstCaps*"/>
-      </return-value>
-      <parameters>
-        <parameter name="obj" transfer-ownership="none">
-          <type name="Gst.Object" c:type="GstObject*"/>
-        </parameter>
-        <parameter name="func" transfer-ownership="none" scope="call">
-          <type name="TypeFindHelperGetRangeFunction"
-                c:type="GstTypeFindHelperGetRangeFunction"/>
-        </parameter>
-        <parameter name="size" transfer-ownership="none">
-          <type name="uint64" c:type="guint64"/>
-        </parameter>
-        <parameter name="prob" transfer-ownership="none">
-          <type name="Gst.TypeFindProbability"
-                c:type="GstTypeFindProbability*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="type_find_helper_get_range_ext"
-              c:identifier="gst_type_find_helper_get_range_ext"
-              doc="to access data at random offsets when doing the typefinding
-Utility function to do pull-based typefinding. Unlike gst_type_find_helper()
-however, this function will use the specified function @func to obtain the
-data needed by the typefind functions, rather than operating on a given
-source pad. This is useful mostly for elements like tag demuxers which
-strip off data at the beginning and/or end of a file and want to typefind
-the stripped data stream before adding their own source pad (the specified
-callback can then call the upstream peer pad with offsets adjusted for the
-tag size, for example).
-When @extension is not NULL, this function will first try the typefind
-functions for the given extension, which might speed up the typefinding
-in many cases.
-Returns #NULL if no #GstCaps matches the data stream."
-              version="0.10.26">
-      <return-value transfer-ownership="full">
-        <type name="Gst.Caps" c:type="GstCaps*"/>
-      </return-value>
-      <parameters>
-        <parameter name="obj" transfer-ownership="none">
-          <type name="Gst.Object" c:type="GstObject*"/>
-        </parameter>
-        <parameter name="func" transfer-ownership="none" scope="call">
-          <type name="TypeFindHelperGetRangeFunction"
-                c:type="GstTypeFindHelperGetRangeFunction"/>
-        </parameter>
-        <parameter name="size" transfer-ownership="none">
-          <type name="uint64" c:type="guint64"/>
-        </parameter>
-        <parameter name="extension" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-        <parameter name="prob" transfer-ownership="none">
-          <type name="Gst.TypeFindProbability"
-                c:type="GstTypeFindProbability*"/>
-        </parameter>
-      </parameters>
-    </function>
-  </namespace>
-</repository>
diff --git a/extra/gstreamer/base/base.factor b/extra/gstreamer/base/base.factor
deleted file mode 100644 (file)
index 445d506..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-! Copyright (C) 2010 Anton Gorenko.
-! See http://factorcode.org/license.txt for BSD license.
-USING: gstreamer.base.ffi ;
-IN: gstreamer.base
-
diff --git a/extra/gstreamer/base/ffi/ffi.factor b/extra/gstreamer/base/ffi/ffi.factor
deleted file mode 100644 (file)
index 1f15ecf..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-! Copyright (C) 2010 Anton Gorenko.
-! See http://factorcode.org/license.txt for BSD license.
-USING: alien alien.libraries combinators kernel system
-gobject-introspection glib.ffi gstreamer.ffi ;
-IN: gstreamer.base.ffi
-
-<<
-"gstreamer.base" {
-    { [ os winnt? ] [ drop ] }
-    { [ os macosx? ] [ drop ] }
-    { [ os unix? ] [ "libgstbase-0.10.so" cdecl add-library ] }
-} cond
->>
-
-GIR: vocab:gstreamer/base/GstBase-0.10.gir
-
diff --git a/extra/gstreamer/controller/GstController-0.10.gir b/extra/gstreamer/controller/GstController-0.10.gir
deleted file mode 100644 (file)
index 137e69a..0000000
+++ /dev/null
@@ -1,1005 +0,0 @@
-<?xml version="1.0"?>
-<!-- This file was automatically generated from C sources - DO NOT EDIT!
-To affect the contents of this file, edit the original C definitions,
-and/or use gtk-doc annotations.  -->
-<repository version="1.0"
-            xmlns="http://www.gtk.org/introspection/core/1.0"
-            xmlns:c="http://www.gtk.org/introspection/c/1.0"
-            xmlns:glib="http://www.gtk.org/introspection/glib/1.0">
-  <include name="GLib" version="2.0"/>
-  <include name="GModule" version="2.0"/>
-  <include name="GObject" version="2.0"/>
-  <include name="Gst" version="0.10"/>
-  <include name="libxml2" version="2.0"/>
-  <package name="gstreamer-0.10"/>
-  <c:include name="gst/controller/gstcontroller.h"/>
-  <c:include name="gst/controller/gstcontrolsource.h"/>
-  <c:include name="gst/controller/gstinterpolationcontrolsource.h"/>
-  <c:include name="gst/controller/gstlfocontrolsource.h"/>
-  <namespace name="GstController"
-             version="0.10"
-             shared-library="libgstcontroller-0.10.so.0"
-             c:prefix="Gst">
-    <class name="ControlSource"
-           c:type="GstControlSource"
-           doc="The instance structure of #GstControlSource."
-           parent="GObject.Object"
-           abstract="1"
-           glib:type-name="GstControlSource"
-           glib:get-type="gst_control_source_get_type"
-           glib:type-struct="ControlSourceClass">
-      <method name="get_value"
-              c:identifier="gst_control_source_get_value"
-              doc="Gets the value for this #GstControlSource at a given timestamp.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="timestamp" transfer-ownership="none">
-            <type name="Gst.ClockTime" c:type="GstClockTime"/>
-          </parameter>
-          <parameter name="value" transfer-ownership="none">
-            <type name="GObject.Value" c:type="GValue*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_value_array"
-              c:identifier="gst_control_source_get_value_array"
-              doc="Gets an array of values for one element property.
-All fields of @value_array must be filled correctly. Especially the
-of values.
-The type of the values in the array is the same as the property&apos;s type.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="timestamp" transfer-ownership="none">
-            <type name="Gst.ClockTime" c:type="GstClockTime"/>
-          </parameter>
-          <parameter name="value_array" transfer-ownership="none">
-            <type name="ValueArray" c:type="GstValueArray*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="bind"
-              c:identifier="gst_control_source_bind"
-              doc="Binds a #GstControlSource to a specific property. This must be called only once for a
-#GstControlSource.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="pspec" transfer-ownership="none">
-            <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <field name="parent">
-        <type name="GObject.Object" c:type="GObject"/>
-      </field>
-      <field name="get_value">
-        <type name="ControlSourceGetValue" c:type="GstControlSourceGetValue"/>
-      </field>
-      <field name="get_value_array">
-        <type name="ControlSourceGetValueArray"
-              c:type="GstControlSourceGetValueArray"/>
-      </field>
-      <field name="bound">
-        <type name="boolean" c:type="gboolean"/>
-      </field>
-      <field name="_gst_reserved">
-        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
-          <type name="any"/>
-        </array>
-      </field>
-    </class>
-    <callback name="ControlSourceBind" c:type="GstControlSourceBind">
-      <return-value transfer-ownership="none">
-        <type name="boolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="self" transfer-ownership="none">
-          <type name="ControlSource" c:type="GstControlSource*"/>
-        </parameter>
-        <parameter name="pspec" transfer-ownership="none">
-          <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
-        </parameter>
-      </parameters>
-    </callback>
-    <record name="ControlSourceClass"
-            c:type="GstControlSourceClass"
-            glib:is-gtype-struct-for="ControlSource"
-            doc="The class structure of #GstControlSource.">
-      <field name="parent_class">
-        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
-      </field>
-      <field name="bind">
-        <type name="ControlSourceBind" c:type="GstControlSourceBind"/>
-      </field>
-      <field name="_gst_reserved">
-        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
-          <type name="any"/>
-        </array>
-      </field>
-    </record>
-    <callback name="ControlSourceGetValue" c:type="GstControlSourceGetValue">
-      <return-value transfer-ownership="none">
-        <type name="boolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="self" transfer-ownership="none">
-          <type name="ControlSource" c:type="GstControlSource*"/>
-        </parameter>
-        <parameter name="timestamp" transfer-ownership="none">
-          <type name="Gst.ClockTime" c:type="GstClockTime"/>
-        </parameter>
-        <parameter name="value" transfer-ownership="none">
-          <type name="GObject.Value" c:type="GValue*"/>
-        </parameter>
-      </parameters>
-    </callback>
-    <callback name="ControlSourceGetValueArray"
-              c:type="GstControlSourceGetValueArray">
-      <return-value transfer-ownership="none">
-        <type name="boolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="self" transfer-ownership="none">
-          <type name="ControlSource" c:type="GstControlSource*"/>
-        </parameter>
-        <parameter name="timestamp" transfer-ownership="none">
-          <type name="Gst.ClockTime" c:type="GstClockTime"/>
-        </parameter>
-        <parameter name="value_array" transfer-ownership="none">
-          <type name="ValueArray" c:type="GstValueArray*"/>
-        </parameter>
-      </parameters>
-    </callback>
-    <class name="Controller"
-           c:type="GstController"
-           doc="The instance structure of GstController"
-           parent="GObject.Object"
-           glib:type-name="GstController"
-           glib:get-type="gst_controller_get_type"
-           glib:type-struct="ControllerClass">
-      <constructor name="new_list"
-                   c:identifier="gst_controller_new_list"
-                   doc="Creates a new GstController for the given object&apos;s properties">
-        <return-value transfer-ownership="full">
-          <type name="Controller" c:type="GstController*"/>
-        </return-value>
-        <parameters>
-          <parameter name="object" transfer-ownership="none">
-            <type name="GObject.Object" c:type="GObject*"/>
-          </parameter>
-          <parameter name="list" transfer-ownership="none">
-            <type name="GLib.List" c:type="GList*"/>
-          </parameter>
-        </parameters>
-      </constructor>
-      <constructor name="new"
-                   c:identifier="gst_controller_new"
-                   doc="Creates a new GstController for the given object&apos;s properties">
-        <return-value transfer-ownership="full">
-          <type name="Controller" c:type="GstController*"/>
-        </return-value>
-        <parameters>
-          <parameter name="object" transfer-ownership="none">
-            <type name="GObject.Object" c:type="GObject*"/>
-          </parameter>
-          <parameter transfer-ownership="none">
-            <varargs>
-            </varargs>
-          </parameter>
-        </parameters>
-      </constructor>
-      <function name="init"
-                c:identifier="gst_controller_init"
-                doc="Initializes the use of the controller library. Suggested to be called right
-after gst_init().">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="argc" direction="out" transfer-ownership="full">
-            <type name="int" c:type="int*"/>
-          </parameter>
-          <parameter name="argv" transfer-ownership="none">
-            <type name="utf8" c:type="char***"/>
-          </parameter>
-        </parameters>
-      </function>
-      <method name="remove_properties_list"
-              c:identifier="gst_controller_remove_properties_list"
-              doc="Removes the given object properties from the controller">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="list" transfer-ownership="none">
-            <type name="GLib.List" c:type="GList*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="remove_properties"
-              c:identifier="gst_controller_remove_properties"
-              doc="Removes the given object properties from the controller">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter transfer-ownership="none">
-            <varargs>
-            </varargs>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_disabled"
-              c:identifier="gst_controller_set_disabled"
-              doc="or not.
-This function is used to disable all properties of the #GstController
-for some time, i.e. gst_controller_sync_values() will do nothing."
-              version="0.10.14">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="disabled" transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_property_disabled"
-              c:identifier="gst_controller_set_property_disabled"
-              doc="or not.
-This function is used to disable the #GstController on a property for
-some time, i.e. gst_controller_sync_values() will do nothing for the
-property."
-              version="0.10.14">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="property_name" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="disabled" transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_control_source"
-              c:identifier="gst_controller_set_control_source"
-              doc="Sets the #GstControlSource for @property_name. If there already was a #GstControlSource
-for this property it will be unreferenced.
-couldn&apos;t be bound to the property, %TRUE if everything worked as expected."
-              version="0.10.14">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="property_name" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="csource" transfer-ownership="none">
-            <type name="ControlSource" c:type="GstControlSource*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_control_source"
-              c:identifier="gst_controller_get_control_source"
-              doc="Gets the corresponding #GstControlSource for the property. This should be unreferenced
-again after use.
-controlled by this controller or no #GstControlSource was assigned yet."
-              version="0.10.14">
-        <return-value transfer-ownership="full">
-          <type name="ControlSource" c:type="GstControlSource*"/>
-        </return-value>
-        <parameters>
-          <parameter name="property_name" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="suggest_next_sync"
-              c:identifier="gst_controller_suggest_next_sync"
-              doc="Returns a suggestion for timestamps where buffers should be split
-to get best controller results.
-if no control-rate was set."
-              version="0.10.13">
-        <return-value transfer-ownership="full">
-          <type name="Gst.ClockTime" c:type="GstClockTime"/>
-        </return-value>
-      </method>
-      <method name="sync_values"
-              c:identifier="gst_controller_sync_values"
-              doc="Sets the properties of the element, according to the controller that (maybe)
-handles them and for the given timestamp.
-If this function fails, it is most likely the application developers fault.
-Most probably the control sources are not setup correctly.
-properties, %FALSE otherwise">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="timestamp" transfer-ownership="none">
-            <type name="Gst.ClockTime" c:type="GstClockTime"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get"
-              c:identifier="gst_controller_get"
-              doc="Gets the value for the given controller-handled property at the requested
-time.
-property isn&apos;t handled by the controller">
-        <return-value transfer-ownership="full">
-          <type name="GObject.Value" c:type="GValue*"/>
-        </return-value>
-        <parameters>
-          <parameter name="property_name" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="timestamp" transfer-ownership="none">
-            <type name="Gst.ClockTime" c:type="GstClockTime"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_value_arrays"
-              c:identifier="gst_controller_get_value_arrays"
-              doc="Function to be able to get an array of values for one or more given element
-properties.
-All fields of the %GstValueArray in the list must be filled correctly.
-Especially the GstValueArray-&gt;values arrays must be big enough to keep
-the requested amount of values.
-The types of the values in the array are the same as the property&apos;s type.
-&lt;note&gt;&lt;para&gt;This doesn&apos;t modify the controlled GObject properties!&lt;/para&gt;&lt;/note&gt;">
-        <return-value transfer-ownership="none"
-                      doc="could be filled, %FALSE otherwise">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="timestamp" transfer-ownership="none">
-            <type name="Gst.ClockTime" c:type="GstClockTime"/>
-          </parameter>
-          <parameter name="value_arrays" transfer-ownership="none">
-            <type name="GLib.SList" c:type="GSList*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_value_array"
-              c:identifier="gst_controller_get_value_array"
-              doc="Function to be able to get an array of values for one element property.
-All fields of @value_array must be filled correctly. Especially the
-of values.
-The type of the values in the array is the same as the property&apos;s type.
-&lt;note&gt;&lt;para&gt;This doesn&apos;t modify the controlled GObject property!&lt;/para&gt;&lt;/note&gt;">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="timestamp" transfer-ownership="none">
-            <type name="Gst.ClockTime" c:type="GstClockTime"/>
-          </parameter>
-          <parameter name="value_array" transfer-ownership="none">
-            <type name="ValueArray" c:type="GstValueArray*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set"
-              c:identifier="gst_controller_set"
-              doc="Set the value of given controller-handled property at a certain time.
-directly."
-              deprecated="Use #GstControlSource, for example #GstInterpolationControlSource">
-        <return-value transfer-ownership="none" doc="TRUE otherwise">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="property_name" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="timestamp" transfer-ownership="none">
-            <type name="Gst.ClockTime" c:type="GstClockTime"/>
-          </parameter>
-          <parameter name="value" transfer-ownership="none">
-            <type name="GObject.Value" c:type="GValue*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_from_list"
-              c:identifier="gst_controller_set_from_list"
-              doc="Sets multiple timed values at once.
-directly."
-              deprecated="Use #GstControlSource, for example #GstInterpolationControlSource">
-        <return-value transfer-ownership="none" doc="%TRUE otherwise">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="property_name" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="timedvalues" transfer-ownership="none">
-            <type name="GLib.SList" c:type="GSList*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="unset"
-              c:identifier="gst_controller_unset"
-              doc="Used to remove the value of given controller-handled property at a certain
-time.
-directly."
-              deprecated="Use #GstControlSource, for example #GstInterpolationControlSource">
-        <return-value transfer-ownership="none" doc="%TRUE otherwise">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="property_name" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="timestamp" transfer-ownership="none">
-            <type name="Gst.ClockTime" c:type="GstClockTime"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="unset_all"
-              c:identifier="gst_controller_unset_all"
-              doc="Used to remove all time-stamped values of given controller-handled property
-directly.
-by controller), %TRUE otherwise"
-              version="0.10.5"
-              deprecated="Use #GstControlSource, for example #GstInterpolationControlSource">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="property_name" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_all"
-              c:identifier="gst_controller_get_all"
-              doc="Returns a read-only copy of the list of #GstTimedValue for the given property.
-Free the list after done with it.
-&lt;note&gt;&lt;para&gt;This doesn&apos;t modify the controlled GObject property!&lt;/para&gt;&lt;/note&gt;
-directly."
-              deprecated="Use #GstControlSource, for example #GstInterpolationControlSource">
-        <return-value transfer-ownership="none">
-          <type name="GLib.List" c:type="GList*"/>
-        </return-value>
-        <parameters>
-          <parameter name="property_name" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_interpolation_mode"
-              c:identifier="gst_controller_set_interpolation_mode"
-              doc="Sets the given interpolation mode on the given property.
-&lt;note&gt;&lt;para&gt;User interpolation is not yet available and quadratic interpolation
-is deprecated and maps to cubic interpolation.&lt;/para&gt;&lt;/note&gt;
-directly."
-              deprecated="Use #GstControlSource, for example #GstInterpolationControlSource">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="property_name" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="mode" transfer-ownership="none">
-            <type name="InterpolateMode" c:type="GstInterpolateMode"/>
-          </parameter>
-        </parameters>
-      </method>
-      <property name="control-rate" writable="1">
-        <type name="uint64" c:type="guint64"/>
-      </property>
-      <field name="parent">
-        <type name="GObject.Object" c:type="GObject"/>
-      </field>
-      <field name="properties">
-        <type name="GLib.List" c:type="GList*"/>
-      </field>
-      <field name="lock">
-        <type name="GLib.Mutex" c:type="GMutex*"/>
-      </field>
-      <field name="object">
-        <type name="GObject.Object" c:type="GObject*"/>
-      </field>
-      <field name="priv">
-        <type name="ControllerPrivate" c:type="GstControllerPrivate*"/>
-      </field>
-      <field name="_gst_reserved">
-        <array zero-terminated="0" c:type="gpointer" fixed-size="3">
-          <type name="any"/>
-        </array>
-      </field>
-    </class>
-    <record name="ControllerClass"
-            c:type="GstControllerClass"
-            glib:is-gtype-struct-for="Controller">
-      <field name="parent_class">
-        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
-      </field>
-      <field name="_gst_reserved">
-        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
-          <type name="any"/>
-        </array>
-      </field>
-    </record>
-    <record name="ControllerPrivate" c:type="GstControllerPrivate">
-    </record>
-    <enumeration name="InterpolateMode"
-                 doc="except for times with specific values
-The various interpolation modes available."
-                 c:type="GstInterpolateMode">
-      <member name="none" value="0" c:identifier="GST_INTERPOLATE_NONE"/>
-      <member name="trigger" value="1" c:identifier="GST_INTERPOLATE_TRIGGER"/>
-      <member name="linear" value="2" c:identifier="GST_INTERPOLATE_LINEAR"/>
-      <member name="quadratic"
-              value="3"
-              c:identifier="GST_INTERPOLATE_QUADRATIC"/>
-      <member name="cubic" value="4" c:identifier="GST_INTERPOLATE_CUBIC"/>
-      <member name="user" value="5" c:identifier="GST_INTERPOLATE_USER"/>
-    </enumeration>
-    <class name="InterpolationControlSource"
-           c:type="GstInterpolationControlSource"
-           doc="The instance structure of #GstControlSource."
-           parent="ControlSource"
-           glib:type-name="GstInterpolationControlSource"
-           glib:get-type="gst_interpolation_control_source_get_type"
-           glib:type-struct="InterpolationControlSourceClass">
-      <constructor name="new"
-                   c:identifier="gst_interpolation_control_source_new"
-                   doc="This returns a new, unbound #GstInterpolationControlSource.">
-        <return-value transfer-ownership="full">
-          <type name="InterpolationControlSource"
-                c:type="GstInterpolationControlSource*"/>
-        </return-value>
-      </constructor>
-      <method name="set_interpolation_mode"
-              c:identifier="gst_interpolation_control_source_set_interpolation_mode"
-              doc="Sets the given interpolation mode.
-&lt;note&gt;&lt;para&gt;User interpolation is not yet available and quadratic interpolation
-is deprecated and maps to cubic interpolation.&lt;/para&gt;&lt;/note&gt;">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="mode" transfer-ownership="none">
-            <type name="InterpolateMode" c:type="GstInterpolateMode"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set"
-              c:identifier="gst_interpolation_control_source_set"
-              doc="Set the value of given controller-handled property at a certain time.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="timestamp" transfer-ownership="none">
-            <type name="Gst.ClockTime" c:type="GstClockTime"/>
-          </parameter>
-          <parameter name="value" transfer-ownership="none">
-            <type name="GObject.Value" c:type="GValue*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_from_list"
-              c:identifier="gst_interpolation_control_source_set_from_list"
-              doc="Sets multiple timed values at once.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="timedvalues" transfer-ownership="none">
-            <type name="GLib.SList" c:type="GSList*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="unset"
-              c:identifier="gst_interpolation_control_source_unset"
-              doc="Used to remove the value of given controller-handled property at a certain
-time.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="timestamp" transfer-ownership="none">
-            <type name="Gst.ClockTime" c:type="GstClockTime"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="unset_all"
-              c:identifier="gst_interpolation_control_source_unset_all"
-              doc="Used to remove all time-stamped values of given controller-handled property">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </method>
-      <method name="get_all"
-              c:identifier="gst_interpolation_control_source_get_all"
-              doc="Returns a read-only copy of the list of #GstTimedValue for the given property.
-Free the list after done with it.">
-        <return-value transfer-ownership="full">
-          <type name="GLib.List" c:type="GList*"/>
-        </return-value>
-      </method>
-      <method name="get_count"
-              c:identifier="gst_interpolation_control_source_get_count"
-              doc="Returns the number of control points that are set.">
-        <return-value transfer-ownership="none">
-          <type name="int" c:type="gint"/>
-        </return-value>
-      </method>
-      <field name="parent">
-        <type name="ControlSource" c:type="GstControlSource"/>
-      </field>
-      <field name="lock">
-        <type name="GLib.Mutex" c:type="GMutex*"/>
-      </field>
-      <field name="priv">
-        <type name="InterpolationControlSourcePrivate"
-              c:type="GstInterpolationControlSourcePrivate*"/>
-      </field>
-      <field name="_gst_reserved">
-        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
-          <type name="any"/>
-        </array>
-      </field>
-    </class>
-    <record name="InterpolationControlSourceClass"
-            c:type="GstInterpolationControlSourceClass"
-            glib:is-gtype-struct-for="InterpolationControlSource">
-      <field name="parent_class">
-        <type name="ControlSourceClass" c:type="GstControlSourceClass"/>
-      </field>
-      <field name="_gst_reserved">
-        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
-          <type name="any"/>
-        </array>
-      </field>
-    </record>
-    <record name="InterpolationControlSourcePrivate"
-            c:type="GstInterpolationControlSourcePrivate">
-    </record>
-    <class name="LFOControlSource"
-           c:type="GstLFOControlSource"
-           doc="The instance structure of #GstControlSource."
-           parent="ControlSource"
-           glib:type-name="GstLFOControlSource"
-           glib:get-type="gst_lfo_control_source_get_type"
-           glib:type-struct="LFOControlSourceClass">
-      <constructor name="new"
-                   c:identifier="gst_lfo_control_source_new"
-                   doc="This returns a new, unbound #GstLFOControlSource.">
-        <return-value transfer-ownership="full">
-          <type name="LFOControlSource" c:type="GstLFOControlSource*"/>
-        </return-value>
-      </constructor>
-      <property name="amplitude" writable="1">
-        <type name="GObject.Value" c:type="GValue"/>
-      </property>
-      <property name="frequency" writable="1">
-        <type name="double" c:type="gdouble"/>
-      </property>
-      <property name="offset" writable="1">
-        <type name="GObject.Value" c:type="GValue"/>
-      </property>
-      <property name="timeshift" writable="1">
-        <type name="uint64" c:type="guint64"/>
-      </property>
-      <property name="waveform" writable="1">
-        <type name="LFOWaveform" c:type="GstLFOWaveform"/>
-      </property>
-      <field name="parent">
-        <type name="ControlSource" c:type="GstControlSource"/>
-      </field>
-      <field name="priv">
-        <type name="LFOControlSourcePrivate"
-              c:type="GstLFOControlSourcePrivate*"/>
-      </field>
-      <field name="lock">
-        <type name="GLib.Mutex" c:type="GMutex*"/>
-      </field>
-      <field name="_gst_reserved">
-        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
-          <type name="any"/>
-        </array>
-      </field>
-    </class>
-    <record name="LFOControlSourceClass"
-            c:type="GstLFOControlSourceClass"
-            glib:is-gtype-struct-for="LFOControlSource">
-      <field name="parent_class">
-        <type name="ControlSourceClass" c:type="GstControlSourceClass"/>
-      </field>
-      <field name="_gst_reserved">
-        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
-          <type name="any"/>
-        </array>
-      </field>
-    </record>
-    <record name="LFOControlSourcePrivate" c:type="GstLFOControlSourcePrivate">
-    </record>
-    <enumeration name="LFOWaveform"
-                 doc="The various waveform modes available."
-                 glib:type-name="GstLFOWaveform"
-                 glib:get-type="gst_lfo_waveform_get_type"
-                 c:type="GstLFOWaveform">
-      <member name="sine"
-              value="0"
-              c:identifier="GST_LFO_WAVEFORM_SINE"
-              glib:nick="sine"/>
-      <member name="square"
-              value="1"
-              c:identifier="GST_LFO_WAVEFORM_SQUARE"
-              glib:nick="square"/>
-      <member name="saw"
-              value="2"
-              c:identifier="GST_LFO_WAVEFORM_SAW"
-              glib:nick="saw"/>
-      <member name="reverse_saw"
-              value="3"
-              c:identifier="GST_LFO_WAVEFORM_REVERSE_SAW"
-              glib:nick="reverse-saw"/>
-      <member name="triangle"
-              value="4"
-              c:identifier="GST_LFO_WAVEFORM_TRIANGLE"
-              glib:nick="triangle"/>
-    </enumeration>
-    <record name="TimedValue"
-            c:type="GstTimedValue"
-            doc="Structure for saving a timestamp and a value.">
-      <field name="timestamp" writable="1">
-        <type name="Gst.ClockTime" c:type="GstClockTime"/>
-      </field>
-      <field name="value" writable="1">
-        <type name="GObject.Value" c:type="GValue"/>
-      </field>
-    </record>
-    <record name="ValueArray"
-            c:type="GstValueArray"
-            doc="Structure to receive multiple values at once.">
-      <field name="property_name" writable="1">
-        <type name="utf8" c:type="gchar*"/>
-      </field>
-      <field name="nbsamples" writable="1">
-        <type name="int" c:type="gint"/>
-      </field>
-      <field name="sample_interval" writable="1">
-        <type name="Gst.ClockTime" c:type="GstClockTime"/>
-      </field>
-      <field name="values" writable="1">
-        <type name="any" c:type="gpointer*"/>
-      </field>
-    </record>
-    <function name="object_control_properties"
-              c:identifier="gst_object_control_properties"
-              doc="Convenience function for GObject
-Creates a GstController that allows you to dynamically control one, or more, GObject properties.
-If the given GObject already has a GstController, it adds the given properties to the existing
-controller and returns that controller.
-one or more of the given properties aren&apos;t available, or cannot be controlled, for the given element."
-              version="0.9">
-      <return-value transfer-ownership="full">
-        <type name="Controller" c:type="GstController*"/>
-      </return-value>
-      <parameters>
-        <parameter name="object" transfer-ownership="none">
-          <type name="GObject.Object" c:type="GObject*"/>
-        </parameter>
-        <parameter transfer-ownership="none">
-          <varargs>
-          </varargs>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="object_get_control_rate"
-              c:identifier="gst_object_get_control_rate"
-              doc="Obtain the control-rate for this @object. Audio processing #GstElement
-objects will use this rate to sub-divide their processing loop and call
-gst_object_sync_values() inbetween. The length of the processing segment
-should be up to @control-rate nanoseconds.
-If the @object is not under property control, this will return
-%GST_CLOCK_TIME_NONE. This allows the element to avoid the sub-dividing.
-The control-rate is not expected to change if the element is in
-%GST_STATE_PAUSED or %GST_STATE_PLAYING."
-              version="0.10.10">
-      <return-value transfer-ownership="full">
-        <type name="Gst.ClockTime" c:type="GstClockTime"/>
-      </return-value>
-      <parameters>
-        <parameter name="object" transfer-ownership="none">
-          <type name="GObject.Object" c:type="GObject*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="object_get_control_source"
-              c:identifier="gst_object_get_control_source"
-              doc="Gets the corresponding #GstControlSource for the property. This should be unreferenced
-again after use.
-controlled by this controller or no #GstControlSource was assigned yet."
-              version="0.10.14">
-      <return-value transfer-ownership="full">
-        <type name="ControlSource" c:type="GstControlSource*"/>
-      </return-value>
-      <parameters>
-        <parameter name="object" transfer-ownership="none">
-          <type name="GObject.Object" c:type="GObject*"/>
-        </parameter>
-        <parameter name="property_name" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="object_get_controller"
-              c:identifier="gst_object_get_controller"
-              doc="Gets the controller for the given GObject"
-              version="0.9">
-      <return-value transfer-ownership="full">
-        <type name="Controller" c:type="GstController*"/>
-      </return-value>
-      <parameters>
-        <parameter name="object" transfer-ownership="none">
-          <type name="GObject.Object" c:type="GObject*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="object_get_value_array"
-              c:identifier="gst_object_get_value_array"
-              doc="Function to be able to get an array of values for one element properties
-If the GstValueArray-&gt;values array is NULL, it will be created by the function.
-The type of the values in the array are the same as the property&apos;s type.
-The g_object_* functions are just convenience functions for GObject"
-              version="0.9">
-      <return-value transfer-ownership="none"
-                    doc="could be filled, %FALSE otherwise">
-        <type name="boolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="object" transfer-ownership="none">
-          <type name="GObject.Object" c:type="GObject*"/>
-        </parameter>
-        <parameter name="timestamp" transfer-ownership="none">
-          <type name="Gst.ClockTime" c:type="GstClockTime"/>
-        </parameter>
-        <parameter name="value_array" transfer-ownership="none">
-          <type name="ValueArray" c:type="GstValueArray*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="object_get_value_arrays"
-              c:identifier="gst_object_get_value_arrays"
-              doc="Function to be able to get an array of values for one or more given element
-properties.
-If the GstValueArray-&gt;values array in list nodes is NULL, it will be created
-by the function.
-The type of the values in the array are the same as the property&apos;s type.
-The g_object_* functions are just convenience functions for GObject"
-              version="0.9">
-      <return-value transfer-ownership="none"
-                    doc="could be filled, %FALSE otherwise">
-        <type name="boolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="object" transfer-ownership="none">
-          <type name="GObject.Object" c:type="GObject*"/>
-        </parameter>
-        <parameter name="timestamp" transfer-ownership="none">
-          <type name="Gst.ClockTime" c:type="GstClockTime"/>
-        </parameter>
-        <parameter name="value_arrays" transfer-ownership="none">
-          <type name="GLib.SList" c:type="GSList*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="object_set_control_rate"
-              c:identifier="gst_object_set_control_rate"
-              doc="Change the control-rate for this @object. Audio processing #GstElement
-objects will use this rate to sub-divide their processing loop and call
-gst_object_sync_values() inbetween. The length of the processing segment
-should be up to @control-rate nanoseconds.
-The control-rate should not change if the element is in %GST_STATE_PAUSED or
-%GST_STATE_PLAYING."
-              version="0.10.10">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="object" transfer-ownership="none">
-          <type name="GObject.Object" c:type="GObject*"/>
-        </parameter>
-        <parameter name="control_rate" transfer-ownership="none">
-          <type name="Gst.ClockTime" c:type="GstClockTime"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="object_set_control_source"
-              c:identifier="gst_object_set_control_source"
-              doc="Sets the #GstControlSource for @property_name. If there already was a #GstControlSource
-for this property it will be unreferenced.
-couldn&apos;t be bound to the property, %TRUE if everything worked as expected."
-              version="0.10.14">
-      <return-value transfer-ownership="none">
-        <type name="boolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="object" transfer-ownership="none">
-          <type name="GObject.Object" c:type="GObject*"/>
-        </parameter>
-        <parameter name="property_name" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-        <parameter name="csource" transfer-ownership="none">
-          <type name="ControlSource" c:type="GstControlSource*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="object_set_controller"
-              c:identifier="gst_object_set_controller"
-              doc="Sets the controller on the given GObject"
-              version="0.9">
-      <return-value transfer-ownership="none">
-        <type name="boolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="object" transfer-ownership="none">
-          <type name="GObject.Object" c:type="GObject*"/>
-        </parameter>
-        <parameter name="controller" transfer-ownership="none">
-          <type name="Controller" c:type="GstController*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="object_suggest_next_sync"
-              c:identifier="gst_object_suggest_next_sync"
-              doc="Convenience function for GObject"
-              version="0.10.13">
-      <return-value transfer-ownership="full">
-        <type name="Gst.ClockTime" c:type="GstClockTime"/>
-      </return-value>
-      <parameters>
-        <parameter name="object" transfer-ownership="none">
-          <type name="GObject.Object" c:type="GObject*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="object_sync_values"
-              c:identifier="gst_object_sync_values"
-              doc="Convenience function for GObject"
-              version="0.9">
-      <return-value transfer-ownership="none">
-        <type name="boolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="object" transfer-ownership="none">
-          <type name="GObject.Object" c:type="GObject*"/>
-        </parameter>
-        <parameter name="timestamp" transfer-ownership="none">
-          <type name="Gst.ClockTime" c:type="GstClockTime"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="object_uncontrol_properties"
-              c:identifier="gst_object_uncontrol_properties"
-              doc="Convenience function for GObject
-Removes the given element&apos;s properties from it&apos;s controller
-controller, %TRUE otherwise"
-              version="0.9">
-      <return-value transfer-ownership="none">
-        <type name="boolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="object" transfer-ownership="none">
-          <type name="GObject.Object" c:type="GObject*"/>
-        </parameter>
-        <parameter transfer-ownership="none">
-          <varargs>
-          </varargs>
-        </parameter>
-      </parameters>
-    </function>
-  </namespace>
-</repository>
diff --git a/extra/gstreamer/controller/controller.factor b/extra/gstreamer/controller/controller.factor
deleted file mode 100644 (file)
index ca101cb..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-! Copyright (C) 2010 Anton Gorenko.
-! See http://factorcode.org/license.txt for BSD license.
-USING: gstreamer.controller.ffi ;
-IN: gstreamer.controller
-
diff --git a/extra/gstreamer/controller/ffi/ffi.factor b/extra/gstreamer/controller/ffi/ffi.factor
deleted file mode 100644 (file)
index ea5de2f..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-! Copyright (C) 2010 Anton Gorenko.
-! See http://factorcode.org/license.txt for BSD license.
-USING: alien alien.c-types alien.libraries combinators kernel
-system
-gobject-introspection glib.ffi gobject.ffi gstreamer.ffi ;
-IN: gstreamer.controller.ffi
-
-<<
-"gstreamer.controller" {
-    { [ os winnt? ] [ drop ] }
-    { [ os macosx? ] [ drop ] }
-    { [ os unix? ] [ "libgstcontroller-0.10.so" cdecl add-library ] }
-} cond
->>
-
-GIR: vocab:gstreamer/controller/GstController-0.10.gir
-
diff --git a/extra/gstreamer/ffi/ffi.factor b/extra/gstreamer/ffi/ffi.factor
deleted file mode 100644 (file)
index ac31e7d..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-! Copyright (C) 2010 Anton Gorenko.
-! See http://factorcode.org/license.txt for BSD license.
-USING: alien alien.syntax alien.libraries combinators kernel
-system
-gobject-introspection glib.ffi gmodule.ffi gobject.ffi ;
-EXCLUDE: alien.c-types => pointer ;
-IN: gstreamer.ffi
-
-<<
-"gstreamer" {
-    { [ os winnt? ] [ drop ] }
-    { [ os macosx? ] [ drop ] }
-    { [ os unix? ] [ "libgstreamer-0.10.so" cdecl add-library ] }
-} cond
->>
-
-TYPEDEF: gpointer GstClockID
-TYPEDEF: guint64 GstClockTime
-TYPEDEF: gint64 GstClockTimeDiff
-
-! types from libxml2
-TYPEDEF: void* xmlNodePtr
-TYPEDEF: void* xmlDocPtr
-TYPEDEF: void* xmlNsPtr
-
-GIR: vocab:gstreamer/Gst-0.10.gir
-
diff --git a/extra/gstreamer/fft/GstFft-0.10.gir b/extra/gstreamer/fft/GstFft-0.10.gir
deleted file mode 100644 (file)
index 578dc59..0000000
+++ /dev/null
@@ -1,462 +0,0 @@
-<?xml version="1.0"?>
-<!-- This file was automatically generated from C sources - DO NOT EDIT!
-To affect the contents of this file, edit the original C definitions,
-and/or use gtk-doc annotations.  -->
-<repository version="1.0"
-            xmlns="http://www.gtk.org/introspection/core/1.0"
-            xmlns:c="http://www.gtk.org/introspection/c/1.0"
-            xmlns:glib="http://www.gtk.org/introspection/glib/1.0">
-  <include name="GLib" version="2.0"/>
-  <include name="GModule" version="2.0"/>
-  <include name="GObject" version="2.0"/>
-  <include name="Gst" version="0.10"/>
-  <include name="libxml2" version="2.0"/>
-  <package name="gstreamer-0.10"/>
-  <c:include name="gst/fft/gstfft.h"/>
-  <c:include name="gst/fft/gstfftf32.h"/>
-  <c:include name="gst/fft/gstfftf64.h"/>
-  <c:include name="gst/fft/gstffts16.h"/>
-  <c:include name="gst/fft/gstffts32.h"/>
-  <namespace name="GstFft"
-             version="0.10"
-             shared-library="libgstfft-0.10.so.0"
-             c:prefix="Gst">
-    <record name="FFTF32"
-            c:type="GstFFTF32"
-            doc="Instance structure for #GstFFTF32.">
-      <field name="cfg" writable="1">
-        <type name="any" c:type="void*"/>
-      </field>
-      <field name="inverse" writable="1">
-        <type name="boolean" c:type="gboolean"/>
-      </field>
-      <field name="len" writable="1">
-        <type name="int" c:type="gint"/>
-      </field>
-      <field name="_padding" writable="1">
-        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
-          <type name="any"/>
-        </array>
-      </field>
-      <constructor name="new"
-                   c:identifier="gst_fft_f32_new"
-                   doc="This returns a new #GstFFTF32 instance with the given parameters. It makes
-sense to keep one instance for several calls for speed reasons.
-2, 3 and 5. To get the next number with this characteristics use
-gst_fft_next_fast_length().">
-        <return-value transfer-ownership="full">
-          <type name="FFTF32" c:type="GstFFTF32*"/>
-        </return-value>
-        <parameters>
-          <parameter name="len" transfer-ownership="none">
-            <type name="int" c:type="gint"/>
-          </parameter>
-          <parameter name="inverse" transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </parameter>
-        </parameters>
-      </constructor>
-      <method name="fft"
-              c:identifier="gst_fft_f32_fft"
-              doc="This performs the FFT on @timedata and puts the result in @freqdata.
-allocating the #GstFFTF32 instance with gst_fft_f32_new().
-domain samples.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="timedata" direction="out" transfer-ownership="none">
-            <type name="float" c:type="gfloat*"/>
-          </parameter>
-          <parameter name="freqdata" transfer-ownership="none">
-            <type name="FFTF32Complex" c:type="GstFFTF32Complex*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="inverse_fft"
-              c:identifier="gst_fft_f32_inverse_fft"
-              doc="This performs the inverse FFT on @freqdata and puts the result in @timedata.
-while allocating the #GstFFTF32 instance with gst_fft_f32_new().">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="freqdata" transfer-ownership="none">
-            <type name="FFTF32Complex" c:type="GstFFTF32Complex*"/>
-          </parameter>
-          <parameter name="timedata" direction="out" transfer-ownership="full">
-            <type name="float" c:type="gfloat*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="free"
-              c:identifier="gst_fft_f32_free"
-              doc="This frees the memory allocated for @self.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </method>
-      <method name="window"
-              c:identifier="gst_fft_f32_window"
-              doc="This calls the window function @window on the @timedata sample buffer.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="timedata" direction="out" transfer-ownership="full">
-            <type name="float" c:type="gfloat*"/>
-          </parameter>
-          <parameter name="window" transfer-ownership="none">
-            <type name="FFTWindow" c:type="GstFFTWindow"/>
-          </parameter>
-        </parameters>
-      </method>
-    </record>
-    <record name="FFTF32Complex"
-            c:type="GstFFTF32Complex"
-            doc="Data type for complex numbers composed of
-32 bit float.">
-      <field name="r" writable="1">
-        <type name="float" c:type="gfloat"/>
-      </field>
-      <field name="i" writable="1">
-        <type name="float" c:type="gfloat"/>
-      </field>
-    </record>
-    <record name="FFTF64"
-            c:type="GstFFTF64"
-            doc="Instance structure for #GstFFTF64.">
-      <field name="cfg" writable="1">
-        <type name="any" c:type="void*"/>
-      </field>
-      <field name="inverse" writable="1">
-        <type name="boolean" c:type="gboolean"/>
-      </field>
-      <field name="len" writable="1">
-        <type name="int" c:type="gint"/>
-      </field>
-      <field name="_padding" writable="1">
-        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
-          <type name="any"/>
-        </array>
-      </field>
-      <constructor name="new"
-                   c:identifier="gst_fft_f64_new"
-                   doc="This returns a new #GstFFTF64 instance with the given parameters. It makes
-sense to keep one instance for several calls for speed reasons.
-2, 3 and 5. To get the next number with this characteristics use
-gst_fft_next_fast_length().">
-        <return-value transfer-ownership="full">
-          <type name="FFTF64" c:type="GstFFTF64*"/>
-        </return-value>
-        <parameters>
-          <parameter name="len" transfer-ownership="none">
-            <type name="int" c:type="gint"/>
-          </parameter>
-          <parameter name="inverse" transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </parameter>
-        </parameters>
-      </constructor>
-      <method name="fft"
-              c:identifier="gst_fft_f64_fft"
-              doc="This performs the FFT on @timedata and puts the result in @freqdata.
-allocating the #GstFFTF64 instance with gst_fft_f64_new().
-domain samples.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="timedata" direction="out" transfer-ownership="none">
-            <type name="double" c:type="gdouble*"/>
-          </parameter>
-          <parameter name="freqdata" transfer-ownership="none">
-            <type name="FFTF64Complex" c:type="GstFFTF64Complex*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="inverse_fft"
-              c:identifier="gst_fft_f64_inverse_fft"
-              doc="This performs the inverse FFT on @freqdata and puts the result in @timedata.
-while allocating the #GstFFTF64 instance with gst_fft_f64_new().">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="freqdata" transfer-ownership="none">
-            <type name="FFTF64Complex" c:type="GstFFTF64Complex*"/>
-          </parameter>
-          <parameter name="timedata" direction="out" transfer-ownership="full">
-            <type name="double" c:type="gdouble*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="free"
-              c:identifier="gst_fft_f64_free"
-              doc="This frees the memory allocated for @self.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </method>
-      <method name="window"
-              c:identifier="gst_fft_f64_window"
-              doc="This calls the window function @window on the @timedata sample buffer.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="timedata" direction="out" transfer-ownership="full">
-            <type name="double" c:type="gdouble*"/>
-          </parameter>
-          <parameter name="window" transfer-ownership="none">
-            <type name="FFTWindow" c:type="GstFFTWindow"/>
-          </parameter>
-        </parameters>
-      </method>
-    </record>
-    <record name="FFTF64Complex"
-            c:type="GstFFTF64Complex"
-            doc="Data type for complex numbers composed of
-64 bit float.">
-      <field name="r" writable="1">
-        <type name="double" c:type="gdouble"/>
-      </field>
-      <field name="i" writable="1">
-        <type name="double" c:type="gdouble"/>
-      </field>
-    </record>
-    <record name="FFTS16"
-            c:type="GstFFTS16"
-            doc="Instance structure for #GstFFTS16.">
-      <field name="cfg" writable="1">
-        <type name="any" c:type="void*"/>
-      </field>
-      <field name="inverse" writable="1">
-        <type name="boolean" c:type="gboolean"/>
-      </field>
-      <field name="len" writable="1">
-        <type name="int" c:type="gint"/>
-      </field>
-      <field name="_padding" writable="1">
-        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
-          <type name="any"/>
-        </array>
-      </field>
-      <constructor name="new"
-                   c:identifier="gst_fft_s16_new"
-                   doc="This returns a new #GstFFTS16 instance with the given parameters. It makes
-sense to keep one instance for several calls for speed reasons.
-2, 3 and 5. To get the next number with this characteristics use
-gst_fft_next_fast_length().">
-        <return-value transfer-ownership="full">
-          <type name="FFTS16" c:type="GstFFTS16*"/>
-        </return-value>
-        <parameters>
-          <parameter name="len" transfer-ownership="none">
-            <type name="int" c:type="gint"/>
-          </parameter>
-          <parameter name="inverse" transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </parameter>
-        </parameters>
-      </constructor>
-      <method name="fft"
-              c:identifier="gst_fft_s16_fft"
-              doc="This performs the FFT on @timedata and puts the result in @freqdata.
-allocating the #GstFFTS16 instance with gst_fft_s16_new().
-domain samples.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="timedata" direction="out" transfer-ownership="none">
-            <type name="int16" c:type="gint16*"/>
-          </parameter>
-          <parameter name="freqdata" transfer-ownership="none">
-            <type name="FFTS16Complex" c:type="GstFFTS16Complex*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="inverse_fft"
-              c:identifier="gst_fft_s16_inverse_fft"
-              doc="This performs the inverse FFT on @freqdata and puts the result in @timedata.
-while allocating the #GstFFTS16 instance with gst_fft_s16_new().">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="freqdata" transfer-ownership="none">
-            <type name="FFTS16Complex" c:type="GstFFTS16Complex*"/>
-          </parameter>
-          <parameter name="timedata" direction="out" transfer-ownership="full">
-            <type name="int16" c:type="gint16*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="free"
-              c:identifier="gst_fft_s16_free"
-              doc="This frees the memory allocated for @self.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </method>
-      <method name="window"
-              c:identifier="gst_fft_s16_window"
-              doc="This calls the window function @window on the @timedata sample buffer.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="timedata" direction="out" transfer-ownership="full">
-            <type name="int16" c:type="gint16*"/>
-          </parameter>
-          <parameter name="window" transfer-ownership="none">
-            <type name="FFTWindow" c:type="GstFFTWindow"/>
-          </parameter>
-        </parameters>
-      </method>
-    </record>
-    <record name="FFTS16Complex"
-            c:type="GstFFTS16Complex"
-            doc="Data type for complex numbers composed of
-signed 16 bit integers.">
-      <field name="r" writable="1">
-        <type name="int16" c:type="gint16"/>
-      </field>
-      <field name="i" writable="1">
-        <type name="int16" c:type="gint16"/>
-      </field>
-    </record>
-    <record name="FFTS32"
-            c:type="GstFFTS32"
-            doc="Instance structure for #GstFFTS32.">
-      <field name="cfg" writable="1">
-        <type name="any" c:type="void*"/>
-      </field>
-      <field name="inverse" writable="1">
-        <type name="boolean" c:type="gboolean"/>
-      </field>
-      <field name="len" writable="1">
-        <type name="int" c:type="gint"/>
-      </field>
-      <field name="_padding" writable="1">
-        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
-          <type name="any"/>
-        </array>
-      </field>
-      <constructor name="new"
-                   c:identifier="gst_fft_s32_new"
-                   doc="This returns a new #GstFFTS32 instance with the given parameters. It makes
-sense to keep one instance for several calls for speed reasons.
-2, 3 and 5. To get the next number with this characteristics use
-gst_fft_next_fast_length().">
-        <return-value transfer-ownership="full">
-          <type name="FFTS32" c:type="GstFFTS32*"/>
-        </return-value>
-        <parameters>
-          <parameter name="len" transfer-ownership="none">
-            <type name="int" c:type="gint"/>
-          </parameter>
-          <parameter name="inverse" transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </parameter>
-        </parameters>
-      </constructor>
-      <method name="fft"
-              c:identifier="gst_fft_s32_fft"
-              doc="This performs the FFT on @timedata and puts the result in @freqdata.
-allocating the #GstFFTS32 instance with gst_fft_s32_new().
-domain samples.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="timedata" direction="out" transfer-ownership="none">
-            <type name="int32" c:type="gint32*"/>
-          </parameter>
-          <parameter name="freqdata" transfer-ownership="none">
-            <type name="FFTS32Complex" c:type="GstFFTS32Complex*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="inverse_fft"
-              c:identifier="gst_fft_s32_inverse_fft"
-              doc="This performs the inverse FFT on @freqdata and puts the result in @timedata.
-while allocating the #GstFFTS32 instance with gst_fft_s32_new().">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="freqdata" transfer-ownership="none">
-            <type name="FFTS32Complex" c:type="GstFFTS32Complex*"/>
-          </parameter>
-          <parameter name="timedata" direction="out" transfer-ownership="full">
-            <type name="int32" c:type="gint32*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="free"
-              c:identifier="gst_fft_s32_free"
-              doc="This frees the memory allocated for @self.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </method>
-      <method name="window"
-              c:identifier="gst_fft_s32_window"
-              doc="This calls the window function @window on the @timedata sample buffer.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="timedata" direction="out" transfer-ownership="full">
-            <type name="int32" c:type="gint32*"/>
-          </parameter>
-          <parameter name="window" transfer-ownership="none">
-            <type name="FFTWindow" c:type="GstFFTWindow"/>
-          </parameter>
-        </parameters>
-      </method>
-    </record>
-    <record name="FFTS32Complex"
-            c:type="GstFFTS32Complex"
-            doc="Data type for complex numbers composed of
-signed 32 bit integers.">
-      <field name="r" writable="1">
-        <type name="int32" c:type="gint32"/>
-      </field>
-      <field name="i" writable="1">
-        <type name="int32" c:type="gint32"/>
-      </field>
-    </record>
-    <enumeration name="FFTWindow"
-                 doc="The various window functions available."
-                 c:type="GstFFTWindow">
-      <member name="rectangular"
-              value="0"
-              c:identifier="GST_FFT_WINDOW_RECTANGULAR"/>
-      <member name="hamming" value="1" c:identifier="GST_FFT_WINDOW_HAMMING"/>
-      <member name="hann" value="2" c:identifier="GST_FFT_WINDOW_HANN"/>
-      <member name="bartlett"
-              value="3"
-              c:identifier="GST_FFT_WINDOW_BARTLETT"/>
-      <member name="blackman"
-              value="4"
-              c:identifier="GST_FFT_WINDOW_BLACKMAN"/>
-    </enumeration>
-    <function name="next_fast_length"
-              c:identifier="gst_fft_next_fast_length"
-              doc="Returns the next number to @n that is entirely a product
-of 2, 3 and 5. Using this as the @len parameter for
-the different GstFFT types will provide the best performance.">
-      <return-value transfer-ownership="none">
-        <type name="int" c:type="gint"/>
-      </return-value>
-      <parameters>
-        <parameter name="n" transfer-ownership="none">
-          <type name="int" c:type="gint"/>
-        </parameter>
-      </parameters>
-    </function>
-  </namespace>
-</repository>
diff --git a/extra/gstreamer/fft/ffi/ffi.factor b/extra/gstreamer/fft/ffi/ffi.factor
deleted file mode 100644 (file)
index 77fd0e3..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-! Copyright (C) 2010 Anton Gorenko.
-! See http://factorcode.org/license.txt for BSD license.
-USING: alien alien.c-types alien.libraries combinators kernel
-system
-gobject-introspection glib.ffi gstreamer.ffi ;
-IN: gstreamer.fft.ffi
-
-<<
-"gstreamer.fft" {
-    { [ os winnt? ] [ drop ] }
-    { [ os macosx? ] [ drop ] }
-    { [ os unix? ] [ "libgstfft-0.10.so" cdecl add-library ] }
-} cond
->>
-
-GIR: vocab:gstreamer/fft/GstFft-0.10.gir
-
diff --git a/extra/gstreamer/fft/fft.factor b/extra/gstreamer/fft/fft.factor
deleted file mode 100644 (file)
index 4ddb102..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-! Copyright (C) 2010 Anton Gorenko.
-! See http://factorcode.org/license.txt for BSD license.
-USING: gstreamer.fft.ffi ;
-IN: gstreamer.fft
-
diff --git a/extra/gstreamer/gstreamer.factor b/extra/gstreamer/gstreamer.factor
deleted file mode 100644 (file)
index 174fbc6..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-! Copyright (C) 2010 Anton Gorenko.
-! See http://factorcode.org/license.txt for BSD license.
-USING: gstreamer.ffi ;
-IN: gstreamer
-
diff --git a/extra/gstreamer/interfaces/GstInterfaces-0.10.gir b/extra/gstreamer/interfaces/GstInterfaces-0.10.gir
deleted file mode 100644 (file)
index 06591fa..0000000
+++ /dev/null
@@ -1,3570 +0,0 @@
-<?xml version="1.0"?>
-<!-- This file was automatically generated from C sources - DO NOT EDIT!
-To affect the contents of this file, edit the original C definitions,
-and/or use gtk-doc annotations.  -->
-<repository version="1.0"
-            xmlns="http://www.gtk.org/introspection/core/1.0"
-            xmlns:c="http://www.gtk.org/introspection/c/1.0"
-            xmlns:glib="http://www.gtk.org/introspection/glib/1.0">
-  <include name="GLib" version="2.0"/>
-  <include name="GModule" version="2.0"/>
-  <include name="GObject" version="2.0"/>
-  <include name="Gst" version="0.10"/>
-  <include name="libxml2" version="2.0"/>
-  <package name="gstreamer-0.10"/>
-  <c:include name="gst/interfaces/colorbalance.h"/>
-  <c:include name="gst/interfaces/colorbalancechannel.h"/>
-  <c:include name="gst/interfaces/interfaces-enumtypes.h"/>
-  <c:include name="gst/interfaces/mixer.h"/>
-  <c:include name="gst/interfaces/mixeroptions.h"/>
-  <c:include name="gst/interfaces/mixertrack.h"/>
-  <c:include name="gst/interfaces/navigation.h"/>
-  <c:include name="gst/interfaces/propertyprobe.h"/>
-  <c:include name="gst/interfaces/streamvolume.h"/>
-  <c:include name="gst/interfaces/tuner.h"/>
-  <c:include name="gst/interfaces/tunerchannel.h"/>
-  <c:include name="gst/interfaces/tunernorm.h"/>
-  <c:include name="gst/interfaces/videoorientation.h"/>
-  <c:include name="gst/interfaces/xoverlay.h"/>
-  <namespace name="GstInterfaces"
-             version="0.10"
-             shared-library="libgstinterfaces-0.10.so.0"
-             c:prefix="Gst">
-    <interface name="ColorBalance"
-               c:type="GstColorBalance"
-               glib:type-name="GstColorBalance"
-               glib:get-type="gst_color_balance_get_type"
-               glib:type-struct="ColorBalanceClass">
-      <prerequisite name="Gst.ImplementsInterface"/>
-      <prerequisite name="Gst.Element"/>
-      <virtual-method name="list_channels" invoker="list_channels">
-        <return-value transfer-ownership="none">
-          <type name="GLib.List" c:type="GList*"/>
-        </return-value>
-      </virtual-method>
-      <virtual-method name="set_value" invoker="set_value">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="channel" transfer-ownership="none">
-            <type name="ColorBalanceChannel" c:type="GstColorBalanceChannel*"/>
-          </parameter>
-          <parameter name="value" transfer-ownership="none">
-            <type name="int" c:type="gint"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <virtual-method name="get_value" invoker="get_value">
-        <return-value transfer-ownership="none">
-          <type name="int" c:type="gint"/>
-        </return-value>
-        <parameters>
-          <parameter name="channel" transfer-ownership="none">
-            <type name="ColorBalanceChannel" c:type="GstColorBalanceChannel*"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <method name="list_channels"
-              c:identifier="gst_color_balance_list_channels"
-              doc="Retrieve a list of the available channels.
-The list is owned by the #GstColorBalance instance and must not
-be freed.">
-        <return-value transfer-ownership="none">
-          <type name="GLib.List" c:type="GList*"/>
-        </return-value>
-      </method>
-      <method name="set_value"
-              c:identifier="gst_color_balance_set_value"
-              doc="Sets the current value of the channel to the passed value, which must
-be between min_value and max_value.
-#GstColorBalanceChannel::max_value members of the
-#GstColorBalanceChannel object.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="channel" transfer-ownership="none">
-            <type name="ColorBalanceChannel" c:type="GstColorBalanceChannel*"/>
-          </parameter>
-          <parameter name="value" transfer-ownership="none">
-            <type name="int" c:type="gint"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_value"
-              c:identifier="gst_color_balance_get_value"
-              doc="Retrieve the current value of the indicated channel, between min_value
-and max_value.
-#GstColorBalanceChannel::max_value members of the
-#GstColorBalanceChannel object.">
-        <return-value transfer-ownership="none">
-          <type name="int" c:type="gint"/>
-        </return-value>
-        <parameters>
-          <parameter name="channel" transfer-ownership="none">
-            <type name="ColorBalanceChannel" c:type="GstColorBalanceChannel*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_balance_type"
-              c:identifier="gst_color_balance_get_balance_type"
-              doc="Get the #GstColorBalanceType of this implementation."
-              version="0.10.24">
-        <return-value transfer-ownership="full">
-          <type name="ColorBalanceType" c:type="GstColorBalanceType"/>
-        </return-value>
-      </method>
-      <method name="value_changed"
-              c:identifier="gst_color_balance_value_changed"
-              doc="A helper function called by implementations of the GstColorBalance
-interface. It fires the #GstColorBalance::value-changed signal on the
-instance, and the #GstColorBalanceChannel::value-changed signal on the
-channel object.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="channel" transfer-ownership="none">
-            <type name="ColorBalanceChannel" c:type="GstColorBalanceChannel*"/>
-          </parameter>
-          <parameter name="value" transfer-ownership="none">
-            <type name="int" c:type="gint"/>
-          </parameter>
-        </parameters>
-      </method>
-      <glib:signal name="value-changed"
-                   doc="Fired when the value of the indicated channel has changed.">
-        <return-value transfer-ownership="full">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="channel" transfer-ownership="none">
-            <type name="ColorBalanceChannel" c:type="GstColorBalanceChannel"/>
-          </parameter>
-          <parameter name="value" transfer-ownership="none">
-            <type name="int" c:type="gint"/>
-          </parameter>
-        </parameters>
-      </glib:signal>
-    </interface>
-    <class name="ColorBalanceChannel"
-           c:type="GstColorBalanceChannel"
-           parent="GObject.Object"
-           glib:type-name="GstColorBalanceChannel"
-           glib:get-type="gst_color_balance_channel_get_type"
-           glib:type-struct="ColorBalanceChannelClass">
-      <field name="parent">
-        <type name="GObject.Object" c:type="GObject"/>
-      </field>
-      <field name="label">
-        <type name="utf8" c:type="gchar*"/>
-      </field>
-      <field name="min_value">
-        <type name="int" c:type="gint"/>
-      </field>
-      <field name="max_value">
-        <type name="int" c:type="gint"/>
-      </field>
-      <glib:signal name="value-changed"
-                   doc="Fired when the value of the indicated channel has changed.">
-        <return-value transfer-ownership="full">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="value" transfer-ownership="none">
-            <type name="int" c:type="gint"/>
-          </parameter>
-        </parameters>
-      </glib:signal>
-    </class>
-    <record name="ColorBalanceChannelClass"
-            c:type="GstColorBalanceChannelClass"
-            glib:is-gtype-struct-for="ColorBalanceChannel">
-      <field name="parent">
-        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
-      </field>
-      <field name="value_changed">
-        <callback name="value_changed" c:type="value_changed">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="channel" transfer-ownership="none">
-              <type name="ColorBalanceChannel"
-                    c:type="GstColorBalanceChannel*"/>
-            </parameter>
-            <parameter name="value" transfer-ownership="none">
-              <type name="int" c:type="gint"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="_gst_reserved">
-        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
-          <type name="any"/>
-        </array>
-      </field>
-    </record>
-    <record name="ColorBalanceClass"
-            c:type="GstColorBalanceClass"
-            glib:is-gtype-struct-for="ColorBalance">
-      <field name="klass">
-        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
-      </field>
-      <field name="balance_type">
-        <type name="ColorBalanceType" c:type="GstColorBalanceType"/>
-      </field>
-      <field name="list_channels">
-        <callback name="list_channels" c:type="list_channels">
-          <return-value transfer-ownership="none">
-            <type name="GLib.List" c:type="GList*"/>
-          </return-value>
-          <parameters>
-            <parameter name="balance" transfer-ownership="none">
-              <type name="ColorBalance" c:type="GstColorBalance*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="set_value">
-        <callback name="set_value" c:type="set_value">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="balance" transfer-ownership="none">
-              <type name="ColorBalance" c:type="GstColorBalance*"/>
-            </parameter>
-            <parameter name="channel" transfer-ownership="none">
-              <type name="ColorBalanceChannel"
-                    c:type="GstColorBalanceChannel*"/>
-            </parameter>
-            <parameter name="value" transfer-ownership="none">
-              <type name="int" c:type="gint"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="get_value">
-        <callback name="get_value" c:type="get_value">
-          <return-value transfer-ownership="none">
-            <type name="int" c:type="gint"/>
-          </return-value>
-          <parameters>
-            <parameter name="balance" transfer-ownership="none">
-              <type name="ColorBalance" c:type="GstColorBalance*"/>
-            </parameter>
-            <parameter name="channel" transfer-ownership="none">
-              <type name="ColorBalanceChannel"
-                    c:type="GstColorBalanceChannel*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="value_changed">
-        <callback name="value_changed" c:type="value_changed">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="balance" transfer-ownership="none">
-              <type name="ColorBalance" c:type="GstColorBalance*"/>
-            </parameter>
-            <parameter name="channel" transfer-ownership="none">
-              <type name="ColorBalanceChannel"
-                    c:type="GstColorBalanceChannel*"/>
-            </parameter>
-            <parameter name="value" transfer-ownership="none">
-              <type name="int" c:type="gint"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="_gst_reserved">
-        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
-          <type name="any"/>
-        </array>
-      </field>
-    </record>
-    <enumeration name="ColorBalanceType"
-                 doc="hardware.
-processing.
-An enumeration indicating whether an element implements color balancing
-operations in software or in dedicated hardware. In general, dedicated
-hardware implementations (such as those provided by xvimagesink) are
-preferred."
-                 glib:type-name="GstColorBalanceType"
-                 glib:get-type="gst_color_balance_type_get_type"
-                 c:type="GstColorBalanceType">
-      <member name="hardware"
-              value="0"
-              c:identifier="GST_COLOR_BALANCE_HARDWARE"
-              glib:nick="hardware"/>
-      <member name="software"
-              value="1"
-              c:identifier="GST_COLOR_BALANCE_SOFTWARE"
-              glib:nick="software"/>
-    </enumeration>
-    <interface name="Mixer"
-               c:type="GstMixer"
-               glib:type-name="GstMixer"
-               glib:get-type="gst_mixer_get_type"
-               glib:type-struct="MixerClass">
-      <prerequisite name="Gst.ImplementsInterface"/>
-      <prerequisite name="Gst.Element"/>
-      <virtual-method name="list_tracks" invoker="list_tracks">
-        <return-value transfer-ownership="none">
-          <type name="GLib.List" c:type="GList*"/>
-        </return-value>
-      </virtual-method>
-      <virtual-method name="set_volume" invoker="set_volume">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="track" transfer-ownership="none">
-            <type name="MixerTrack" c:type="GstMixerTrack*"/>
-          </parameter>
-          <parameter name="volumes" direction="out" transfer-ownership="full">
-            <type name="int" c:type="gint*"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <virtual-method name="get_volume" invoker="get_volume">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="track" transfer-ownership="none">
-            <type name="MixerTrack" c:type="GstMixerTrack*"/>
-          </parameter>
-          <parameter name="volumes" direction="out" transfer-ownership="full">
-            <type name="int" c:type="gint*"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <virtual-method name="set_mute" invoker="set_mute">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="track" transfer-ownership="none">
-            <type name="MixerTrack" c:type="GstMixerTrack*"/>
-          </parameter>
-          <parameter name="mute" transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <virtual-method name="set_record" invoker="set_record">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="track" transfer-ownership="none">
-            <type name="MixerTrack" c:type="GstMixerTrack*"/>
-          </parameter>
-          <parameter name="record" transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <virtual-method name="set_option" invoker="set_option">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="opts" transfer-ownership="none">
-            <type name="MixerOptions" c:type="GstMixerOptions*"/>
-          </parameter>
-          <parameter name="value" transfer-ownership="full">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <virtual-method name="get_option" invoker="get_option">
-        <return-value transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </return-value>
-        <parameters>
-          <parameter name="opts" transfer-ownership="none">
-            <type name="MixerOptions" c:type="GstMixerOptions*"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <virtual-method name="get_mixer_flags" invoker="get_mixer_flags">
-        <return-value transfer-ownership="full">
-          <type name="MixerFlags" c:type="GstMixerFlags"/>
-        </return-value>
-      </virtual-method>
-      <method name="list_tracks"
-              c:identifier="gst_mixer_list_tracks"
-              doc="Returns a list of available tracks for this mixer/element. Note
-that it is allowed for sink (output) elements to only provide
-the output tracks in this list. Likewise, for sources (inputs),
-it is allowed to only provide input elements in this list.
-The list is owned by the #GstMixer instance and must not be freed
-or modified.">
-        <return-value transfer-ownership="none">
-          <type name="GLib.List" c:type="GList*"/>
-        </return-value>
-      </method>
-      <method name="set_volume"
-              c:identifier="gst_mixer_set_volume"
-              doc="that gives the wanted volume for each channel in
-this track.
-Sets the volume on each channel in a track. Short note about
-the mixer/element, such as &apos;Line-in&apos; or &apos;Microphone&apos;. A
-channel is said to be a mono-stream inside this track. A
-stereo track thus contains two channels.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="track" transfer-ownership="none">
-            <type name="MixerTrack" c:type="GstMixerTrack*"/>
-          </parameter>
-          <parameter name="volumes" direction="out" transfer-ownership="full">
-            <type name="int" c:type="gint*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_volume"
-              c:identifier="gst_mixer_get_volume"
-              doc="track-&gt;num_channels) to store the current volume
-of each channel in the given track in.
-Get the current volume(s) on the given track.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="track" transfer-ownership="none">
-            <type name="MixerTrack" c:type="GstMixerTrack*"/>
-          </parameter>
-          <parameter name="volumes" direction="out" transfer-ownership="full">
-            <type name="int" c:type="gint*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_mute"
-              c:identifier="gst_mixer_set_mute"
-              doc="muting.
-Mutes or unmutes the given channel. To find out whether a
-track is currently muted, use GST_MIXER_TRACK_HAS_FLAG ().">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="track" transfer-ownership="none">
-            <type name="MixerTrack" c:type="GstMixerTrack*"/>
-          </parameter>
-          <parameter name="mute" transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_record"
-              c:identifier="gst_mixer_set_record"
-              doc="or off recording.
-Enables or disables recording on the given track. Note that
-this is only possible on input tracks, not on output tracks
-(see GST_MIXER_TRACK_HAS_FLAG () and the GST_MIXER_TRACK_INPUT
-flag).">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="track" transfer-ownership="none">
-            <type name="MixerTrack" c:type="GstMixerTrack*"/>
-          </parameter>
-          <parameter name="record" transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_option"
-              c:identifier="gst_mixer_set_option"
-              doc="Sets a name/value option in the mixer to the requested value.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="opts" transfer-ownership="none">
-            <type name="MixerOptions" c:type="GstMixerOptions*"/>
-          </parameter>
-          <parameter name="value" transfer-ownership="full">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_option"
-              c:identifier="gst_mixer_get_option"
-              doc="Get the current value of a name/value option in the mixer.">
-        <return-value transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </return-value>
-        <parameters>
-          <parameter name="opts" transfer-ownership="none">
-            <type name="MixerOptions" c:type="GstMixerOptions*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="mute_toggled"
-              c:identifier="gst_mixer_mute_toggled"
-              doc="This function is called by the mixer implementation to produce
-a notification message on the bus indicating that the given track
-has changed mute state.
-This function only works for GstElements that are implementing the
-GstMixer interface, and the element needs to have been provided a bus.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="track" transfer-ownership="none">
-            <type name="MixerTrack" c:type="GstMixerTrack*"/>
-          </parameter>
-          <parameter name="mute" transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="record_toggled"
-              c:identifier="gst_mixer_record_toggled"
-              doc="This function is called by the mixer implementation to produce
-a notification message on the bus indicating that the given track
-has changed recording state.
-This function only works for GstElements that are implementing the
-GstMixer interface, and the element needs to have been provided a bus.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="track" transfer-ownership="none">
-            <type name="MixerTrack" c:type="GstMixerTrack*"/>
-          </parameter>
-          <parameter name="record" transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="volume_changed"
-              c:identifier="gst_mixer_volume_changed"
-              doc="This function is called by the mixer implementation to produce
-a notification message on the bus indicating that the volume(s) for the
-given track have changed.
-This function only works for GstElements that are implementing the
-GstMixer interface, and the element needs to have been provided a bus.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="track" transfer-ownership="none">
-            <type name="MixerTrack" c:type="GstMixerTrack*"/>
-          </parameter>
-          <parameter name="volumes" direction="out" transfer-ownership="full">
-            <type name="int" c:type="gint*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="option_changed"
-              c:identifier="gst_mixer_option_changed"
-              doc="This function is called by the mixer implementation to produce
-a notification message on the bus indicating that the given options
-object has changed state.
-This function only works for GstElements that are implementing the
-GstMixer interface, and the element needs to have been provided a bus.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="opts" transfer-ownership="none">
-            <type name="MixerOptions" c:type="GstMixerOptions*"/>
-          </parameter>
-          <parameter name="value" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="mixer_changed"
-              c:identifier="gst_mixer_mixer_changed"
-              doc="This function is called by the mixer implementation to produce
-a notification message on the bus indicating that the list of available
-mixer tracks for a given mixer object has changed. Applications should
-rebuild their interface when they receive this message.
-This function only works for GstElements that are implementing the
-GstMixer interface, and the element needs to have been provided a bus."
-              version="0.10.18">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </method>
-      <method name="options_list_changed"
-              c:identifier="gst_mixer_options_list_changed"
-              doc="This function is called by the mixer implementation to produce
-a notification message on the bus indicating that the list of possible
-options of a given options object has changed.
-The new options are not contained in the message on purpose. Applications
-should call gst_mixer_option_get_values() on @opts to make @opts update
-its internal state and obtain the new list of values.
-This function only works for GstElements that are implementing the
-GstMixer interface, and the element needs to have been provided a bus
-for this to work."
-              version="0.10.18">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="opts" transfer-ownership="none">
-            <type name="MixerOptions" c:type="GstMixerOptions*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_mixer_type"
-              c:identifier="gst_mixer_get_mixer_type"
-              doc="Get the #GstMixerType of this mixer implementation."
-              version="0.10.24">
-        <return-value transfer-ownership="full">
-          <type name="MixerType" c:type="GstMixerType"/>
-        </return-value>
-      </method>
-      <method name="get_mixer_flags"
-              c:identifier="gst_mixer_get_mixer_flags"
-              doc="Get the set of supported flags for this mixer implementation.">
-        <return-value transfer-ownership="full">
-          <type name="MixerFlags" c:type="GstMixerFlags"/>
-        </return-value>
-      </method>
-      <glib:signal name="mute-toggled">
-        <return-value transfer-ownership="full">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="object" transfer-ownership="none">
-            <type name="MixerTrack" c:type="GstMixerTrack"/>
-          </parameter>
-          <parameter name="p0" transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </parameter>
-        </parameters>
-      </glib:signal>
-      <glib:signal name="option-changed">
-        <return-value transfer-ownership="full">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="object" transfer-ownership="none">
-            <type name="MixerOptions" c:type="GstMixerOptions"/>
-          </parameter>
-          <parameter name="p0" transfer-ownership="none">
-            <type name="utf8" c:type="gchararray"/>
-          </parameter>
-        </parameters>
-      </glib:signal>
-      <glib:signal name="record-toggled">
-        <return-value transfer-ownership="full">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="object" transfer-ownership="none">
-            <type name="MixerTrack" c:type="GstMixerTrack"/>
-          </parameter>
-          <parameter name="p0" transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </parameter>
-        </parameters>
-      </glib:signal>
-      <glib:signal name="volume-changed">
-        <return-value transfer-ownership="full">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="object" transfer-ownership="none">
-            <type name="MixerTrack" c:type="GstMixerTrack"/>
-          </parameter>
-          <parameter name="p0" transfer-ownership="none">
-            <type name="any" c:type="gpointer"/>
-          </parameter>
-        </parameters>
-      </glib:signal>
-    </interface>
-    <record name="MixerClass"
-            c:type="GstMixerClass"
-            glib:is-gtype-struct-for="Mixer">
-      <field name="klass">
-        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
-      </field>
-      <field name="mixer_type">
-        <type name="MixerType" c:type="GstMixerType"/>
-      </field>
-      <field name="list_tracks">
-        <callback name="list_tracks" c:type="list_tracks">
-          <return-value transfer-ownership="none">
-            <type name="GLib.List" c:type="GList*"/>
-          </return-value>
-          <parameters>
-            <parameter name="mixer" transfer-ownership="none">
-              <type name="Mixer" c:type="GstMixer*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="set_volume">
-        <callback name="set_volume" c:type="set_volume">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="mixer" transfer-ownership="none">
-              <type name="Mixer" c:type="GstMixer*"/>
-            </parameter>
-            <parameter name="track" transfer-ownership="none">
-              <type name="MixerTrack" c:type="GstMixerTrack*"/>
-            </parameter>
-            <parameter name="volumes"
-                       direction="out"
-                       transfer-ownership="full">
-              <type name="int" c:type="gint*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="get_volume">
-        <callback name="get_volume" c:type="get_volume">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="mixer" transfer-ownership="none">
-              <type name="Mixer" c:type="GstMixer*"/>
-            </parameter>
-            <parameter name="track" transfer-ownership="none">
-              <type name="MixerTrack" c:type="GstMixerTrack*"/>
-            </parameter>
-            <parameter name="volumes"
-                       direction="out"
-                       transfer-ownership="full">
-              <type name="int" c:type="gint*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="set_mute">
-        <callback name="set_mute" c:type="set_mute">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="mixer" transfer-ownership="none">
-              <type name="Mixer" c:type="GstMixer*"/>
-            </parameter>
-            <parameter name="track" transfer-ownership="none">
-              <type name="MixerTrack" c:type="GstMixerTrack*"/>
-            </parameter>
-            <parameter name="mute" transfer-ownership="none">
-              <type name="boolean" c:type="gboolean"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="set_record">
-        <callback name="set_record" c:type="set_record">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="mixer" transfer-ownership="none">
-              <type name="Mixer" c:type="GstMixer*"/>
-            </parameter>
-            <parameter name="track" transfer-ownership="none">
-              <type name="MixerTrack" c:type="GstMixerTrack*"/>
-            </parameter>
-            <parameter name="record" transfer-ownership="none">
-              <type name="boolean" c:type="gboolean"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="mute_toggled">
-        <callback name="mute_toggled" c:type="mute_toggled">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="mixer" transfer-ownership="none">
-              <type name="Mixer" c:type="GstMixer*"/>
-            </parameter>
-            <parameter name="channel" transfer-ownership="none">
-              <type name="MixerTrack" c:type="GstMixerTrack*"/>
-            </parameter>
-            <parameter name="mute" transfer-ownership="none">
-              <type name="boolean" c:type="gboolean"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="record_toggled">
-        <callback name="record_toggled" c:type="record_toggled">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="mixer" transfer-ownership="none">
-              <type name="Mixer" c:type="GstMixer*"/>
-            </parameter>
-            <parameter name="channel" transfer-ownership="none">
-              <type name="MixerTrack" c:type="GstMixerTrack*"/>
-            </parameter>
-            <parameter name="record" transfer-ownership="none">
-              <type name="boolean" c:type="gboolean"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="volume_changed">
-        <callback name="volume_changed" c:type="volume_changed">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="mixer" transfer-ownership="none">
-              <type name="Mixer" c:type="GstMixer*"/>
-            </parameter>
-            <parameter name="channel" transfer-ownership="none">
-              <type name="MixerTrack" c:type="GstMixerTrack*"/>
-            </parameter>
-            <parameter name="volumes"
-                       direction="out"
-                       transfer-ownership="full">
-              <type name="int" c:type="gint*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="set_option">
-        <callback name="set_option" c:type="set_option">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="mixer" transfer-ownership="none">
-              <type name="Mixer" c:type="GstMixer*"/>
-            </parameter>
-            <parameter name="opts" transfer-ownership="none">
-              <type name="MixerOptions" c:type="GstMixerOptions*"/>
-            </parameter>
-            <parameter name="value" transfer-ownership="full">
-              <type name="utf8" c:type="gchar*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="get_option">
-        <callback name="get_option" c:type="get_option">
-          <return-value transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </return-value>
-          <parameters>
-            <parameter name="mixer" transfer-ownership="none">
-              <type name="Mixer" c:type="GstMixer*"/>
-            </parameter>
-            <parameter name="opts" transfer-ownership="none">
-              <type name="MixerOptions" c:type="GstMixerOptions*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="option_changed">
-        <callback name="option_changed" c:type="option_changed">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="mixer" transfer-ownership="none">
-              <type name="Mixer" c:type="GstMixer*"/>
-            </parameter>
-            <parameter name="opts" transfer-ownership="none">
-              <type name="MixerOptions" c:type="GstMixerOptions*"/>
-            </parameter>
-            <parameter name="option" transfer-ownership="full">
-              <type name="utf8" c:type="gchar*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="get_mixer_flags">
-        <callback name="get_mixer_flags" c:type="get_mixer_flags">
-          <return-value transfer-ownership="full">
-            <type name="MixerFlags" c:type="GstMixerFlags"/>
-          </return-value>
-          <parameters>
-            <parameter name="mixer" transfer-ownership="none">
-              <type name="Mixer" c:type="GstMixer*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="_gst_reserved">
-        <array zero-terminated="0" c:type="gpointer" fixed-size="3">
-          <type name="any"/>
-        </array>
-      </field>
-    </record>
-    <bitfield name="MixerFlags"
-              doc="sends notification messages.
-marked without either input or output.  Controls marked as input or
-output should be grouped with input &amp; output sliders, even if they
-Flags indicating which optional features are supported by a mixer
-implementation."
-              version="0.10.14"
-              glib:type-name="GstMixerFlags"
-              glib:get-type="gst_mixer_flags_get_type"
-              c:type="GstMixerFlags">
-      <member name="none"
-              value="0"
-              c:identifier="GST_MIXER_FLAG_NONE"
-              glib:nick="none"/>
-      <member name="auto_notifications"
-              value="1"
-              c:identifier="GST_MIXER_FLAG_AUTO_NOTIFICATIONS"
-              glib:nick="auto-notifications"/>
-      <member name="has_whitelist"
-              value="2"
-              c:identifier="GST_MIXER_FLAG_HAS_WHITELIST"
-              glib:nick="has-whitelist"/>
-      <member name="grouping"
-              value="4"
-              c:identifier="GST_MIXER_FLAG_GROUPING"
-              glib:nick="grouping"/>
-    </bitfield>
-    <enumeration name="MixerMessageType"
-                 doc="GstMixer message, posted when the list of available options for a
-when the list of available mixer tracks has changed. The application
-An enumeration for the type of a GstMixer message received on the bus"
-                 version="0.10.14"
-                 glib:type-name="GstMixerMessageType"
-                 glib:get-type="gst_mixer_message_type_get_type"
-                 c:type="GstMixerMessageType">
-      <member name="invalid"
-              value="0"
-              c:identifier="GST_MIXER_MESSAGE_INVALID"
-              glib:nick="invalid"/>
-      <member name="mute_toggled"
-              value="1"
-              c:identifier="GST_MIXER_MESSAGE_MUTE_TOGGLED"
-              glib:nick="mute-toggled"/>
-      <member name="record_toggled"
-              value="2"
-              c:identifier="GST_MIXER_MESSAGE_RECORD_TOGGLED"
-              glib:nick="record-toggled"/>
-      <member name="volume_changed"
-              value="3"
-              c:identifier="GST_MIXER_MESSAGE_VOLUME_CHANGED"
-              glib:nick="volume-changed"/>
-      <member name="option_changed"
-              value="4"
-              c:identifier="GST_MIXER_MESSAGE_OPTION_CHANGED"
-              glib:nick="option-changed"/>
-      <member name="options_list_changed"
-              value="5"
-              c:identifier="GST_MIXER_MESSAGE_OPTIONS_LIST_CHANGED"
-              glib:nick="options-list-changed"/>
-      <member name="mixer_changed"
-              value="6"
-              c:identifier="GST_MIXER_MESSAGE_MIXER_CHANGED"
-              glib:nick="mixer-changed"/>
-    </enumeration>
-    <class name="MixerOptions"
-           c:type="GstMixerOptions"
-           doc="always use gst_mixer_options_get_values() instead."
-           parent="MixerTrack"
-           glib:type-name="GstMixerOptions"
-           glib:get-type="gst_mixer_options_get_type"
-           glib:type-struct="MixerOptionsClass">
-      <virtual-method name="get_values" invoker="get_values">
-        <return-value transfer-ownership="full">
-          <type name="GLib.List" c:type="GList*"/>
-        </return-value>
-      </virtual-method>
-      <method name="get_values"
-              c:identifier="gst_mixer_options_get_values"
-              doc="Get the values for the mixer option.
-option. You must not free or modify the list or its contents, it belongs
-to the @mixer_options object.">
-        <return-value transfer-ownership="full">
-          <type name="GLib.List" c:type="GList*"/>
-        </return-value>
-      </method>
-      <field name="parent">
-        <type name="MixerTrack" c:type="GstMixerTrack"/>
-      </field>
-      <field name="values">
-        <type name="GLib.List" c:type="GList*"/>
-      </field>
-      <field name="_gst_reserved">
-        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
-          <type name="any"/>
-        </array>
-      </field>
-    </class>
-    <record name="MixerOptionsClass"
-            c:type="GstMixerOptionsClass"
-            glib:is-gtype-struct-for="MixerOptions">
-      <field name="parent">
-        <type name="MixerTrackClass" c:type="GstMixerTrackClass"/>
-      </field>
-      <field name="get_values">
-        <callback name="get_values" c:type="get_values">
-          <return-value transfer-ownership="full">
-            <type name="GLib.List" c:type="GList*"/>
-          </return-value>
-          <parameters>
-            <parameter name="opts" transfer-ownership="none">
-              <type name="MixerOptions" c:type="GstMixerOptions*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="_gst_reserved">
-        <array zero-terminated="0" c:type="gpointer" fixed-size="3">
-          <type name="any"/>
-        </array>
-      </field>
-    </record>
-    <class name="MixerTrack"
-           c:type="GstMixerTrack"
-           parent="GObject.Object"
-           glib:type-name="GstMixerTrack"
-           glib:get-type="gst_mixer_track_get_type"
-           glib:type-struct="MixerTrackClass">
-      <property name="flags">
-        <type name="uint" c:type="guint"/>
-      </property>
-      <property name="index" writable="1" construct-only="1">
-        <type name="uint" c:type="guint"/>
-      </property>
-      <property name="label">
-        <type name="utf8" c:type="gchararray"/>
-      </property>
-      <property name="max-volume">
-        <type name="int" c:type="gint"/>
-      </property>
-      <property name="min-volume">
-        <type name="int" c:type="gint"/>
-      </property>
-      <property name="num-channels">
-        <type name="int" c:type="gint"/>
-      </property>
-      <property name="untranslated-label" writable="1" construct-only="1">
-        <type name="utf8" c:type="gchararray"/>
-      </property>
-      <field name="parent">
-        <type name="GObject.Object" c:type="GObject"/>
-      </field>
-      <field name="label">
-        <type name="utf8" c:type="gchar*"/>
-      </field>
-      <field name="flags">
-        <type name="MixerTrackFlags" c:type="GstMixerTrackFlags"/>
-      </field>
-      <field name="num_channels">
-        <type name="int" c:type="gint"/>
-      </field>
-      <field name="min_volume">
-        <type name="int" c:type="gint"/>
-      </field>
-      <field name="max_volume">
-        <type name="int" c:type="gint"/>
-      </field>
-    </class>
-    <record name="MixerTrackClass"
-            c:type="GstMixerTrackClass"
-            glib:is-gtype-struct-for="MixerTrack">
-      <field name="parent">
-        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
-      </field>
-      <field name="_gst_reserved">
-        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
-          <type name="any"/>
-        </array>
-      </field>
-    </record>
-    <bitfield name="MixerTrackFlags"
-              doc="(for #GST_MIXER_TRACK_INPUT mixer tracks only)
-in software (as opposed to a hardware control)
-Mixer track flags."
-              version="0.10.23"
-              glib:type-name="GstMixerTrackFlags"
-              glib:get-type="gst_mixer_track_flags_get_type"
-              c:type="GstMixerTrackFlags">
-      <member name="input"
-              value="1"
-              c:identifier="GST_MIXER_TRACK_INPUT"
-              glib:nick="input"/>
-      <member name="output"
-              value="2"
-              c:identifier="GST_MIXER_TRACK_OUTPUT"
-              glib:nick="output"/>
-      <member name="mute"
-              value="4"
-              c:identifier="GST_MIXER_TRACK_MUTE"
-              glib:nick="mute"/>
-      <member name="record"
-              value="8"
-              c:identifier="GST_MIXER_TRACK_RECORD"
-              glib:nick="record"/>
-      <member name="master"
-              value="16"
-              c:identifier="GST_MIXER_TRACK_MASTER"
-              glib:nick="master"/>
-      <member name="software"
-              value="32"
-              c:identifier="GST_MIXER_TRACK_SOFTWARE"
-              glib:nick="software"/>
-      <member name="no_record"
-              value="64"
-              c:identifier="GST_MIXER_TRACK_NO_RECORD"
-              glib:nick="no-record"/>
-      <member name="no_mute"
-              value="128"
-              c:identifier="GST_MIXER_TRACK_NO_MUTE"
-              glib:nick="no-mute"/>
-      <member name="whitelist"
-              value="256"
-              c:identifier="GST_MIXER_TRACK_WHITELIST"
-              glib:nick="whitelist"/>
-      <member name="readonly"
-              value="512"
-              c:identifier="GST_MIXER_TRACK_READONLY"
-              glib:nick="readonly"/>
-      <member name="writeonly"
-              value="1024"
-              c:identifier="GST_MIXER_TRACK_WRITEONLY"
-              glib:nick="writeonly"/>
-    </bitfield>
-    <enumeration name="MixerType"
-                 glib:type-name="GstMixerType"
-                 glib:get-type="gst_mixer_type_get_type"
-                 c:type="GstMixerType">
-      <member name="hardware"
-              value="0"
-              c:identifier="GST_MIXER_HARDWARE"
-              glib:nick="hardware"/>
-      <member name="software"
-              value="1"
-              c:identifier="GST_MIXER_SOFTWARE"
-              glib:nick="software"/>
-    </enumeration>
-    <interface name="Navigation"
-               c:type="GstNavigation"
-               glib:type-name="GstNavigation"
-               glib:get-type="gst_navigation_get_type"
-               glib:type-struct="NavigationInterface">
-      <virtual-method name="send_event" invoker="send_event">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="structure" transfer-ownership="none">
-            <type name="Gst.Structure" c:type="GstStructure*"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <method name="send_event" c:identifier="gst_navigation_send_event">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="structure" transfer-ownership="none">
-            <type name="Gst.Structure" c:type="GstStructure*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="send_key_event"
-              c:identifier="gst_navigation_send_key_event"
-              doc="&quot;key-release&quot;
-by XKeysymToString.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="event" transfer-ownership="none">
-            <type name="utf8" c:type="char*"/>
-          </parameter>
-          <parameter name="key" transfer-ownership="none">
-            <type name="utf8" c:type="char*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="send_mouse_event"
-              c:identifier="gst_navigation_send_mouse_event"
-              doc="&quot;mouse-button-press&quot;, &quot;mouse-button-release&quot; and &quot;mouse-move&quot;.
-for mouse-move events.
-Sends a mouse event to the navigation interface. Mouse event coordinates
-are sent relative to the display space of the related output area. This is
-usually the size in pixels of the window associated with the element
-implementing the #GstNavigation interface.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="event" transfer-ownership="none">
-            <type name="utf8" c:type="char*"/>
-          </parameter>
-          <parameter name="button" transfer-ownership="none">
-            <type name="int" c:type="int"/>
-          </parameter>
-          <parameter name="x" transfer-ownership="none">
-            <type name="double" c:type="double"/>
-          </parameter>
-          <parameter name="y" transfer-ownership="none">
-            <type name="double" c:type="double"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="send_command"
-              c:identifier="gst_navigation_send_command"
-              doc="Sends the indicated command to the navigation interface."
-              version="0.10.23">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="command" transfer-ownership="none">
-            <type name="NavigationCommand" c:type="GstNavigationCommand"/>
-          </parameter>
-        </parameters>
-      </method>
-    </interface>
-    <enumeration name="NavigationCommand"
-                 doc="this enters the DVD root menu, or exits back to the title from the menu.
-this jumps to the DVD title menu.
-this jumps into the DVD root menu.
-this jumps to the Subpicture menu.
-the jumps to the audio menu.
-this jumps to the angles menu.
-this jumps to the chapter menu.
-if such a button exists.
-if such a button exists.
-menu, if such a button exists.
-menu, if such a button exists.
-button in a menu, if such a button exists.
-multiangle feature.
-feature.
-A set of commands that may be issued to an element providing the
-#GstNavigation interface. The available commands can be queried via
-the gst_navigation_query_new_commands() query.
-For convenience in handling DVD navigation, the MENU commands are aliased as:
-GST_NAVIGATION_COMMAND_DVD_MENU            = @GST_NAVIGATION_COMMAND_MENU1
-GST_NAVIGATION_COMMAND_DVD_TITLE_MENU      = @GST_NAVIGATION_COMMAND_MENU2
-GST_NAVIGATION_COMMAND_DVD_ROOT_MENU       = @GST_NAVIGATION_COMMAND_MENU3
-GST_NAVIGATION_COMMAND_DVD_SUBPICTURE_MENU = @GST_NAVIGATION_COMMAND_MENU4
-GST_NAVIGATION_COMMAND_DVD_AUDIO_MENU      = @GST_NAVIGATION_COMMAND_MENU5
-GST_NAVIGATION_COMMAND_DVD_ANGLE_MENU      = @GST_NAVIGATION_COMMAND_MENU6
-GST_NAVIGATION_COMMAND_DVD_CHAPTER_MENU    = @GST_NAVIGATION_COMMAND_MENU7"
-                 version="0.10.23"
-                 glib:type-name="GstNavigationCommand"
-                 glib:get-type="gst_navigation_command_get_type"
-                 c:type="GstNavigationCommand">
-      <member name="invalid"
-              value="0"
-              c:identifier="GST_NAVIGATION_COMMAND_INVALID"
-              glib:nick="invalid"/>
-      <member name="menu1"
-              value="1"
-              c:identifier="GST_NAVIGATION_COMMAND_MENU1"
-              glib:nick="menu1"/>
-      <member name="menu2"
-              value="2"
-              c:identifier="GST_NAVIGATION_COMMAND_MENU2"
-              glib:nick="menu2"/>
-      <member name="menu3"
-              value="3"
-              c:identifier="GST_NAVIGATION_COMMAND_MENU3"
-              glib:nick="menu3"/>
-      <member name="menu4"
-              value="4"
-              c:identifier="GST_NAVIGATION_COMMAND_MENU4"
-              glib:nick="menu4"/>
-      <member name="menu5"
-              value="5"
-              c:identifier="GST_NAVIGATION_COMMAND_MENU5"
-              glib:nick="menu5"/>
-      <member name="menu6"
-              value="6"
-              c:identifier="GST_NAVIGATION_COMMAND_MENU6"
-              glib:nick="menu6"/>
-      <member name="menu7"
-              value="7"
-              c:identifier="GST_NAVIGATION_COMMAND_MENU7"
-              glib:nick="menu7"/>
-      <member name="left"
-              value="20"
-              c:identifier="GST_NAVIGATION_COMMAND_LEFT"
-              glib:nick="left"/>
-      <member name="right"
-              value="21"
-              c:identifier="GST_NAVIGATION_COMMAND_RIGHT"
-              glib:nick="right"/>
-      <member name="up"
-              value="22"
-              c:identifier="GST_NAVIGATION_COMMAND_UP"
-              glib:nick="up"/>
-      <member name="down"
-              value="23"
-              c:identifier="GST_NAVIGATION_COMMAND_DOWN"
-              glib:nick="down"/>
-      <member name="activate"
-              value="24"
-              c:identifier="GST_NAVIGATION_COMMAND_ACTIVATE"
-              glib:nick="activate"/>
-      <member name="prev_angle"
-              value="30"
-              c:identifier="GST_NAVIGATION_COMMAND_PREV_ANGLE"
-              glib:nick="prev-angle"/>
-      <member name="next_angle"
-              value="31"
-              c:identifier="GST_NAVIGATION_COMMAND_NEXT_ANGLE"
-              glib:nick="next-angle"/>
-    </enumeration>
-    <enumeration name="NavigationEventType"
-                 doc="gst_navigation_event_get_type() when the passed event is not a navigation event.
-gst_navigation_event_parse_key_event() to extract the details from the event.
-gst_navigation_event_parse_key_event() to extract the details from the event.
-gst_navigation_event_parse_mouse_button_event() to extract the details from the
-event.
-gst_navigation_event_parse_mouse_button_event() to extract the details from the
-event.
-gst_navigation_event_parse_mouse_move_event() to extract the details from the
-event.
-gst_navigation_event_parse_command() to extract the details from the event.
-Enum values for the various events that an element implementing the
-GstNavigation interface might send up the pipeline."
-                 version="0.10.23"
-                 glib:type-name="GstNavigationEventType"
-                 glib:get-type="gst_navigation_event_type_get_type"
-                 c:type="GstNavigationEventType">
-      <member name="invalid"
-              value="0"
-              c:identifier="GST_NAVIGATION_EVENT_INVALID"
-              glib:nick="invalid"/>
-      <member name="key_press"
-              value="1"
-              c:identifier="GST_NAVIGATION_EVENT_KEY_PRESS"
-              glib:nick="key-press"/>
-      <member name="key_release"
-              value="2"
-              c:identifier="GST_NAVIGATION_EVENT_KEY_RELEASE"
-              glib:nick="key-release"/>
-      <member name="mouse_button_press"
-              value="3"
-              c:identifier="GST_NAVIGATION_EVENT_MOUSE_BUTTON_PRESS"
-              glib:nick="mouse-button-press"/>
-      <member name="mouse_button_release"
-              value="4"
-              c:identifier="GST_NAVIGATION_EVENT_MOUSE_BUTTON_RELEASE"
-              glib:nick="mouse-button-release"/>
-      <member name="mouse_move"
-              value="5"
-              c:identifier="GST_NAVIGATION_EVENT_MOUSE_MOVE"
-              glib:nick="mouse-move"/>
-      <member name="command"
-              value="6"
-              c:identifier="GST_NAVIGATION_EVENT_COMMAND"
-              glib:nick="command"/>
-    </enumeration>
-    <record name="NavigationInterface"
-            c:type="GstNavigationInterface"
-            glib:is-gtype-struct-for="Navigation">
-      <field name="g_iface">
-        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
-      </field>
-      <field name="send_event">
-        <callback name="send_event" c:type="send_event">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="navigation" transfer-ownership="none">
-              <type name="Navigation" c:type="GstNavigation*"/>
-            </parameter>
-            <parameter name="structure" transfer-ownership="none">
-              <type name="Gst.Structure" c:type="GstStructure*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="_gst_reserved">
-        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
-          <type name="any"/>
-        </array>
-      </field>
-    </record>
-    <enumeration name="NavigationMessageType"
-                 doc="gst_navigation_message_get_type() when the passed message is not a
-navigation message.
-clickable region of the output, such as a DVD menu button.
-changes and should re-queried by interested applications.
-feature (such as a multiangle DVD) change - either angles have appeared or
-disappeared.
-A set of notifications that may be received on the bus when navigation
-related status changes."
-                 version="0.10.23"
-                 glib:type-name="GstNavigationMessageType"
-                 glib:get-type="gst_navigation_message_type_get_type"
-                 c:type="GstNavigationMessageType">
-      <member name="invalid"
-              value="0"
-              c:identifier="GST_NAVIGATION_MESSAGE_INVALID"
-              glib:nick="invalid"/>
-      <member name="mouse_over"
-              value="1"
-              c:identifier="GST_NAVIGATION_MESSAGE_MOUSE_OVER"
-              glib:nick="mouse-over"/>
-      <member name="commands_changed"
-              value="2"
-              c:identifier="GST_NAVIGATION_MESSAGE_COMMANDS_CHANGED"
-              glib:nick="commands-changed"/>
-      <member name="angles_changed"
-              value="3"
-              c:identifier="GST_NAVIGATION_MESSAGE_ANGLES_CHANGED"
-              glib:nick="angles-changed"/>
-    </enumeration>
-    <enumeration name="NavigationQueryType"
-                 glib:type-name="GstNavigationQueryType"
-                 glib:get-type="gst_navigation_query_type_get_type"
-                 c:type="GstNavigationQueryType">
-      <member name="invalid"
-              value="0"
-              c:identifier="GST_NAVIGATION_QUERY_INVALID"
-              glib:nick="invalid"/>
-      <member name="commands"
-              value="1"
-              c:identifier="GST_NAVIGATION_QUERY_COMMANDS"
-              glib:nick="commands"/>
-      <member name="angles"
-              value="2"
-              c:identifier="GST_NAVIGATION_QUERY_ANGLES"
-              glib:nick="angles"/>
-    </enumeration>
-    <interface name="PropertyProbe"
-               c:type="GstPropertyProbe"
-               doc="Opaque #GstPropertyProbe data structure."
-               glib:type-name="GstPropertyProbe"
-               glib:get-type="gst_property_probe_get_type"
-               glib:type-struct="PropertyProbeInterface">
-      <virtual-method name="get_properties" invoker="get_properties">
-        <return-value transfer-ownership="none">
-          <type name="GLib.List" c:type="GList*"/>
-        </return-value>
-      </virtual-method>
-      <virtual-method name="needs_probe">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="prop_id" transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
-          </parameter>
-          <parameter name="pspec" transfer-ownership="none">
-            <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <virtual-method name="probe_property">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="prop_id" transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
-          </parameter>
-          <parameter name="pspec" transfer-ownership="none">
-            <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <virtual-method name="get_values">
-        <return-value transfer-ownership="full">
-          <type name="GObject.ValueArray" c:type="GValueArray*"/>
-        </return-value>
-        <parameters>
-          <parameter name="prop_id" transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
-          </parameter>
-          <parameter name="pspec" transfer-ownership="none">
-            <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <method name="get_properties"
-              c:identifier="gst_property_probe_get_properties"
-              doc="Get a list of properties for which probing is supported.
-by this element.">
-        <return-value transfer-ownership="none">
-          <type name="GLib.List" c:type="GList*"/>
-        </return-value>
-      </method>
-      <method name="get_property"
-              c:identifier="gst_property_probe_get_property"
-              doc="Get #GParamSpec for a property for which probing is supported.">
-        <return-value transfer-ownership="none">
-          <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
-        </return-value>
-        <parameters>
-          <parameter name="name" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="probe_property"
-              c:identifier="gst_property_probe_probe_property"
-              doc="Runs a probe on the property specified by @pspec">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="pspec" transfer-ownership="none">
-            <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="probe_property_name"
-              c:identifier="gst_property_probe_probe_property_name"
-              doc="Runs a probe on the property specified by @name.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="name" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="needs_probe"
-              c:identifier="gst_property_probe_needs_probe"
-              doc="Checks whether a property needs a probe. This might be because
-the property wasn&apos;t initialized before, or because host setup
-changed. This might be, for example, because a new device was
-added, and thus device probing needs to be refreshed to display
-the new device.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="pspec" transfer-ownership="none">
-            <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="needs_probe_name"
-              c:identifier="gst_property_probe_needs_probe_name"
-              doc="Same as gst_property_probe_needs_probe ().">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="name" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_values"
-              c:identifier="gst_property_probe_get_values"
-              doc="Gets the possible (probed) values for the given property,
-requires the property to have been probed before.">
-        <return-value transfer-ownership="full">
-          <type name="GObject.ValueArray" c:type="GValueArray*"/>
-        </return-value>
-        <parameters>
-          <parameter name="pspec" transfer-ownership="none">
-            <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_values_name"
-              c:identifier="gst_property_probe_get_values_name"
-              doc="Same as gst_property_probe_get_values ().">
-        <return-value transfer-ownership="full">
-          <type name="GObject.ValueArray" c:type="GValueArray*"/>
-        </return-value>
-        <parameters>
-          <parameter name="name" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="probe_and_get_values"
-              c:identifier="gst_property_probe_probe_and_get_values"
-              doc="Check whether the given property requires a new probe. If so,
-fo the probe. After that, retrieve a value list. Meant as a
-utility function that wraps the above functions.">
-        <return-value transfer-ownership="full">
-          <type name="GObject.ValueArray" c:type="GValueArray*"/>
-        </return-value>
-        <parameters>
-          <parameter name="pspec" transfer-ownership="none">
-            <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="probe_and_get_values_name"
-              c:identifier="gst_property_probe_probe_and_get_values_name"
-              doc="Same as gst_property_probe_probe_and_get_values ().">
-        <return-value transfer-ownership="full">
-          <type name="GObject.ValueArray" c:type="GValueArray*"/>
-        </return-value>
-        <parameters>
-          <parameter name="name" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <glib:signal name="probe-needed">
-        <return-value transfer-ownership="full">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="object" transfer-ownership="none">
-            <type name="any" c:type="gpointer"/>
-          </parameter>
-        </parameters>
-      </glib:signal>
-    </interface>
-    <record name="PropertyProbeInterface"
-            c:type="GstPropertyProbeInterface"
-            glib:is-gtype-struct-for="PropertyProbe"
-            doc="#GstPropertyProbe interface.">
-      <field name="klass">
-        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
-      </field>
-      <field name="probe_needed">
-        <callback name="probe_needed" c:type="probe_needed">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="probe" transfer-ownership="none">
-              <type name="PropertyProbe" c:type="GstPropertyProbe*"/>
-            </parameter>
-            <parameter name="pspec" transfer-ownership="none">
-              <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="get_properties">
-        <callback name="get_properties" c:type="get_properties">
-          <return-value transfer-ownership="none">
-            <type name="GLib.List" c:type="GList*"/>
-          </return-value>
-          <parameters>
-            <parameter name="probe" transfer-ownership="none">
-              <type name="PropertyProbe" c:type="GstPropertyProbe*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="needs_probe">
-        <callback name="needs_probe" c:type="needs_probe">
-          <return-value transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </return-value>
-          <parameters>
-            <parameter name="probe" transfer-ownership="none">
-              <type name="PropertyProbe" c:type="GstPropertyProbe*"/>
-            </parameter>
-            <parameter name="prop_id" transfer-ownership="none">
-              <type name="uint" c:type="guint"/>
-            </parameter>
-            <parameter name="pspec" transfer-ownership="none">
-              <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="probe_property">
-        <callback name="probe_property" c:type="probe_property">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="probe" transfer-ownership="none">
-              <type name="PropertyProbe" c:type="GstPropertyProbe*"/>
-            </parameter>
-            <parameter name="prop_id" transfer-ownership="none">
-              <type name="uint" c:type="guint"/>
-            </parameter>
-            <parameter name="pspec" transfer-ownership="none">
-              <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="get_values">
-        <callback name="get_values" c:type="get_values">
-          <return-value transfer-ownership="full">
-            <type name="GObject.ValueArray" c:type="GValueArray*"/>
-          </return-value>
-          <parameters>
-            <parameter name="probe" transfer-ownership="none">
-              <type name="PropertyProbe" c:type="GstPropertyProbe*"/>
-            </parameter>
-            <parameter name="prop_id" transfer-ownership="none">
-              <type name="uint" c:type="guint"/>
-            </parameter>
-            <parameter name="pspec" transfer-ownership="none">
-              <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="_gst_reserved">
-        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
-          <type name="any"/>
-        </array>
-      </field>
-    </record>
-    <interface name="StreamVolume"
-               c:type="GstStreamVolume"
-               glib:type-name="GstStreamVolume"
-               glib:get-type="gst_stream_volume_get_type"
-               glib:type-struct="StreamVolumeInterface">
-      <method name="set_volume"
-              c:identifier="gst_stream_volume_set_volume"
-              version="0.10.25">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="format" transfer-ownership="none">
-            <type name="StreamVolumeFormat" c:type="GstStreamVolumeFormat"/>
-          </parameter>
-          <parameter name="val" transfer-ownership="none">
-            <type name="double" c:type="gdouble"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_volume"
-              c:identifier="gst_stream_volume_get_volume"
-              version="0.10.25">
-        <return-value transfer-ownership="none">
-          <type name="double" c:type="gdouble"/>
-        </return-value>
-        <parameters>
-          <parameter name="format" transfer-ownership="none">
-            <type name="StreamVolumeFormat" c:type="GstStreamVolumeFormat"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_mute"
-              c:identifier="gst_stream_volume_set_mute"
-              version="0.10.25">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="mute" transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_mute"
-              c:identifier="gst_stream_volume_get_mute"
-              version="0.10.25">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-      </method>
-      <property name="mute" writable="1">
-        <type name="boolean" c:type="gboolean"/>
-      </property>
-      <property name="volume" writable="1">
-        <type name="double" c:type="gdouble"/>
-      </property>
-    </interface>
-    <enumeration name="StreamVolumeFormat"
-                 doc="Different representations of a stream volume. gst_stream_volume_convert()
-allows to convert between the different representations.
-Formulas to convert from a linear to a cubic or dB volume are
-cbrt(val) and 20 * log10 (val)."
-                 version="0.10.25"
-                 glib:type-name="GstStreamVolumeFormat"
-                 glib:get-type="gst_stream_volume_format_get_type"
-                 c:type="GstStreamVolumeFormat">
-      <member name="linear"
-              value="0"
-              c:identifier="GST_STREAM_VOLUME_FORMAT_LINEAR"
-              glib:nick="linear"/>
-      <member name="cubic"
-              value="1"
-              c:identifier="GST_STREAM_VOLUME_FORMAT_CUBIC"
-              glib:nick="cubic"/>
-      <member name="db"
-              value="2"
-              c:identifier="GST_STREAM_VOLUME_FORMAT_DB"
-              glib:nick="db"/>
-    </enumeration>
-    <record name="StreamVolumeInterface"
-            c:type="GstStreamVolumeInterface"
-            glib:is-gtype-struct-for="StreamVolume">
-      <field name="parent">
-        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
-      </field>
-      <field name="_gst_reserved">
-        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
-          <type name="any"/>
-        </array>
-      </field>
-    </record>
-    <interface name="Tuner"
-               c:type="GstTuner"
-               glib:type-name="GstTuner"
-               glib:get-type="gst_tuner_get_type"
-               glib:type-struct="TunerClass">
-      <prerequisite name="Gst.ImplementsInterface"/>
-      <prerequisite name="Gst.Element"/>
-      <virtual-method name="list_channels" invoker="list_channels">
-        <return-value transfer-ownership="none">
-          <type name="GLib.List" c:type="GList*"/>
-        </return-value>
-      </virtual-method>
-      <virtual-method name="set_channel" invoker="set_channel">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="channel" transfer-ownership="none">
-            <type name="TunerChannel" c:type="GstTunerChannel*"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <virtual-method name="get_channel" invoker="get_channel">
-        <return-value transfer-ownership="full">
-          <type name="TunerChannel" c:type="GstTunerChannel*"/>
-        </return-value>
-      </virtual-method>
-      <virtual-method name="list_norms" invoker="list_norms">
-        <return-value transfer-ownership="none">
-          <type name="GLib.List" c:type="GList*"/>
-        </return-value>
-      </virtual-method>
-      <virtual-method name="set_norm" invoker="set_norm">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="norm" transfer-ownership="none">
-            <type name="TunerNorm" c:type="GstTunerNorm*"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <virtual-method name="get_norm" invoker="get_norm">
-        <return-value transfer-ownership="full">
-          <type name="TunerNorm" c:type="GstTunerNorm*"/>
-        </return-value>
-      </virtual-method>
-      <virtual-method name="set_frequency" invoker="set_frequency">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="channel" transfer-ownership="none">
-            <type name="TunerChannel" c:type="GstTunerChannel*"/>
-          </parameter>
-          <parameter name="frequency" transfer-ownership="none">
-            <type name="ulong" c:type="gulong"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <virtual-method name="get_frequency" invoker="get_frequency">
-        <return-value transfer-ownership="none">
-          <type name="ulong" c:type="gulong"/>
-        </return-value>
-        <parameters>
-          <parameter name="channel" transfer-ownership="none">
-            <type name="TunerChannel" c:type="GstTunerChannel*"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <virtual-method name="signal_strength" invoker="signal_strength">
-        <return-value transfer-ownership="none">
-          <type name="int" c:type="gint"/>
-        </return-value>
-        <parameters>
-          <parameter name="channel" transfer-ownership="none">
-            <type name="TunerChannel" c:type="GstTunerChannel*"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <method name="list_channels"
-              c:identifier="gst_tuner_list_channels"
-              doc="Retrieve a #GList of #GstTunerChannels available
-(e.g. &apos;composite&apos;, &apos;s-video&apos;, ...) from the given tuner object.
-owned by the GstTuner and must not be freed.">
-        <return-value transfer-ownership="none">
-          <type name="GLib.List" c:type="GList*"/>
-        </return-value>
-      </method>
-      <method name="set_channel"
-              c:identifier="gst_tuner_set_channel"
-              doc="Tunes the object to the given channel, which should be one of the
-channels returned by gst_tuner_list_channels().">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="channel" transfer-ownership="none">
-            <type name="TunerChannel" c:type="GstTunerChannel*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_channel"
-              c:identifier="gst_tuner_get_channel"
-              doc="Retrieve the current channel from the tuner.">
-        <return-value transfer-ownership="full">
-          <type name="TunerChannel" c:type="GstTunerChannel*"/>
-        </return-value>
-      </method>
-      <method name="list_norms"
-              c:identifier="gst_tuner_list_norms"
-              doc="Retrieve a GList of available #GstTunerNorm settings for the currently
-tuned channel on the given tuner object.
-tuner object. The list is owned by the GstTuner and must not
-be freed.">
-        <return-value transfer-ownership="none">
-          <type name="GLib.List" c:type="GList*"/>
-        </return-value>
-      </method>
-      <method name="set_norm"
-              c:identifier="gst_tuner_set_norm"
-              doc="Changes the video norm on this tuner to the given norm, which should be
-one of the norms returned by gst_tuner_list_norms().">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="norm" transfer-ownership="none">
-            <type name="TunerNorm" c:type="GstTunerNorm*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_norm"
-              c:identifier="gst_tuner_get_norm"
-              doc="Get the current video norm from the given tuner object for the
-currently selected channel.">
-        <return-value transfer-ownership="full">
-          <type name="TunerNorm" c:type="GstTunerNorm*"/>
-        </return-value>
-      </method>
-      <method name="set_frequency"
-              c:identifier="gst_tuner_set_frequency"
-              doc="Sets a tuning frequency on the given tuner/channel. Note that this
-requires the given channel to be a &quot;tuning&quot; channel, which can be
-checked using GST_TUNER_CHANNEL_HAS_FLAG (), with the proper flag
-being GST_TUNER_CHANNEL_FREQUENCY.
-The frequency is in Hz, with minimum steps indicated by the
-frequency_multiplicator provided in the #GstTunerChannel. The
-valid range is provided in the min_frequency and max_frequency properties
-of the #GstTunerChannel.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="channel" transfer-ownership="none">
-            <type name="TunerChannel" c:type="GstTunerChannel*"/>
-          </parameter>
-          <parameter name="frequency" transfer-ownership="none">
-            <type name="ulong" c:type="gulong"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_frequency"
-              c:identifier="gst_tuner_get_frequency"
-              doc="Retrieve the current frequency from the given channel. As for
-gst_tuner_set_frequency(), the #GstTunerChannel must support frequency
-operations, as indicated by the GST_TUNER_CHANNEL_FREQUENCY flag.">
-        <return-value transfer-ownership="none">
-          <type name="ulong" c:type="gulong"/>
-        </return-value>
-        <parameters>
-          <parameter name="channel" transfer-ownership="none">
-            <type name="TunerChannel" c:type="GstTunerChannel*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="signal_strength"
-              c:identifier="gst_tuner_signal_strength"
-              doc="Get the strength of the signal on this channel. Note that this
-requires the current channel to be a &quot;tuning&quot; channel, i.e. a
-channel on which frequency can be set. This can be checked using
-GST_TUNER_CHANNEL_HAS_FLAG (), and the appropriate flag to check
-for is GST_TUNER_CHANNEL_FREQUENCY.
-The valid range of the signal strength is indicated in the
-min_signal and max_signal properties of the #GstTunerChannel.">
-        <return-value transfer-ownership="none">
-          <type name="int" c:type="gint"/>
-        </return-value>
-        <parameters>
-          <parameter name="channel" transfer-ownership="none">
-            <type name="TunerChannel" c:type="GstTunerChannel*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="find_norm_by_name"
-              c:identifier="gst_tuner_find_norm_by_name"
-              doc="Look up a #GstTunerNorm by name.
-is available.">
-        <return-value transfer-ownership="full">
-          <type name="TunerNorm" c:type="GstTunerNorm*"/>
-        </return-value>
-        <parameters>
-          <parameter name="norm" transfer-ownership="full">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="find_channel_by_name"
-              c:identifier="gst_tuner_find_channel_by_name"
-              doc="Look up a #GstTunerChannel by name.
-is available.">
-        <return-value transfer-ownership="full">
-          <type name="TunerChannel" c:type="GstTunerChannel*"/>
-        </return-value>
-        <parameters>
-          <parameter name="channel" transfer-ownership="full">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="channel_changed"
-              c:identifier="gst_tuner_channel_changed"
-              doc="Called by elements implementing the #GstTuner interface when the
-current channel changes. Fires the #GstTuner::channel-changed signal.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="channel" transfer-ownership="none">
-            <type name="TunerChannel" c:type="GstTunerChannel*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="norm_changed"
-              c:identifier="gst_tuner_norm_changed"
-              doc="Called by elements implementing the #GstTuner interface when the
-current norm changes. Fires the #GstTuner::norm-changed signal.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="norm" transfer-ownership="none">
-            <type name="TunerNorm" c:type="GstTunerNorm*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="frequency_changed"
-              c:identifier="gst_tuner_frequency_changed"
-              doc="Called by elements implementing the #GstTuner interface when the
-configured frequency changes. Fires the #GstTuner::frequency-changed
-signal on the tuner, and the #GstTunerChannel::frequency-changed signal
-on the channel.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="channel" transfer-ownership="none">
-            <type name="TunerChannel" c:type="GstTunerChannel*"/>
-          </parameter>
-          <parameter name="frequency" transfer-ownership="none">
-            <type name="ulong" c:type="gulong"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="signal_changed"
-              c:identifier="gst_tuner_signal_changed"
-              doc="Called by elements implementing the #GstTuner interface when the
-incoming signal strength changes. Fires the #GstTuner::signal-changed
-signal on the tuner and the #GstTunerChannel::signal-changed signal on
-the channel.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="channel" transfer-ownership="none">
-            <type name="TunerChannel" c:type="GstTunerChannel*"/>
-          </parameter>
-          <parameter name="signal" transfer-ownership="none">
-            <type name="int" c:type="gint"/>
-          </parameter>
-        </parameters>
-      </method>
-      <glib:signal name="channel-changed"
-                   doc="Reports that the current #GstTunerChannel has changed.">
-        <return-value transfer-ownership="full">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="channel" transfer-ownership="none">
-            <type name="TunerChannel" c:type="GstTunerChannel"/>
-          </parameter>
-        </parameters>
-      </glib:signal>
-      <glib:signal name="frequency-changed"
-                   doc="Reports that the current frequency has changed.">
-        <return-value transfer-ownership="full">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="object" transfer-ownership="none">
-            <type name="TunerChannel" c:type="GstTunerChannel"/>
-          </parameter>
-          <parameter name="p0" transfer-ownership="none">
-            <type name="ulong" c:type="gulong"/>
-          </parameter>
-        </parameters>
-      </glib:signal>
-      <glib:signal name="norm-changed"
-                   doc="Reports that the current #GstTunerNorm has changed.">
-        <return-value transfer-ownership="full">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="norm" transfer-ownership="none">
-            <type name="TunerNorm" c:type="GstTunerNorm"/>
-          </parameter>
-        </parameters>
-      </glib:signal>
-      <glib:signal name="signal-changed"
-                   doc="Reports that the signal strength has changed.">
-        <return-value transfer-ownership="full">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="channel" transfer-ownership="none">
-            <type name="TunerChannel" c:type="GstTunerChannel"/>
-          </parameter>
-          <parameter name="signal" transfer-ownership="none">
-            <type name="int" c:type="gint"/>
-          </parameter>
-        </parameters>
-      </glib:signal>
-    </interface>
-    <class name="TunerChannel"
-           c:type="GstTunerChannel"
-           parent="GObject.Object"
-           glib:type-name="GstTunerChannel"
-           glib:get-type="gst_tuner_channel_get_type"
-           glib:type-struct="TunerChannelClass">
-      <field name="parent">
-        <type name="GObject.Object" c:type="GObject"/>
-      </field>
-      <field name="label">
-        <type name="utf8" c:type="gchar*"/>
-      </field>
-      <field name="flags">
-        <type name="TunerChannelFlags" c:type="GstTunerChannelFlags"/>
-      </field>
-      <field name="freq_multiplicator">
-        <type name="float" c:type="gfloat"/>
-      </field>
-      <field name="min_frequency">
-        <type name="ulong" c:type="gulong"/>
-      </field>
-      <field name="max_frequency">
-        <type name="ulong" c:type="gulong"/>
-      </field>
-      <field name="min_signal">
-        <type name="int" c:type="gint"/>
-      </field>
-      <field name="max_signal">
-        <type name="int" c:type="gint"/>
-      </field>
-      <glib:signal name="frequency-changed"
-                   doc="Reports that the current frequency has changed.">
-        <return-value transfer-ownership="full">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="frequency" transfer-ownership="none">
-            <type name="ulong" c:type="gulong"/>
-          </parameter>
-        </parameters>
-      </glib:signal>
-      <glib:signal name="signal-changed"
-                   doc="Reports that the signal strength has changed.">
-        <return-value transfer-ownership="full">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="signal" transfer-ownership="none">
-            <type name="int" c:type="gint"/>
-          </parameter>
-        </parameters>
-      </glib:signal>
-    </class>
-    <record name="TunerChannelClass"
-            c:type="GstTunerChannelClass"
-            glib:is-gtype-struct-for="TunerChannel">
-      <field name="parent">
-        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
-      </field>
-      <field name="frequency_changed">
-        <callback name="frequency_changed" c:type="frequency_changed">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="channel" transfer-ownership="none">
-              <type name="TunerChannel" c:type="GstTunerChannel*"/>
-            </parameter>
-            <parameter name="frequency" transfer-ownership="none">
-              <type name="ulong" c:type="gulong"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="signal_changed">
-        <callback name="signal_changed" c:type="signal_changed">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="channel" transfer-ownership="none">
-              <type name="TunerChannel" c:type="GstTunerChannel*"/>
-            </parameter>
-            <parameter name="signal" transfer-ownership="none">
-              <type name="int" c:type="gint"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="_gst_reserved">
-        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
-          <type name="any"/>
-        </array>
-      </field>
-    </record>
-    <bitfield name="TunerChannelFlags"
-              doc="and signal strength.
-An enumeration for flags indicating the available capabilities
-of a #GstTunerChannel."
-              glib:type-name="GstTunerChannelFlags"
-              glib:get-type="gst_tuner_channel_flags_get_type"
-              c:type="GstTunerChannelFlags">
-      <member name="input"
-              value="1"
-              c:identifier="GST_TUNER_CHANNEL_INPUT"
-              glib:nick="input"/>
-      <member name="output"
-              value="2"
-              c:identifier="GST_TUNER_CHANNEL_OUTPUT"
-              glib:nick="output"/>
-      <member name="frequency"
-              value="4"
-              c:identifier="GST_TUNER_CHANNEL_FREQUENCY"
-              glib:nick="frequency"/>
-      <member name="audio"
-              value="8"
-              c:identifier="GST_TUNER_CHANNEL_AUDIO"
-              glib:nick="audio"/>
-    </bitfield>
-    <record name="TunerClass"
-            c:type="GstTunerClass"
-            glib:is-gtype-struct-for="Tuner">
-      <field name="klass">
-        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
-      </field>
-      <field name="list_channels">
-        <callback name="list_channels" c:type="list_channels">
-          <return-value transfer-ownership="none">
-            <type name="GLib.List" c:type="GList*"/>
-          </return-value>
-          <parameters>
-            <parameter name="tuner" transfer-ownership="none">
-              <type name="Tuner" c:type="GstTuner*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="set_channel">
-        <callback name="set_channel" c:type="set_channel">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="tuner" transfer-ownership="none">
-              <type name="Tuner" c:type="GstTuner*"/>
-            </parameter>
-            <parameter name="channel" transfer-ownership="none">
-              <type name="TunerChannel" c:type="GstTunerChannel*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="get_channel">
-        <callback name="get_channel" c:type="get_channel">
-          <return-value transfer-ownership="full">
-            <type name="TunerChannel" c:type="GstTunerChannel*"/>
-          </return-value>
-          <parameters>
-            <parameter name="tuner" transfer-ownership="none">
-              <type name="Tuner" c:type="GstTuner*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="list_norms">
-        <callback name="list_norms" c:type="list_norms">
-          <return-value transfer-ownership="none">
-            <type name="GLib.List" c:type="GList*"/>
-          </return-value>
-          <parameters>
-            <parameter name="tuner" transfer-ownership="none">
-              <type name="Tuner" c:type="GstTuner*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="set_norm">
-        <callback name="set_norm" c:type="set_norm">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="tuner" transfer-ownership="none">
-              <type name="Tuner" c:type="GstTuner*"/>
-            </parameter>
-            <parameter name="norm" transfer-ownership="none">
-              <type name="TunerNorm" c:type="GstTunerNorm*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="get_norm">
-        <callback name="get_norm" c:type="get_norm">
-          <return-value transfer-ownership="full">
-            <type name="TunerNorm" c:type="GstTunerNorm*"/>
-          </return-value>
-          <parameters>
-            <parameter name="tuner" transfer-ownership="none">
-              <type name="Tuner" c:type="GstTuner*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="set_frequency">
-        <callback name="set_frequency" c:type="set_frequency">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="tuner" transfer-ownership="none">
-              <type name="Tuner" c:type="GstTuner*"/>
-            </parameter>
-            <parameter name="channel" transfer-ownership="none">
-              <type name="TunerChannel" c:type="GstTunerChannel*"/>
-            </parameter>
-            <parameter name="frequency" transfer-ownership="none">
-              <type name="ulong" c:type="gulong"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="get_frequency">
-        <callback name="get_frequency" c:type="get_frequency">
-          <return-value transfer-ownership="none">
-            <type name="ulong" c:type="gulong"/>
-          </return-value>
-          <parameters>
-            <parameter name="tuner" transfer-ownership="none">
-              <type name="Tuner" c:type="GstTuner*"/>
-            </parameter>
-            <parameter name="channel" transfer-ownership="none">
-              <type name="TunerChannel" c:type="GstTunerChannel*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="signal_strength">
-        <callback name="signal_strength" c:type="signal_strength">
-          <return-value transfer-ownership="none">
-            <type name="int" c:type="gint"/>
-          </return-value>
-          <parameters>
-            <parameter name="tuner" transfer-ownership="none">
-              <type name="Tuner" c:type="GstTuner*"/>
-            </parameter>
-            <parameter name="channel" transfer-ownership="none">
-              <type name="TunerChannel" c:type="GstTunerChannel*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="channel_changed">
-        <callback name="channel_changed" c:type="channel_changed">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="tuner" transfer-ownership="none">
-              <type name="Tuner" c:type="GstTuner*"/>
-            </parameter>
-            <parameter name="channel" transfer-ownership="none">
-              <type name="TunerChannel" c:type="GstTunerChannel*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="norm_changed">
-        <callback name="norm_changed" c:type="norm_changed">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="tuner" transfer-ownership="none">
-              <type name="Tuner" c:type="GstTuner*"/>
-            </parameter>
-            <parameter name="norm" transfer-ownership="none">
-              <type name="TunerNorm" c:type="GstTunerNorm*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="frequency_changed">
-        <callback name="frequency_changed" c:type="frequency_changed">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="tuner" transfer-ownership="none">
-              <type name="Tuner" c:type="GstTuner*"/>
-            </parameter>
-            <parameter name="channel" transfer-ownership="none">
-              <type name="TunerChannel" c:type="GstTunerChannel*"/>
-            </parameter>
-            <parameter name="frequency" transfer-ownership="none">
-              <type name="ulong" c:type="gulong"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="signal_changed">
-        <callback name="signal_changed" c:type="signal_changed">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="tuner" transfer-ownership="none">
-              <type name="Tuner" c:type="GstTuner*"/>
-            </parameter>
-            <parameter name="channel" transfer-ownership="none">
-              <type name="TunerChannel" c:type="GstTunerChannel*"/>
-            </parameter>
-            <parameter name="signal" transfer-ownership="none">
-              <type name="int" c:type="gint"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="_gst_reserved">
-        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
-          <type name="any"/>
-        </array>
-      </field>
-    </record>
-    <class name="TunerNorm"
-           c:type="GstTunerNorm"
-           doc="if any. (May be unset)."
-           parent="GObject.Object"
-           glib:type-name="GstTunerNorm"
-           glib:get-type="gst_tuner_norm_get_type"
-           glib:type-struct="TunerNormClass">
-      <field name="parent">
-        <type name="GObject.Object" c:type="GObject"/>
-      </field>
-      <field name="label">
-        <type name="utf8" c:type="gchar*"/>
-      </field>
-      <field name="framerate">
-        <type name="GObject.Value" c:type="GValue"/>
-      </field>
-    </class>
-    <record name="TunerNormClass"
-            c:type="GstTunerNormClass"
-            glib:is-gtype-struct-for="TunerNorm">
-      <field name="parent">
-        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
-      </field>
-      <field name="_gst_reserved">
-        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
-          <type name="any"/>
-        </array>
-      </field>
-    </record>
-    <interface name="VideoOrientation"
-               c:type="GstVideoOrientation"
-               doc="Opaque #GstVideoOrientation data structure."
-               glib:type-name="GstVideoOrientation"
-               glib:get-type="gst_video_orientation_get_type"
-               glib:type-struct="VideoOrientationInterface">
-      <prerequisite name="Gst.ImplementsInterface"/>
-      <prerequisite name="Gst.Element"/>
-      <virtual-method name="get_hflip" invoker="get_hflip">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="flip" direction="out" transfer-ownership="full">
-            <type name="boolean" c:type="gboolean*"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <virtual-method name="get_vflip" invoker="get_vflip">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="flip" direction="out" transfer-ownership="full">
-            <type name="boolean" c:type="gboolean*"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <virtual-method name="get_hcenter" invoker="get_hcenter">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="center" direction="out" transfer-ownership="full">
-            <type name="int" c:type="gint*"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <virtual-method name="get_vcenter" invoker="get_vcenter">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="center" direction="out" transfer-ownership="full">
-            <type name="int" c:type="gint*"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <virtual-method name="set_hflip" invoker="set_hflip">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="flip" transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <virtual-method name="set_vflip" invoker="set_vflip">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="flip" transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <virtual-method name="set_hcenter" invoker="set_hcenter">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="center" transfer-ownership="none">
-            <type name="int" c:type="gint"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <virtual-method name="set_vcenter" invoker="set_vcenter">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="center" transfer-ownership="none">
-            <type name="int" c:type="gint"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <method name="get_hflip"
-              c:identifier="gst_video_orientation_get_hflip"
-              doc="Get the horizontal flipping state (%TRUE for flipped) from the given object."
-              version="0.10.11">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="flip" direction="out" transfer-ownership="full">
-            <type name="boolean" c:type="gboolean*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_vflip"
-              c:identifier="gst_video_orientation_get_vflip"
-              doc="Get the vertical flipping state (%TRUE for flipped) from the given object."
-              version="0.10.11">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="flip" direction="out" transfer-ownership="full">
-            <type name="boolean" c:type="gboolean*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_hcenter"
-              c:identifier="gst_video_orientation_get_hcenter"
-              doc="Get the horizontal centering offset from the given object."
-              version="0.10.11">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="center" direction="out" transfer-ownership="full">
-            <type name="int" c:type="gint*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_vcenter"
-              c:identifier="gst_video_orientation_get_vcenter"
-              doc="Get the vertical centering offset from the given object."
-              version="0.10.11">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="center" direction="out" transfer-ownership="full">
-            <type name="int" c:type="gint*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_hflip"
-              c:identifier="gst_video_orientation_set_hflip"
-              doc="Set the horizontal flipping state (%TRUE for flipped) for the given object."
-              version="0.10.11">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="flip" transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_vflip"
-              c:identifier="gst_video_orientation_set_vflip"
-              doc="Set the vertical flipping state (%TRUE for flipped) for the given object."
-              version="0.10.11">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="flip" transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_hcenter"
-              c:identifier="gst_video_orientation_set_hcenter"
-              doc="Set the horizontal centering offset for the given object."
-              version="0.10.11">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="center" transfer-ownership="none">
-            <type name="int" c:type="gint"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_vcenter"
-              c:identifier="gst_video_orientation_set_vcenter"
-              doc="Set the vertical centering offset for the given object."
-              version="0.10.11">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="center" transfer-ownership="none">
-            <type name="int" c:type="gint"/>
-          </parameter>
-        </parameters>
-      </method>
-    </interface>
-    <record name="VideoOrientationInterface"
-            c:type="GstVideoOrientationInterface"
-            glib:is-gtype-struct-for="VideoOrientation"
-            doc="#GstVideoOrientationInterface interface.">
-      <field name="parent">
-        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
-      </field>
-      <field name="get_hflip">
-        <callback name="get_hflip" c:type="get_hflip">
-          <return-value transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </return-value>
-          <parameters>
-            <parameter name="video_orientation" transfer-ownership="none">
-              <type name="VideoOrientation" c:type="GstVideoOrientation*"/>
-            </parameter>
-            <parameter name="flip" direction="out" transfer-ownership="full">
-              <type name="boolean" c:type="gboolean*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="get_vflip">
-        <callback name="get_vflip" c:type="get_vflip">
-          <return-value transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </return-value>
-          <parameters>
-            <parameter name="video_orientation" transfer-ownership="none">
-              <type name="VideoOrientation" c:type="GstVideoOrientation*"/>
-            </parameter>
-            <parameter name="flip" direction="out" transfer-ownership="full">
-              <type name="boolean" c:type="gboolean*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="get_hcenter">
-        <callback name="get_hcenter" c:type="get_hcenter">
-          <return-value transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </return-value>
-          <parameters>
-            <parameter name="video_orientation" transfer-ownership="none">
-              <type name="VideoOrientation" c:type="GstVideoOrientation*"/>
-            </parameter>
-            <parameter name="center" direction="out" transfer-ownership="full">
-              <type name="int" c:type="gint*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="get_vcenter">
-        <callback name="get_vcenter" c:type="get_vcenter">
-          <return-value transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </return-value>
-          <parameters>
-            <parameter name="video_orientation" transfer-ownership="none">
-              <type name="VideoOrientation" c:type="GstVideoOrientation*"/>
-            </parameter>
-            <parameter name="center" direction="out" transfer-ownership="full">
-              <type name="int" c:type="gint*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="set_hflip">
-        <callback name="set_hflip" c:type="set_hflip">
-          <return-value transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </return-value>
-          <parameters>
-            <parameter name="video_orientation" transfer-ownership="none">
-              <type name="VideoOrientation" c:type="GstVideoOrientation*"/>
-            </parameter>
-            <parameter name="flip" transfer-ownership="none">
-              <type name="boolean" c:type="gboolean"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="set_vflip">
-        <callback name="set_vflip" c:type="set_vflip">
-          <return-value transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </return-value>
-          <parameters>
-            <parameter name="video_orientation" transfer-ownership="none">
-              <type name="VideoOrientation" c:type="GstVideoOrientation*"/>
-            </parameter>
-            <parameter name="flip" transfer-ownership="none">
-              <type name="boolean" c:type="gboolean"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="set_hcenter">
-        <callback name="set_hcenter" c:type="set_hcenter">
-          <return-value transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </return-value>
-          <parameters>
-            <parameter name="video_orientation" transfer-ownership="none">
-              <type name="VideoOrientation" c:type="GstVideoOrientation*"/>
-            </parameter>
-            <parameter name="center" transfer-ownership="none">
-              <type name="int" c:type="gint"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="set_vcenter">
-        <callback name="set_vcenter" c:type="set_vcenter">
-          <return-value transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </return-value>
-          <parameters>
-            <parameter name="video_orientation" transfer-ownership="none">
-              <type name="VideoOrientation" c:type="GstVideoOrientation*"/>
-            </parameter>
-            <parameter name="center" transfer-ownership="none">
-              <type name="int" c:type="gint"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="_gst_reserved">
-        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
-          <type name="any"/>
-        </array>
-      </field>
-    </record>
-    <interface name="XOverlay"
-               c:type="GstXOverlay"
-               doc="Opaque #GstXOverlay data structure."
-               glib:type-name="GstXOverlay"
-               glib:get-type="gst_x_overlay_get_type"
-               glib:type-struct="XOverlayClass">
-      <prerequisite name="Gst.ImplementsInterface"/>
-      <prerequisite name="Gst.Element"/>
-      <virtual-method name="set_xwindow_id" invoker="set_xwindow_id">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="xwindow_id" transfer-ownership="none">
-            <type name="ulong" c:type="gulong"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <virtual-method name="expose" invoker="expose">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </virtual-method>
-      <virtual-method name="handle_events" invoker="handle_events">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="handle_events" transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <virtual-method name="set_render_rectangle"
-                      invoker="set_render_rectangle">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="x" transfer-ownership="none">
-            <type name="int" c:type="gint"/>
-          </parameter>
-          <parameter name="y" transfer-ownership="none">
-            <type name="int" c:type="gint"/>
-          </parameter>
-          <parameter name="width" transfer-ownership="none">
-            <type name="int" c:type="gint"/>
-          </parameter>
-          <parameter name="height" transfer-ownership="none">
-            <type name="int" c:type="gint"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <method name="set_xwindow_id"
-              c:identifier="gst_x_overlay_set_xwindow_id"
-              doc="This will call the video overlay&apos;s set_xwindow_id method. You should
-use this method to tell to a XOverlay to display video output to a
-specific XWindow. Passing 0 as the xwindow_id will tell the overlay to
-stop using that window and create an internal one.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="xwindow_id" transfer-ownership="none">
-            <type name="ulong" c:type="gulong"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_render_rectangle"
-              c:identifier="gst_x_overlay_set_render_rectangle"
-              doc="Configure a subregion as a video target within the window set by
-gst_x_overlay_set_xwindow_id(). If this is not used or not supported
-the video will fill the area of the window set as the overlay to 100%.
-By specifying the rectangle, the video can be overlayed to a specific region
-of that window only. After setting the new rectangle one should call
-gst_x_overlay_expose() to force a redraw. To unset the region pass -1 for
-the @x, @y, @width, and @height parameters.
-This method is needed for non fullscreen video overlay in UI toolkits that
-do not support subwindows."
-              version="0.10.29">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="x" transfer-ownership="none">
-            <type name="int" c:type="gint"/>
-          </parameter>
-          <parameter name="y" transfer-ownership="none">
-            <type name="int" c:type="gint"/>
-          </parameter>
-          <parameter name="width" transfer-ownership="none">
-            <type name="int" c:type="gint"/>
-          </parameter>
-          <parameter name="height" transfer-ownership="none">
-            <type name="int" c:type="gint"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="expose"
-              c:identifier="gst_x_overlay_expose"
-              doc="Tell an overlay that it has been exposed. This will redraw the current frame
-in the drawable even if the pipeline is PAUSED.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </method>
-      <method name="handle_events"
-              c:identifier="gst_x_overlay_handle_events"
-              doc="Tell an overlay that it should handle events from the window system. These
-events are forwared upstream as navigation events. In some window system,
-events are not propagated in the window hierarchy if a client is listening
-for them. This method allows you to disable events handling completely
-from the XOverlay."
-              version="0.10.12">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="handle_events" transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="got_xwindow_id"
-              c:identifier="gst_x_overlay_got_xwindow_id"
-              doc="This will post a &quot;have-xwindow-id&quot; element message on the bus.
-This function should only be used by video overlay plugin developers.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="xwindow_id" transfer-ownership="none">
-            <type name="ulong" c:type="gulong"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="prepare_xwindow_id"
-              c:identifier="gst_x_overlay_prepare_xwindow_id"
-              doc="This will post a &quot;prepare-xwindow-id&quot; element message on the bus
-to give applications an opportunity to call
-gst_x_overlay_set_xwindow_id() before a plugin creates its own
-window.
-This function should only be used by video overlay plugin developers.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </method>
-    </interface>
-    <record name="XOverlayClass"
-            c:type="GstXOverlayClass"
-            glib:is-gtype-struct-for="XOverlay"
-            doc="#GstXOverlay interface">
-      <field name="klass">
-        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
-      </field>
-      <field name="set_xwindow_id">
-        <callback name="set_xwindow_id" c:type="set_xwindow_id">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="overlay" transfer-ownership="none">
-              <type name="XOverlay" c:type="GstXOverlay*"/>
-            </parameter>
-            <parameter name="xwindow_id" transfer-ownership="none">
-              <type name="ulong" c:type="gulong"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="expose">
-        <callback name="expose" c:type="expose">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="overlay" transfer-ownership="none">
-              <type name="XOverlay" c:type="GstXOverlay*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="handle_events">
-        <callback name="handle_events" c:type="handle_events">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="overlay" transfer-ownership="none">
-              <type name="XOverlay" c:type="GstXOverlay*"/>
-            </parameter>
-            <parameter name="handle_events" transfer-ownership="none">
-              <type name="boolean" c:type="gboolean"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="set_render_rectangle">
-        <callback name="set_render_rectangle" c:type="set_render_rectangle">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="overlay" transfer-ownership="none">
-              <type name="XOverlay" c:type="GstXOverlay*"/>
-            </parameter>
-            <parameter name="x" transfer-ownership="none">
-              <type name="int" c:type="gint"/>
-            </parameter>
-            <parameter name="y" transfer-ownership="none">
-              <type name="int" c:type="gint"/>
-            </parameter>
-            <parameter name="width" transfer-ownership="none">
-              <type name="int" c:type="gint"/>
-            </parameter>
-            <parameter name="height" transfer-ownership="none">
-              <type name="int" c:type="gint"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="_gst_reserved">
-        <array zero-terminated="0" c:type="gpointer" fixed-size="2">
-          <type name="any"/>
-        </array>
-      </field>
-    </record>
-    <function name="mixer_message_get_type"
-              c:identifier="gst_mixer_message_get_type"
-              doc="Check a bus message to see if it is a GstMixer notification
-message and return the GstMixerMessageType identifying which
-type of notification it is.
-if the message is not a GstMixer notification."
-              version="0.10.14">
-      <return-value transfer-ownership="full">
-        <type name="MixerMessageType" c:type="GstMixerMessageType"/>
-      </return-value>
-      <parameters>
-        <parameter name="message" transfer-ownership="none">
-          <type name="Gst.Message" c:type="GstMessage*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="mixer_message_parse_mute_toggled"
-              c:identifier="gst_mixer_message_parse_mute_toggled"
-              doc="Extracts the contents of a mute-toggled bus message. Reads
-the GstMixerTrack that has changed, and the new value of the mute
-flag.
-The GstMixerTrack remains valid until the message is freed."
-              version="0.10.14">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="message" transfer-ownership="none">
-          <type name="Gst.Message" c:type="GstMessage*"/>
-        </parameter>
-        <parameter name="track" transfer-ownership="none">
-          <type name="MixerTrack" c:type="GstMixerTrack**"/>
-        </parameter>
-        <parameter name="mute" direction="out" transfer-ownership="full">
-          <type name="boolean" c:type="gboolean*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="mixer_message_parse_option_changed"
-              c:identifier="gst_mixer_message_parse_option_changed"
-              doc="Extracts the GstMixerOptions and new value from a option-changed bus notification
-message.
-The options and value returned remain valid until the message is freed."
-              version="0.10.14">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="message" transfer-ownership="none">
-          <type name="Gst.Message" c:type="GstMessage*"/>
-        </parameter>
-        <parameter name="options" transfer-ownership="none">
-          <type name="MixerOptions" c:type="GstMixerOptions**"/>
-        </parameter>
-        <parameter name="value" transfer-ownership="none">
-          <array c:type="gchar**">
-            <type name="utf8"/>
-          </array>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="mixer_message_parse_options_list_changed"
-              c:identifier="gst_mixer_message_parse_options_list_changed"
-              doc="Extracts the GstMixerOptions whose value list has changed from an
-options-list-changed bus notification message.
-The options object returned remains valid until the message is freed. You
-do not need to unref it."
-              version="0.10.18">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="message" transfer-ownership="none">
-          <type name="Gst.Message" c:type="GstMessage*"/>
-        </parameter>
-        <parameter name="options" transfer-ownership="none">
-          <type name="MixerOptions" c:type="GstMixerOptions**"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="mixer_message_parse_record_toggled"
-              c:identifier="gst_mixer_message_parse_record_toggled"
-              doc="Extracts the contents of a record-toggled bus message. Reads
-the GstMixerTrack that has changed, and the new value of the
-recording flag.
-The GstMixerTrack remains valid until the message is freed."
-              version="0.10.14">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="message" transfer-ownership="none">
-          <type name="Gst.Message" c:type="GstMessage*"/>
-        </parameter>
-        <parameter name="track" transfer-ownership="none">
-          <type name="MixerTrack" c:type="GstMixerTrack**"/>
-        </parameter>
-        <parameter name="record" direction="out" transfer-ownership="full">
-          <type name="boolean" c:type="gboolean*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="mixer_message_parse_volume_changed"
-              c:identifier="gst_mixer_message_parse_volume_changed"
-              doc="Parses a volume-changed notification message and extracts the track object
-it refers to, as well as an array of volumes and the size of the volumes array.
-The track object remains valid until the message is freed.
-The caller must free the array returned in the volumes parameter using g_free
-when they are done with it."
-              version="0.10.14">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="message" transfer-ownership="none">
-          <type name="Gst.Message" c:type="GstMessage*"/>
-        </parameter>
-        <parameter name="track" transfer-ownership="none">
-          <type name="MixerTrack" c:type="GstMixerTrack**"/>
-        </parameter>
-        <parameter name="volumes" direction="out" transfer-ownership="full">
-          <type name="int" c:type="gint**"/>
-        </parameter>
-        <parameter name="num_channels"
-                   direction="out"
-                   transfer-ownership="full">
-          <type name="int" c:type="gint*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="navigation_event_get_type"
-              c:identifier="gst_navigation_event_get_type"
-              doc="Inspect a #GstEvent and return the #GstNavigationEventType of the event, or
-#GST_NAVIGATION_EVENT_INVALID if the event is not a #GstNavigation event."
-              version="0.10.23">
-      <return-value transfer-ownership="full">
-        <type name="NavigationEventType" c:type="GstNavigationEventType"/>
-      </return-value>
-      <parameters>
-        <parameter name="event" transfer-ownership="none">
-          <type name="Gst.Event" c:type="GstEvent*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="navigation_event_parse_command"
-              c:identifier="gst_navigation_event_parse_command"
-              doc="navigation event.
-Inspect a #GstNavigation command event and retrieve the enum value of the
-associated command."
-              version="0.10.23">
-      <return-value transfer-ownership="none">
-        <type name="boolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="event" transfer-ownership="none">
-          <type name="Gst.Event" c:type="GstEvent*"/>
-        </parameter>
-        <parameter name="command" transfer-ownership="none">
-          <type name="NavigationCommand" c:type="GstNavigationCommand*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="navigation_event_parse_key_event"
-              c:identifier="gst_navigation_event_parse_key_event"
-              doc="press. The returned string is owned by the event, and valid only until the
-event is unreffed."
-              version="0.10.23">
-      <return-value transfer-ownership="none">
-        <type name="boolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="event" transfer-ownership="none">
-          <type name="Gst.Event" c:type="GstEvent*"/>
-        </parameter>
-        <parameter name="key" transfer-ownership="none">
-          <array c:type="gchar**">
-            <type name="utf8"/>
-          </array>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="navigation_event_parse_mouse_button_event"
-              c:identifier="gst_navigation_event_parse_mouse_button_event"
-              doc="with the event.
-event.
-event.
-Retrieve the details of either a #GstNavigation mouse button press event or
-a mouse button release event. Determine which type the event is using
-gst_navigation_event_get_type() to retrieve the #GstNavigationEventType.
-otherwise FALSE."
-              version="0.10.23">
-      <return-value transfer-ownership="none">
-        <type name="boolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="event" transfer-ownership="none">
-          <type name="Gst.Event" c:type="GstEvent*"/>
-        </parameter>
-        <parameter name="button" direction="out" transfer-ownership="full">
-          <type name="int" c:type="gint*"/>
-        </parameter>
-        <parameter name="x" direction="out" transfer-ownership="full">
-          <type name="double" c:type="gdouble*"/>
-        </parameter>
-        <parameter name="y" direction="out" transfer-ownership="full">
-          <type name="double" c:type="gdouble*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="navigation_event_parse_mouse_move_event"
-              c:identifier="gst_navigation_event_parse_mouse_move_event"
-              doc="Inspect a #GstNavigation mouse movement event and extract the coordinates
-of the event."
-              version="0.10.23">
-      <return-value transfer-ownership="none">
-        <type name="boolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="event" transfer-ownership="none">
-          <type name="Gst.Event" c:type="GstEvent*"/>
-        </parameter>
-        <parameter name="x" direction="out" transfer-ownership="full">
-          <type name="double" c:type="gdouble*"/>
-        </parameter>
-        <parameter name="y" direction="out" transfer-ownership="full">
-          <type name="double" c:type="gdouble*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="navigation_message_get_type"
-              c:identifier="gst_navigation_message_get_type"
-              doc="Check a bus message to see if it is a #GstNavigation event, and return
-the #GstNavigationMessageType identifying the type of the message if so.
-#GST_NAVIGATION_MESSAGE_INVALID if the message is not a #GstNavigation
-notification."
-              version="0.10.23">
-      <return-value transfer-ownership="full">
-        <type name="NavigationMessageType" c:type="GstNavigationMessageType"/>
-      </return-value>
-      <parameters>
-        <parameter name="message" transfer-ownership="none">
-          <type name="Gst.Message" c:type="GstMessage*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="navigation_message_new_angles_changed"
-              c:identifier="gst_navigation_message_new_angles_changed"
-              doc="Creates a new #GstNavigation message with type
-#GST_NAVIGATION_MESSAGE_ANGLES_CHANGED for notifying an application
-that the current angle, or current number of angles available in a
-multiangle video has changed."
-              version="0.10.23">
-      <return-value transfer-ownership="full">
-        <type name="Gst.Message" c:type="GstMessage*"/>
-      </return-value>
-      <parameters>
-        <parameter name="src" transfer-ownership="none">
-          <type name="Gst.Object" c:type="GstObject*"/>
-        </parameter>
-        <parameter name="cur_angle" transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
-        </parameter>
-        <parameter name="n_angles" transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="navigation_message_new_commands_changed"
-              c:identifier="gst_navigation_message_new_commands_changed"
-              doc="Creates a new #GstNavigation message with type
-#GST_NAVIGATION_MESSAGE_COMMANDS_CHANGED"
-              version="0.10.23">
-      <return-value transfer-ownership="full">
-        <type name="Gst.Message" c:type="GstMessage*"/>
-      </return-value>
-      <parameters>
-        <parameter name="src" transfer-ownership="none">
-          <type name="Gst.Object" c:type="GstObject*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="navigation_message_new_mouse_over"
-              c:identifier="gst_navigation_message_new_mouse_over"
-              doc="%FALSE if it over a non-clickable area.
-Creates a new #GstNavigation message with type
-#GST_NAVIGATION_MESSAGE_MOUSE_OVER."
-              version="0.10.23">
-      <return-value transfer-ownership="full">
-        <type name="Gst.Message" c:type="GstMessage*"/>
-      </return-value>
-      <parameters>
-        <parameter name="src" transfer-ownership="none">
-          <type name="Gst.Object" c:type="GstObject*"/>
-        </parameter>
-        <parameter name="active" transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="navigation_message_parse_angles_changed"
-              c:identifier="gst_navigation_message_parse_angles_changed"
-              doc="or NULL
-Parse a #GstNavigation message of type GST_NAVIGATION_MESSAGE_ANGLES_CHANGED
-and extract the @cur_angle and @n_angles parameters."
-              version="0.10.23">
-      <return-value transfer-ownership="none">
-        <type name="boolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="message" transfer-ownership="none">
-          <type name="Gst.Message" c:type="GstMessage*"/>
-        </parameter>
-        <parameter name="cur_angle" direction="out" transfer-ownership="full">
-          <type name="uint" c:type="guint*"/>
-        </parameter>
-        <parameter name="n_angles" direction="out" transfer-ownership="full">
-          <type name="uint" c:type="guint*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="navigation_message_parse_mouse_over"
-              c:identifier="gst_navigation_message_parse_mouse_over"
-              doc="or NULL.
-Parse a #GstNavigation message of type #GST_NAVIGATION_MESSAGE_MOUSE_OVER
-and extract the active/inactive flag. If the mouse over event is marked
-active, it indicates that the mouse is over a clickable area."
-              version="0.10.23">
-      <return-value transfer-ownership="none">
-        <type name="boolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="message" transfer-ownership="none">
-          <type name="Gst.Message" c:type="GstMessage*"/>
-        </parameter>
-        <parameter name="active" direction="out" transfer-ownership="full">
-          <type name="boolean" c:type="gboolean*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="navigation_query_get_type"
-              c:identifier="gst_navigation_query_get_type"
-              doc="Inspect a #GstQuery and return the #GstNavigationQueryType associated with
-it if it is a #GstNavigation query.
-#GST_NAVIGATION_QUERY_INVALID"
-              version="0.10.23">
-      <return-value transfer-ownership="full">
-        <type name="NavigationQueryType" c:type="GstNavigationQueryType"/>
-      </return-value>
-      <parameters>
-        <parameter name="query" transfer-ownership="none">
-          <type name="Gst.Query" c:type="GstQuery*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="navigation_query_new_angles"
-              c:identifier="gst_navigation_query_new_angles"
-              doc="Create a new #GstNavigation angles query. When executed, it will
-query the pipeline for the set of currently available angles, which may be
-greater than one in a multiangle video."
-              version="0.10.23">
-      <return-value transfer-ownership="full">
-        <type name="Gst.Query" c:type="GstQuery*"/>
-      </return-value>
-    </function>
-    <function name="navigation_query_new_commands"
-              c:identifier="gst_navigation_query_new_commands"
-              doc="Create a new #GstNavigation commands query. When executed, it will
-query the pipeline for the set of currently available commands."
-              version="0.10.23">
-      <return-value transfer-ownership="full">
-        <type name="Gst.Query" c:type="GstQuery*"/>
-      </return-value>
-    </function>
-    <function name="navigation_query_parse_angles"
-              c:identifier="gst_navigation_query_parse_angles"
-              doc="angle value from the query, or NULL
-value from the query, or NULL
-Parse the current angle number in the #GstNavigation angles @query into the
-#guint pointed to by the @cur_angle variable, and the number of available
-angles into the #guint pointed to by the @n_angles variable."
-              version="0.10.23">
-      <return-value transfer-ownership="none">
-        <type name="boolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="query" transfer-ownership="none">
-          <type name="Gst.Query" c:type="GstQuery*"/>
-        </parameter>
-        <parameter name="cur_angle" direction="out" transfer-ownership="full">
-          <type name="uint" c:type="guint*"/>
-        </parameter>
-        <parameter name="n_angles" direction="out" transfer-ownership="full">
-          <type name="uint" c:type="guint*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="navigation_query_parse_commands_length"
-              c:identifier="gst_navigation_query_parse_commands_length"
-              doc="Parse the number of commands in the #GstNavigation commands @query."
-              version="0.10.23">
-      <return-value transfer-ownership="none">
-        <type name="boolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="query" transfer-ownership="none">
-          <type name="Gst.Query" c:type="GstQuery*"/>
-        </parameter>
-        <parameter name="n_cmds" direction="out" transfer-ownership="full">
-          <type name="uint" c:type="guint*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="navigation_query_parse_commands_nth"
-              c:identifier="gst_navigation_query_parse_commands_nth"
-              doc="Parse the #GstNavigation command query and retrieve the @nth command from
-it into @cmd. If the list contains less elements than @nth, @cmd will be
-set to #GST_NAVIGATION_COMMAND_INVALID."
-              version="0.10.23">
-      <return-value transfer-ownership="none">
-        <type name="boolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="query" transfer-ownership="none">
-          <type name="Gst.Query" c:type="GstQuery*"/>
-        </parameter>
-        <parameter name="nth" transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
-        </parameter>
-        <parameter name="cmd" transfer-ownership="none">
-          <type name="NavigationCommand" c:type="GstNavigationCommand*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="navigation_query_set_angles"
-              c:identifier="gst_navigation_query_set_angles"
-              doc="Set the #GstNavigation angles query result field in @query."
-              version="0.10.23">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="query" transfer-ownership="none">
-          <type name="Gst.Query" c:type="GstQuery*"/>
-        </parameter>
-        <parameter name="cur_angle" transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
-        </parameter>
-        <parameter name="n_angles" transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="navigation_query_set_commands"
-              c:identifier="gst_navigation_query_set_commands"
-              doc="Set the #GstNavigation command query result fields in @query. The number
-of commands passed must be equal to @n_commands."
-              version="0.10.23">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="query" transfer-ownership="none">
-          <type name="Gst.Query" c:type="GstQuery*"/>
-        </parameter>
-        <parameter name="n_cmds" transfer-ownership="none">
-          <type name="int" c:type="gint"/>
-        </parameter>
-        <parameter transfer-ownership="none">
-          <varargs>
-          </varargs>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="navigation_query_set_commandsv"
-              c:identifier="gst_navigation_query_set_commandsv"
-              doc="Set the #GstNavigation command query result fields in @query. The number
-of commands passed must be equal to @n_commands."
-              version="0.10.23">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="query" transfer-ownership="none">
-          <type name="Gst.Query" c:type="GstQuery*"/>
-        </parameter>
-        <parameter name="n_cmds" transfer-ownership="none">
-          <type name="int" c:type="gint"/>
-        </parameter>
-        <parameter name="cmds" transfer-ownership="none">
-          <type name="NavigationCommand" c:type="GstNavigationCommand*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="stream_volume_convert_volume"
-              c:identifier="gst_stream_volume_convert_volume"
-              version="0.10.25">
-      <return-value transfer-ownership="none">
-        <type name="double" c:type="gdouble"/>
-      </return-value>
-      <parameters>
-        <parameter name="from" transfer-ownership="none">
-          <type name="StreamVolumeFormat" c:type="GstStreamVolumeFormat"/>
-        </parameter>
-        <parameter name="to" transfer-ownership="none">
-          <type name="StreamVolumeFormat" c:type="GstStreamVolumeFormat"/>
-        </parameter>
-        <parameter name="val" transfer-ownership="none">
-          <type name="double" c:type="gdouble"/>
-        </parameter>
-      </parameters>
-    </function>
-  </namespace>
-</repository>
diff --git a/extra/gstreamer/interfaces/ffi/ffi.factor b/extra/gstreamer/interfaces/ffi/ffi.factor
deleted file mode 100644 (file)
index 45d57d2..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-! Copyright (C) 2010 Anton Gorenko.
-! See http://factorcode.org/license.txt for BSD license.
-USING: alien alien.c-types alien.libraries combinators kernel
-system
-gobject-introspection glib.ffi gobject.ffi gstreamer.ffi ;
-IN: gstreamer.interfaces.ffi
-
-<<
-"gstreamer.interfaces" {
-    { [ os winnt? ] [ drop ] }
-    { [ os macosx? ] [ drop ] }
-    { [ os unix? ] [ "libgstinterfaces-0.10.so" cdecl add-library ] }
-} cond
->>
-
-GIR: vocab:gstreamer/interfaces/GstInterfaces-0.10.gir
-
diff --git a/extra/gstreamer/interfaces/interfaces.factor b/extra/gstreamer/interfaces/interfaces.factor
deleted file mode 100644 (file)
index b9b57f6..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-! Copyright (C) 2010 Anton Gorenko.
-! See http://factorcode.org/license.txt for BSD license.
-USING: gstreamer.interfaces.ffi ;
-IN: gstreamer.interfaces
-
diff --git a/extra/gstreamer/net/GstNet-0.10.gir b/extra/gstreamer/net/GstNet-0.10.gir
deleted file mode 100644 (file)
index eb3a4b7..0000000
+++ /dev/null
@@ -1,279 +0,0 @@
-<?xml version="1.0"?>
-<!-- This file was automatically generated from C sources - DO NOT EDIT!
-To affect the contents of this file, edit the original C definitions,
-and/or use gtk-doc annotations.  -->
-<repository version="1.0"
-            xmlns="http://www.gtk.org/introspection/core/1.0"
-            xmlns:c="http://www.gtk.org/introspection/c/1.0"
-            xmlns:glib="http://www.gtk.org/introspection/glib/1.0">
-  <include name="GLib" version="2.0"/>
-  <include name="GModule" version="2.0"/>
-  <include name="GObject" version="2.0"/>
-  <include name="Gst" version="0.10"/>
-  <include name="libxml2" version="2.0"/>
-  <package name="gstreamer-0.10"/>
-  <namespace name="GstNet"
-             version="0.10"
-             shared-library="libgstnet-0.10.so.0"
-             c:prefix="Gst">
-    <class name="NetClientClock"
-           c:type="GstNetClientClock"
-           doc="Opaque #GstNetClientClock structure."
-           parent="Gst.SystemClock"
-           glib:type-name="GstNetClientClock"
-           glib:get-type="gst_net_client_clock_get_type"
-           glib:type-struct="NetClientClockClass">
-      <constructor name="new"
-                   c:identifier="gst_net_client_clock_new"
-                   doc="Create a new #GstNetClientClock that will report the time
-provided by the #GstNetTimeProvider on @remote_address and
-clock.">
-        <return-value transfer-ownership="full">
-          <type name="NetClientClock" c:type="GstClock*"/>
-        </return-value>
-        <parameters>
-          <parameter name="name" transfer-ownership="full">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="remote_address" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="remote_port" transfer-ownership="none">
-            <type name="int" c:type="gint"/>
-          </parameter>
-          <parameter name="base_time" transfer-ownership="none">
-            <type name="Gst.ClockTime" c:type="GstClockTime"/>
-          </parameter>
-        </parameters>
-      </constructor>
-      <property name="address" writable="1">
-        <type name="utf8" c:type="gchararray"/>
-      </property>
-      <property name="port" writable="1">
-        <type name="int" c:type="gint"/>
-      </property>
-      <field name="clock">
-        <type name="Gst.SystemClock" c:type="GstSystemClock"/>
-      </field>
-      <field name="address">
-        <type name="utf8" c:type="gchar*"/>
-      </field>
-      <field name="port">
-        <type name="int" c:type="gint"/>
-      </field>
-      <field name="sock">
-        <type name="int" c:type="int"/>
-      </field>
-      <field name="control_sock">
-        <array zero-terminated="0" c:type="int" fixed-size="2">
-          <type name="int"/>
-        </array>
-      </field>
-      <field name="current_timeout">
-        <type name="Gst.ClockTime" c:type="GstClockTime"/>
-      </field>
-      <field name="servaddr">
-        <type name="any" c:type="any*"/>
-      </field>
-      <field name="thread">
-        <type name="GLib.Thread" c:type="GThread*"/>
-      </field>
-      <field name="priv">
-        <type name="NetClientClockPrivate" c:type="GstNetClientClockPrivate*"/>
-      </field>
-      <field name="_gst_reserved">
-        <array zero-terminated="0" c:type="gpointer" fixed-size="3">
-          <type name="any"/>
-        </array>
-      </field>
-    </class>
-    <record name="NetClientClockClass"
-            c:type="GstNetClientClockClass"
-            glib:is-gtype-struct-for="NetClientClock">
-      <field name="parent_class">
-        <type name="Gst.SystemClockClass" c:type="GstSystemClockClass"/>
-      </field>
-      <field name="_gst_reserved">
-        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
-          <type name="any"/>
-        </array>
-      </field>
-    </record>
-    <record name="NetClientClockPrivate" c:type="GstNetClientClockPrivate">
-    </record>
-    <record name="NetTimePacket"
-            c:type="GstNetTimePacket"
-            doc="Content of a #GstNetTimePacket.">
-      <field name="local_time" writable="1">
-        <type name="Gst.ClockTime" c:type="GstClockTime"/>
-      </field>
-      <field name="remote_time" writable="1">
-        <type name="Gst.ClockTime" c:type="GstClockTime"/>
-      </field>
-      <constructor name="new"
-                   c:identifier="gst_net_time_packet_new"
-                   doc="Creates a new #GstNetTimePacket from a buffer received over the network. The
-caller is responsible for ensuring that @buffer is at least
-#GST_NET_TIME_PACKET_SIZE bytes long.
-If @buffer is #NULL, the local and remote times will be set to
-#GST_CLOCK_TIME_NONE.
-MT safe. Caller owns return value (g_free to free).">
-        <return-value transfer-ownership="full">
-          <type name="NetTimePacket" c:type="GstNetTimePacket*"/>
-        </return-value>
-        <parameters>
-          <parameter name="buffer" transfer-ownership="none">
-            <array c:type="guint8*">
-              <type name="uint8"/>
-            </array>
-          </parameter>
-        </parameters>
-      </constructor>
-      <method name="serialize"
-              c:identifier="gst_net_time_packet_serialize"
-              doc="Serialized a #GstNetTimePacket into a newly-allocated sequence of
-#GST_NET_TIME_PACKET_SIZE bytes, in network byte order. The value returned is
-suitable for passing to write(2) or sendto(2) for communication over the
-network.
-MT safe. Caller owns return value (g_free to free).">
-        <return-value transfer-ownership="full">
-          <array c:type="guint8*">
-            <type name="uint8"/>
-          </array>
-        </return-value>
-      </method>
-      <method name="send"
-              c:identifier="gst_net_time_packet_send"
-              doc="Sends a #GstNetTimePacket over a socket. Essentially a thin wrapper around
-sendto(2) and gst_net_time_packet_serialize().
-MT safe.">
-        <return-value transfer-ownership="none">
-          <type name="int" c:type="gint"/>
-        </return-value>
-        <parameters>
-          <parameter name="fd" transfer-ownership="none">
-            <type name="int" c:type="gint"/>
-          </parameter>
-          <parameter name="addr" transfer-ownership="none">
-            <type name="any" c:type="any*"/>
-          </parameter>
-          <parameter name="len" transfer-ownership="none">
-            <type name="int32" c:type="socklen_t"/>
-          </parameter>
-        </parameters>
-      </method>
-    </record>
-    <class name="NetTimeProvider"
-           c:type="GstNetTimeProvider"
-           doc="Opaque #GstNetTimeProvider structure."
-           parent="Gst.Object"
-           glib:type-name="GstNetTimeProvider"
-           glib:get-type="gst_net_time_provider_get_type"
-           glib:type-struct="NetTimeProviderClass">
-      <constructor name="new"
-                   c:identifier="gst_net_time_provider_new"
-                   doc="to bind to all addresses
-Allows network clients to get the current time of @clock.">
-        <return-value transfer-ownership="full">
-          <type name="NetTimeProvider" c:type="GstNetTimeProvider*"/>
-        </return-value>
-        <parameters>
-          <parameter name="clock" transfer-ownership="none">
-            <type name="Gst.Clock" c:type="GstClock*"/>
-          </parameter>
-          <parameter name="address" transfer-ownership="none" doc="or NULL">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="port" transfer-ownership="none">
-            <type name="int" c:type="gint"/>
-          </parameter>
-        </parameters>
-      </constructor>
-      <property name="active" writable="1">
-        <type name="boolean" c:type="gboolean"/>
-      </property>
-      <property name="address" writable="1">
-        <type name="utf8" c:type="gchararray"/>
-      </property>
-      <property name="clock" writable="1">
-        <type name="Gst.Clock" c:type="GstClock"/>
-      </property>
-      <property name="port" writable="1">
-        <type name="int" c:type="gint"/>
-      </property>
-      <field name="parent">
-        <type name="Gst.Object" c:type="GstObject"/>
-      </field>
-      <field name="address">
-        <type name="utf8" c:type="gchar*"/>
-      </field>
-      <field name="port">
-        <type name="int" c:type="int"/>
-      </field>
-      <field name="sock">
-        <type name="int" c:type="int"/>
-      </field>
-      <field name="control_sock">
-        <array zero-terminated="0" c:type="int" fixed-size="2">
-          <type name="int"/>
-        </array>
-      </field>
-      <field name="thread">
-        <type name="GLib.Thread" c:type="GThread*"/>
-      </field>
-      <field name="clock">
-        <type name="Gst.Clock" c:type="GstClock*"/>
-      </field>
-      <union name="active" c:type="active">
-        <field name="_gst_reserved1" writable="1">
-          <type name="any" c:type="gpointer"/>
-        </field>
-        <field name="active" writable="1">
-          <type name="int" c:type="gint"/>
-        </field>
-      </union>
-      <field name="priv">
-        <type name="NetTimeProviderPrivate"
-              c:type="GstNetTimeProviderPrivate*"/>
-      </field>
-      <field name="_gst_reserved">
-        <array zero-terminated="0" c:type="gpointer" fixed-size="2">
-          <type name="any"/>
-        </array>
-      </field>
-    </class>
-    <record name="NetTimeProviderClass"
-            c:type="GstNetTimeProviderClass"
-            glib:is-gtype-struct-for="NetTimeProvider">
-      <field name="parent_class">
-        <type name="Gst.ObjectClass" c:type="GstObjectClass"/>
-      </field>
-    </record>
-    <record name="NetTimeProviderPrivate" c:type="GstNetTimeProviderPrivate">
-    </record>
-    <constant name="TIME_PACKET_SIZE" value="16">
-      <type name="int"/>
-    </constant>
-    <function name="time_packet_receive"
-              c:identifier="gst_net_time_packet_receive"
-              doc="Receives a #GstNetTimePacket over a socket. Handles interrupted system calls,
-but otherwise returns NULL on error. See recvfrom(2) for more information on
-how to interpret @sockaddr.
-MT safe. Caller owns return value (g_free to free).">
-      <return-value transfer-ownership="full">
-        <type name="NetTimePacket" c:type="GstNetTimePacket*"/>
-      </return-value>
-      <parameters>
-        <parameter name="fd" transfer-ownership="none">
-          <type name="int" c:type="gint"/>
-        </parameter>
-        <parameter name="addr" transfer-ownership="none">
-          <type name="any" c:type="any*"/>
-        </parameter>
-        <parameter name="len" direction="out" transfer-ownership="full">
-          <type name="int32" c:type="socklen_t*"/>
-        </parameter>
-      </parameters>
-    </function>
-  </namespace>
-</repository>
diff --git a/extra/gstreamer/net/ffi/ffi.factor b/extra/gstreamer/net/ffi/ffi.factor
deleted file mode 100644 (file)
index fbd5148..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-! Copyright (C) 2010 Anton Gorenko.
-! See http://factorcode.org/license.txt for BSD license.
-USING: alien alien.libraries combinators kernel system
-gobject-introspection glib.ffi gstreamer.ffi ;
-FROM: unix.types => socklen_t ;
-IN: gstreamer.net.ffi
-
-<<
-"gstreamer.net" {
-    { [ os winnt? ] [ drop ] }
-    { [ os macosx? ] [ drop ] }
-    { [ os unix? ] [ "libgstnet-0.10.so" cdecl add-library ] }
-} cond
->>
-
-REPLACE-C-TYPE: any gpointer
-
-GIR: vocab:gstreamer/net/GstNet-0.10.gir
-
diff --git a/extra/gstreamer/net/net.factor b/extra/gstreamer/net/net.factor
deleted file mode 100644 (file)
index b409685..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-! Copyright (C) 2010 Anton Gorenko.
-! See http://factorcode.org/license.txt for BSD license.
-USING: gstreamer.net.ffi ;
-IN: gstreamer.net
-
diff --git a/extra/gstreamer/netbuffer/GstNetbuffer-0.10.gir b/extra/gstreamer/netbuffer/GstNetbuffer-0.10.gir
deleted file mode 100644 (file)
index 4095f0d..0000000
+++ /dev/null
@@ -1,267 +0,0 @@
-<?xml version="1.0"?>
-<!-- This file was automatically generated from C sources - DO NOT EDIT!
-To affect the contents of this file, edit the original C definitions,
-and/or use gtk-doc annotations.  -->
-<repository version="1.0"
-            xmlns="http://www.gtk.org/introspection/core/1.0"
-            xmlns:c="http://www.gtk.org/introspection/c/1.0"
-            xmlns:glib="http://www.gtk.org/introspection/glib/1.0">
-  <include name="GLib" version="2.0"/>
-  <include name="GModule" version="2.0"/>
-  <include name="GObject" version="2.0"/>
-  <include name="Gst" version="0.10"/>
-  <include name="libxml2" version="2.0"/>
-  <package name="gstreamer-0.10"/>
-  <c:include name="gst/netbuffer/gstnetbuffer.h"/>
-  <namespace name="GstNetbuffer"
-             version="0.10"
-             shared-library="libgstnetbuffer-0.10.so.0"
-             c:prefix="Gst">
-    <record name="NetAddress"
-            c:type="GstNetAddress"
-            doc="An opaque network address as used in #GstNetBuffer.">
-      <field name="type" writable="1">
-        <type name="NetType" c:type="GstNetType"/>
-      </field>
-      <union name="address" c:type="address">
-        <field name="ip6" writable="1">
-          <array zero-terminated="0" c:type="guint8" fixed-size="16">
-            <type name="uint8"/>
-          </array>
-        </field>
-        <field name="ip4" writable="1">
-          <type name="uint32" c:type="guint32"/>
-        </field>
-      </union>
-      <field name="port" writable="1">
-        <type name="uint16" c:type="guint16"/>
-      </field>
-      <field name="_gst_reserved" writable="1">
-        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
-          <type name="any"/>
-        </array>
-      </field>
-    </record>
-    <record name="NetBuffer"
-            c:type="GstNetBuffer"
-            doc="buffer for use in network sources and sinks.
-It contains the source or destination address of the buffer.">
-      <field name="buffer" writable="1">
-        <type name="Gst.Buffer" c:type="GstBuffer"/>
-      </field>
-      <field name="from" writable="1">
-        <type name="NetAddress" c:type="GstNetAddress"/>
-      </field>
-      <field name="to" writable="1">
-        <type name="NetAddress" c:type="GstNetAddress"/>
-      </field>
-      <field name="_gst_reserved" writable="1">
-        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
-          <type name="any"/>
-        </array>
-      </field>
-    </record>
-    <record name="NetBufferClass" c:type="GstNetBufferClass">
-      <field name="buffer_class" writable="1">
-        <type name="Gst.BufferClass" c:type="GstBufferClass"/>
-      </field>
-      <field name="_gst_reserved" writable="1">
-        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
-          <type name="any"/>
-        </array>
-      </field>
-    </record>
-    <enumeration name="NetType"
-                 doc="The Address type used in #GstNetAddress."
-                 c:type="GstNetType">
-      <member name="unknown" value="0" c:identifier="GST_NET_TYPE_UNKNOWN"/>
-      <member name="ip4" value="1" c:identifier="GST_NET_TYPE_IP4"/>
-      <member name="ip6" value="2" c:identifier="GST_NET_TYPE_IP6"/>
-    </enumeration>
-    <function name="netaddress_equal"
-              c:identifier="gst_netaddress_equal"
-              doc="Compare two #GstNetAddress structures"
-              version="0.10.18">
-      <return-value transfer-ownership="none">
-        <type name="boolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="naddr1" transfer-ownership="none">
-          <type name="NetAddress" c:type="GstNetAddress*"/>
-        </parameter>
-        <parameter name="naddr2" transfer-ownership="none">
-          <type name="NetAddress" c:type="GstNetAddress*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="netaddress_get_address_bytes"
-              c:identifier="gst_netaddress_get_address_bytes"
-              doc="Get just the address bytes stored in @naddr into @address.
-Note that @port is expressed in network byte order, use g_ntohs() to convert
-it to host order. IP4 addresses are also stored in network byte order."
-              version="0.10.22">
-      <return-value transfer-ownership="none">
-        <type name="int" c:type="gint"/>
-      </return-value>
-      <parameters>
-        <parameter name="naddr" transfer-ownership="none">
-          <type name="NetAddress" c:type="GstNetAddress*"/>
-        </parameter>
-        <parameter name="address" transfer-ownership="none">
-          <type name="uint8" c:type="guint8"/>
-        </parameter>
-        <parameter name="port" direction="out" transfer-ownership="full">
-          <type name="uint16" c:type="guint16*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="netaddress_get_ip4_address"
-              c:identifier="gst_netaddress_get_ip4_address"
-              doc="Get the IPv4 address stored in @naddr into @address. This function requires
-that the address type of @naddr is of type #GST_NET_TYPE_IP4.
-Note that @port and @address are expressed in network byte order, use
-g_ntohs() and g_ntohl() to convert them to host order.">
-      <return-value transfer-ownership="none">
-        <type name="boolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="naddr" transfer-ownership="none">
-          <type name="NetAddress" c:type="GstNetAddress*"/>
-        </parameter>
-        <parameter name="address" direction="out" transfer-ownership="full">
-          <type name="uint32" c:type="guint32*"/>
-        </parameter>
-        <parameter name="port" direction="out" transfer-ownership="full">
-          <type name="uint16" c:type="guint16*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="netaddress_get_ip6_address"
-              c:identifier="gst_netaddress_get_ip6_address"
-              doc="Get the IPv6 address stored in @naddr into @address.
-If @naddr is of type GST_NET_TYPE_IP4, the transitional IP6 address is
-returned.
-Note that @port is expressed in network byte order, use g_ntohs() to convert
-it to host order.">
-      <return-value transfer-ownership="none">
-        <type name="boolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="naddr" transfer-ownership="none">
-          <type name="NetAddress" c:type="GstNetAddress*"/>
-        </parameter>
-        <parameter name="address" transfer-ownership="none">
-          <type name="uint8" c:type="guint8"/>
-        </parameter>
-        <parameter name="port" direction="out" transfer-ownership="full">
-          <type name="uint16" c:type="guint16*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="netaddress_get_net_type"
-              c:identifier="gst_netaddress_get_net_type"
-              doc="Get the type of address stored in @naddr.">
-      <return-value transfer-ownership="full">
-        <type name="NetType" c:type="GstNetType"/>
-      </return-value>
-      <parameters>
-        <parameter name="naddr" transfer-ownership="none">
-          <type name="NetAddress" c:type="GstNetAddress*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="netaddress_set_address_bytes"
-              c:identifier="gst_netaddress_set_address_bytes"
-              doc="Set just the address bytes stored in @naddr into @address.
-Note that @port must be expressed in network byte order, use g_htons() to
-convert it to network byte order order. IP4 address bytes must also be
-stored in network byte order."
-              version="0.10.22">
-      <return-value transfer-ownership="none">
-        <type name="int" c:type="gint"/>
-      </return-value>
-      <parameters>
-        <parameter name="naddr" transfer-ownership="none">
-          <type name="NetAddress" c:type="GstNetAddress*"/>
-        </parameter>
-        <parameter name="type" transfer-ownership="none">
-          <type name="NetType" c:type="GstNetType"/>
-        </parameter>
-        <parameter name="address" transfer-ownership="none">
-          <type name="uint8" c:type="guint8"/>
-        </parameter>
-        <parameter name="port" transfer-ownership="none">
-          <type name="uint16" c:type="guint16"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="netaddress_set_ip4_address"
-              c:identifier="gst_netaddress_set_ip4_address"
-              doc="Set @naddr with the IPv4 @address and @port pair.
-Note that @port and @address must be expressed in network byte order,
-use g_htons() and g_htonl() to convert them to network byte order.">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="naddr" transfer-ownership="none">
-          <type name="NetAddress" c:type="GstNetAddress*"/>
-        </parameter>
-        <parameter name="address" transfer-ownership="none">
-          <type name="uint32" c:type="guint32"/>
-        </parameter>
-        <parameter name="port" transfer-ownership="none">
-          <type name="uint16" c:type="guint16"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="netaddress_set_ip6_address"
-              c:identifier="gst_netaddress_set_ip6_address"
-              doc="Set @naddr with the IPv6 @address and @port pair.
-Note that @port must be expressed in network byte order, use g_htons() to convert
-it to network byte order.">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="naddr" transfer-ownership="none">
-          <type name="NetAddress" c:type="GstNetAddress*"/>
-        </parameter>
-        <parameter name="address" transfer-ownership="none">
-          <type name="uint8" c:type="guint8"/>
-        </parameter>
-        <parameter name="port" transfer-ownership="none">
-          <type name="uint16" c:type="guint16"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="netaddress_to_string"
-              c:identifier="gst_netaddress_to_string"
-              doc="Copies a string representation of @naddr into @dest. Up to @len bytes are
-copied.
-enough"
-              version="0.10.24">
-      <return-value transfer-ownership="none">
-        <type name="int" c:type="gint"/>
-      </return-value>
-      <parameters>
-        <parameter name="naddr" transfer-ownership="none">
-          <type name="NetAddress" c:type="GstNetAddress*"/>
-        </parameter>
-        <parameter name="dest" transfer-ownership="full">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-        <parameter name="len" transfer-ownership="none">
-          <type name="ulong" c:type="gulong"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="new"
-              c:identifier="gst_netbuffer_new"
-              doc="Create a new network buffer.">
-      <return-value transfer-ownership="full">
-        <type name="NetBuffer" c:type="GstNetBuffer*"/>
-      </return-value>
-    </function>
-  </namespace>
-</repository>
diff --git a/extra/gstreamer/netbuffer/ffi/ffi.factor b/extra/gstreamer/netbuffer/ffi/ffi.factor
deleted file mode 100644 (file)
index c291a8b..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-! Copyright (C) 2010 Anton Gorenko.
-! See http://factorcode.org/license.txt for BSD license.
-USING: alien alien.libraries combinators kernel system
-gobject-introspection glib.ffi ;
-IN: gstreamer.netbuffer.ffi
-
-<<
-"gstreamer.netbuffer" {
-    { [ os winnt? ] [ drop ] }
-    { [ os macosx? ] [ drop ] }
-    { [ os unix? ] [ "libgstnetbuffer-0.10.so" cdecl add-library ] }
-} cond
->>
-
-GIR: vocab:gstreamer/netbuffer/GstNetbuffer-0.10.gir
-
diff --git a/extra/gstreamer/netbuffer/netbuffer.factor b/extra/gstreamer/netbuffer/netbuffer.factor
deleted file mode 100644 (file)
index 7273c3a..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-! Copyright (C) 2010 Anton Gorenko.
-! See http://factorcode.org/license.txt for BSD license.
-USING: gstreamer.netbuffer.ffi ;
-IN: gstreamer.netbuffer
-
diff --git a/extra/gstreamer/pbutils/GstPbutils-0.10.gir b/extra/gstreamer/pbutils/GstPbutils-0.10.gir
deleted file mode 100644 (file)
index c9748b3..0000000
+++ /dev/null
@@ -1,665 +0,0 @@
-<?xml version="1.0"?>
-<!-- This file was automatically generated from C sources - DO NOT EDIT!
-To affect the contents of this file, edit the original C definitions,
-and/or use gtk-doc annotations.  -->
-<repository version="1.0"
-            xmlns="http://www.gtk.org/introspection/core/1.0"
-            xmlns:c="http://www.gtk.org/introspection/c/1.0"
-            xmlns:glib="http://www.gtk.org/introspection/glib/1.0">
-  <include name="GLib" version="2.0"/>
-  <include name="GModule" version="2.0"/>
-  <include name="GObject" version="2.0"/>
-  <include name="Gst" version="0.10"/>
-  <include name="libxml2" version="2.0"/>
-  <package name="gstreamer-0.10"/>
-  <c:include name="gst/pbutils/descriptions.h"/>
-  <c:include name="gst/pbutils/install-plugins.h"/>
-  <c:include name="gst/pbutils/missing-plugins.h"/>
-  <c:include name="gst/pbutils/pbutils-enumtypes.h"/>
-  <c:include name="gst/pbutils/pbutils.h"/>
-  <namespace name="GstPbutils"
-             version="0.10"
-             shared-library="libgstpbutils-0.10.so.0"
-             c:prefix="Gst">
-    <record name="InstallPluginsContext"
-            c:type="GstInstallPluginsContext"
-            doc="Opaque context structure for the plugin installation. Use the provided
-API to set details on it."
-            version="0.10.12"
-            glib:type-name="GstInstallPluginsContext"
-            glib:get-type="gst_install_plugins_context_get_type">
-      <constructor name="new"
-                   c:identifier="gst_install_plugins_context_new"
-                   doc="Creates a new #GstInstallPluginsContext.
-gst_install_plugins_context_free() when no longer needed"
-                   version="0.10.12">
-        <return-value transfer-ownership="full">
-          <type name="InstallPluginsContext"
-                c:type="GstInstallPluginsContext*"/>
-        </return-value>
-      </constructor>
-      <method name="free"
-              c:identifier="gst_install_plugins_context_free"
-              doc="Frees a #GstInstallPluginsContext."
-              version="0.10.12">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </method>
-      <method name="set_xid"
-              c:identifier="gst_install_plugins_context_set_xid"
-              doc="This function is for X11-based applications (such as most Gtk/Qt
-applications on linux/unix) only. You can use it to tell the external
-installer the XID of your main application window. That way the installer
-can make its own window transient to your application window during the
-installation.
-If set, the XID will be passed to the installer via a --transient-for=XID
-command line option.
-Gtk+/Gnome application should be able to obtain the XID of the top-level
-window like this:
-&lt;programlisting&gt;
-##include &amp;lt;gtk/gtk.h&amp;gt;
-##ifdef GDK_WINDOWING_X11
-##include &amp;lt;gdk/gdkx.h&amp;gt;
-##endif
-...
-##ifdef GDK_WINDOWING_X11
-xid = GDK_WINDOW_XWINDOW (GTK_WIDGET (application_window)-&amp;gt;window);
-##endif
-...
-&lt;/programlisting&gt;"
-              version="0.10.12">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="xid"
-                     transfer-ownership="none"
-                     doc="of the top-level application">
-            <type name="uint" c:type="guint"/>
-          </parameter>
-        </parameters>
-      </method>
-    </record>
-    <callback name="InstallPluginsResultFunc"
-              c:type="GstInstallPluginsResultFunc"
-              doc="The prototype of the callback function that will be called once the
-external plugin installer program has returned. You only need to provide
-a callback function if you are using the asynchronous interface."
-              version="0.10.12">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="result" transfer-ownership="none">
-          <type name="InstallPluginsReturn" c:type="GstInstallPluginsReturn"/>
-        </parameter>
-        <parameter name="user_data" transfer-ownership="none" closure="1">
-          <type name="any" c:type="gpointer"/>
-        </parameter>
-      </parameters>
-    </callback>
-    <enumeration name="InstallPluginsReturn"
-                 doc="installed
-any of the requested plugins could be found. Only return this if nothing
-has been installed. Return #GST_INSTALL_PLUGINS_PARTIAL_SUCCESS if
-some (but not all) of the requested plugins could be installed.
-this happens, the  user has already seen an error message and another
-one should not be displayed
-(ie. death by signal)
-be installed, but not all
-indicate that everything went fine so far and the provided callback
-will be called with the result of the installation later
-occured when trying to start the installer
-actual installer is not installed
-installation is still in progress, try again later
-Result codes returned by gst_install_plugins_async() and
-gst_install_plugins_sync(), and also the result code passed to the
-#GstInstallPluginsResultFunc specified with gst_install_plugin_async().
-These codes indicate success or failure of starting an external installer
-program and to what extent the requested plugins could be installed."
-                 version="0.10.12"
-                 glib:type-name="GstInstallPluginsReturn"
-                 glib:get-type="gst_install_plugins_return_get_type"
-                 c:type="GstInstallPluginsReturn">
-      <member name="success"
-              value="0"
-              c:identifier="GST_INSTALL_PLUGINS_SUCCESS"
-              glib:nick="success"/>
-      <member name="not_found"
-              value="1"
-              c:identifier="GST_INSTALL_PLUGINS_NOT_FOUND"
-              glib:nick="not-found"/>
-      <member name="error"
-              value="2"
-              c:identifier="GST_INSTALL_PLUGINS_ERROR"
-              glib:nick="error"/>
-      <member name="partial_success"
-              value="3"
-              c:identifier="GST_INSTALL_PLUGINS_PARTIAL_SUCCESS"
-              glib:nick="partial-success"/>
-      <member name="user_abort"
-              value="4"
-              c:identifier="GST_INSTALL_PLUGINS_USER_ABORT"
-              glib:nick="user-abort"/>
-      <member name="crashed"
-              value="100"
-              c:identifier="GST_INSTALL_PLUGINS_CRASHED"
-              glib:nick="crashed"/>
-      <member name="invalid"
-              value="101"
-              c:identifier="GST_INSTALL_PLUGINS_INVALID"
-              glib:nick="invalid"/>
-      <member name="started_ok"
-              value="200"
-              c:identifier="GST_INSTALL_PLUGINS_STARTED_OK"
-              glib:nick="started-ok"/>
-      <member name="internal_failure"
-              value="201"
-              c:identifier="GST_INSTALL_PLUGINS_INTERNAL_FAILURE"
-              glib:nick="internal-failure"/>
-      <member name="helper_missing"
-              value="202"
-              c:identifier="GST_INSTALL_PLUGINS_HELPER_MISSING"
-              glib:nick="helper-missing"/>
-      <member name="install_in_progress"
-              value="203"
-              c:identifier="GST_INSTALL_PLUGINS_INSTALL_IN_PROGRESS"
-              glib:nick="install-in-progress"/>
-    </enumeration>
-    <function name="install_plugins_async"
-              c:identifier="gst_install_plugins_async"
-              doc="Requests plugin installation without blocking. Once the plugins have been
-installed or installation has failed, @func will be called with the result
-of the installation and your provided @user_data pointer.
-This function requires a running GLib/Gtk main loop. If you are not
-running a GLib/Gtk main loop, make sure to regularly call
-g_main_context_iteration(NULL,FALSE).
-The installer strings that make up @detail are typically obtained by
-calling gst_missing_plugin_message_get_installer_detail() on missing-plugin
-messages that have been caught on a pipeline&apos;s bus or created by the
-application via the provided API, such as gst_missing_element_message_new().
-It is possible to request the installation of multiple missing plugins in
-one go (as might be required if there is a demuxer for a certain format
-installed but no suitable video decoder and no suitable audio decoder)."
-              version="0.10.12">
-      <return-value transfer-ownership="full">
-        <type name="InstallPluginsReturn" c:type="GstInstallPluginsReturn"/>
-      </return-value>
-      <parameters>
-        <parameter name="details" transfer-ownership="none">
-          <array c:type="gchar**">
-            <type name="utf8"/>
-          </array>
-        </parameter>
-        <parameter name="ctx" transfer-ownership="none">
-          <type name="InstallPluginsContext"
-                c:type="GstInstallPluginsContext*"/>
-        </parameter>
-        <parameter name="func"
-                   transfer-ownership="none"
-                   scope="call"
-                   closure="3">
-          <type name="InstallPluginsResultFunc"
-                c:type="GstInstallPluginsResultFunc"/>
-        </parameter>
-        <parameter name="user_data" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="install_plugins_installation_in_progress"
-              c:identifier="gst_install_plugins_installation_in_progress"
-              doc="Checks whether plugin installation (initiated by this application only)
-is currently in progress."
-              version="0.10.12">
-      <return-value transfer-ownership="none">
-        <type name="boolean" c:type="gboolean"/>
-      </return-value>
-    </function>
-    <function name="install_plugins_return_get_name"
-              c:identifier="gst_install_plugins_return_get_name"
-              doc="Convenience function to return the descriptive string associated
-with a status code.  This function returns English strings and
-should not be used for user messages. It is here only to assist
-in debugging."
-              version="0.10.12">
-      <return-value transfer-ownership="none">
-        <type name="utf8" c:type="gchar*"/>
-      </return-value>
-      <parameters>
-        <parameter name="ret" transfer-ownership="none">
-          <type name="InstallPluginsReturn" c:type="GstInstallPluginsReturn"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="install_plugins_supported"
-              c:identifier="gst_install_plugins_supported"
-              doc="Checks whether plugin installation is likely to be supported by the
-current environment. This currently only checks whether the helper script
-that is to be provided by the distribution or operating system vendor
-exists."
-              version="0.10.15">
-      <return-value transfer-ownership="none">
-        <type name="boolean" c:type="gboolean"/>
-      </return-value>
-    </function>
-    <function name="install_plugins_sync"
-              c:identifier="gst_install_plugins_sync"
-              doc="Requests plugin installation and block until the plugins have been
-installed or installation has failed.
-This function should almost never be used, it only exists for cases where
-a non-GLib main loop is running and the user wants to run it in a separate
-thread and marshal the result back asynchronously into the main thread
-using the other non-GLib main loop. You should almost always use
-gst_install_plugins_async() instead of this function."
-              version="0.10.12">
-      <return-value transfer-ownership="full">
-        <type name="InstallPluginsReturn" c:type="GstInstallPluginsReturn"/>
-      </return-value>
-      <parameters>
-        <parameter name="details" transfer-ownership="none">
-          <array c:type="gchar**">
-            <type name="utf8"/>
-          </array>
-        </parameter>
-        <parameter name="ctx" transfer-ownership="none">
-          <type name="InstallPluginsContext"
-                c:type="GstInstallPluginsContext*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="is_missing_plugin_message"
-              c:identifier="gst_is_missing_plugin_message"
-              doc="Checks whether @msg is a missing plugins message.">
-      <return-value transfer-ownership="none">
-        <type name="boolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="msg" transfer-ownership="none">
-          <type name="Gst.Message" c:type="GstMessage*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="missing_decoder_installer_detail_new"
-              c:identifier="gst_missing_decoder_installer_detail_new"
-              doc="Returns an opaque string containing all the details about the missing
-element to be passed to an external installer called via
-gst_install_plugins_async() or gst_install_plugins_sync().
-This function is mainly for applications that call external plugin
-installation mechanisms using one of the two above-mentioned functions in
-the case where the application knows exactly what kind of plugin it is
-missing.
-with g_free() when not needed any longer."
-              version="0.10.15">
-      <return-value transfer-ownership="full">
-        <type name="utf8" c:type="gchar*"/>
-      </return-value>
-      <parameters>
-        <parameter name="decode_caps"
-                   transfer-ownership="none"
-                   doc="caps for which a decoder element is needed">
-          <type name="Gst.Caps" c:type="GstCaps*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="missing_decoder_message_new"
-              c:identifier="gst_missing_decoder_message_new"
-              doc="Creates a missing-plugin message for @element to notify the application
-that a decoder element for a particular set of (fixed) caps is missing.
-This function is mainly for use in plugins.">
-      <return-value transfer-ownership="full">
-        <type name="Gst.Message" c:type="GstMessage*"/>
-      </return-value>
-      <parameters>
-        <parameter name="element" transfer-ownership="none">
-          <type name="Gst.Element" c:type="GstElement*"/>
-        </parameter>
-        <parameter name="decode_caps"
-                   transfer-ownership="none"
-                   doc="caps for which a decoder element is needed">
-          <type name="Gst.Caps" c:type="GstCaps*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="missing_element_installer_detail_new"
-              c:identifier="gst_missing_element_installer_detail_new"
-              doc="e.g. &quot;videoscale&quot; or &quot;cdparanoiasrc&quot;
-Returns an opaque string containing all the details about the missing
-element to be passed to an external installer called via
-gst_install_plugins_async() or gst_install_plugins_sync().
-This function is mainly for applications that call external plugin
-installation mechanisms using one of the two above-mentioned functions in
-the case where the application knows exactly what kind of plugin it is
-missing.
-with g_free() when not needed any longer."
-              version="0.10.15">
-      <return-value transfer-ownership="full">
-        <type name="utf8" c:type="gchar*"/>
-      </return-value>
-      <parameters>
-        <parameter name="factory_name" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="missing_element_message_new"
-              c:identifier="gst_missing_element_message_new"
-              doc="e.g. &quot;videoscale&quot; or &quot;cdparanoiasrc&quot;
-Creates a missing-plugin message for @element to notify the application
-that a certain required element is missing. This function is mainly for
-use in plugins.">
-      <return-value transfer-ownership="full">
-        <type name="Gst.Message" c:type="GstMessage*"/>
-      </return-value>
-      <parameters>
-        <parameter name="element" transfer-ownership="none">
-          <type name="Gst.Element" c:type="GstElement*"/>
-        </parameter>
-        <parameter name="factory_name" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="missing_encoder_installer_detail_new"
-              c:identifier="gst_missing_encoder_installer_detail_new"
-              doc="Returns an opaque string containing all the details about the missing
-element to be passed to an external installer called via
-gst_install_plugins_async() or gst_install_plugins_sync().
-This function is mainly for applications that call external plugin
-installation mechanisms using one of the two above-mentioned functions in
-the case where the application knows exactly what kind of plugin it is
-missing.
-with g_free() when not needed any longer."
-              version="0.10.15">
-      <return-value transfer-ownership="full">
-        <type name="utf8" c:type="gchar*"/>
-      </return-value>
-      <parameters>
-        <parameter name="encode_caps"
-                   transfer-ownership="none"
-                   doc="caps for which an encoder element is needed">
-          <type name="Gst.Caps" c:type="GstCaps*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="missing_encoder_message_new"
-              c:identifier="gst_missing_encoder_message_new"
-              doc="Creates a missing-plugin message for @element to notify the application
-that an encoder element for a particular set of (fixed) caps is missing.
-This function is mainly for use in plugins.">
-      <return-value transfer-ownership="full">
-        <type name="Gst.Message" c:type="GstMessage*"/>
-      </return-value>
-      <parameters>
-        <parameter name="element" transfer-ownership="none">
-          <type name="Gst.Element" c:type="GstElement*"/>
-        </parameter>
-        <parameter name="encode_caps"
-                   transfer-ownership="none"
-                   doc="caps for which an encoder element is needed">
-          <type name="Gst.Caps" c:type="GstCaps*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="missing_plugin_message_get_description"
-              c:identifier="gst_missing_plugin_message_get_description"
-              doc="Returns a localised string describing the missing feature, for use in
-error dialogs and the like. Should never return NULL unless @msg is not
-a valid missing-plugin message.
-This function is mainly for applications that need a human-readable string
-describing a missing plugin, given a previously collected missing-plugin
-message
-string with g_free() when not needed any longer.">
-      <return-value transfer-ownership="full">
-        <type name="utf8" c:type="gchar*"/>
-      </return-value>
-      <parameters>
-        <parameter name="msg" transfer-ownership="none">
-          <type name="Gst.Message" c:type="GstMessage*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="missing_plugin_message_get_installer_detail"
-              c:identifier="gst_missing_plugin_message_get_installer_detail"
-              doc="Returns an opaque string containing all the details about the missing
-element to be passed to an external installer called via
-gst_install_plugins_async() or gst_install_plugins_sync().
-This function is mainly for applications that call external plugin
-installation mechanisms using one of the two above-mentioned functions.
-with g_free() when not needed any longer.">
-      <return-value transfer-ownership="full">
-        <type name="utf8" c:type="gchar*"/>
-      </return-value>
-      <parameters>
-        <parameter name="msg" transfer-ownership="none">
-          <type name="Gst.Message" c:type="GstMessage*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="missing_uri_sink_installer_detail_new"
-              c:identifier="gst_missing_uri_sink_installer_detail_new"
-              doc="e.g. &quot;http&quot; or &quot;mms&quot;
-Returns an opaque string containing all the details about the missing
-element to be passed to an external installer called via
-gst_install_plugins_async() or gst_install_plugins_sync().
-This function is mainly for applications that call external plugin
-installation mechanisms using one of the two above-mentioned functions in
-the case where the application knows exactly what kind of plugin it is
-missing.
-with g_free() when not needed any longer."
-              version="0.10.15">
-      <return-value transfer-ownership="full">
-        <type name="utf8" c:type="gchar*"/>
-      </return-value>
-      <parameters>
-        <parameter name="protocol" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="missing_uri_sink_message_new"
-              c:identifier="gst_missing_uri_sink_message_new"
-              doc="e.g. &quot;http&quot; or &quot;smb&quot;
-Creates a missing-plugin message for @element to notify the application
-that a sink element for a particular URI protocol is missing. This
-function is mainly for use in plugins.">
-      <return-value transfer-ownership="full">
-        <type name="Gst.Message" c:type="GstMessage*"/>
-      </return-value>
-      <parameters>
-        <parameter name="element" transfer-ownership="none">
-          <type name="Gst.Element" c:type="GstElement*"/>
-        </parameter>
-        <parameter name="protocol" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="missing_uri_source_installer_detail_new"
-              c:identifier="gst_missing_uri_source_installer_detail_new"
-              doc="e.g. &quot;http&quot; or &quot;mms&quot;
-Returns an opaque string containing all the details about the missing
-element to be passed to an external installer called via
-gst_install_plugins_async() or gst_install_plugins_sync().
-This function is mainly for applications that call external plugin
-installation mechanisms using one of the two above-mentioned functions in
-the case where the application knows exactly what kind of plugin it is
-missing.
-with g_free() when not needed any longer."
-              version="0.10.15">
-      <return-value transfer-ownership="full">
-        <type name="utf8" c:type="gchar*"/>
-      </return-value>
-      <parameters>
-        <parameter name="protocol" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="missing_uri_source_message_new"
-              c:identifier="gst_missing_uri_source_message_new"
-              doc="e.g. &quot;http&quot; or &quot;mms&quot;
-Creates a missing-plugin message for @element to notify the application
-that a source element for a particular URI protocol is missing. This
-function is mainly for use in plugins.">
-      <return-value transfer-ownership="full">
-        <type name="Gst.Message" c:type="GstMessage*"/>
-      </return-value>
-      <parameters>
-        <parameter name="element" transfer-ownership="none">
-          <type name="Gst.Element" c:type="GstElement*"/>
-        </parameter>
-        <parameter name="protocol" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="pb_utils_add_codec_description_to_tag_list"
-              c:identifier="gst_pb_utils_add_codec_description_to_tag_list"
-              doc="#GST_TAG_VIDEO_CODEC or #GST_TAG_CODEC
-Adds a codec tag describing the format specified by @caps to @taglist.">
-      <return-value transfer-ownership="none">
-        <type name="boolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="taglist" transfer-ownership="none">
-          <type name="Gst.TagList" c:type="GstTagList*"/>
-        </parameter>
-        <parameter name="codec_tag" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-        <parameter name="caps"
-                   transfer-ownership="none"
-                   doc="#GstCaps for which a codec tag should be added.">
-          <type name="Gst.Caps" c:type="GstCaps*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="pb_utils_get_codec_description"
-              c:identifier="gst_pb_utils_get_codec_description"
-              doc="Returns a localised (as far as this is possible) string describing the
-media format specified in @caps, for use in error dialogs or other messages
-to be seen by the user. Should never return NULL unless @caps is invalid.
-Also see the convenience function
-gst_pb_utils_add_codec_description_to_tag_list().
-string with g_free() when not needed any longer.">
-      <return-value transfer-ownership="full">
-        <type name="utf8" c:type="gchar*"/>
-      </return-value>
-      <parameters>
-        <parameter name="caps"
-                   transfer-ownership="none"
-                   doc="#GstCaps for which an format description is needed">
-          <type name="Gst.Caps" c:type="GstCaps*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="pb_utils_get_decoder_description"
-              c:identifier="gst_pb_utils_get_decoder_description"
-              doc="Returns a localised string describing an decoder for the format specified
-in @caps, for use in error dialogs or other messages to be seen by the user.
-Should never return NULL unless @factory_name or @caps are invalid.
-This function is mainly for internal use, applications would typically
-use gst_missing_plugin_message_get_description() to get a description of
-a missing feature from a missing-plugin message.
-string with g_free() when not needed any longer.">
-      <return-value transfer-ownership="full">
-        <type name="utf8" c:type="gchar*"/>
-      </return-value>
-      <parameters>
-        <parameter name="caps"
-                   transfer-ownership="none"
-                   doc="#GstCaps for which an decoder description is needed">
-          <type name="Gst.Caps" c:type="GstCaps*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="pb_utils_get_element_description"
-              c:identifier="gst_pb_utils_get_element_description"
-              doc="Returns a localised string describing the given element, for use in
-error dialogs or other messages to be seen by the user. Should never
-return NULL unless @factory_name is invalid.
-This function is mainly for internal use, applications would typically
-use gst_missing_plugin_message_get_description() to get a description of
-a missing feature from a missing-plugin message.
-string with g_free() when not needed any longer.">
-      <return-value transfer-ownership="full">
-        <type name="utf8" c:type="gchar*"/>
-      </return-value>
-      <parameters>
-        <parameter name="factory_name" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="pb_utils_get_encoder_description"
-              c:identifier="gst_pb_utils_get_encoder_description"
-              doc="Returns a localised string describing an encoder for the format specified
-in @caps, for use in error dialogs or other messages to be seen by the user.
-Should never return NULL unless @factory_name or @caps are invalid.
-This function is mainly for internal use, applications would typically
-use gst_missing_plugin_message_get_description() to get a description of
-a missing feature from a missing-plugin message.
-string with g_free() when not needed any longer.">
-      <return-value transfer-ownership="full">
-        <type name="utf8" c:type="gchar*"/>
-      </return-value>
-      <parameters>
-        <parameter name="caps"
-                   transfer-ownership="none"
-                   doc="#GstCaps for which an encoder description is needed">
-          <type name="Gst.Caps" c:type="GstCaps*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="pb_utils_get_sink_description"
-              c:identifier="gst_pb_utils_get_sink_description"
-              doc="Returns a localised string describing a sink element handling the protocol
-specified in @protocol, for use in error dialogs or other messages to be
-seen by the user. Should never return NULL unless @protocol is invalid.
-This function is mainly for internal use, applications would typically
-use gst_missing_plugin_message_get_description() to get a description of
-a missing feature from a missing-plugin message.
-string with g_free() when not needed any longer.">
-      <return-value transfer-ownership="full">
-        <type name="utf8" c:type="gchar*"/>
-      </return-value>
-      <parameters>
-        <parameter name="protocol" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="pb_utils_get_source_description"
-              c:identifier="gst_pb_utils_get_source_description"
-              doc="Returns a localised string describing a source element handling the protocol
-specified in @protocol, for use in error dialogs or other messages to be
-seen by the user. Should never return NULL unless @protocol is invalid.
-This function is mainly for internal use, applications would typically
-use gst_missing_plugin_message_get_description() to get a description of
-a missing feature from a missing-plugin message.
-string with g_free() when not needed any longer.">
-      <return-value transfer-ownership="full">
-        <type name="utf8" c:type="gchar*"/>
-      </return-value>
-      <parameters>
-        <parameter name="protocol" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="pb_utils_init"
-              c:identifier="gst_pb_utils_init"
-              doc="Initialises the base utils support library. This function is not
-thread-safe. Applications should call it after calling gst_init(),
-plugins should call it from their plugin_init function.
-This function may be called multiple times. It will do nothing if the
-library has already been initialised."
-              version="0.10.12">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-    </function>
-  </namespace>
-</repository>
diff --git a/extra/gstreamer/pbutils/ffi/ffi.factor b/extra/gstreamer/pbutils/ffi/ffi.factor
deleted file mode 100644 (file)
index f494c51..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-! Copyright (C) 2010 Anton Gorenko.
-! See http://factorcode.org/license.txt for BSD license.
-USING: alien alien.libraries combinators kernel system
-gobject-introspection glib.ffi gstreamer.ffi ;
-IN: gstreamer.pbutils.ffi
-
-<<
-"gstreamer.pbutils" {
-    { [ os winnt? ] [ drop ] }
-    { [ os macosx? ] [ drop ] }
-    { [ os unix? ] [ "libgstpbutils-0.10.so" cdecl add-library ] }
-} cond
->>
-
-GIR: vocab:gstreamer/pbutils/GstPbutils-0.10.gir
-
diff --git a/extra/gstreamer/pbutils/pbutils.factor b/extra/gstreamer/pbutils/pbutils.factor
deleted file mode 100644 (file)
index 9010553..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-! Copyright (C) 2010 Anton Gorenko.
-! See http://factorcode.org/license.txt for BSD license.
-USING: gstreamer.pbutils.ffi ;
-IN: gstreamer.pbutils
-
diff --git a/extra/gstreamer/riff/GstRiff-0.10.gir b/extra/gstreamer/riff/GstRiff-0.10.gir
deleted file mode 100644 (file)
index d3c7519..0000000
+++ /dev/null
@@ -1,983 +0,0 @@
-<?xml version="1.0"?>
-<!-- This file was automatically generated from C sources - DO NOT EDIT!
-To affect the contents of this file, edit the original C definitions,
-and/or use gtk-doc annotations.  -->
-<repository version="1.0"
-            xmlns="http://www.gtk.org/introspection/core/1.0"
-            xmlns:c="http://www.gtk.org/introspection/c/1.0"
-            xmlns:glib="http://www.gtk.org/introspection/glib/1.0">
-  <include name="GLib" version="2.0"/>
-  <include name="GModule" version="2.0"/>
-  <include name="GObject" version="2.0"/>
-  <include name="Gst" version="0.10"/>
-  <include name="GstAudio" version="0.10"/>
-  <include name="GstBase" version="0.10"/>
-  <include name="GstInterfaces" version="0.10"/>
-  <include name="GstTag" version="0.10"/>
-  <include name="libxml2" version="2.0"/>
-  <package name="gstreamer-0.10"/>
-  <package name="gstreamer-audio-0.10"/>
-  <package name="gstreamer-interfaces-0.10"/>
-  <package name="gstreamer-tag-0.10"/>
-  <c:include name="gst/riff/riff-ids.h"/>
-  <c:include name="gst/riff/riff-media.h"/>
-  <c:include name="gst/riff/riff-read.h"/>
-  <namespace name="GstRiff"
-             version="0.10"
-             shared-library="libgstriff-0.10.so.0"
-             c:prefix="Gst">
-    <constant name="IBM_FORMAT_ADPCM" value="259">
-      <type name="int"/>
-    </constant>
-    <constant name="IBM_FORMAT_ALAW" value="258">
-      <type name="int"/>
-    </constant>
-    <constant name="IBM_FORMAT_MULAW" value="257">
-      <type name="int"/>
-    </constant>
-    <constant name="IF_KEYFRAME" value="16">
-      <type name="int"/>
-    </constant>
-    <constant name="IF_LIST" value="1">
-      <type name="int"/>
-    </constant>
-    <constant name="IF_NO_TIME" value="256">
-      <type name="int"/>
-    </constant>
-    <constant name="STRH_DISABLED" value="1">
-      <type name="int"/>
-    </constant>
-    <constant name="STRH_VIDEOPALCHANGES" value="65536">
-      <type name="int"/>
-    </constant>
-    <constant name="WAVE_FORMAT_A52" value="8192">
-      <type name="int"/>
-    </constant>
-    <constant name="WAVE_FORMAT_AAC" value="255">
-      <type name="int"/>
-    </constant>
-    <constant name="WAVE_FORMAT_AAC_AC" value="16707">
-      <type name="int"/>
-    </constant>
-    <constant name="WAVE_FORMAT_AAC_pm" value="28781">
-      <type name="int"/>
-    </constant>
-    <constant name="WAVE_FORMAT_ADPCM" value="2">
-      <type name="int"/>
-    </constant>
-    <constant name="WAVE_FORMAT_ADPCM_IMA_DK3" value="98">
-      <type name="int"/>
-    </constant>
-    <constant name="WAVE_FORMAT_ADPCM_IMA_DK4" value="97">
-      <type name="int"/>
-    </constant>
-    <constant name="WAVE_FORMAT_ADPCM_IMA_WAV" value="105">
-      <type name="int"/>
-    </constant>
-    <constant name="WAVE_FORMAT_ALAW" value="6">
-      <type name="int"/>
-    </constant>
-    <constant name="WAVE_FORMAT_AMR_NB" value="87">
-      <type name="int"/>
-    </constant>
-    <constant name="WAVE_FORMAT_AMR_WB" value="88">
-      <type name="int"/>
-    </constant>
-    <constant name="WAVE_FORMAT_APTX" value="37">
-      <type name="int"/>
-    </constant>
-    <constant name="WAVE_FORMAT_AUDIOFILE_AF10" value="38">
-      <type name="int"/>
-    </constant>
-    <constant name="WAVE_FORMAT_AUDIOFILE_AF36" value="36">
-      <type name="int"/>
-    </constant>
-    <constant name="WAVE_FORMAT_BTV_DIGITAL" value="1024">
-      <type name="int"/>
-    </constant>
-    <constant name="WAVE_FORMAT_CANOPUS_ATRAC" value="99">
-      <type name="int"/>
-    </constant>
-    <constant name="WAVE_FORMAT_CIRRUS" value="96">
-      <type name="int"/>
-    </constant>
-    <constant name="WAVE_FORMAT_CONTROL_RES_CR10" value="55">
-      <type name="int"/>
-    </constant>
-    <constant name="WAVE_FORMAT_CONTROL_RES_VQLPC" value="52">
-      <type name="int"/>
-    </constant>
-    <constant name="WAVE_FORMAT_CREATIVE_ADPCM" value="512">
-      <type name="int"/>
-    </constant>
-    <constant name="WAVE_FORMAT_CREATIVE_FASTSPEECH10" value="515">
-      <type name="int"/>
-    </constant>
-    <constant name="WAVE_FORMAT_CREATIVE_FASTSPEECH8" value="514">
-      <type name="int"/>
-    </constant>
-    <constant name="WAVE_FORMAT_CS2" value="608">
-      <type name="int"/>
-    </constant>
-    <constant name="WAVE_FORMAT_CS_IMAADPCM" value="57">
-      <type name="int"/>
-    </constant>
-    <constant name="WAVE_FORMAT_CU_CODEC" value="25">
-      <type name="int"/>
-    </constant>
-    <constant name="WAVE_FORMAT_DF_G726" value="133">
-      <type name="int"/>
-    </constant>
-    <constant name="WAVE_FORMAT_DF_GSM610" value="134">
-      <type name="int"/>
-    </constant>
-    <constant name="WAVE_FORMAT_DIALOGIC_OKI_ADPCM" value="23">
-      <type name="int"/>
-    </constant>
-    <constant name="WAVE_FORMAT_DIGIADPCM" value="54">
-      <type name="int"/>
-    </constant>
-    <constant name="WAVE_FORMAT_DIGIFIX" value="22">
-      <type name="int"/>
-    </constant>
-    <constant name="WAVE_FORMAT_DIGIREAL" value="53">
-      <type name="int"/>
-    </constant>
-    <constant name="WAVE_FORMAT_DIGISTD" value="21">
-      <type name="int"/>
-    </constant>
-    <constant name="WAVE_FORMAT_DIGITAL_G723" value="291">
-      <type name="int"/>
-    </constant>
-    <constant name="WAVE_FORMAT_DOLBY_AC2" value="48">
-      <type name="int"/>
-    </constant>
-    <constant name="WAVE_FORMAT_DOLBY_AC3_SPDIF" value="146">
-      <type name="int"/>
-    </constant>
-    <constant name="WAVE_FORMAT_DSAT_DISPLAY" value="103">
-      <type name="int"/>
-    </constant>
-    <constant name="WAVE_FORMAT_DSP_TRUESPEECH" value="34">
-      <type name="int"/>
-    </constant>
-    <constant name="WAVE_FORMAT_DTS" value="8193">
-      <type name="int"/>
-    </constant>
-    <constant name="WAVE_FORMAT_DVI_ADPCM" value="17">
-      <type name="int"/>
-    </constant>
-    <constant name="WAVE_FORMAT_ECHOSC1" value="35">
-      <type name="int"/>
-    </constant>
-    <constant name="WAVE_FORMAT_ECHOSC3" value="58">
-      <type name="int"/>
-    </constant>
-    <constant name="WAVE_FORMAT_ESPCM" value="97">
-      <type name="int"/>
-    </constant>
-    <constant name="WAVE_FORMAT_EXTENSIBLE" value="65534">
-      <type name="int"/>
-    </constant>
-    <constant name="WAVE_FORMAT_FLAC" value="61868">
-      <type name="int"/>
-    </constant>
-    <constant name="WAVE_FORMAT_FM_TOWNS_SND" value="768">
-      <type name="int"/>
-    </constant>
-    <constant name="WAVE_FORMAT_G722_ADPCM" value="101">
-      <type name="int"/>
-    </constant>
-    <constant name="WAVE_FORMAT_G723_ADPCM" value="20">
-      <type name="int"/>
-    </constant>
-    <constant name="WAVE_FORMAT_G726ADPCM" value="320">
-      <type name="int"/>
-    </constant>
-    <constant name="WAVE_FORMAT_G726_ADPCM" value="100">
-      <type name="int"/>
-    </constant>
-    <constant name="WAVE_FORMAT_G728_CELP" value="65">
-      <type name="int"/>
-    </constant>
-    <constant name="WAVE_FORMAT_G729A" value="131">
-      <type name="int"/>
-    </constant>
-    <constant name="WAVE_FORMAT_GSM610" value="49">
-      <type name="int"/>
-    </constant>
-    <constant name="WAVE_FORMAT_GSM_AMR_CBR" value="31265">
-      <type name="int"/>
-    </constant>
-    <constant name="WAVE_FORMAT_GSM_AMR_VBR" value="31266">
-      <type name="int"/>
-    </constant>
-    <constant name="WAVE_FORMAT_IBM_CVSD" value="5">
-      <type name="int"/>
-    </constant>
-    <constant name="WAVE_FORMAT_IEEE_FLOAT" value="3">
-      <type name="int"/>
-    </constant>
-    <constant name="WAVE_FORMAT_ILINK_VC" value="560">
-      <type name="int"/>
-    </constant>
-    <constant name="WAVE_FORMAT_IMC" value="1025">
-      <type name="int"/>
-    </constant>
-    <constant name="WAVE_FORMAT_IPI_HSX" value="592">
-      <type name="int"/>
-    </constant>
-    <constant name="WAVE_FORMAT_IPI_RPELP" value="593">
-      <type name="int"/>
-    </constant>
-    <constant name="WAVE_FORMAT_ISIAUDIO" value="136">
-      <type name="int"/>
-    </constant>
-    <constant name="WAVE_FORMAT_ITU_G721_ADPCM" value="64">
-      <type name="int"/>
-    </constant>
-    <constant name="WAVE_FORMAT_LH_CODEC" value="4352">
-      <type name="int"/>
-    </constant>
-    <constant name="WAVE_FORMAT_LRC" value="40">
-      <type name="int"/>
-    </constant>
-    <constant name="WAVE_FORMAT_LUCENT_G723" value="89">
-      <type name="int"/>
-    </constant>
-    <constant name="WAVE_FORMAT_MALDEN_PHONYTALK" value="160">
-      <type name="int"/>
-    </constant>
-    <constant name="WAVE_FORMAT_MEDIASONIC_G723" value="147">
-      <type name="int"/>
-    </constant>
-    <constant name="WAVE_FORMAT_MEDIASPACE_ADPCM" value="18">
-      <type name="int"/>
-    </constant>
-    <constant name="WAVE_FORMAT_MEDIAVISION_ADPCM" value="24">
-      <type name="int"/>
-    </constant>
-    <constant name="WAVE_FORMAT_MPEGL12" value="80">
-      <type name="int"/>
-    </constant>
-    <constant name="WAVE_FORMAT_MPEGL3" value="85">
-      <type name="int"/>
-    </constant>
-    <constant name="WAVE_FORMAT_MSG723" value="66">
-      <type name="int"/>
-    </constant>
-    <constant name="WAVE_FORMAT_MSN" value="50">
-      <type name="int"/>
-    </constant>
-    <constant name="WAVE_FORMAT_MSRT24" value="130">
-      <type name="int"/>
-    </constant>
-    <constant name="WAVE_FORMAT_MULAW" value="7">
-      <type name="int"/>
-    </constant>
-    <constant name="WAVE_FORMAT_MVI_MVI2" value="132">
-      <type name="int"/>
-    </constant>
-    <constant name="WAVE_FORMAT_NMS_VBXADPCM" value="56">
-      <type name="int"/>
-    </constant>
-    <constant name="WAVE_FORMAT_NORRIS" value="5120">
-      <type name="int"/>
-    </constant>
-    <constant name="WAVE_FORMAT_OKI_ADPCM" value="16">
-      <type name="int"/>
-    </constant>
-    <constant name="WAVE_FORMAT_OLIADPCM" value="4097">
-      <type name="int"/>
-    </constant>
-    <constant name="WAVE_FORMAT_OLICELP" value="4098">
-      <type name="int"/>
-    </constant>
-    <constant name="WAVE_FORMAT_OLIGSM" value="4096">
-      <type name="int"/>
-    </constant>
-    <constant name="WAVE_FORMAT_OLIOPR" value="4100">
-      <type name="int"/>
-    </constant>
-    <constant name="WAVE_FORMAT_OLISBC" value="4099">
-      <type name="int"/>
-    </constant>
-    <constant name="WAVE_FORMAT_ONLIVE" value="137">
-      <type name="int"/>
-    </constant>
-    <constant name="WAVE_FORMAT_PAC" value="83">
-      <type name="int"/>
-    </constant>
-    <constant name="WAVE_FORMAT_PACKED" value="153">
-      <type name="int"/>
-    </constant>
-    <constant name="WAVE_FORMAT_PCM" value="1">
-      <type name="int"/>
-    </constant>
-    <constant name="WAVE_FORMAT_PHILIPS_LPCBB" value="152">
-      <type name="int"/>
-    </constant>
-    <constant name="WAVE_FORMAT_PROSODY_1612" value="39">
-      <type name="int"/>
-    </constant>
-    <constant name="WAVE_FORMAT_PROSODY_8KBPS" value="148">
-      <type name="int"/>
-    </constant>
-    <constant name="WAVE_FORMAT_QDESIGN_MUSIC" value="1104">
-      <type name="int"/>
-    </constant>
-    <constant name="WAVE_FORMAT_QUALCOMM_HALFRATE" value="337">
-      <type name="int"/>
-    </constant>
-    <constant name="WAVE_FORMAT_QUALCOMM_PUREVOICE" value="336">
-      <type name="int"/>
-    </constant>
-    <constant name="WAVE_FORMAT_QUARTERDECK" value="544">
-      <type name="int"/>
-    </constant>
-    <constant name="WAVE_FORMAT_RAW_SPORT" value="576">
-      <type name="int"/>
-    </constant>
-    <constant name="WAVE_FORMAT_RHETOREX_ADPCM" value="256">
-      <type name="int"/>
-    </constant>
-    <constant name="WAVE_FORMAT_ROCKWELL_ADPCM" value="59">
-      <type name="int"/>
-    </constant>
-    <constant name="WAVE_FORMAT_ROCKWELL_DIGITALK" value="60">
-      <type name="int"/>
-    </constant>
-    <constant name="WAVE_FORMAT_RT24" value="82">
-      <type name="int"/>
-    </constant>
-    <constant name="WAVE_FORMAT_SANYO_LD_ADPCM" value="293">
-      <type name="int"/>
-    </constant>
-    <constant name="WAVE_FORMAT_SBC24" value="145">
-      <type name="int"/>
-    </constant>
-    <constant name="WAVE_FORMAT_SIERRA_ADPCM" value="19">
-      <type name="int"/>
-    </constant>
-    <constant name="WAVE_FORMAT_SIPROLAB_ACELP4800" value="305">
-      <type name="int"/>
-    </constant>
-    <constant name="WAVE_FORMAT_SIPROLAB_ACELP8V3" value="306">
-      <type name="int"/>
-    </constant>
-    <constant name="WAVE_FORMAT_SIPROLAB_ACEPLNET" value="304">
-      <type name="int"/>
-    </constant>
-    <constant name="WAVE_FORMAT_SIPROLAB_G729" value="307">
-      <type name="int"/>
-    </constant>
-    <constant name="WAVE_FORMAT_SIPROLAB_G729A" value="308">
-      <type name="int"/>
-    </constant>
-    <constant name="WAVE_FORMAT_SIPROLAB_KELVIN" value="309">
-      <type name="int"/>
-    </constant>
-    <constant name="WAVE_FORMAT_SIREN" value="654">
-      <type name="int"/>
-    </constant>
-    <constant name="WAVE_FORMAT_SOFTSOUND" value="128">
-      <type name="int"/>
-    </constant>
-    <constant name="WAVE_FORMAT_SONARC" value="33">
-      <type name="int"/>
-    </constant>
-    <constant name="WAVE_FORMAT_SONIC" value="8264">
-      <type name="int"/>
-    </constant>
-    <constant name="WAVE_FORMAT_SONIC_LS" value="8264">
-      <type name="int"/>
-    </constant>
-    <constant name="WAVE_FORMAT_SONY_ATRAC3" value="624">
-      <type name="int"/>
-    </constant>
-    <constant name="WAVE_FORMAT_SOUNDSPACE_MUSICOMPRESS" value="5376">
-      <type name="int"/>
-    </constant>
-    <constant name="WAVE_FORMAT_TPC" value="1665">
-      <type name="int"/>
-    </constant>
-    <constant name="WAVE_FORMAT_TUBGSM" value="341">
-      <type name="int"/>
-    </constant>
-    <constant name="WAVE_FORMAT_UHER_ADPCM" value="528">
-      <type name="int"/>
-    </constant>
-    <constant name="WAVE_FORMAT_UNKNOWN" value="0">
-      <type name="int"/>
-    </constant>
-    <constant name="WAVE_FORMAT_VIVO_G723" value="273">
-      <type name="int"/>
-    </constant>
-    <constant name="WAVE_FORMAT_VIVO_SIREN" value="274">
-      <type name="int"/>
-    </constant>
-    <constant name="WAVE_FORMAT_VME_VMPCM" value="1664">
-      <type name="int"/>
-    </constant>
-    <constant name="WAVE_FORMAT_VORBIS1" value="26447">
-      <type name="int"/>
-    </constant>
-    <constant name="WAVE_FORMAT_VORBIS1PLUS" value="26479">
-      <type name="int"/>
-    </constant>
-    <constant name="WAVE_FORMAT_VORBIS2" value="26448">
-      <type name="int"/>
-    </constant>
-    <constant name="WAVE_FORMAT_VORBIS2PLUS" value="26480">
-      <type name="int"/>
-    </constant>
-    <constant name="WAVE_FORMAT_VORBIS3" value="26449">
-      <type name="int"/>
-    </constant>
-    <constant name="WAVE_FORMAT_VORBIS3PLUS" value="26481">
-      <type name="int"/>
-    </constant>
-    <constant name="WAVE_FORMAT_VOXWARE" value="98">
-      <type name="int"/>
-    </constant>
-    <constant name="WAVE_FORMAT_VOXWARE_AC10" value="113">
-      <type name="int"/>
-    </constant>
-    <constant name="WAVE_FORMAT_VOXWARE_AC16" value="114">
-      <type name="int"/>
-    </constant>
-    <constant name="WAVE_FORMAT_VOXWARE_AC20" value="115">
-      <type name="int"/>
-    </constant>
-    <constant name="WAVE_FORMAT_VOXWARE_AC8" value="112">
-      <type name="int"/>
-    </constant>
-    <constant name="WAVE_FORMAT_VOXWARE_BYTE_ALIGNED" value="105">
-      <type name="int"/>
-    </constant>
-    <constant name="WAVE_FORMAT_VOXWARE_METASOUND" value="117">
-      <type name="int"/>
-    </constant>
-    <constant name="WAVE_FORMAT_VOXWARE_METAVOICE" value="116">
-      <type name="int"/>
-    </constant>
-    <constant name="WAVE_FORMAT_VOXWARE_RT29HW" value="118">
-      <type name="int"/>
-    </constant>
-    <constant name="WAVE_FORMAT_VOXWARE_TQ40" value="121">
-      <type name="int"/>
-    </constant>
-    <constant name="WAVE_FORMAT_VOXWARE_TQ60" value="129">
-      <type name="int"/>
-    </constant>
-    <constant name="WAVE_FORMAT_VOXWARE_VR12" value="119">
-      <type name="int"/>
-    </constant>
-    <constant name="WAVE_FORMAT_VOXWARE_VR18" value="120">
-      <type name="int"/>
-    </constant>
-    <constant name="WAVE_FORMAT_VSELP" value="4">
-      <type name="int"/>
-    </constant>
-    <constant name="WAVE_FORMAT_WMAV1" value="352">
-      <type name="int"/>
-    </constant>
-    <constant name="WAVE_FORMAT_WMAV2" value="353">
-      <type name="int"/>
-    </constant>
-    <constant name="WAVE_FORMAT_WMAV3" value="354">
-      <type name="int"/>
-    </constant>
-    <constant name="WAVE_FORMAT_WMAV3_L" value="355">
-      <type name="int"/>
-    </constant>
-    <constant name="WAVE_FORMAT_WMS" value="10">
-      <type name="int"/>
-    </constant>
-    <constant name="WAVE_FORMAT_XEBEC" value="61">
-      <type name="int"/>
-    </constant>
-    <constant name="WAVE_FORMAT_YAMAHA_ADPCM" value="32">
-      <type name="int"/>
-    </constant>
-    <constant name="WAVE_FORMAT_ZYXEL_ADPCM" value="151">
-      <type name="int"/>
-    </constant>
-    <function name="create_audio_caps"
-              c:identifier="gst_riff_create_audio_caps">
-      <return-value transfer-ownership="full">
-        <type name="Gst.Caps" c:type="GstCaps*"/>
-      </return-value>
-      <parameters>
-        <parameter name="codec_id" transfer-ownership="none">
-          <type name="uint16" c:type="guint16"/>
-        </parameter>
-        <parameter name="strh" transfer-ownership="none">
-          <type name="riff_strh" c:type="gst_riff_strh*"/>
-        </parameter>
-        <parameter name="strf" transfer-ownership="none">
-          <type name="riff_strf_auds" c:type="gst_riff_strf_auds*"/>
-        </parameter>
-        <parameter name="strf_data" transfer-ownership="none">
-          <type name="Gst.Buffer" c:type="GstBuffer*"/>
-        </parameter>
-        <parameter name="strd_data" transfer-ownership="none">
-          <type name="Gst.Buffer" c:type="GstBuffer*"/>
-        </parameter>
-        <parameter name="codec_name" transfer-ownership="none">
-          <array c:type="char**">
-            <type name="utf8"/>
-          </array>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="create_audio_template_caps"
-              c:identifier="gst_riff_create_audio_template_caps">
-      <return-value transfer-ownership="full">
-        <type name="Gst.Caps" c:type="GstCaps*"/>
-      </return-value>
-    </function>
-    <function name="create_iavs_caps" c:identifier="gst_riff_create_iavs_caps">
-      <return-value transfer-ownership="full">
-        <type name="Gst.Caps" c:type="GstCaps*"/>
-      </return-value>
-      <parameters>
-        <parameter name="codec_fcc" transfer-ownership="none">
-          <type name="uint32" c:type="guint32"/>
-        </parameter>
-        <parameter name="strh" transfer-ownership="none">
-          <type name="riff_strh" c:type="gst_riff_strh*"/>
-        </parameter>
-        <parameter name="strf" transfer-ownership="none">
-          <type name="riff_strf_iavs" c:type="gst_riff_strf_iavs*"/>
-        </parameter>
-        <parameter name="strf_data" transfer-ownership="none">
-          <type name="Gst.Buffer" c:type="GstBuffer*"/>
-        </parameter>
-        <parameter name="strd_data" transfer-ownership="none">
-          <type name="Gst.Buffer" c:type="GstBuffer*"/>
-        </parameter>
-        <parameter name="codec_name" transfer-ownership="none">
-          <array c:type="char**">
-            <type name="utf8"/>
-          </array>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="create_iavs_template_caps"
-              c:identifier="gst_riff_create_iavs_template_caps">
-      <return-value transfer-ownership="full">
-        <type name="Gst.Caps" c:type="GstCaps*"/>
-      </return-value>
-    </function>
-    <function name="create_video_caps"
-              c:identifier="gst_riff_create_video_caps"
-              doc="data that is within the range of strf.size, but excluding any
-additional data withint this chunk but outside strf.size.
-chunk outside reach of strf.size. Ususally a palette.
-chunk. Usually codec initialization data.">
-      <return-value transfer-ownership="full">
-        <type name="Gst.Caps" c:type="GstCaps*"/>
-      </return-value>
-      <parameters>
-        <parameter name="codec_fcc" transfer-ownership="none">
-          <type name="uint32" c:type="guint32"/>
-        </parameter>
-        <parameter name="strh" transfer-ownership="none">
-          <type name="riff_strh" c:type="gst_riff_strh*"/>
-        </parameter>
-        <parameter name="strf" transfer-ownership="none">
-          <type name="riff_strf_vids" c:type="gst_riff_strf_vids*"/>
-        </parameter>
-        <parameter name="strf_data" transfer-ownership="none">
-          <type name="Gst.Buffer" c:type="GstBuffer*"/>
-        </parameter>
-        <parameter name="strd_data" transfer-ownership="none">
-          <type name="Gst.Buffer" c:type="GstBuffer*"/>
-        </parameter>
-        <parameter name="codec_name" transfer-ownership="none">
-          <array c:type="char**">
-            <type name="utf8"/>
-          </array>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="create_video_template_caps"
-              c:identifier="gst_riff_create_video_template_caps">
-      <return-value transfer-ownership="full">
-        <type name="Gst.Caps" c:type="GstCaps*"/>
-      </return-value>
-    </function>
-    <function name="init"
-              c:identifier="gst_riff_init"
-              doc="Initialize riff library.">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-    </function>
-    <function name="parse_chunk"
-              c:identifier="gst_riff_parse_chunk"
-              doc="by the read size by this function.
-chunk data, which may be NULL if chunksize == 0
-Reads a single chunk.">
-      <return-value transfer-ownership="none">
-        <type name="boolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="element" transfer-ownership="none">
-          <type name="Gst.Element" c:type="GstElement*"/>
-        </parameter>
-        <parameter name="buf" transfer-ownership="none">
-          <type name="Gst.Buffer" c:type="GstBuffer*"/>
-        </parameter>
-        <parameter name="offset" direction="out" transfer-ownership="full">
-          <type name="uint" c:type="guint*"/>
-        </parameter>
-        <parameter name="fourcc" direction="out" transfer-ownership="full">
-          <type name="uint32" c:type="guint32*"/>
-        </parameter>
-        <parameter name="chunk_data"
-                   transfer-ownership="none"
-                   doc="containing the">
-          <type name="Gst.Buffer" c:type="GstBuffer**"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="parse_file_header"
-              c:identifier="gst_riff_parse_file_header"
-              doc="should be at least 12 bytes long.
-type of document (according to the header).
-Reads the first few bytes from the provided buffer, checks
-if this stream is a RIFF stream, and determines document type.
-This function takes ownership of @buf so it should not be used anymore
-after calling this function.
-caller should error out; we already throw an error), or TRUE
-if it is.">
-      <return-value transfer-ownership="none">
-        <type name="boolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="element" transfer-ownership="none">
-          <type name="Gst.Element" c:type="GstElement*"/>
-        </parameter>
-        <parameter name="buf" transfer-ownership="none">
-          <type name="Gst.Buffer" c:type="GstBuffer*"/>
-        </parameter>
-        <parameter name="doctype"
-                   direction="out"
-                   transfer-ownership="full"
-                   doc="to indicate the">
-          <type name="uint32" c:type="guint32*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="parse_info"
-              c:identifier="gst_riff_parse_info"
-              doc="containing information about this stream. May be
-NULL if no supported tags were found.
-Parses stream metadata from input data.">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="element" transfer-ownership="none">
-          <type name="Gst.Element" c:type="GstElement*"/>
-        </parameter>
-        <parameter name="buf" transfer-ownership="none">
-          <type name="Gst.Buffer" c:type="GstBuffer*"/>
-        </parameter>
-        <parameter name="taglist" transfer-ownership="none">
-          <type name="Gst.TagList" c:type="GstTagList**"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="parse_strf_auds"
-              c:identifier="gst_riff_parse_strf_auds"
-              doc="strf/auds structure. Caller should free it.
-containing extradata for this particular stream (e.g.
-codec initialization data).
-Parses an audio stream´s strf structure plus optionally some
-extradata from input data. This function takes ownership of @buf.
-use.
-should be skipped on error, but it is not fatal.">
-      <return-value transfer-ownership="none">
-        <type name="boolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="element" transfer-ownership="none">
-          <type name="Gst.Element" c:type="GstElement*"/>
-        </parameter>
-        <parameter name="buf" transfer-ownership="none">
-          <type name="Gst.Buffer" c:type="GstBuffer*"/>
-        </parameter>
-        <parameter name="strf" transfer-ownership="none" doc="to a filled-in">
-          <type name="riff_strf_auds" c:type="gst_riff_strf_auds**"/>
-        </parameter>
-        <parameter name="data" transfer-ownership="none" doc="to a buffer">
-          <type name="Gst.Buffer" c:type="GstBuffer**"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="parse_strf_iavs"
-              c:identifier="gst_riff_parse_strf_iavs"
-              doc="strf/iavs structure. Caller should free it.
-containing extradata for this particular stream (e.g.
-codec initialization data).
-Parses a interleaved (also known as &quot;complex&quot;)  stream´s strf
-structure plus optionally some extradata from input data. This
-function takes ownership of @buf.">
-      <return-value transfer-ownership="none">
-        <type name="boolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="element" transfer-ownership="none">
-          <type name="Gst.Element" c:type="GstElement*"/>
-        </parameter>
-        <parameter name="buf" transfer-ownership="none">
-          <type name="Gst.Buffer" c:type="GstBuffer*"/>
-        </parameter>
-        <parameter name="strf" transfer-ownership="none" doc="to a filled-in">
-          <type name="riff_strf_iavs" c:type="gst_riff_strf_iavs**"/>
-        </parameter>
-        <parameter name="data" transfer-ownership="none" doc="to a buffer">
-          <type name="Gst.Buffer" c:type="GstBuffer**"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="parse_strf_vids"
-              c:identifier="gst_riff_parse_strf_vids"
-              doc="strf/vids structure. Caller should free it.
-containing extradata for this particular stream (e.g.
-palette, codec initialization data).
-Parses a video stream´s strf structure plus optionally some
-extradata from input data. This function takes ownership of @buf.
-should be skipped on error, but it is not fatal.">
-      <return-value transfer-ownership="none">
-        <type name="boolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="element" transfer-ownership="none">
-          <type name="Gst.Element" c:type="GstElement*"/>
-        </parameter>
-        <parameter name="buf" transfer-ownership="none">
-          <type name="Gst.Buffer" c:type="GstBuffer*"/>
-        </parameter>
-        <parameter name="strf" transfer-ownership="none" doc="to a filled-in">
-          <type name="riff_strf_vids" c:type="gst_riff_strf_vids**"/>
-        </parameter>
-        <parameter name="data" transfer-ownership="none" doc="to a buffer">
-          <type name="Gst.Buffer" c:type="GstBuffer**"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="parse_strh"
-              c:identifier="gst_riff_parse_strh"
-              doc="strh structure. Caller should free it.
-Parses a strh structure from input data. Takes ownership of @buf.
-should be skipped on error, but it is not fatal.">
-      <return-value transfer-ownership="none">
-        <type name="boolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="element" transfer-ownership="none">
-          <type name="Gst.Element" c:type="GstElement*"/>
-        </parameter>
-        <parameter name="buf" transfer-ownership="none">
-          <type name="Gst.Buffer" c:type="GstBuffer*"/>
-        </parameter>
-        <parameter name="strh" transfer-ownership="none" doc="to a filled-in">
-          <type name="riff_strh" c:type="gst_riff_strh**"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="read_chunk"
-              c:identifier="gst_riff_read_chunk"
-              doc="Reads a single chunk of data. Since 0.10.8 &apos;JUNK&apos; chunks
-are skipped automatically.">
-      <return-value transfer-ownership="full">
-        <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
-      </return-value>
-      <parameters>
-        <parameter name="element" transfer-ownership="none">
-          <type name="Gst.Element" c:type="GstElement*"/>
-        </parameter>
-        <parameter name="pad" transfer-ownership="none">
-          <type name="Gst.Pad" c:type="GstPad*"/>
-        </parameter>
-        <parameter name="offset" direction="out" transfer-ownership="full">
-          <type name="uint64" c:type="guint64*"/>
-        </parameter>
-        <parameter name="tag" direction="out" transfer-ownership="full">
-          <type name="uint32" c:type="guint32*"/>
-        </parameter>
-        <parameter name="chunk_data" transfer-ownership="none">
-          <type name="Gst.Buffer" c:type="GstBuffer**"/>
-        </parameter>
-      </parameters>
-    </function>
-    <record name="riff_acid" c:type="_gst_riff_acid">
-      <field name="loop_type" writable="1">
-        <type name="uint32" c:type="guint32"/>
-      </field>
-      <field name="root_note" writable="1">
-        <type name="uint16" c:type="guint16"/>
-      </field>
-      <field name="unknown1" writable="1">
-        <type name="uint16" c:type="guint16"/>
-      </field>
-      <field name="unknown2" writable="1">
-        <type name="float" c:type="gfloat"/>
-      </field>
-      <field name="number_of_beats" writable="1">
-        <type name="uint32" c:type="guint32"/>
-      </field>
-      <field name="meter_d" writable="1">
-        <type name="uint16" c:type="guint16"/>
-      </field>
-      <field name="meter_n" writable="1">
-        <type name="uint16" c:type="guint16"/>
-      </field>
-      <field name="tempo" writable="1">
-        <type name="float" c:type="gfloat"/>
-      </field>
-    </record>
-    <record name="riff_dmlh" c:type="_gst_riff_dmlh">
-      <field name="totalframes" writable="1">
-        <type name="uint32" c:type="guint32"/>
-      </field>
-    </record>
-    <record name="riff_index_entry" c:type="_gst_riff_index_entry">
-      <field name="id" writable="1">
-        <type name="uint32" c:type="guint32"/>
-      </field>
-      <field name="flags" writable="1">
-        <type name="uint32" c:type="guint32"/>
-      </field>
-      <field name="offset" writable="1">
-        <type name="uint32" c:type="guint32"/>
-      </field>
-      <field name="size" writable="1">
-        <type name="uint32" c:type="guint32"/>
-      </field>
-    </record>
-    <record name="riff_strf_auds" c:type="_gst_riff_strf_auds">
-      <field name="format" writable="1">
-        <type name="uint16" c:type="guint16"/>
-      </field>
-      <field name="channels" writable="1">
-        <type name="uint16" c:type="guint16"/>
-      </field>
-      <field name="rate" writable="1">
-        <type name="uint32" c:type="guint32"/>
-      </field>
-      <field name="av_bps" writable="1">
-        <type name="uint32" c:type="guint32"/>
-      </field>
-      <field name="blockalign" writable="1">
-        <type name="uint16" c:type="guint16"/>
-      </field>
-      <field name="size" writable="1">
-        <type name="uint16" c:type="guint16"/>
-      </field>
-    </record>
-    <record name="riff_strf_iavs" c:type="_gst_riff_strf_iavs">
-      <field name="DVAAuxSrc" writable="1">
-        <type name="uint32" c:type="guint32"/>
-      </field>
-      <field name="DVAAuxCtl" writable="1">
-        <type name="uint32" c:type="guint32"/>
-      </field>
-      <field name="DVAAuxSrc1" writable="1">
-        <type name="uint32" c:type="guint32"/>
-      </field>
-      <field name="DVAAuxCtl1" writable="1">
-        <type name="uint32" c:type="guint32"/>
-      </field>
-      <field name="DVVAuxSrc" writable="1">
-        <type name="uint32" c:type="guint32"/>
-      </field>
-      <field name="DVVAuxCtl" writable="1">
-        <type name="uint32" c:type="guint32"/>
-      </field>
-      <field name="DVReserved1" writable="1">
-        <type name="uint32" c:type="guint32"/>
-      </field>
-      <field name="DVReserved2" writable="1">
-        <type name="uint32" c:type="guint32"/>
-      </field>
-    </record>
-    <record name="riff_strf_vids" c:type="_gst_riff_strf_vids">
-      <field name="size" writable="1">
-        <type name="uint32" c:type="guint32"/>
-      </field>
-      <field name="width" writable="1">
-        <type name="uint32" c:type="guint32"/>
-      </field>
-      <field name="height" writable="1">
-        <type name="uint32" c:type="guint32"/>
-      </field>
-      <field name="planes" writable="1">
-        <type name="uint16" c:type="guint16"/>
-      </field>
-      <field name="bit_cnt" writable="1">
-        <type name="uint16" c:type="guint16"/>
-      </field>
-      <field name="compression" writable="1">
-        <type name="uint32" c:type="guint32"/>
-      </field>
-      <field name="image_size" writable="1">
-        <type name="uint32" c:type="guint32"/>
-      </field>
-      <field name="xpels_meter" writable="1">
-        <type name="uint32" c:type="guint32"/>
-      </field>
-      <field name="ypels_meter" writable="1">
-        <type name="uint32" c:type="guint32"/>
-      </field>
-      <field name="num_colors" writable="1">
-        <type name="uint32" c:type="guint32"/>
-      </field>
-      <field name="imp_colors" writable="1">
-        <type name="uint32" c:type="guint32"/>
-      </field>
-    </record>
-    <record name="riff_strh" c:type="_gst_riff_strh">
-      <field name="type" writable="1">
-        <type name="uint32" c:type="guint32"/>
-      </field>
-      <field name="fcc_handler" writable="1">
-        <type name="uint32" c:type="guint32"/>
-      </field>
-      <field name="flags" writable="1">
-        <type name="uint32" c:type="guint32"/>
-      </field>
-      <field name="priority" writable="1">
-        <type name="uint32" c:type="guint32"/>
-      </field>
-      <field name="init_frames" writable="1">
-        <type name="uint32" c:type="guint32"/>
-      </field>
-      <field name="scale" writable="1">
-        <type name="uint32" c:type="guint32"/>
-      </field>
-      <field name="rate" writable="1">
-        <type name="uint32" c:type="guint32"/>
-      </field>
-      <field name="start" writable="1">
-        <type name="uint32" c:type="guint32"/>
-      </field>
-      <field name="length" writable="1">
-        <type name="uint32" c:type="guint32"/>
-      </field>
-      <field name="bufsize" writable="1">
-        <type name="uint32" c:type="guint32"/>
-      </field>
-      <field name="quality" writable="1">
-        <type name="uint32" c:type="guint32"/>
-      </field>
-      <field name="samplesize" writable="1">
-        <type name="uint32" c:type="guint32"/>
-      </field>
-    </record>
-  </namespace>
-</repository>
diff --git a/extra/gstreamer/riff/ffi/ffi.factor b/extra/gstreamer/riff/ffi/ffi.factor
deleted file mode 100644 (file)
index ac31e7d..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-! Copyright (C) 2010 Anton Gorenko.
-! See http://factorcode.org/license.txt for BSD license.
-USING: alien alien.syntax alien.libraries combinators kernel
-system
-gobject-introspection glib.ffi gmodule.ffi gobject.ffi ;
-EXCLUDE: alien.c-types => pointer ;
-IN: gstreamer.ffi
-
-<<
-"gstreamer" {
-    { [ os winnt? ] [ drop ] }
-    { [ os macosx? ] [ drop ] }
-    { [ os unix? ] [ "libgstreamer-0.10.so" cdecl add-library ] }
-} cond
->>
-
-TYPEDEF: gpointer GstClockID
-TYPEDEF: guint64 GstClockTime
-TYPEDEF: gint64 GstClockTimeDiff
-
-! types from libxml2
-TYPEDEF: void* xmlNodePtr
-TYPEDEF: void* xmlDocPtr
-TYPEDEF: void* xmlNsPtr
-
-GIR: vocab:gstreamer/Gst-0.10.gir
-
diff --git a/extra/gstreamer/riff/riff.factor b/extra/gstreamer/riff/riff.factor
deleted file mode 100644 (file)
index 174fbc6..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-! Copyright (C) 2010 Anton Gorenko.
-! See http://factorcode.org/license.txt for BSD license.
-USING: gstreamer.ffi ;
-IN: gstreamer
-
diff --git a/extra/gstreamer/rtp/GstRtp-0.10.gir b/extra/gstreamer/rtp/GstRtp-0.10.gir
deleted file mode 100644 (file)
index e720150..0000000
+++ /dev/null
@@ -1,2550 +0,0 @@
-<?xml version="1.0"?>
-<!-- This file was automatically generated from C sources - DO NOT EDIT!
-To affect the contents of this file, edit the original C definitions,
-and/or use gtk-doc annotations.  -->
-<repository version="1.0"
-            xmlns="http://www.gtk.org/introspection/core/1.0"
-            xmlns:c="http://www.gtk.org/introspection/c/1.0"
-            xmlns:glib="http://www.gtk.org/introspection/glib/1.0">
-  <include name="GLib" version="2.0"/>
-  <include name="GModule" version="2.0"/>
-  <include name="GObject" version="2.0"/>
-  <include name="Gst" version="0.10"/>
-  <include name="GstBase" version="0.10"/>
-  <include name="libxml2" version="2.0"/>
-  <package name="gstreamer-0.10"/>
-  <package name="gstreamer-base-0.10"/>
-  <c:include name="gst/rtp/gstbasertpaudiopayload.h"/>
-  <c:include name="gst/rtp/gstbasertpdepayload.h"/>
-  <c:include name="gst/rtp/gstbasertppayload.h"/>
-  <c:include name="gst/rtp/gstrtcpbuffer.h"/>
-  <c:include name="gst/rtp/gstrtpbuffer.h"/>
-  <c:include name="gst/rtp/gstrtppayloads.h"/>
-  <namespace name="GstRtp"
-             version="0.10"
-             shared-library="libgstrtp-0.10.so.0"
-             c:prefix="Gst">
-    <class name="BaseRTPAudioPayload"
-           c:type="GstBaseRTPAudioPayload"
-           parent="BaseRTPPayload"
-           glib:type-name="GstBaseRTPAudioPayload"
-           glib:get-type="gst_base_rtp_audio_payload_get_type"
-           glib:type-struct="BaseRTPAudioPayloadClass">
-      <method name="set_frame_based"
-              c:identifier="gst_base_rtp_audio_payload_set_frame_based"
-              doc="Tells #GstBaseRTPAudioPayload that the child element is for a frame based
-audio codec">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </method>
-      <method name="set_frame_options"
-              c:identifier="gst_base_rtp_audio_payload_set_frame_options"
-              doc="Sets the options for frame based audio codecs.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="frame_duration" transfer-ownership="none">
-            <type name="int" c:type="gint"/>
-          </parameter>
-          <parameter name="frame_size" transfer-ownership="none">
-            <type name="int" c:type="gint"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_sample_based"
-              c:identifier="gst_base_rtp_audio_payload_set_sample_based"
-              doc="Tells #GstBaseRTPAudioPayload that the child element is for a sample based
-audio codec">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </method>
-      <method name="set_sample_options"
-              c:identifier="gst_base_rtp_audio_payload_set_sample_options"
-              doc="Sets the options for sample based audio codecs.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="sample_size" transfer-ownership="none">
-            <type name="int" c:type="gint"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_samplebits_options"
-              c:identifier="gst_base_rtp_audio_payload_set_samplebits_options"
-              doc="Sets the options for sample based audio codecs."
-              version="0.10.18">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="sample_size" transfer-ownership="none">
-            <type name="int" c:type="gint"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_adapter"
-              c:identifier="gst_base_rtp_audio_payload_get_adapter"
-              doc="Gets the internal adapter used by the depayloader."
-              version="0.10.13">
-        <return-value transfer-ownership="full">
-          <type name="GstBase.Adapter" c:type="GstAdapter*"/>
-        </return-value>
-      </method>
-      <method name="push"
-              c:identifier="gst_base_rtp_audio_payload_push"
-              doc="Create an RTP buffer and store @payload_len bytes of @data as the
-payload. Set the timestamp on the new buffer to @timestamp before pushing
-the buffer downstream."
-              version="0.10.13">
-        <return-value transfer-ownership="full">
-          <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
-        </return-value>
-        <parameters>
-          <parameter name="data" transfer-ownership="none">
-            <array c:type="guint8*">
-              <type name="uint8"/>
-            </array>
-          </parameter>
-          <parameter name="payload_len" transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
-          </parameter>
-          <parameter name="timestamp" transfer-ownership="none">
-            <type name="Gst.ClockTime" c:type="GstClockTime"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="flush"
-              c:identifier="gst_base_rtp_audio_payload_flush"
-              doc="Create an RTP buffer and store @payload_len bytes of the adapter as the
-payload. Set the timestamp on the new buffer to @timestamp before pushing
-the buffer downstream.
-If @payload_len is -1, all pending bytes will be flushed. If @timestamp is
--1, the timestamp will be calculated automatically."
-              version="0.10.25">
-        <return-value transfer-ownership="full">
-          <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
-        </return-value>
-        <parameters>
-          <parameter name="payload_len" transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
-          </parameter>
-          <parameter name="timestamp" transfer-ownership="none">
-            <type name="Gst.ClockTime" c:type="GstClockTime"/>
-          </parameter>
-        </parameters>
-      </method>
-      <property name="buffer-list" writable="1">
-        <type name="boolean" c:type="gboolean"/>
-      </property>
-      <field name="payload">
-        <type name="BaseRTPPayload" c:type="GstBaseRTPPayload"/>
-      </field>
-      <field name="priv">
-        <type name="BaseRTPAudioPayloadPrivate"
-              c:type="GstBaseRTPAudioPayloadPrivate*"/>
-      </field>
-      <field name="base_ts">
-        <type name="Gst.ClockTime" c:type="GstClockTime"/>
-      </field>
-      <field name="frame_size">
-        <type name="int" c:type="gint"/>
-      </field>
-      <field name="frame_duration">
-        <type name="int" c:type="gint"/>
-      </field>
-      <field name="sample_size">
-        <type name="int" c:type="gint"/>
-      </field>
-      <field name="_gst_reserved">
-        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
-          <type name="any"/>
-        </array>
-      </field>
-    </class>
-    <record name="BaseRTPAudioPayloadClass"
-            c:type="GstBaseRTPAudioPayloadClass"
-            glib:is-gtype-struct-for="BaseRTPAudioPayload">
-      <field name="parent_class">
-        <type name="BaseRTPPayloadClass" c:type="GstBaseRTPPayloadClass"/>
-      </field>
-      <field name="_gst_reserved">
-        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
-          <type name="any"/>
-        </array>
-      </field>
-    </record>
-    <record name="BaseRTPAudioPayloadPrivate"
-            c:type="GstBaseRTPAudioPayloadPrivate">
-    </record>
-    <class name="BaseRTPDepayload"
-           c:type="GstBaseRTPDepayload"
-           parent="Gst.Element"
-           glib:type-name="GstBaseRTPDepayload"
-           glib:get-type="gst_base_rtp_depayload_get_type"
-           glib:type-struct="BaseRTPDepayloadClass">
-      <virtual-method name="set_caps">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="caps" transfer-ownership="none">
-            <type name="Gst.Caps" c:type="GstCaps*"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <virtual-method name="add_to_queue">
-        <return-value transfer-ownership="full">
-          <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
-        </return-value>
-        <parameters>
-          <parameter name="in" transfer-ownership="none">
-            <type name="Gst.Buffer" c:type="GstBuffer*"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <virtual-method name="process">
-        <return-value transfer-ownership="full">
-          <type name="Gst.Buffer" c:type="GstBuffer*"/>
-        </return-value>
-        <parameters>
-          <parameter name="in" transfer-ownership="none">
-            <type name="Gst.Buffer" c:type="GstBuffer*"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <virtual-method name="set_gst_timestamp">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="timestamp" transfer-ownership="none">
-            <type name="uint32" c:type="guint32"/>
-          </parameter>
-          <parameter name="buf" transfer-ownership="none">
-            <type name="Gst.Buffer" c:type="GstBuffer*"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <virtual-method name="packet_lost">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="event" transfer-ownership="none">
-            <type name="Gst.Event" c:type="GstEvent*"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <method name="push"
-              c:identifier="gst_base_rtp_depayload_push"
-              doc="Push @out_buf to the peer of @filter. This function takes ownership of
-Unlike gst_base_rtp_depayload_push_ts(), this function will not apply
-any timestamp on the outgoing buffer. Subclasses should therefore timestamp
-outgoing buffers themselves.">
-        <return-value transfer-ownership="full">
-          <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
-        </return-value>
-        <parameters>
-          <parameter name="out_buf" transfer-ownership="none">
-            <type name="Gst.Buffer" c:type="GstBuffer*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="push_ts"
-              c:identifier="gst_base_rtp_depayload_push_ts"
-              doc="Push @out_buf to the peer of @filter. This function takes ownership of
-Unlike gst_base_rtp_depayload_push(), this function will by default apply
-the last incomming timestamp on the outgoing buffer when it didn&apos;t have a
-timestamp already. The set_get_timestamp vmethod can be overwritten to change
-this behaviour (and take, for example, @timestamp into account).">
-        <return-value transfer-ownership="full">
-          <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
-        </return-value>
-        <parameters>
-          <parameter name="timestamp" transfer-ownership="none">
-            <type name="uint32" c:type="guint32"/>
-          </parameter>
-          <parameter name="out_buf" transfer-ownership="none">
-            <type name="Gst.Buffer" c:type="GstBuffer*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <property name="queue-delay" writable="1">
-        <type name="uint" c:type="guint"/>
-      </property>
-      <field name="parent">
-        <type name="Gst.Element" c:type="GstElement"/>
-      </field>
-      <field name="sinkpad">
-        <type name="Gst.Pad" c:type="GstPad*"/>
-      </field>
-      <field name="srcpad">
-        <type name="Gst.Pad" c:type="GstPad*"/>
-      </field>
-      <field name="queuelock">
-        <type name="GLib.StaticRecMutex" c:type="GStaticRecMutex"/>
-      </field>
-      <field name="thread_running">
-        <type name="boolean" c:type="gboolean"/>
-      </field>
-      <field name="thread">
-        <type name="GLib.Thread" c:type="GThread*"/>
-      </field>
-      <field name="clock_rate">
-        <type name="uint" c:type="guint"/>
-      </field>
-      <field name="queue_delay">
-        <type name="uint" c:type="guint"/>
-      </field>
-      <field name="queue">
-        <type name="GLib.Queue" c:type="GQueue*"/>
-      </field>
-      <field name="segment">
-        <type name="Gst.Segment" c:type="GstSegment"/>
-      </field>
-      <field name="need_newsegment">
-        <type name="boolean" c:type="gboolean"/>
-      </field>
-      <field name="priv">
-        <type name="BaseRTPDepayloadPrivate"
-              c:type="GstBaseRTPDepayloadPrivate*"/>
-      </field>
-      <field name="_gst_reserved">
-        <array zero-terminated="0" c:type="gpointer" fixed-size="3">
-          <type name="any"/>
-        </array>
-      </field>
-    </class>
-    <record name="BaseRTPDepayloadClass"
-            c:type="GstBaseRTPDepayloadClass"
-            glib:is-gtype-struct-for="BaseRTPDepayload">
-      <field name="parent_class">
-        <type name="Gst.ElementClass" c:type="GstElementClass"/>
-      </field>
-      <field name="set_caps">
-        <callback name="set_caps" c:type="set_caps">
-          <return-value transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </return-value>
-          <parameters>
-            <parameter name="filter" transfer-ownership="none">
-              <type name="BaseRTPDepayload" c:type="GstBaseRTPDepayload*"/>
-            </parameter>
-            <parameter name="caps" transfer-ownership="none">
-              <type name="Gst.Caps" c:type="GstCaps*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="add_to_queue">
-        <callback name="add_to_queue" c:type="add_to_queue">
-          <return-value transfer-ownership="full">
-            <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
-          </return-value>
-          <parameters>
-            <parameter name="filter" transfer-ownership="none">
-              <type name="BaseRTPDepayload" c:type="GstBaseRTPDepayload*"/>
-            </parameter>
-            <parameter name="in" transfer-ownership="none">
-              <type name="Gst.Buffer" c:type="GstBuffer*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="process">
-        <callback name="process" c:type="process">
-          <return-value transfer-ownership="full">
-            <type name="Gst.Buffer" c:type="GstBuffer*"/>
-          </return-value>
-          <parameters>
-            <parameter name="base" transfer-ownership="none">
-              <type name="BaseRTPDepayload" c:type="GstBaseRTPDepayload*"/>
-            </parameter>
-            <parameter name="in" transfer-ownership="none">
-              <type name="Gst.Buffer" c:type="GstBuffer*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="set_gst_timestamp">
-        <callback name="set_gst_timestamp" c:type="set_gst_timestamp">
-          <return-value transfer-ownership="none">
-            <type name="none" c:type="void"/>
-          </return-value>
-          <parameters>
-            <parameter name="filter" transfer-ownership="none">
-              <type name="BaseRTPDepayload" c:type="GstBaseRTPDepayload*"/>
-            </parameter>
-            <parameter name="timestamp" transfer-ownership="none">
-              <type name="uint32" c:type="guint32"/>
-            </parameter>
-            <parameter name="buf" transfer-ownership="none">
-              <type name="Gst.Buffer" c:type="GstBuffer*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="packet_lost">
-        <callback name="packet_lost" c:type="packet_lost">
-          <return-value transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </return-value>
-          <parameters>
-            <parameter name="filter" transfer-ownership="none">
-              <type name="BaseRTPDepayload" c:type="GstBaseRTPDepayload*"/>
-            </parameter>
-            <parameter name="event" transfer-ownership="none">
-              <type name="Gst.Event" c:type="GstEvent*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="_gst_reserved">
-        <array zero-terminated="0" c:type="gpointer" fixed-size="3">
-          <type name="any"/>
-        </array>
-      </field>
-    </record>
-    <record name="BaseRTPDepayloadPrivate" c:type="GstBaseRTPDepayloadPrivate">
-    </record>
-    <class name="BaseRTPPayload"
-           c:type="GstBaseRTPPayload"
-           parent="Gst.Element"
-           abstract="1"
-           glib:type-name="GstBaseRTPPayload"
-           glib:get-type="gst_basertppayload_get_type"
-           glib:type-struct="BaseRTPPayloadClass">
-      <virtual-method name="set_caps">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="caps" transfer-ownership="none">
-            <type name="Gst.Caps" c:type="GstCaps*"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <virtual-method name="handle_buffer">
-        <return-value transfer-ownership="full">
-          <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
-        </return-value>
-        <parameters>
-          <parameter name="buffer" transfer-ownership="none">
-            <type name="Gst.Buffer" c:type="GstBuffer*"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <virtual-method name="get_caps">
-        <return-value transfer-ownership="full">
-          <type name="Gst.Caps" c:type="GstCaps*"/>
-        </return-value>
-        <parameters>
-          <parameter name="pad" transfer-ownership="none">
-            <type name="Gst.Pad" c:type="GstPad*"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <method name="set_options"
-              c:identifier="gst_basertppayload_set_options"
-              doc="Set the rtp options of the payloader. These options will be set in the caps
-of the payloader. Subclasses must call this method before calling
-gst_basertppayload_push() or gst_basertppayload_set_outcaps().">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="media" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="dynamic" transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </parameter>
-          <parameter name="encoding_name" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="clock_rate" transfer-ownership="none">
-            <type name="uint32" c:type="guint32"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_outcaps"
-              c:identifier="gst_basertppayload_set_outcaps"
-              doc="Configure the output caps with the optional parameters.
-Variable arguments should be in the form field name, field type
-(as a GType), value(s).  The last variable argument should be NULL.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="fieldname" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter transfer-ownership="none">
-            <varargs>
-            </varargs>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="is_filled"
-              c:identifier="gst_basertppayload_is_filled"
-              doc="Check if the packet with @size and @duration would exceed the configured
-maximum size.
-configured MTU or max_ptime.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="size" transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
-          </parameter>
-          <parameter name="duration" transfer-ownership="none">
-            <type name="Gst.ClockTime" c:type="GstClockTime"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="push"
-              c:identifier="gst_basertppayload_push"
-              doc="Push @buffer to the peer element of the payloader. The SSRC, payload type,
-seqnum and timestamp of the RTP buffer will be updated first.
-This function takes ownership of @buffer.">
-        <return-value transfer-ownership="full">
-          <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
-        </return-value>
-        <parameters>
-          <parameter name="buffer" transfer-ownership="none">
-            <type name="Gst.Buffer" c:type="GstBuffer*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="push_list"
-              c:identifier="gst_basertppayload_push_list"
-              doc="Push @list to the peer element of the payloader. The SSRC, payload type,
-seqnum and timestamp of the RTP buffer will be updated first.
-This function takes ownership of @list."
-              version="0.10.24">
-        <return-value transfer-ownership="full">
-          <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
-        </return-value>
-        <parameters>
-          <parameter name="list" transfer-ownership="none">
-            <type name="Gst.BufferList" c:type="GstBufferList*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <property name="max-ptime" writable="1">
-        <type name="int64" c:type="gint64"/>
-      </property>
-      <property name="min-ptime" writable="1">
-        <type name="int64" c:type="gint64"/>
-      </property>
-      <property name="mtu" writable="1">
-        <type name="uint" c:type="guint"/>
-      </property>
-      <property name="perfect-rtptime" writable="1">
-        <type name="boolean" c:type="gboolean"/>
-      </property>
-      <property name="pt" writable="1">
-        <type name="uint" c:type="guint"/>
-      </property>
-      <property name="ptime-multiple" writable="1">
-        <type name="int64" c:type="gint64"/>
-      </property>
-      <property name="seqnum">
-        <type name="uint" c:type="guint"/>
-      </property>
-      <property name="seqnum-offset" writable="1">
-        <type name="int" c:type="gint"/>
-      </property>
-      <property name="ssrc" writable="1">
-        <type name="uint" c:type="guint"/>
-      </property>
-      <property name="timestamp">
-        <type name="uint" c:type="guint"/>
-      </property>
-      <property name="timestamp-offset" writable="1">
-        <type name="uint" c:type="guint"/>
-      </property>
-      <field name="element">
-        <type name="Gst.Element" c:type="GstElement"/>
-      </field>
-      <field name="sinkpad">
-        <type name="Gst.Pad" c:type="GstPad*"/>
-      </field>
-      <field name="srcpad">
-        <type name="Gst.Pad" c:type="GstPad*"/>
-      </field>
-      <field name="seq_rand">
-        <type name="GLib.Rand" c:type="GRand*"/>
-      </field>
-      <field name="ssrc_rand">
-        <type name="GLib.Rand" c:type="GRand*"/>
-      </field>
-      <field name="ts_rand">
-        <type name="GLib.Rand" c:type="GRand*"/>
-      </field>
-      <field name="ts_base">
-        <type name="uint32" c:type="guint32"/>
-      </field>
-      <field name="seqnum_base">
-        <type name="uint16" c:type="guint16"/>
-      </field>
-      <field name="media">
-        <type name="utf8" c:type="gchar*"/>
-      </field>
-      <field name="encoding_name">
-        <type name="utf8" c:type="gchar*"/>
-      </field>
-      <field name="dynamic">
-        <type name="boolean" c:type="gboolean"/>
-      </field>
-      <field name="clock_rate">
-        <type name="uint32" c:type="guint32"/>
-      </field>
-      <field name="ts_offset">
-        <type name="int32" c:type="gint32"/>
-      </field>
-      <field name="timestamp">
-        <type name="uint32" c:type="guint32"/>
-      </field>
-      <field name="seqnum_offset">
-        <type name="int16" c:type="gint16"/>
-      </field>
-      <field name="seqnum">
-        <type name="uint16" c:type="guint16"/>
-      </field>
-      <field name="max_ptime">
-        <type name="int64" c:type="gint64"/>
-      </field>
-      <field name="pt">
-        <type name="uint" c:type="guint"/>
-      </field>
-      <field name="ssrc">
-        <type name="uint" c:type="guint"/>
-      </field>
-      <field name="current_ssrc">
-        <type name="uint" c:type="guint"/>
-      </field>
-      <field name="mtu">
-        <type name="uint" c:type="guint"/>
-      </field>
-      <field name="segment">
-        <type name="Gst.Segment" c:type="GstSegment"/>
-      </field>
-      <field name="min_ptime">
-        <type name="uint64" c:type="guint64"/>
-      </field>
-      <field name="priv">
-        <type name="BaseRTPPayloadPrivate" c:type="GstBaseRTPPayloadPrivate*"/>
-      </field>
-      <union name="abidata" c:type="abidata">
-        <record name="ABI" c:type="ABI">
-          <field name="ptime" writable="1">
-            <type name="uint64" c:type="guint64"/>
-          </field>
-          <field name="ptime_multiple" writable="1">
-            <type name="uint64" c:type="guint64"/>
-          </field>
-        </record>
-        <field name="_gst_reserved" writable="1">
-          <array zero-terminated="0" c:type="gpointer" fixed-size="3">
-            <type name="any"/>
-          </array>
-        </field>
-      </union>
-    </class>
-    <record name="BaseRTPPayloadClass"
-            c:type="GstBaseRTPPayloadClass"
-            glib:is-gtype-struct-for="BaseRTPPayload">
-      <field name="parent_class">
-        <type name="Gst.ElementClass" c:type="GstElementClass"/>
-      </field>
-      <field name="set_caps">
-        <callback name="set_caps" c:type="set_caps">
-          <return-value transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </return-value>
-          <parameters>
-            <parameter name="payload" transfer-ownership="none">
-              <type name="BaseRTPPayload" c:type="GstBaseRTPPayload*"/>
-            </parameter>
-            <parameter name="caps" transfer-ownership="none">
-              <type name="Gst.Caps" c:type="GstCaps*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="handle_buffer">
-        <callback name="handle_buffer" c:type="handle_buffer">
-          <return-value transfer-ownership="full">
-            <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
-          </return-value>
-          <parameters>
-            <parameter name="payload" transfer-ownership="none">
-              <type name="BaseRTPPayload" c:type="GstBaseRTPPayload*"/>
-            </parameter>
-            <parameter name="buffer" transfer-ownership="none">
-              <type name="Gst.Buffer" c:type="GstBuffer*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="handle_event">
-        <callback name="handle_event" c:type="handle_event">
-          <return-value transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </return-value>
-          <parameters>
-            <parameter name="pad" transfer-ownership="none">
-              <type name="Gst.Pad" c:type="GstPad*"/>
-            </parameter>
-            <parameter name="event" transfer-ownership="none">
-              <type name="Gst.Event" c:type="GstEvent*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="get_caps">
-        <callback name="get_caps" c:type="get_caps">
-          <return-value transfer-ownership="full">
-            <type name="Gst.Caps" c:type="GstCaps*"/>
-          </return-value>
-          <parameters>
-            <parameter name="payload" transfer-ownership="none">
-              <type name="BaseRTPPayload" c:type="GstBaseRTPPayload*"/>
-            </parameter>
-            <parameter name="pad" transfer-ownership="none">
-              <type name="Gst.Pad" c:type="GstPad*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="_gst_reserved">
-        <array zero-terminated="0" c:type="gpointer" fixed-size="2">
-          <type name="any"/>
-        </array>
-      </field>
-    </record>
-    <record name="BaseRTPPayloadPrivate" c:type="GstBaseRTPPayloadPrivate">
-    </record>
-    <constant name="PAYLOAD_1016_STRING" value="1">
-      <type name="utf8"/>
-    </constant>
-    <constant name="PAYLOAD_CELLB_STRING" value="25">
-      <type name="utf8"/>
-    </constant>
-    <constant name="PAYLOAD_CN_STRING" value="13">
-      <type name="utf8"/>
-    </constant>
-    <constant name="PAYLOAD_DVI4_11025_STRING" value="16">
-      <type name="utf8"/>
-    </constant>
-    <constant name="PAYLOAD_DVI4_16000_STRING" value="6">
-      <type name="utf8"/>
-    </constant>
-    <constant name="PAYLOAD_DVI4_22050_STRING" value="17">
-      <type name="utf8"/>
-    </constant>
-    <constant name="PAYLOAD_DVI4_8000_STRING" value="5">
-      <type name="utf8"/>
-    </constant>
-    <constant name="PAYLOAD_DYNAMIC_STRING" value="[96, 127]">
-      <type name="utf8"/>
-    </constant>
-    <constant name="PAYLOAD_G721_STRING" value="2">
-      <type name="utf8"/>
-    </constant>
-    <constant name="PAYLOAD_G722_STRING" value="9">
-      <type name="utf8"/>
-    </constant>
-    <constant name="PAYLOAD_G723_53" value="17">
-      <type name="int"/>
-    </constant>
-    <constant name="PAYLOAD_G723_53_STRING" value="17">
-      <type name="utf8"/>
-    </constant>
-    <constant name="PAYLOAD_G723_63" value="16">
-      <type name="int"/>
-    </constant>
-    <constant name="PAYLOAD_G723_63_STRING" value="16">
-      <type name="utf8"/>
-    </constant>
-    <constant name="PAYLOAD_G723_STRING" value="4">
-      <type name="utf8"/>
-    </constant>
-    <constant name="PAYLOAD_G728_STRING" value="15">
-      <type name="utf8"/>
-    </constant>
-    <constant name="PAYLOAD_G729_STRING" value="18">
-      <type name="utf8"/>
-    </constant>
-    <constant name="PAYLOAD_GSM_STRING" value="3">
-      <type name="utf8"/>
-    </constant>
-    <constant name="PAYLOAD_H261_STRING" value="31">
-      <type name="utf8"/>
-    </constant>
-    <constant name="PAYLOAD_H263_STRING" value="34">
-      <type name="utf8"/>
-    </constant>
-    <constant name="PAYLOAD_JPEG_STRING" value="26">
-      <type name="utf8"/>
-    </constant>
-    <constant name="PAYLOAD_L16_MONO_STRING" value="11">
-      <type name="utf8"/>
-    </constant>
-    <constant name="PAYLOAD_L16_STEREO_STRING" value="10">
-      <type name="utf8"/>
-    </constant>
-    <constant name="PAYLOAD_LPC_STRING" value="7">
-      <type name="utf8"/>
-    </constant>
-    <constant name="PAYLOAD_MP2T_STRING" value="33">
-      <type name="utf8"/>
-    </constant>
-    <constant name="PAYLOAD_MPA_STRING" value="14">
-      <type name="utf8"/>
-    </constant>
-    <constant name="PAYLOAD_MPV_STRING" value="32">
-      <type name="utf8"/>
-    </constant>
-    <constant name="PAYLOAD_NV_STRING" value="28">
-      <type name="utf8"/>
-    </constant>
-    <constant name="PAYLOAD_PCMA_STRING" value="8">
-      <type name="utf8"/>
-    </constant>
-    <constant name="PAYLOAD_PCMU_STRING" value="0">
-      <type name="utf8"/>
-    </constant>
-    <constant name="PAYLOAD_QCELP_STRING" value="12">
-      <type name="utf8"/>
-    </constant>
-    <constant name="PAYLOAD_TS41" value="19">
-      <type name="int"/>
-    </constant>
-    <constant name="PAYLOAD_TS41_STRING" value="19">
-      <type name="utf8"/>
-    </constant>
-    <constant name="PAYLOAD_TS48" value="18">
-      <type name="int"/>
-    </constant>
-    <constant name="PAYLOAD_TS48_STRING" value="18">
-      <type name="utf8"/>
-    </constant>
-    <enumeration name="RTCPFBType"
-                 doc="Different types of feedback messages."
-                 version="0.10.23"
-                 c:type="GstRTCPFBType">
-      <member name="fb_type_invalid"
-              value="0"
-              c:identifier="GST_RTCP_FB_TYPE_INVALID"/>
-      <member name="rtpfb_type_nack"
-              value="1"
-              c:identifier="GST_RTCP_RTPFB_TYPE_NACK"/>
-      <member name="psfb_type_pli"
-              value="1"
-              c:identifier="GST_RTCP_PSFB_TYPE_PLI"/>
-      <member name="psfb_type_sli"
-              value="2"
-              c:identifier="GST_RTCP_PSFB_TYPE_SLI"/>
-      <member name="psfb_type_rpsi"
-              value="3"
-              c:identifier="GST_RTCP_PSFB_TYPE_RPSI"/>
-      <member name="psfb_type_afb"
-              value="15"
-              c:identifier="GST_RTCP_PSFB_TYPE_AFB"/>
-    </enumeration>
-    <record name="RTCPPacket"
-            c:type="GstRTCPPacket"
-            doc="Data structure that points to a packet at @offset in @buffer.
-The size of the structure is made public to allow stack allocations.">
-      <field name="buffer" writable="1">
-        <type name="Gst.Buffer" c:type="GstBuffer*"/>
-      </field>
-      <field name="offset" writable="1">
-        <type name="uint" c:type="guint"/>
-      </field>
-      <field name="padding" writable="1">
-        <type name="boolean" c:type="gboolean"/>
-      </field>
-      <field name="count" writable="1">
-        <type name="uint8" c:type="guint8"/>
-      </field>
-      <field name="type" writable="1">
-        <type name="RTCPType" c:type="GstRTCPType"/>
-      </field>
-      <field name="length" writable="1">
-        <type name="uint16" c:type="guint16"/>
-      </field>
-      <field name="item_offset" writable="1">
-        <type name="uint" c:type="guint"/>
-      </field>
-      <field name="item_count" writable="1">
-        <type name="uint" c:type="guint"/>
-      </field>
-      <field name="entry_offset" writable="1">
-        <type name="uint" c:type="guint"/>
-      </field>
-      <method name="move_to_next"
-              c:identifier="gst_rtcp_packet_move_to_next"
-              doc="Move the packet pointer @packet to the next packet in the payload.
-Use gst_rtcp_buffer_get_first_packet() to initialize @packet.
-function.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-      </method>
-      <method name="remove"
-              c:identifier="gst_rtcp_packet_remove"
-              doc="Removes the packet pointed to by @packet and moves pointer to the next one
-function.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-      </method>
-      <method name="get_padding"
-              c:identifier="gst_rtcp_packet_get_padding"
-              doc="Get the packet padding of the packet pointed to by @packet.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-      </method>
-      <method name="get_count"
-              c:identifier="gst_rtcp_packet_get_count"
-              doc="Get the count field in @packet.
-valid packet.">
-        <return-value transfer-ownership="none">
-          <type name="uint8" c:type="guint8"/>
-        </return-value>
-      </method>
-      <method name="get_length"
-              c:identifier="gst_rtcp_packet_get_length"
-              doc="Get the length field of @packet. This is the length of the packet in
-32-bit words minus one.">
-        <return-value transfer-ownership="none">
-          <type name="uint16" c:type="guint16"/>
-        </return-value>
-      </method>
-      <method name="sr_get_sender_info"
-              c:identifier="gst_rtcp_packet_sr_get_sender_info"
-              doc="Parse the SR sender info and store the values.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="ssrc" direction="out" transfer-ownership="full">
-            <type name="uint32" c:type="guint32*"/>
-          </parameter>
-          <parameter name="ntptime" direction="out" transfer-ownership="full">
-            <type name="uint64" c:type="guint64*"/>
-          </parameter>
-          <parameter name="rtptime" direction="out" transfer-ownership="full">
-            <type name="uint32" c:type="guint32*"/>
-          </parameter>
-          <parameter name="packet_count"
-                     direction="out"
-                     transfer-ownership="full">
-            <type name="uint32" c:type="guint32*"/>
-          </parameter>
-          <parameter name="octet_count"
-                     direction="out"
-                     transfer-ownership="full">
-            <type name="uint32" c:type="guint32*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="sr_set_sender_info"
-              c:identifier="gst_rtcp_packet_sr_set_sender_info"
-              doc="Set the given values in the SR packet @packet.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="ssrc" transfer-ownership="none">
-            <type name="uint32" c:type="guint32"/>
-          </parameter>
-          <parameter name="ntptime" transfer-ownership="none">
-            <type name="uint64" c:type="guint64"/>
-          </parameter>
-          <parameter name="rtptime" transfer-ownership="none">
-            <type name="uint32" c:type="guint32"/>
-          </parameter>
-          <parameter name="packet_count" transfer-ownership="none">
-            <type name="uint32" c:type="guint32"/>
-          </parameter>
-          <parameter name="octet_count" transfer-ownership="none">
-            <type name="uint32" c:type="guint32"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="rr_get_ssrc"
-              c:identifier="gst_rtcp_packet_rr_get_ssrc"
-              doc="Get the ssrc field of the RR @packet.">
-        <return-value transfer-ownership="none">
-          <type name="uint32" c:type="guint32"/>
-        </return-value>
-      </method>
-      <method name="rr_set_ssrc"
-              c:identifier="gst_rtcp_packet_rr_set_ssrc"
-              doc="Set the ssrc field of the RR @packet.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="ssrc" transfer-ownership="none">
-            <type name="uint32" c:type="guint32"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_rb_count"
-              c:identifier="gst_rtcp_packet_get_rb_count"
-              doc="Get the number of report blocks in @packet.">
-        <return-value transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
-        </return-value>
-      </method>
-      <method name="get_rb"
-              c:identifier="gst_rtcp_packet_get_rb"
-              doc="Parse the values of the @nth report block in @packet and store the result in
-the values.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="nth" transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
-          </parameter>
-          <parameter name="ssrc" direction="out" transfer-ownership="full">
-            <type name="uint32" c:type="guint32*"/>
-          </parameter>
-          <parameter name="fractionlost" transfer-ownership="none">
-            <array c:type="guint8*">
-              <type name="uint8"/>
-            </array>
-          </parameter>
-          <parameter name="packetslost"
-                     direction="out"
-                     transfer-ownership="full">
-            <type name="int32" c:type="gint32*"/>
-          </parameter>
-          <parameter name="exthighestseq"
-                     direction="out"
-                     transfer-ownership="full">
-            <type name="uint32" c:type="guint32*"/>
-          </parameter>
-          <parameter name="jitter" direction="out" transfer-ownership="full">
-            <type name="uint32" c:type="guint32*"/>
-          </parameter>
-          <parameter name="lsr" direction="out" transfer-ownership="full">
-            <type name="uint32" c:type="guint32*"/>
-          </parameter>
-          <parameter name="dlsr" direction="out" transfer-ownership="full">
-            <type name="uint32" c:type="guint32*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="add_rb"
-              c:identifier="gst_rtcp_packet_add_rb"
-              doc="Add a new report block to @packet with the given values.
-the max MTU is exceeded or the number of report blocks is greater than
-#GST_RTCP_MAX_RB_COUNT.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="ssrc" transfer-ownership="none">
-            <type name="uint32" c:type="guint32"/>
-          </parameter>
-          <parameter name="fractionlost" transfer-ownership="none">
-            <type name="uint8" c:type="guint8"/>
-          </parameter>
-          <parameter name="packetslost" transfer-ownership="none">
-            <type name="int32" c:type="gint32"/>
-          </parameter>
-          <parameter name="exthighestseq" transfer-ownership="none">
-            <type name="uint32" c:type="guint32"/>
-          </parameter>
-          <parameter name="jitter" transfer-ownership="none">
-            <type name="uint32" c:type="guint32"/>
-          </parameter>
-          <parameter name="lsr" transfer-ownership="none">
-            <type name="uint32" c:type="guint32"/>
-          </parameter>
-          <parameter name="dlsr" transfer-ownership="none">
-            <type name="uint32" c:type="guint32"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_rb"
-              c:identifier="gst_rtcp_packet_set_rb"
-              doc="Set the @nth new report block in @packet with the given values.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="nth" transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
-          </parameter>
-          <parameter name="ssrc" transfer-ownership="none">
-            <type name="uint32" c:type="guint32"/>
-          </parameter>
-          <parameter name="fractionlost" transfer-ownership="none">
-            <type name="uint8" c:type="guint8"/>
-          </parameter>
-          <parameter name="packetslost" transfer-ownership="none">
-            <type name="int32" c:type="gint32"/>
-          </parameter>
-          <parameter name="exthighestseq" transfer-ownership="none">
-            <type name="uint32" c:type="guint32"/>
-          </parameter>
-          <parameter name="jitter" transfer-ownership="none">
-            <type name="uint32" c:type="guint32"/>
-          </parameter>
-          <parameter name="lsr" transfer-ownership="none">
-            <type name="uint32" c:type="guint32"/>
-          </parameter>
-          <parameter name="dlsr" transfer-ownership="none">
-            <type name="uint32" c:type="guint32"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="sdes_get_item_count"
-              c:identifier="gst_rtcp_packet_sdes_get_item_count"
-              doc="Get the number of items in the SDES packet @packet.">
-        <return-value transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
-        </return-value>
-      </method>
-      <method name="sdes_first_item"
-              c:identifier="gst_rtcp_packet_sdes_first_item"
-              doc="Move to the first SDES item in @packet.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-      </method>
-      <method name="sdes_next_item"
-              c:identifier="gst_rtcp_packet_sdes_next_item"
-              doc="Move to the next SDES item in @packet.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-      </method>
-      <method name="sdes_get_ssrc"
-              c:identifier="gst_rtcp_packet_sdes_get_ssrc"
-              doc="Get the SSRC of the current SDES item.">
-        <return-value transfer-ownership="none">
-          <type name="uint32" c:type="guint32"/>
-        </return-value>
-      </method>
-      <method name="sdes_first_entry"
-              c:identifier="gst_rtcp_packet_sdes_first_entry"
-              doc="Move to the first SDES entry in the current item.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-      </method>
-      <method name="sdes_next_entry"
-              c:identifier="gst_rtcp_packet_sdes_next_entry"
-              doc="Move to the next SDES entry in the current item.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-      </method>
-      <method name="sdes_get_entry"
-              c:identifier="gst_rtcp_packet_sdes_get_entry"
-              doc="Get the data of the current SDES item entry. @type (when not NULL) will
-contain the type of the entry. @data (when not NULL) will point to @len
-bytes.
-When @type refers to a text item, @data will point to a UTF8 string. Note
-that this UTF8 string is NOT null-terminated. Use
-gst_rtcp_packet_sdes_copy_entry() to get a null-termined copy of the entry.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="type" transfer-ownership="none">
-            <type name="RTCPSDESType" c:type="GstRTCPSDESType*"/>
-          </parameter>
-          <parameter name="len" transfer-ownership="none">
-            <array c:type="guint8*">
-              <type name="uint8"/>
-            </array>
-          </parameter>
-          <parameter name="data" direction="out" transfer-ownership="full">
-            <type name="uint8" c:type="guint8**"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="sdes_copy_entry"
-              c:identifier="gst_rtcp_packet_sdes_copy_entry"
-              doc="This function is like gst_rtcp_packet_sdes_get_entry() but it returns a
-null-terminated copy of the data instead. use g_free() after usage.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="type" transfer-ownership="none">
-            <type name="RTCPSDESType" c:type="GstRTCPSDESType*"/>
-          </parameter>
-          <parameter name="len" transfer-ownership="none">
-            <array c:type="guint8*">
-              <type name="uint8"/>
-            </array>
-          </parameter>
-          <parameter name="data" direction="out" transfer-ownership="full">
-            <type name="uint8" c:type="guint8**"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="sdes_add_item"
-              c:identifier="gst_rtcp_packet_sdes_add_item"
-              doc="Add a new SDES item for @ssrc to @packet.
-items has been exceeded for the SDES packet or the MTU has been reached.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="ssrc" transfer-ownership="none">
-            <type name="uint32" c:type="guint32"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="sdes_add_entry"
-              c:identifier="gst_rtcp_packet_sdes_add_entry"
-              doc="Add a new SDES entry to the current item in @packet.
-reached.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="type" transfer-ownership="none">
-            <type name="RTCPSDESType" c:type="GstRTCPSDESType"/>
-          </parameter>
-          <parameter name="len" transfer-ownership="none">
-            <type name="uint8" c:type="guint8"/>
-          </parameter>
-          <parameter name="data" transfer-ownership="none">
-            <array c:type="guint8*">
-              <type name="uint8"/>
-            </array>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="bye_get_ssrc_count"
-              c:identifier="gst_rtcp_packet_bye_get_ssrc_count"
-              doc="Get the number of SSRC fields in @packet.">
-        <return-value transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
-        </return-value>
-      </method>
-      <method name="bye_get_nth_ssrc"
-              c:identifier="gst_rtcp_packet_bye_get_nth_ssrc"
-              doc="Get the @nth SSRC of the BYE @packet.">
-        <return-value transfer-ownership="none">
-          <type name="uint32" c:type="guint32"/>
-        </return-value>
-        <parameters>
-          <parameter name="nth" transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="bye_add_ssrc"
-              c:identifier="gst_rtcp_packet_bye_add_ssrc"
-              doc="Add @ssrc to the BYE @packet.
-the max MTU is exceeded or the number of sources blocks is greater than
-#GST_RTCP_MAX_BYE_SSRC_COUNT.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="ssrc" transfer-ownership="none">
-            <type name="uint32" c:type="guint32"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="bye_add_ssrcs"
-              c:identifier="gst_rtcp_packet_bye_add_ssrcs"
-              doc="Adds @len SSRCs in @ssrc to BYE @packet.
-the max MTU is exceeded or the number of sources blocks is greater than
-#GST_RTCP_MAX_BYE_SSRC_COUNT.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="ssrc" direction="out" transfer-ownership="full">
-            <type name="uint32" c:type="guint32*"/>
-          </parameter>
-          <parameter name="len" transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="bye_get_reason_len"
-              c:identifier="gst_rtcp_packet_bye_get_reason_len"
-              doc="Get the length of the reason string.
-present.">
-        <return-value transfer-ownership="none">
-          <type name="uint8" c:type="guint8"/>
-        </return-value>
-      </method>
-      <method name="bye_get_reason"
-              c:identifier="gst_rtcp_packet_bye_get_reason"
-              doc="Get the reason in @packet.
-a reason string. The string must be freed with g_free() after usage.">
-        <return-value transfer-ownership="full">
-          <type name="utf8" c:type="gchar*"/>
-        </return-value>
-      </method>
-      <method name="bye_set_reason"
-              c:identifier="gst_rtcp_packet_bye_set_reason"
-              doc="Set the reason string to @reason in @packet.">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="reason" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="fb_get_sender_ssrc"
-              c:identifier="gst_rtcp_packet_fb_get_sender_ssrc"
-              doc="Get the sender SSRC field of the RTPFB or PSFB @packet."
-              version="0.10.23">
-        <return-value transfer-ownership="none">
-          <type name="uint32" c:type="guint32"/>
-        </return-value>
-      </method>
-      <method name="fb_set_sender_ssrc"
-              c:identifier="gst_rtcp_packet_fb_set_sender_ssrc"
-              doc="Set the sender SSRC field of the RTPFB or PSFB @packet."
-              version="0.10.23">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="ssrc" transfer-ownership="none">
-            <type name="uint32" c:type="guint32"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="fb_get_media_ssrc"
-              c:identifier="gst_rtcp_packet_fb_get_media_ssrc"
-              doc="Get the media SSRC field of the RTPFB or PSFB @packet."
-              version="0.10.23">
-        <return-value transfer-ownership="none">
-          <type name="uint32" c:type="guint32"/>
-        </return-value>
-      </method>
-      <method name="fb_set_media_ssrc"
-              c:identifier="gst_rtcp_packet_fb_set_media_ssrc"
-              doc="Set the media SSRC field of the RTPFB or PSFB @packet."
-              version="0.10.23">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="ssrc" transfer-ownership="none">
-            <type name="uint32" c:type="guint32"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="fb_set_type"
-              c:identifier="gst_rtcp_packet_fb_set_type"
-              doc="Set the feedback message type of the FB @packet."
-              version="0.10.23">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="type" transfer-ownership="none">
-            <type name="RTCPFBType" c:type="GstRTCPFBType"/>
-          </parameter>
-        </parameters>
-      </method>
-    </record>
-    <enumeration name="RTCPSDESType" c:type="GstRTCPSDESType">
-      <member name="invalid" value="-1" c:identifier="GST_RTCP_SDES_INVALID"/>
-      <member name="end" value="0" c:identifier="GST_RTCP_SDES_END"/>
-      <member name="cname" value="1" c:identifier="GST_RTCP_SDES_CNAME"/>
-      <member name="name" value="2" c:identifier="GST_RTCP_SDES_NAME"/>
-      <member name="email" value="3" c:identifier="GST_RTCP_SDES_EMAIL"/>
-      <member name="phone" value="4" c:identifier="GST_RTCP_SDES_PHONE"/>
-      <member name="loc" value="5" c:identifier="GST_RTCP_SDES_LOC"/>
-      <member name="tool" value="6" c:identifier="GST_RTCP_SDES_TOOL"/>
-      <member name="note" value="7" c:identifier="GST_RTCP_SDES_NOTE"/>
-      <member name="priv" value="8" c:identifier="GST_RTCP_SDES_PRIV"/>
-    </enumeration>
-    <enumeration name="RTCPType" c:type="GstRTCPType">
-      <member name="invalid" value="0" c:identifier="GST_RTCP_TYPE_INVALID"/>
-      <member name="sr" value="200" c:identifier="GST_RTCP_TYPE_SR"/>
-      <member name="rr" value="201" c:identifier="GST_RTCP_TYPE_RR"/>
-      <member name="sdes" value="202" c:identifier="GST_RTCP_TYPE_SDES"/>
-      <member name="bye" value="203" c:identifier="GST_RTCP_TYPE_BYE"/>
-      <member name="app" value="204" c:identifier="GST_RTCP_TYPE_APP"/>
-      <member name="rtpfb" value="205" c:identifier="GST_RTCP_TYPE_RTPFB"/>
-      <member name="psfb" value="206" c:identifier="GST_RTCP_TYPE_PSFB"/>
-    </enumeration>
-    <constant name="RTCP_MAX_BYE_SSRC_COUNT" value="31">
-      <type name="int"/>
-    </constant>
-    <constant name="RTCP_MAX_RB_COUNT" value="31">
-      <type name="int"/>
-    </constant>
-    <constant name="RTCP_MAX_SDES" value="255">
-      <type name="int"/>
-    </constant>
-    <constant name="RTCP_MAX_SDES_ITEM_COUNT" value="31">
-      <type name="int"/>
-    </constant>
-    <constant name="RTCP_VALID_MASK" value="57598">
-      <type name="int"/>
-    </constant>
-    <constant name="RTCP_VALID_VALUE" value="0">
-      <type name="int"/>
-    </constant>
-    <constant name="RTCP_VERSION" value="2">
-      <type name="int"/>
-    </constant>
-    <enumeration name="RTPPayload" c:type="GstRTPPayload">
-      <member name="pcmu" value="0" c:identifier="GST_RTP_PAYLOAD_PCMU"/>
-      <member name="1016" value="1" c:identifier="GST_RTP_PAYLOAD_1016"/>
-      <member name="g721" value="2" c:identifier="GST_RTP_PAYLOAD_G721"/>
-      <member name="gsm" value="3" c:identifier="GST_RTP_PAYLOAD_GSM"/>
-      <member name="g723" value="4" c:identifier="GST_RTP_PAYLOAD_G723"/>
-      <member name="dvi4_8000"
-              value="5"
-              c:identifier="GST_RTP_PAYLOAD_DVI4_8000"/>
-      <member name="dvi4_16000"
-              value="6"
-              c:identifier="GST_RTP_PAYLOAD_DVI4_16000"/>
-      <member name="lpc" value="7" c:identifier="GST_RTP_PAYLOAD_LPC"/>
-      <member name="pcma" value="8" c:identifier="GST_RTP_PAYLOAD_PCMA"/>
-      <member name="g722" value="9" c:identifier="GST_RTP_PAYLOAD_G722"/>
-      <member name="l16_stereo"
-              value="10"
-              c:identifier="GST_RTP_PAYLOAD_L16_STEREO"/>
-      <member name="l16_mono"
-              value="11"
-              c:identifier="GST_RTP_PAYLOAD_L16_MONO"/>
-      <member name="qcelp" value="12" c:identifier="GST_RTP_PAYLOAD_QCELP"/>
-      <member name="cn" value="13" c:identifier="GST_RTP_PAYLOAD_CN"/>
-      <member name="mpa" value="14" c:identifier="GST_RTP_PAYLOAD_MPA"/>
-      <member name="g728" value="15" c:identifier="GST_RTP_PAYLOAD_G728"/>
-      <member name="dvi4_11025"
-              value="16"
-              c:identifier="GST_RTP_PAYLOAD_DVI4_11025"/>
-      <member name="dvi4_22050"
-              value="17"
-              c:identifier="GST_RTP_PAYLOAD_DVI4_22050"/>
-      <member name="g729" value="18" c:identifier="GST_RTP_PAYLOAD_G729"/>
-      <member name="cellb" value="25" c:identifier="GST_RTP_PAYLOAD_CELLB"/>
-      <member name="jpeg" value="26" c:identifier="GST_RTP_PAYLOAD_JPEG"/>
-      <member name="nv" value="28" c:identifier="GST_RTP_PAYLOAD_NV"/>
-      <member name="h261" value="31" c:identifier="GST_RTP_PAYLOAD_H261"/>
-      <member name="mpv" value="32" c:identifier="GST_RTP_PAYLOAD_MPV"/>
-      <member name="mp2t" value="33" c:identifier="GST_RTP_PAYLOAD_MP2T"/>
-      <member name="h263" value="34" c:identifier="GST_RTP_PAYLOAD_H263"/>
-    </enumeration>
-    <record name="RTPPayloadInfo"
-            c:type="GstRTPPayloadInfo"
-            doc="&quot;message&quot;.
-channels. NULL = not applicable.
-Structure holding default payload type information.">
-      <field name="payload_type" writable="1">
-        <type name="uint8" c:type="guint8"/>
-      </field>
-      <field name="media" writable="1">
-        <type name="utf8" c:type="gchar*"/>
-      </field>
-      <field name="encoding_name" writable="1">
-        <type name="utf8" c:type="gchar*"/>
-      </field>
-      <field name="clock_rate" writable="1">
-        <type name="uint" c:type="guint"/>
-      </field>
-      <field name="encoding_parameters" writable="1">
-        <type name="utf8" c:type="gchar*"/>
-      </field>
-      <field name="bitrate" writable="1">
-        <type name="uint" c:type="guint"/>
-      </field>
-    </record>
-    <constant name="VERSION" value="2">
-      <type name="int"/>
-    </constant>
-    <function name="buffer_allocate_data"
-              c:identifier="gst_rtp_buffer_allocate_data"
-              doc="Allocate enough data in @buffer to hold an RTP packet with @csrc_count CSRCs,
-a payload length of @payload_len and padding of @pad_len.
-MALLOCDATA of @buffer will be overwritten and will not be freed.
-All other RTP header fields will be set to 0/FALSE.">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="buffer" transfer-ownership="none">
-          <type name="Gst.Buffer" c:type="GstBuffer*"/>
-        </parameter>
-        <parameter name="payload_len" transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
-        </parameter>
-        <parameter name="pad_len" transfer-ownership="none">
-          <type name="uint8" c:type="guint8"/>
-        </parameter>
-        <parameter name="csrc_count" transfer-ownership="none">
-          <type name="uint8" c:type="guint8"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="buffer_calc_header_len"
-              c:identifier="gst_rtp_buffer_calc_header_len"
-              doc="Calculate the header length of an RTP packet with @csrc_count CSRC entries.
-An RTP packet can have at most 15 CSRC entries.">
-      <return-value transfer-ownership="none">
-        <type name="uint" c:type="guint"/>
-      </return-value>
-      <parameters>
-        <parameter name="csrc_count" transfer-ownership="none">
-          <type name="uint8" c:type="guint8"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="buffer_calc_packet_len"
-              c:identifier="gst_rtp_buffer_calc_packet_len"
-              doc="Calculate the total length of an RTP packet with a payload size of @payload_len,
-a padding of @pad_len and a @csrc_count CSRC entries.">
-      <return-value transfer-ownership="none">
-        <type name="uint" c:type="guint"/>
-      </return-value>
-      <parameters>
-        <parameter name="payload_len" transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
-        </parameter>
-        <parameter name="pad_len" transfer-ownership="none">
-          <type name="uint8" c:type="guint8"/>
-        </parameter>
-        <parameter name="csrc_count" transfer-ownership="none">
-          <type name="uint8" c:type="guint8"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="buffer_calc_payload_len"
-              c:identifier="gst_rtp_buffer_calc_payload_len"
-              doc="Calculate the length of the payload of an RTP packet with size @packet_len,
-a padding of @pad_len and a @csrc_count CSRC entries.">
-      <return-value transfer-ownership="none">
-        <type name="uint" c:type="guint"/>
-      </return-value>
-      <parameters>
-        <parameter name="packet_len" transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
-        </parameter>
-        <parameter name="pad_len" transfer-ownership="none">
-          <type name="uint8" c:type="guint8"/>
-        </parameter>
-        <parameter name="csrc_count" transfer-ownership="none">
-          <type name="uint8" c:type="guint8"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="buffer_compare_seqnum"
-              c:identifier="gst_rtp_buffer_compare_seqnum"
-              doc="Compare two sequence numbers, taking care of wraparounds. This function
-returns the difference between @seqnum1 and @seqnum2.
-are equal or a positive value if @seqnum1 is smaller than @segnum2."
-              version="0.10.15">
-      <return-value transfer-ownership="none">
-        <type name="int" c:type="gint"/>
-      </return-value>
-      <parameters>
-        <parameter name="seqnum1" transfer-ownership="none">
-          <type name="uint16" c:type="guint16"/>
-        </parameter>
-        <parameter name="seqnum2" transfer-ownership="none">
-          <type name="uint16" c:type="guint16"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="buffer_default_clock_rate"
-              c:identifier="gst_rtp_buffer_default_clock_rate"
-              doc="Get the default clock-rate for the static payload type @payload_type.
-the clock-rate is undefined."
-              version="0.10.13">
-      <return-value transfer-ownership="none">
-        <type name="uint32" c:type="guint32"/>
-      </return-value>
-      <parameters>
-        <parameter name="payload_type" transfer-ownership="none">
-          <type name="uint8" c:type="guint8"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="buffer_ext_timestamp"
-              c:identifier="gst_rtp_buffer_ext_timestamp"
-              doc="Update the @exttimestamp field with @timestamp. For the first call of the
-method, @exttimestamp should point to a location with a value of -1.
-This function makes sure that the returned value is a constantly increasing
-value even in the case where there is a timestamp wraparound."
-              version="0.10.15">
-      <return-value transfer-ownership="none">
-        <type name="uint64" c:type="guint64"/>
-      </return-value>
-      <parameters>
-        <parameter name="exttimestamp"
-                   direction="out"
-                   transfer-ownership="full">
-          <type name="uint64" c:type="guint64*"/>
-        </parameter>
-        <parameter name="timestamp" transfer-ownership="none">
-          <type name="uint32" c:type="guint32"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="buffer_get_csrc"
-              c:identifier="gst_rtp_buffer_get_csrc"
-              doc="Get the CSRC at index @idx in @buffer.">
-      <return-value transfer-ownership="none">
-        <type name="uint32" c:type="guint32"/>
-      </return-value>
-      <parameters>
-        <parameter name="buffer" transfer-ownership="none">
-          <type name="Gst.Buffer" c:type="GstBuffer*"/>
-        </parameter>
-        <parameter name="idx" transfer-ownership="none">
-          <type name="uint8" c:type="guint8"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="buffer_get_csrc_count"
-              c:identifier="gst_rtp_buffer_get_csrc_count"
-              doc="Get the CSRC count of the RTP packet in @buffer.">
-      <return-value transfer-ownership="none">
-        <type name="uint8" c:type="guint8"/>
-      </return-value>
-      <parameters>
-        <parameter name="buffer" transfer-ownership="none">
-          <type name="Gst.Buffer" c:type="GstBuffer*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="buffer_get_extension"
-              c:identifier="gst_rtp_buffer_get_extension"
-              doc="Check if the extension bit is set on the RTP packet in @buffer.">
-      <return-value transfer-ownership="none">
-        <type name="boolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="buffer" transfer-ownership="none">
-          <type name="Gst.Buffer" c:type="GstBuffer*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="buffer_get_extension_data"
-              c:identifier="gst_rtp_buffer_get_extension_data"
-              doc="Get the extension data. @bits will contain the extension 16 bits of custom
-data. @data will point to the data in the extension and @wordlen will contain
-the length of @data in 32 bits words.
-If @buffer did not contain an extension, this function will return %FALSE
-with @bits, @data and @wordlen unchanged."
-              version="0.10.15">
-      <return-value transfer-ownership="none">
-        <type name="boolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="buffer" transfer-ownership="none">
-          <type name="Gst.Buffer" c:type="GstBuffer*"/>
-        </parameter>
-        <parameter name="bits" direction="out" transfer-ownership="full">
-          <type name="uint16" c:type="guint16*"/>
-        </parameter>
-        <parameter name="data" transfer-ownership="none">
-          <type name="any" c:type="gpointer*"/>
-        </parameter>
-        <parameter name="wordlen" direction="out" transfer-ownership="full">
-          <type name="uint" c:type="guint*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="buffer_get_header_len"
-              c:identifier="gst_rtp_buffer_get_header_len"
-              doc="Return the total length of the header in @buffer. This include the length of
-the fixed header, the CSRC list and the extension header.">
-      <return-value transfer-ownership="none">
-        <type name="uint" c:type="guint"/>
-      </return-value>
-      <parameters>
-        <parameter name="buffer" transfer-ownership="none">
-          <type name="Gst.Buffer" c:type="GstBuffer*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="buffer_get_marker"
-              c:identifier="gst_rtp_buffer_get_marker"
-              doc="Check if the marker bit is set on the RTP packet in @buffer.">
-      <return-value transfer-ownership="none">
-        <type name="boolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="buffer" transfer-ownership="none">
-          <type name="Gst.Buffer" c:type="GstBuffer*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="buffer_get_packet_len"
-              c:identifier="gst_rtp_buffer_get_packet_len"
-              doc="Return the total length of the packet in @buffer.">
-      <return-value transfer-ownership="none">
-        <type name="uint" c:type="guint"/>
-      </return-value>
-      <parameters>
-        <parameter name="buffer" transfer-ownership="none">
-          <type name="Gst.Buffer" c:type="GstBuffer*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="buffer_get_padding"
-              c:identifier="gst_rtp_buffer_get_padding"
-              doc="Check if the padding bit is set on the RTP packet in @buffer.">
-      <return-value transfer-ownership="none">
-        <type name="boolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="buffer" transfer-ownership="none">
-          <type name="Gst.Buffer" c:type="GstBuffer*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="buffer_get_payload"
-              c:identifier="gst_rtp_buffer_get_payload"
-              doc="Get a pointer to the payload data in @buffer. This pointer is valid as long
-as a reference to @buffer is held.">
-      <return-value transfer-ownership="none">
-        <type name="any" c:type="gpointer"/>
-      </return-value>
-      <parameters>
-        <parameter name="buffer" transfer-ownership="none">
-          <type name="Gst.Buffer" c:type="GstBuffer*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="buffer_get_payload_buffer"
-              c:identifier="gst_rtp_buffer_get_payload_buffer"
-              doc="Create a buffer of the payload of the RTP packet in @buffer. This function
-will internally create a subbuffer of @buffer so that a memcpy can be
-avoided.">
-      <return-value transfer-ownership="full">
-        <type name="Gst.Buffer" c:type="GstBuffer*"/>
-      </return-value>
-      <parameters>
-        <parameter name="buffer" transfer-ownership="none">
-          <type name="Gst.Buffer" c:type="GstBuffer*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="buffer_get_payload_len"
-              c:identifier="gst_rtp_buffer_get_payload_len"
-              doc="Get the length of the payload of the RTP packet in @buffer.">
-      <return-value transfer-ownership="none">
-        <type name="uint" c:type="guint"/>
-      </return-value>
-      <parameters>
-        <parameter name="buffer" transfer-ownership="none">
-          <type name="Gst.Buffer" c:type="GstBuffer*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="buffer_get_payload_subbuffer"
-              c:identifier="gst_rtp_buffer_get_payload_subbuffer"
-              doc="Create a subbuffer of the payload of the RTP packet in @buffer. @offset bytes
-are skipped in the payload and the subbuffer will be of size @len.
-If @len is -1 the total payload starting from @offset if subbuffered."
-              version="0.10.10">
-      <return-value transfer-ownership="full">
-        <type name="Gst.Buffer" c:type="GstBuffer*"/>
-      </return-value>
-      <parameters>
-        <parameter name="buffer" transfer-ownership="none">
-          <type name="Gst.Buffer" c:type="GstBuffer*"/>
-        </parameter>
-        <parameter name="offset" transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
-        </parameter>
-        <parameter name="len" transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="buffer_get_payload_type"
-              c:identifier="gst_rtp_buffer_get_payload_type"
-              doc="Get the payload type of the RTP packet in @buffer.">
-      <return-value transfer-ownership="none">
-        <type name="uint8" c:type="guint8"/>
-      </return-value>
-      <parameters>
-        <parameter name="buffer" transfer-ownership="none">
-          <type name="Gst.Buffer" c:type="GstBuffer*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="buffer_get_seq"
-              c:identifier="gst_rtp_buffer_get_seq"
-              doc="Get the sequence number of the RTP packet in @buffer.">
-      <return-value transfer-ownership="none">
-        <type name="uint16" c:type="guint16"/>
-      </return-value>
-      <parameters>
-        <parameter name="buffer" transfer-ownership="none">
-          <type name="Gst.Buffer" c:type="GstBuffer*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="buffer_get_ssrc"
-              c:identifier="gst_rtp_buffer_get_ssrc"
-              doc="Get the SSRC of the RTP packet in @buffer.">
-      <return-value transfer-ownership="none">
-        <type name="uint32" c:type="guint32"/>
-      </return-value>
-      <parameters>
-        <parameter name="buffer" transfer-ownership="none">
-          <type name="Gst.Buffer" c:type="GstBuffer*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="buffer_get_timestamp"
-              c:identifier="gst_rtp_buffer_get_timestamp"
-              doc="Get the timestamp of the RTP packet in @buffer.">
-      <return-value transfer-ownership="none">
-        <type name="uint32" c:type="guint32"/>
-      </return-value>
-      <parameters>
-        <parameter name="buffer" transfer-ownership="none">
-          <type name="Gst.Buffer" c:type="GstBuffer*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="buffer_get_version"
-              c:identifier="gst_rtp_buffer_get_version"
-              doc="Get the version number of the RTP packet in @buffer.">
-      <return-value transfer-ownership="none">
-        <type name="uint8" c:type="guint8"/>
-      </return-value>
-      <parameters>
-        <parameter name="buffer" transfer-ownership="none">
-          <type name="Gst.Buffer" c:type="GstBuffer*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="buffer_list_get_payload_len"
-              c:identifier="gst_rtp_buffer_list_get_payload_len"
-              doc="Get the length of the payload of the RTP packet in @list."
-              version="0.10.24">
-      <return-value transfer-ownership="none">
-        <type name="uint" c:type="guint"/>
-      </return-value>
-      <parameters>
-        <parameter name="list" transfer-ownership="none">
-          <type name="Gst.BufferList" c:type="GstBufferList*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="buffer_list_get_payload_type"
-              c:identifier="gst_rtp_buffer_list_get_payload_type"
-              doc="Get the payload type of the first RTP packet in @list.
-All packets in @list should have the same payload type."
-              version="0.10.24">
-      <return-value transfer-ownership="none">
-        <type name="uint8" c:type="guint8"/>
-      </return-value>
-      <parameters>
-        <parameter name="list" transfer-ownership="none">
-          <type name="Gst.BufferList" c:type="GstBufferList*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="buffer_list_get_seq"
-              c:identifier="gst_rtp_buffer_list_get_seq"
-              doc="Get the sequence number of the first RTP packet in @list.
-All packets within @list have the same sequence number."
-              version="0.10.24">
-      <return-value transfer-ownership="none">
-        <type name="uint16" c:type="guint16"/>
-      </return-value>
-      <parameters>
-        <parameter name="list" transfer-ownership="none">
-          <type name="Gst.BufferList" c:type="GstBufferList*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="buffer_list_get_ssrc"
-              c:identifier="gst_rtp_buffer_list_get_ssrc"
-              doc="Get the SSRC of the first RTP packet in @list.
-All RTP packets within @list have the same SSRC."
-              version="0.10.24">
-      <return-value transfer-ownership="none">
-        <type name="uint32" c:type="guint32"/>
-      </return-value>
-      <parameters>
-        <parameter name="list" transfer-ownership="none">
-          <type name="Gst.BufferList" c:type="GstBufferList*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="buffer_list_get_timestamp"
-              c:identifier="gst_rtp_buffer_list_get_timestamp"
-              doc="Get the timestamp of the first RTP packet in @list.
-All packets within @list have the same timestamp."
-              version="0.10.24">
-      <return-value transfer-ownership="none">
-        <type name="uint32" c:type="guint32"/>
-      </return-value>
-      <parameters>
-        <parameter name="list" transfer-ownership="none">
-          <type name="Gst.BufferList" c:type="GstBufferList*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="buffer_list_set_payload_type"
-              c:identifier="gst_rtp_buffer_list_set_payload_type"
-              doc="Set the payload type of each RTP packet in @list to @payload_type."
-              version="0.10.24">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="list" transfer-ownership="none">
-          <type name="Gst.BufferList" c:type="GstBufferList*"/>
-        </parameter>
-        <parameter name="payload_type" transfer-ownership="none">
-          <type name="uint8" c:type="guint8"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="buffer_list_set_seq"
-              c:identifier="gst_rtp_buffer_list_set_seq"
-              doc="Set the sequence number of each RTP packet in @list to @seq."
-              version="0.10.24">
-      <return-value transfer-ownership="none">
-        <type name="uint16" c:type="guint16"/>
-      </return-value>
-      <parameters>
-        <parameter name="list" transfer-ownership="none">
-          <type name="Gst.BufferList" c:type="GstBufferList*"/>
-        </parameter>
-        <parameter name="seq" transfer-ownership="none">
-          <type name="uint16" c:type="guint16"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="buffer_list_set_ssrc"
-              c:identifier="gst_rtp_buffer_list_set_ssrc"
-              doc="Set the SSRC on each RTP packet in @list to @ssrc."
-              version="0.10.24">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="list" transfer-ownership="none">
-          <type name="Gst.BufferList" c:type="GstBufferList*"/>
-        </parameter>
-        <parameter name="ssrc" transfer-ownership="none">
-          <type name="uint32" c:type="guint32"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="buffer_list_set_timestamp"
-              c:identifier="gst_rtp_buffer_list_set_timestamp"
-              doc="Set the timestamp of each RTP packet in @list to @timestamp."
-              version="0.10.24">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="list" transfer-ownership="none">
-          <type name="Gst.BufferList" c:type="GstBufferList*"/>
-        </parameter>
-        <parameter name="timestamp" transfer-ownership="none">
-          <type name="uint32" c:type="guint32"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="buffer_list_validate"
-              c:identifier="gst_rtp_buffer_list_validate"
-              doc="Check if all RTP packets in the @list are valid using validate_data().
-Use this function to validate an list before using the other functions in
-this module."
-              version="0.10.24">
-      <return-value transfer-ownership="none">
-        <type name="boolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="list" transfer-ownership="none">
-          <type name="Gst.BufferList" c:type="GstBufferList*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="buffer_new_allocate"
-              c:identifier="gst_rtp_buffer_new_allocate"
-              doc="Allocate a new #GstBuffer with enough data to hold an RTP packet with
-All other RTP header fields will be set to 0/FALSE.
-parameters.">
-      <return-value transfer-ownership="full">
-        <type name="Gst.Buffer" c:type="GstBuffer*"/>
-      </return-value>
-      <parameters>
-        <parameter name="payload_len" transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
-        </parameter>
-        <parameter name="pad_len" transfer-ownership="none">
-          <type name="uint8" c:type="guint8"/>
-        </parameter>
-        <parameter name="csrc_count" transfer-ownership="none">
-          <type name="uint8" c:type="guint8"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="buffer_new_allocate_len"
-              c:identifier="gst_rtp_buffer_new_allocate_len"
-              doc="Create a new #GstBuffer that can hold an RTP packet that is exactly
-All RTP header fields will be set to 0/FALSE.">
-      <return-value transfer-ownership="full">
-        <type name="Gst.Buffer" c:type="GstBuffer*"/>
-      </return-value>
-      <parameters>
-        <parameter name="packet_len" transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
-        </parameter>
-        <parameter name="pad_len" transfer-ownership="none">
-          <type name="uint8" c:type="guint8"/>
-        </parameter>
-        <parameter name="csrc_count" transfer-ownership="none">
-          <type name="uint8" c:type="guint8"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="buffer_new_copy_data"
-              c:identifier="gst_rtp_buffer_new_copy_data"
-              doc="Create a new buffer and set the data to a copy of @len
-bytes of @data and the size to @len. The data will be freed when the buffer
-is freed.">
-      <return-value transfer-ownership="full">
-        <type name="Gst.Buffer" c:type="GstBuffer*"/>
-      </return-value>
-      <parameters>
-        <parameter name="data" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
-        </parameter>
-        <parameter name="len" transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="buffer_new_take_data"
-              c:identifier="gst_rtp_buffer_new_take_data"
-              doc="Create a new buffer and set the data and size of the buffer to @data and @len
-respectively. @data will be freed when the buffer is unreffed, so this
-function transfers ownership of @data to the new buffer.">
-      <return-value transfer-ownership="full">
-        <type name="Gst.Buffer" c:type="GstBuffer*"/>
-      </return-value>
-      <parameters>
-        <parameter name="data" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
-        </parameter>
-        <parameter name="len" transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="buffer_pad_to"
-              c:identifier="gst_rtp_buffer_pad_to"
-              doc="Set the amount of padding in the RTP packet in @buffer to">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="buffer" transfer-ownership="none">
-          <type name="Gst.Buffer" c:type="GstBuffer*"/>
-        </parameter>
-        <parameter name="len" transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="buffer_set_csrc"
-              c:identifier="gst_rtp_buffer_set_csrc"
-              doc="Modify the CSRC at index @idx in @buffer to @csrc.">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="buffer" transfer-ownership="none">
-          <type name="Gst.Buffer" c:type="GstBuffer*"/>
-        </parameter>
-        <parameter name="idx" transfer-ownership="none">
-          <type name="uint8" c:type="guint8"/>
-        </parameter>
-        <parameter name="csrc" transfer-ownership="none">
-          <type name="uint32" c:type="guint32"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="buffer_set_extension"
-              c:identifier="gst_rtp_buffer_set_extension"
-              doc="Set the extension bit on the RTP packet in @buffer to @extension.">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="buffer" transfer-ownership="none">
-          <type name="Gst.Buffer" c:type="GstBuffer*"/>
-        </parameter>
-        <parameter name="extension" transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="buffer_set_extension_data"
-              c:identifier="gst_rtp_buffer_set_extension_data"
-              doc="the extension, excluding the extension header ( therefore zero is a valid length)
-Set the extension bit of the rtp buffer and fill in the @bits and @length of the
-extension header. It will refuse to set the extension data if the buffer is not
-large enough.">
-      <return-value transfer-ownership="none">
-        <type name="boolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="buffer" transfer-ownership="none">
-          <type name="Gst.Buffer" c:type="GstBuffer*"/>
-        </parameter>
-        <parameter name="bits" transfer-ownership="none">
-          <type name="uint16" c:type="guint16"/>
-        </parameter>
-        <parameter name="length" transfer-ownership="none">
-          <type name="uint16" c:type="guint16"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="buffer_set_marker"
-              c:identifier="gst_rtp_buffer_set_marker"
-              doc="Set the marker bit on the RTP packet in @buffer to @marker.">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="buffer" transfer-ownership="none">
-          <type name="Gst.Buffer" c:type="GstBuffer*"/>
-        </parameter>
-        <parameter name="marker" transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="buffer_set_packet_len"
-              c:identifier="gst_rtp_buffer_set_packet_len"
-              doc="Set the total @buffer size to @len. The data in the buffer will be made
-larger if needed. Any padding will be removed from the packet.">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="buffer" transfer-ownership="none">
-          <type name="Gst.Buffer" c:type="GstBuffer*"/>
-        </parameter>
-        <parameter name="len" transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="buffer_set_padding"
-              c:identifier="gst_rtp_buffer_set_padding"
-              doc="Set the padding bit on the RTP packet in @buffer to @padding.">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="buffer" transfer-ownership="none">
-          <type name="Gst.Buffer" c:type="GstBuffer*"/>
-        </parameter>
-        <parameter name="padding" transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="buffer_set_payload_type"
-              c:identifier="gst_rtp_buffer_set_payload_type"
-              doc="Set the payload type of the RTP packet in @buffer to @payload_type.">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="buffer" transfer-ownership="none">
-          <type name="Gst.Buffer" c:type="GstBuffer*"/>
-        </parameter>
-        <parameter name="payload_type" transfer-ownership="none">
-          <type name="uint8" c:type="guint8"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="buffer_set_seq"
-              c:identifier="gst_rtp_buffer_set_seq"
-              doc="Set the sequence number of the RTP packet in @buffer to @seq.">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="buffer" transfer-ownership="none">
-          <type name="Gst.Buffer" c:type="GstBuffer*"/>
-        </parameter>
-        <parameter name="seq" transfer-ownership="none">
-          <type name="uint16" c:type="guint16"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="buffer_set_ssrc"
-              c:identifier="gst_rtp_buffer_set_ssrc"
-              doc="Set the SSRC on the RTP packet in @buffer to @ssrc.">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="buffer" transfer-ownership="none">
-          <type name="Gst.Buffer" c:type="GstBuffer*"/>
-        </parameter>
-        <parameter name="ssrc" transfer-ownership="none">
-          <type name="uint32" c:type="guint32"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="buffer_set_timestamp"
-              c:identifier="gst_rtp_buffer_set_timestamp"
-              doc="Set the timestamp of the RTP packet in @buffer to @timestamp.">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="buffer" transfer-ownership="none">
-          <type name="Gst.Buffer" c:type="GstBuffer*"/>
-        </parameter>
-        <parameter name="timestamp" transfer-ownership="none">
-          <type name="uint32" c:type="guint32"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="buffer_set_version"
-              c:identifier="gst_rtp_buffer_set_version"
-              doc="Set the version of the RTP packet in @buffer to @version.">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="buffer" transfer-ownership="none">
-          <type name="Gst.Buffer" c:type="GstBuffer*"/>
-        </parameter>
-        <parameter name="version" transfer-ownership="none">
-          <type name="uint8" c:type="guint8"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="buffer_validate"
-              c:identifier="gst_rtp_buffer_validate"
-              doc="Check if the data pointed to by @buffer is a valid RTP packet using
-validate_data().
-Use this function to validate a packet before using the other functions in
-this module.">
-      <return-value transfer-ownership="none">
-        <type name="boolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="buffer" transfer-ownership="none">
-          <type name="Gst.Buffer" c:type="GstBuffer*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="buffer_validate_data"
-              c:identifier="gst_rtp_buffer_validate_data"
-              doc="Check if the @data and @size point to the data of a valid RTP packet.
-This function checks the length, version and padding of the packet data.
-Use this function to validate a packet before using the other functions in
-this module.">
-      <return-value transfer-ownership="none">
-        <type name="boolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="data" transfer-ownership="none">
-          <array c:type="guint8*">
-            <type name="uint8"/>
-          </array>
-        </parameter>
-        <parameter name="len" transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="payload_info_for_name"
-              c:identifier="gst_rtp_payload_info_for_name"
-              doc="Get the #GstRTPPayloadInfo for @media and @encoding_name. This function is
-mostly used to get the default clock-rate and bandwidth for dynamic payload
-types specified with @media and @encoding name.
-The search for @encoding_name will be performed in a case insensitve way.">
-      <return-value transfer-ownership="none">
-        <type name="RTPPayloadInfo" c:type="GstRTPPayloadInfo*"/>
-      </return-value>
-      <parameters>
-        <parameter name="media" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-        <parameter name="encoding_name" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="payload_info_for_pt"
-              c:identifier="gst_rtp_payload_info_for_pt"
-              doc="Get the #GstRTPPayloadInfo for @payload_type. This function is
-mostly used to get the default clock-rate and bandwidth for static payload
-types specified with @payload_type.">
-      <return-value transfer-ownership="none">
-        <type name="RTPPayloadInfo" c:type="GstRTPPayloadInfo*"/>
-      </return-value>
-      <parameters>
-        <parameter name="payload_type" transfer-ownership="none">
-          <type name="uint8" c:type="guint8"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="rtcp_buffer_add_packet"
-              c:identifier="gst_rtcp_buffer_add_packet"
-              doc="Add a new packet of @type to @buffer. @packet will point to the newly created
-packet.
-if the max mtu is exceeded for the buffer.">
-      <return-value transfer-ownership="none">
-        <type name="boolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="buffer" transfer-ownership="none">
-          <type name="Gst.Buffer" c:type="GstBuffer*"/>
-        </parameter>
-        <parameter name="type" transfer-ownership="none">
-          <type name="RTCPType" c:type="GstRTCPType"/>
-        </parameter>
-        <parameter name="packet" transfer-ownership="none">
-          <type name="RTCPPacket" c:type="GstRTCPPacket*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="rtcp_buffer_end"
-              c:identifier="gst_rtcp_buffer_end"
-              doc="Finish @buffer after being constructured. This function is usually called
-after gst_rtcp_buffer_new() and after adding the RTCP items to the new buffer.
-The function adjusts the size of @buffer with the total length of all the
-added packets.">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="buffer" transfer-ownership="none">
-          <type name="Gst.Buffer" c:type="GstBuffer*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="rtcp_buffer_get_first_packet"
-              c:identifier="gst_rtcp_buffer_get_first_packet"
-              doc="Initialize a new #GstRTCPPacket pointer that points to the first packet in">
-      <return-value transfer-ownership="none">
-        <type name="boolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="buffer" transfer-ownership="none">
-          <type name="Gst.Buffer" c:type="GstBuffer*"/>
-        </parameter>
-        <parameter name="packet" transfer-ownership="none">
-          <type name="RTCPPacket" c:type="GstRTCPPacket*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="rtcp_buffer_get_packet_count"
-              c:identifier="gst_rtcp_buffer_get_packet_count"
-              doc="Get the number of RTCP packets in @buffer.">
-      <return-value transfer-ownership="none">
-        <type name="uint" c:type="guint"/>
-      </return-value>
-      <parameters>
-        <parameter name="buffer" transfer-ownership="none">
-          <type name="Gst.Buffer" c:type="GstBuffer*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="rtcp_buffer_new"
-              c:identifier="gst_rtcp_buffer_new"
-              doc="Create a new buffer for constructing RTCP packets. The packet will have a
-maximum size of @mtu.">
-      <return-value transfer-ownership="full">
-        <type name="Gst.Buffer" c:type="GstBuffer*"/>
-      </return-value>
-      <parameters>
-        <parameter name="mtu" transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="rtcp_buffer_new_copy_data"
-              c:identifier="gst_rtcp_buffer_new_copy_data"
-              doc="Create a new buffer and set the data to a copy of @len
-bytes of @data and the size to @len. The data will be freed when the buffer
-is freed.">
-      <return-value transfer-ownership="full">
-        <type name="Gst.Buffer" c:type="GstBuffer*"/>
-      </return-value>
-      <parameters>
-        <parameter name="data" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
-        </parameter>
-        <parameter name="len" transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="rtcp_buffer_new_take_data"
-              c:identifier="gst_rtcp_buffer_new_take_data"
-              doc="Create a new buffer and set the data and size of the buffer to @data and @len
-respectively. @data will be freed when the buffer is unreffed, so this
-function transfers ownership of @data to the new buffer.">
-      <return-value transfer-ownership="full">
-        <type name="Gst.Buffer" c:type="GstBuffer*"/>
-      </return-value>
-      <parameters>
-        <parameter name="data" transfer-ownership="none">
-          <type name="any" c:type="gpointer"/>
-        </parameter>
-        <parameter name="len" transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="rtcp_buffer_validate"
-              c:identifier="gst_rtcp_buffer_validate"
-              doc="Check if the data pointed to by @buffer is a valid RTCP packet using
-gst_rtcp_buffer_validate_data().">
-      <return-value transfer-ownership="none">
-        <type name="boolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="buffer" transfer-ownership="none">
-          <type name="Gst.Buffer" c:type="GstBuffer*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="rtcp_buffer_validate_data"
-              c:identifier="gst_rtcp_buffer_validate_data"
-              doc="Check if the @data and @size point to the data of a valid RTCP (compound)
-packet.
-Use this function to validate a packet before using the other functions in
-this module.">
-      <return-value transfer-ownership="none">
-        <type name="boolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="data" transfer-ownership="none">
-          <array c:type="guint8*">
-            <type name="uint8"/>
-          </array>
-        </parameter>
-        <parameter name="len" transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="rtcp_ntp_to_unix"
-              c:identifier="gst_rtcp_ntp_to_unix"
-              doc="Converts an NTP time to UNIX nanoseconds. @ntptime can typically be
-the NTP time of an SR RTCP message and contains, in the upper 32 bits, the
-number of seconds since 1900 and, in the lower 32 bits, the fractional
-seconds. The resulting value will be the number of nanoseconds since 1970.">
-      <return-value transfer-ownership="none">
-        <type name="uint64" c:type="guint64"/>
-      </return-value>
-      <parameters>
-        <parameter name="ntptime" transfer-ownership="none">
-          <type name="uint64" c:type="guint64"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="rtcp_packet_fb_get_type"
-              c:identifier="gst_rtcp_packet_fb_get_type"
-              doc="Get the feedback message type of the FB @packet."
-              version="0.10.23">
-      <return-value transfer-ownership="full">
-        <type name="RTCPFBType" c:type="GstRTCPFBType"/>
-      </return-value>
-      <parameters>
-        <parameter name="packet" transfer-ownership="none">
-          <type name="RTCPPacket" c:type="GstRTCPPacket*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="rtcp_packet_get_type"
-              c:identifier="gst_rtcp_packet_get_type"
-              doc="Get the packet type of the packet pointed to by @packet.
-pointing to a valid packet.">
-      <return-value transfer-ownership="full">
-        <type name="RTCPType" c:type="GstRTCPType"/>
-      </return-value>
-      <parameters>
-        <parameter name="packet" transfer-ownership="none">
-          <type name="RTCPPacket" c:type="GstRTCPPacket*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="rtcp_sdes_name_to_type"
-              c:identifier="gst_rtcp_sdes_name_to_type"
-              doc="Convert @name into a @GstRTCPSDESType. @name is typically a key in a
-#GstStructure containing SDES items.
-is a private sdes item."
-              version="0.10.26">
-      <return-value transfer-ownership="full">
-        <type name="RTCPSDESType" c:type="GstRTCPSDESType"/>
-      </return-value>
-      <parameters>
-        <parameter name="name" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="rtcp_sdes_type_to_name"
-              c:identifier="gst_rtcp_sdes_type_to_name"
-              doc="Converts @type to the string equivalent. The string is typically used as a
-key in a #GstStructure containing SDES items."
-              version="0.10.26">
-      <return-value transfer-ownership="none">
-        <type name="utf8" c:type="gchar*"/>
-      </return-value>
-      <parameters>
-        <parameter name="type" transfer-ownership="none">
-          <type name="RTCPSDESType" c:type="GstRTCPSDESType"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="rtcp_unix_to_ntp"
-              c:identifier="gst_rtcp_unix_to_ntp"
-              doc="Converts a UNIX timestamp in nanoseconds to an NTP time. The caller should
-pass a value with nanoseconds since 1970. The NTP time will, in the upper
-32 bits, contain the number of seconds since 1900 and, in the lower 32
-bits, the fractional seconds. The resulting value can be used as an ntptime
-for constructing SR RTCP packets.">
-      <return-value transfer-ownership="none">
-        <type name="uint64" c:type="guint64"/>
-      </return-value>
-      <parameters>
-        <parameter name="unixtime" transfer-ownership="none">
-          <type name="uint64" c:type="guint64"/>
-        </parameter>
-      </parameters>
-    </function>
-  </namespace>
-</repository>
diff --git a/extra/gstreamer/rtp/ffi/ffi.factor b/extra/gstreamer/rtp/ffi/ffi.factor
deleted file mode 100644 (file)
index 28f8605..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-! Copyright (C) 2010 Anton Gorenko.
-! See http://factorcode.org/license.txt for BSD license.
-USING: alien alien.libraries combinators kernel system
-gobject-introspection glib.ffi gstreamer.base.ffi gstreamer.ffi ;
-IN: gstreamer.rtp.ffi
-
-<<
-"gstreamer.rtp" {
-    { [ os winnt? ] [ drop ] }
-    { [ os macosx? ] [ drop ] }
-    { [ os unix? ] [ "libgstrtp-0.10.so" cdecl add-library ] }
-} cond
->>
-
-GIR: vocab:gstreamer/rtp/GstRtp-0.10.gir
-
diff --git a/extra/gstreamer/rtp/rtp.factor b/extra/gstreamer/rtp/rtp.factor
deleted file mode 100644 (file)
index 7e928c1..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-! Copyright (C) 2010 Anton Gorenko.
-! See http://factorcode.org/license.txt for BSD license.
-USING: gstreamer.rtp.ffi ;
-IN: gstreamer.rtp
-
diff --git a/extra/gstreamer/rtsp/GstRtsp-0.10.gir b/extra/gstreamer/rtsp/GstRtsp-0.10.gir
deleted file mode 100644 (file)
index b0cf681..0000000
+++ /dev/null
@@ -1,2761 +0,0 @@
-<?xml version="1.0"?>
-<!-- This file was automatically generated from C sources - DO NOT EDIT!
-To affect the contents of this file, edit the original C definitions,
-and/or use gtk-doc annotations.  -->
-<repository version="1.0"
-            xmlns="http://www.gtk.org/introspection/core/1.0"
-            xmlns:c="http://www.gtk.org/introspection/c/1.0"
-            xmlns:glib="http://www.gtk.org/introspection/glib/1.0">
-  <include name="GLib" version="2.0"/>
-  <include name="GModule" version="2.0"/>
-  <include name="GObject" version="2.0"/>
-  <include name="Gst" version="0.10"/>
-  <include name="GstSdp" version="0.10"/>
-  <include name="libxml2" version="2.0"/>
-  <package name="gstreamer-0.10"/>
-  <package name="gstreamer-sdp-0.10"/>
-  <c:include name="gst/audio/gstrtsp-enumtypes.h"/>
-  <c:include name="gst/audio/gstrtspbase64.h"/>
-  <c:include name="gst/audio/gstrtspconnection.h"/>
-  <c:include name="gst/audio/gstrtspdefs.h"/>
-  <c:include name="gst/audio/gstrtspextension.h"/>
-  <c:include name="gst/audio/gstrtspmessage.h"/>
-  <c:include name="gst/audio/gstrtsprange.h"/>
-  <c:include name="gst/audio/gstrtsptransport.h"/>
-  <c:include name="gst/audio/gstrtspurl.h"/>
-  <namespace name="GstRtsp"
-             version="0.10"
-             shared-library="libgstrtsp-0.10.so.0"
-             c:prefix="Gst">
-    <constant name="DEFAULT_PORT" value="554">
-      <type name="int"/>
-    </constant>
-    <enumeration name="RTSPAuthMethod"
-                 doc="Authentication methods, ordered by strength"
-                 glib:type-name="GstRTSPAuthMethod"
-                 glib:get-type="gst_rtsp_auth_method_get_type"
-                 c:type="GstRTSPAuthMethod">
-      <member name="none"
-              value="0"
-              c:identifier="GST_RTSP_AUTH_NONE"
-              glib:nick="none"/>
-      <member name="basic"
-              value="1"
-              c:identifier="GST_RTSP_AUTH_BASIC"
-              glib:nick="basic"/>
-      <member name="digest"
-              value="2"
-              c:identifier="GST_RTSP_AUTH_DIGEST"
-              glib:nick="digest"/>
-    </enumeration>
-    <record name="RTSPConnection"
-            c:type="GstRTSPConnection"
-            doc="Opaque RTSP connection object.">
-      <method name="connect"
-              c:identifier="gst_rtsp_connection_connect"
-              doc="Attempt to connect to the url of @conn made with
-gst_rtsp_connection_create(). If @timeout is #NULL this function can block
-forever. If @timeout contains a valid timeout, this function will return
-#GST_RTSP_ETIMEOUT after the timeout expired.
-This function can be cancelled with gst_rtsp_connection_flush().">
-        <return-value transfer-ownership="full">
-          <type name="RTSPResult" c:type="GstRTSPResult"/>
-        </return-value>
-        <parameters>
-          <parameter name="timeout" transfer-ownership="none">
-            <type name="GLib.TimeVal" c:type="GTimeVal*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="close"
-              c:identifier="gst_rtsp_connection_close"
-              doc="Close the connected @conn. After this call, the connection is in the same
-state as when it was first created.">
-        <return-value transfer-ownership="full">
-          <type name="RTSPResult" c:type="GstRTSPResult"/>
-        </return-value>
-      </method>
-      <method name="free"
-              c:identifier="gst_rtsp_connection_free"
-              doc="Close and free @conn.">
-        <return-value transfer-ownership="full">
-          <type name="RTSPResult" c:type="GstRTSPResult"/>
-        </return-value>
-      </method>
-      <method name="read"
-              c:identifier="gst_rtsp_connection_read"
-              doc="Attempt to read @size bytes into @data from the connected @conn, blocking up to
-the specified @timeout. @timeout can be #NULL, in which case this function
-might block forever.
-This function can be cancelled with gst_rtsp_connection_flush().">
-        <return-value transfer-ownership="full">
-          <type name="RTSPResult" c:type="GstRTSPResult"/>
-        </return-value>
-        <parameters>
-          <parameter name="data" transfer-ownership="none">
-            <array c:type="guint8*">
-              <type name="uint8"/>
-            </array>
-          </parameter>
-          <parameter name="size" transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
-          </parameter>
-          <parameter name="timeout" transfer-ownership="none">
-            <type name="GLib.TimeVal" c:type="GTimeVal*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="write"
-              c:identifier="gst_rtsp_connection_write"
-              doc="Attempt to write @size bytes of @data to the connected @conn, blocking up to
-the specified @timeout. @timeout can be #NULL, in which case this function
-might block forever.
-This function can be cancelled with gst_rtsp_connection_flush().">
-        <return-value transfer-ownership="full">
-          <type name="RTSPResult" c:type="GstRTSPResult"/>
-        </return-value>
-        <parameters>
-          <parameter name="data" transfer-ownership="none">
-            <array c:type="guint8*">
-              <type name="uint8"/>
-            </array>
-          </parameter>
-          <parameter name="size" transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
-          </parameter>
-          <parameter name="timeout" transfer-ownership="none">
-            <type name="GLib.TimeVal" c:type="GTimeVal*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="send"
-              c:identifier="gst_rtsp_connection_send"
-              doc="Attempt to send @message to the connected @conn, blocking up to
-the specified @timeout. @timeout can be #NULL, in which case this function
-might block forever.
-This function can be cancelled with gst_rtsp_connection_flush().">
-        <return-value transfer-ownership="full">
-          <type name="RTSPResult" c:type="GstRTSPResult"/>
-        </return-value>
-        <parameters>
-          <parameter name="message" transfer-ownership="none">
-            <type name="RTSPMessage" c:type="GstRTSPMessage*"/>
-          </parameter>
-          <parameter name="timeout" transfer-ownership="none">
-            <type name="GLib.TimeVal" c:type="GTimeVal*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="receive"
-              c:identifier="gst_rtsp_connection_receive"
-              doc="Attempt to read into @message from the connected @conn, blocking up to
-the specified @timeout. @timeout can be #NULL, in which case this function
-might block forever.
-This function can be cancelled with gst_rtsp_connection_flush().">
-        <return-value transfer-ownership="full">
-          <type name="RTSPResult" c:type="GstRTSPResult"/>
-        </return-value>
-        <parameters>
-          <parameter name="message" transfer-ownership="none">
-            <type name="RTSPMessage" c:type="GstRTSPMessage*"/>
-          </parameter>
-          <parameter name="timeout" transfer-ownership="none">
-            <type name="GLib.TimeVal" c:type="GTimeVal*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="poll"
-              c:identifier="gst_rtsp_connection_poll"
-              doc="Wait up to the specified @timeout for the connection to become available for
-at least one of the operations specified in @events. When the function returns
-with #GST_RTSP_OK, @revents will contain a bitmask of available operations on
-This function can be cancelled with gst_rtsp_connection_flush()."
-              version="0.10.15">
-        <return-value transfer-ownership="full">
-          <type name="RTSPResult" c:type="GstRTSPResult"/>
-        </return-value>
-        <parameters>
-          <parameter name="events" transfer-ownership="none">
-            <type name="RTSPEvent" c:type="GstRTSPEvent"/>
-          </parameter>
-          <parameter name="revents" transfer-ownership="none">
-            <type name="RTSPEvent" c:type="GstRTSPEvent*"/>
-          </parameter>
-          <parameter name="timeout" transfer-ownership="none">
-            <type name="GLib.TimeVal" c:type="GTimeVal*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="next_timeout"
-              c:identifier="gst_rtsp_connection_next_timeout"
-              doc="Calculate the next timeout for @conn, storing the result in @timeout.">
-        <return-value transfer-ownership="full">
-          <type name="RTSPResult" c:type="GstRTSPResult"/>
-        </return-value>
-        <parameters>
-          <parameter name="timeout" transfer-ownership="none">
-            <type name="GLib.TimeVal" c:type="GTimeVal*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="reset_timeout"
-              c:identifier="gst_rtsp_connection_reset_timeout"
-              doc="Reset the timeout of @conn.">
-        <return-value transfer-ownership="full">
-          <type name="RTSPResult" c:type="GstRTSPResult"/>
-        </return-value>
-      </method>
-      <method name="flush"
-              c:identifier="gst_rtsp_connection_flush"
-              doc="Start or stop the flushing action on @conn. When flushing, all current
-and future actions on @conn will return #GST_RTSP_EINTR until the connection
-is set to non-flushing mode again.">
-        <return-value transfer-ownership="full">
-          <type name="RTSPResult" c:type="GstRTSPResult"/>
-        </return-value>
-        <parameters>
-          <parameter name="flush" transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_proxy"
-              c:identifier="gst_rtsp_connection_set_proxy"
-              doc="Set the proxy host and port."
-              version="0.10.23">
-        <return-value transfer-ownership="full">
-          <type name="RTSPResult" c:type="GstRTSPResult"/>
-        </return-value>
-        <parameters>
-          <parameter name="host" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="port" transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_auth"
-              c:identifier="gst_rtsp_connection_set_auth"
-              doc="Configure @conn for authentication mode @method with @user and @pass as the
-user and password respectively.">
-        <return-value transfer-ownership="full">
-          <type name="RTSPResult" c:type="GstRTSPResult"/>
-        </return-value>
-        <parameters>
-          <parameter name="method" transfer-ownership="none">
-            <type name="RTSPAuthMethod" c:type="GstRTSPAuthMethod"/>
-          </parameter>
-          <parameter name="user" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="pass" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_auth_param"
-              c:identifier="gst_rtsp_connection_set_auth_param"
-              doc="Setup @conn with authentication directives. This is not necesary for
-methods #GST_RTSP_AUTH_NONE and #GST_RTSP_AUTH_BASIC. For
-#GST_RTSP_AUTH_DIGEST, directives should be taken from the digest challenge
-in the WWW-Authenticate response header and can include realm, domain,
-nonce, opaque, stale, algorithm, qop as per RFC2617."
-              version="0.10.20">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="param" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="value" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="clear_auth_params"
-              c:identifier="gst_rtsp_connection_clear_auth_params"
-              doc="Clear the list of authentication directives stored in @conn."
-              version="0.10.20">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </method>
-      <method name="set_qos_dscp"
-              c:identifier="gst_rtsp_connection_set_qos_dscp"
-              doc="Configure @conn to use the specified DSCP value."
-              version="0.10.20">
-        <return-value transfer-ownership="full">
-          <type name="RTSPResult" c:type="GstRTSPResult"/>
-        </return-value>
-        <parameters>
-          <parameter name="qos_dscp" transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_url"
-              c:identifier="gst_rtsp_connection_get_url"
-              doc="Retrieve the URL of the other end of @conn.
-connection is freed."
-              version="0.10.23">
-        <return-value transfer-ownership="full">
-          <type name="RTSPUrl" c:type="GstRTSPUrl*"/>
-        </return-value>
-      </method>
-      <method name="get_ip"
-              c:identifier="gst_rtsp_connection_get_ip"
-              doc="Retrieve the IP address of the other end of @conn.
-connection is closed."
-              version="0.10.20">
-        <return-value transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </return-value>
-      </method>
-      <method name="set_ip"
-              c:identifier="gst_rtsp_connection_set_ip"
-              doc="Set the IP address of the server."
-              version="0.10.23">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="ip" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_readfd"
-              c:identifier="gst_rtsp_connection_get_readfd"
-              doc="Get the file descriptor for reading.
-descriptor remains valid until the connection is closed."
-              version="0.10.23">
-        <return-value transfer-ownership="none">
-          <type name="int" c:type="gint"/>
-        </return-value>
-      </method>
-      <method name="get_writefd"
-              c:identifier="gst_rtsp_connection_get_writefd"
-              doc="Get the file descriptor for writing.
-descriptor remains valid until the connection is closed."
-              version="0.10.23">
-        <return-value transfer-ownership="none">
-          <type name="int" c:type="gint"/>
-        </return-value>
-      </method>
-      <method name="set_http_mode"
-              c:identifier="gst_rtsp_connection_set_http_mode"
-              doc="By setting the HTTP mode to %TRUE the message parsing will support HTTP
-messages in addition to the RTSP messages. It will also disable the
-automatic handling of setting up an HTTP tunnel."
-              version="0.10.25">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="enable" transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_tunneled"
-              c:identifier="gst_rtsp_connection_set_tunneled"
-              doc="Set the HTTP tunneling state of the connection. This must be configured before
-the @conn is connected."
-              version="0.10.23">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="tunneled" transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="is_tunneled"
-              c:identifier="gst_rtsp_connection_is_tunneled"
-              doc="Get the tunneling state of the connection."
-              version="0.10.23">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-      </method>
-      <method name="get_tunnelid"
-              c:identifier="gst_rtsp_connection_get_tunnelid"
-              doc="Get the tunnel session id the connection."
-              version="0.10.23">
-        <return-value transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </return-value>
-      </method>
-      <method name="do_tunnel"
-              c:identifier="gst_rtsp_connection_do_tunnel"
-              doc="If @conn received the first tunnel connection and @conn2 received
-the second tunnel connection, link the two connections together so that
-After this call, @conn2 cannot be used anymore and must be freed with
-gst_rtsp_connection_free().
-If @conn2 is %NULL then only the base64 decoding context will be setup for"
-              version="0.10.23">
-        <return-value transfer-ownership="full">
-          <type name="RTSPResult" c:type="GstRTSPResult"/>
-        </return-value>
-        <parameters>
-          <parameter name="conn2" transfer-ownership="none">
-            <type name="RTSPConnection" c:type="GstRTSPConnection*"/>
-          </parameter>
-        </parameters>
-      </method>
-    </record>
-    <bitfield name="RTSPEvent"
-              doc="The possible events for the connection."
-              glib:type-name="GstRTSPEvent"
-              glib:get-type="gst_rtsp_event_get_type"
-              c:type="GstRTSPEvent">
-      <member name="read"
-              value="1"
-              c:identifier="GST_RTSP_EV_READ"
-              glib:nick="read"/>
-      <member name="write"
-              value="2"
-              c:identifier="GST_RTSP_EV_WRITE"
-              glib:nick="write"/>
-    </bitfield>
-    <interface name="RTSPExtension"
-               c:type="GstRTSPExtension"
-               glib:type-name="GstRTSPExtension"
-               glib:get-type="gst_rtsp_extension_get_type"
-               glib:type-struct="RTSPExtensionInterface">
-      <virtual-method name="detect_server" invoker="detect_server">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="resp" transfer-ownership="none">
-            <type name="RTSPMessage" c:type="GstRTSPMessage*"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <virtual-method name="before_send" invoker="before_send">
-        <return-value transfer-ownership="full">
-          <type name="RTSPResult" c:type="GstRTSPResult"/>
-        </return-value>
-        <parameters>
-          <parameter name="req" transfer-ownership="none">
-            <type name="RTSPMessage" c:type="GstRTSPMessage*"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <virtual-method name="after_send" invoker="after_send">
-        <return-value transfer-ownership="full">
-          <type name="RTSPResult" c:type="GstRTSPResult"/>
-        </return-value>
-        <parameters>
-          <parameter name="req" transfer-ownership="none">
-            <type name="RTSPMessage" c:type="GstRTSPMessage*"/>
-          </parameter>
-          <parameter name="resp" transfer-ownership="none">
-            <type name="RTSPMessage" c:type="GstRTSPMessage*"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <virtual-method name="parse_sdp" invoker="parse_sdp">
-        <return-value transfer-ownership="full">
-          <type name="RTSPResult" c:type="GstRTSPResult"/>
-        </return-value>
-        <parameters>
-          <parameter name="sdp" transfer-ownership="none">
-            <type name="GstSdp.SDPMessage" c:type="GstSDPMessage*"/>
-          </parameter>
-          <parameter name="s" transfer-ownership="none">
-            <type name="Gst.Structure" c:type="GstStructure*"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <virtual-method name="setup_media" invoker="setup_media">
-        <return-value transfer-ownership="full">
-          <type name="RTSPResult" c:type="GstRTSPResult"/>
-        </return-value>
-        <parameters>
-          <parameter name="media" transfer-ownership="none">
-            <type name="GstSdp.SDPMedia" c:type="GstSDPMedia*"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <virtual-method name="configure_stream" invoker="configure_stream">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="caps" transfer-ownership="none">
-            <type name="Gst.Caps" c:type="GstCaps*"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <virtual-method name="get_transports" invoker="get_transports">
-        <return-value transfer-ownership="full">
-          <type name="RTSPResult" c:type="GstRTSPResult"/>
-        </return-value>
-        <parameters>
-          <parameter name="protocols" transfer-ownership="none">
-            <type name="RTSPLowerTrans" c:type="GstRTSPLowerTrans"/>
-          </parameter>
-          <parameter name="transport" transfer-ownership="none">
-            <array c:type="gchar**">
-              <type name="utf8"/>
-            </array>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <virtual-method name="stream_select" invoker="stream_select">
-        <return-value transfer-ownership="full">
-          <type name="RTSPResult" c:type="GstRTSPResult"/>
-        </return-value>
-        <parameters>
-          <parameter name="url" transfer-ownership="none">
-            <type name="RTSPUrl" c:type="GstRTSPUrl*"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <virtual-method name="receive_request" invoker="receive_request">
-        <return-value transfer-ownership="full">
-          <type name="RTSPResult" c:type="GstRTSPResult"/>
-        </return-value>
-        <parameters>
-          <parameter name="req" transfer-ownership="none">
-            <type name="RTSPMessage" c:type="GstRTSPMessage*"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <method name="detect_server"
-              c:identifier="gst_rtsp_extension_detect_server">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="resp" transfer-ownership="none">
-            <type name="RTSPMessage" c:type="GstRTSPMessage*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="before_send" c:identifier="gst_rtsp_extension_before_send">
-        <return-value transfer-ownership="full">
-          <type name="RTSPResult" c:type="GstRTSPResult"/>
-        </return-value>
-        <parameters>
-          <parameter name="req" transfer-ownership="none">
-            <type name="RTSPMessage" c:type="GstRTSPMessage*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="after_send" c:identifier="gst_rtsp_extension_after_send">
-        <return-value transfer-ownership="full">
-          <type name="RTSPResult" c:type="GstRTSPResult"/>
-        </return-value>
-        <parameters>
-          <parameter name="req" transfer-ownership="none">
-            <type name="RTSPMessage" c:type="GstRTSPMessage*"/>
-          </parameter>
-          <parameter name="resp" transfer-ownership="none">
-            <type name="RTSPMessage" c:type="GstRTSPMessage*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="parse_sdp" c:identifier="gst_rtsp_extension_parse_sdp">
-        <return-value transfer-ownership="full">
-          <type name="RTSPResult" c:type="GstRTSPResult"/>
-        </return-value>
-        <parameters>
-          <parameter name="sdp" transfer-ownership="none">
-            <type name="GstSdp.SDPMessage" c:type="GstSDPMessage*"/>
-          </parameter>
-          <parameter name="s" transfer-ownership="none">
-            <type name="Gst.Structure" c:type="GstStructure*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="setup_media" c:identifier="gst_rtsp_extension_setup_media">
-        <return-value transfer-ownership="full">
-          <type name="RTSPResult" c:type="GstRTSPResult"/>
-        </return-value>
-        <parameters>
-          <parameter name="media" transfer-ownership="none">
-            <type name="GstSdp.SDPMedia" c:type="GstSDPMedia*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="configure_stream"
-              c:identifier="gst_rtsp_extension_configure_stream">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="caps" transfer-ownership="none">
-            <type name="Gst.Caps" c:type="GstCaps*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_transports"
-              c:identifier="gst_rtsp_extension_get_transports">
-        <return-value transfer-ownership="full">
-          <type name="RTSPResult" c:type="GstRTSPResult"/>
-        </return-value>
-        <parameters>
-          <parameter name="protocols" transfer-ownership="none">
-            <type name="RTSPLowerTrans" c:type="GstRTSPLowerTrans"/>
-          </parameter>
-          <parameter name="transport" transfer-ownership="none">
-            <array c:type="gchar**">
-              <type name="utf8"/>
-            </array>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="stream_select"
-              c:identifier="gst_rtsp_extension_stream_select">
-        <return-value transfer-ownership="full">
-          <type name="RTSPResult" c:type="GstRTSPResult"/>
-        </return-value>
-        <parameters>
-          <parameter name="url" transfer-ownership="none">
-            <type name="RTSPUrl" c:type="GstRTSPUrl*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="receive_request"
-              c:identifier="gst_rtsp_extension_receive_request">
-        <return-value transfer-ownership="full">
-          <type name="RTSPResult" c:type="GstRTSPResult"/>
-        </return-value>
-        <parameters>
-          <parameter name="req" transfer-ownership="none">
-            <type name="RTSPMessage" c:type="GstRTSPMessage*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="send" c:identifier="gst_rtsp_extension_send">
-        <return-value transfer-ownership="full">
-          <type name="RTSPResult" c:type="GstRTSPResult"/>
-        </return-value>
-        <parameters>
-          <parameter name="req" transfer-ownership="none">
-            <type name="RTSPMessage" c:type="GstRTSPMessage*"/>
-          </parameter>
-          <parameter name="resp" transfer-ownership="none">
-            <type name="RTSPMessage" c:type="GstRTSPMessage*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <glib:signal name="send">
-        <return-value transfer-ownership="full">
-          <type name="RTSPResult" c:type="GstRTSPResult"/>
-        </return-value>
-        <parameters>
-          <parameter name="object" transfer-ownership="none">
-            <type name="any" c:type="gpointer"/>
-          </parameter>
-          <parameter name="p0" transfer-ownership="none">
-            <type name="any" c:type="gpointer"/>
-          </parameter>
-        </parameters>
-      </glib:signal>
-    </interface>
-    <record name="RTSPExtensionInterface"
-            c:type="GstRTSPExtensionInterface"
-            glib:is-gtype-struct-for="RTSPExtension">
-      <field name="parent">
-        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
-      </field>
-      <field name="detect_server">
-        <callback name="detect_server" c:type="detect_server">
-          <return-value transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </return-value>
-          <parameters>
-            <parameter name="ext" transfer-ownership="none">
-              <type name="RTSPExtension" c:type="GstRTSPExtension*"/>
-            </parameter>
-            <parameter name="resp" transfer-ownership="none">
-              <type name="RTSPMessage" c:type="GstRTSPMessage*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="before_send">
-        <callback name="before_send" c:type="before_send">
-          <return-value transfer-ownership="full">
-            <type name="RTSPResult" c:type="GstRTSPResult"/>
-          </return-value>
-          <parameters>
-            <parameter name="ext" transfer-ownership="none">
-              <type name="RTSPExtension" c:type="GstRTSPExtension*"/>
-            </parameter>
-            <parameter name="req" transfer-ownership="none">
-              <type name="RTSPMessage" c:type="GstRTSPMessage*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="after_send">
-        <callback name="after_send" c:type="after_send">
-          <return-value transfer-ownership="full">
-            <type name="RTSPResult" c:type="GstRTSPResult"/>
-          </return-value>
-          <parameters>
-            <parameter name="ext" transfer-ownership="none">
-              <type name="RTSPExtension" c:type="GstRTSPExtension*"/>
-            </parameter>
-            <parameter name="req" transfer-ownership="none">
-              <type name="RTSPMessage" c:type="GstRTSPMessage*"/>
-            </parameter>
-            <parameter name="resp" transfer-ownership="none">
-              <type name="RTSPMessage" c:type="GstRTSPMessage*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="parse_sdp">
-        <callback name="parse_sdp" c:type="parse_sdp">
-          <return-value transfer-ownership="full">
-            <type name="RTSPResult" c:type="GstRTSPResult"/>
-          </return-value>
-          <parameters>
-            <parameter name="ext" transfer-ownership="none">
-              <type name="RTSPExtension" c:type="GstRTSPExtension*"/>
-            </parameter>
-            <parameter name="sdp" transfer-ownership="none">
-              <type name="GstSdp.SDPMessage" c:type="GstSDPMessage*"/>
-            </parameter>
-            <parameter name="s" transfer-ownership="none">
-              <type name="Gst.Structure" c:type="GstStructure*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="setup_media">
-        <callback name="setup_media" c:type="setup_media">
-          <return-value transfer-ownership="full">
-            <type name="RTSPResult" c:type="GstRTSPResult"/>
-          </return-value>
-          <parameters>
-            <parameter name="ext" transfer-ownership="none">
-              <type name="RTSPExtension" c:type="GstRTSPExtension*"/>
-            </parameter>
-            <parameter name="media" transfer-ownership="none">
-              <type name="GstSdp.SDPMedia" c:type="GstSDPMedia*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="configure_stream">
-        <callback name="configure_stream" c:type="configure_stream">
-          <return-value transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </return-value>
-          <parameters>
-            <parameter name="ext" transfer-ownership="none">
-              <type name="RTSPExtension" c:type="GstRTSPExtension*"/>
-            </parameter>
-            <parameter name="caps" transfer-ownership="none">
-              <type name="Gst.Caps" c:type="GstCaps*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="get_transports">
-        <callback name="get_transports" c:type="get_transports">
-          <return-value transfer-ownership="full">
-            <type name="RTSPResult" c:type="GstRTSPResult"/>
-          </return-value>
-          <parameters>
-            <parameter name="ext" transfer-ownership="none">
-              <type name="RTSPExtension" c:type="GstRTSPExtension*"/>
-            </parameter>
-            <parameter name="protocols" transfer-ownership="none">
-              <type name="RTSPLowerTrans" c:type="GstRTSPLowerTrans"/>
-            </parameter>
-            <parameter name="transport" transfer-ownership="none">
-              <array c:type="gchar**">
-                <type name="utf8"/>
-              </array>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="stream_select">
-        <callback name="stream_select" c:type="stream_select">
-          <return-value transfer-ownership="full">
-            <type name="RTSPResult" c:type="GstRTSPResult"/>
-          </return-value>
-          <parameters>
-            <parameter name="ext" transfer-ownership="none">
-              <type name="RTSPExtension" c:type="GstRTSPExtension*"/>
-            </parameter>
-            <parameter name="url" transfer-ownership="none">
-              <type name="RTSPUrl" c:type="GstRTSPUrl*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="send">
-        <callback name="send" c:type="send">
-          <return-value transfer-ownership="full">
-            <type name="RTSPResult" c:type="GstRTSPResult"/>
-          </return-value>
-          <parameters>
-            <parameter name="ext" transfer-ownership="none">
-              <type name="RTSPExtension" c:type="GstRTSPExtension*"/>
-            </parameter>
-            <parameter name="req" transfer-ownership="none">
-              <type name="RTSPMessage" c:type="GstRTSPMessage*"/>
-            </parameter>
-            <parameter name="resp" transfer-ownership="none">
-              <type name="RTSPMessage" c:type="GstRTSPMessage*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="receive_request">
-        <callback name="receive_request" c:type="receive_request">
-          <return-value transfer-ownership="full">
-            <type name="RTSPResult" c:type="GstRTSPResult"/>
-          </return-value>
-          <parameters>
-            <parameter name="ext" transfer-ownership="none">
-              <type name="RTSPExtension" c:type="GstRTSPExtension*"/>
-            </parameter>
-            <parameter name="req" transfer-ownership="none">
-              <type name="RTSPMessage" c:type="GstRTSPMessage*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="_gst_reserved">
-        <array zero-terminated="0" c:type="gpointer" fixed-size="3">
-          <type name="any"/>
-        </array>
-      </field>
-    </record>
-    <enumeration name="RTSPFamily"
-                 doc="The possible network families."
-                 glib:type-name="GstRTSPFamily"
-                 glib:get-type="gst_rtsp_family_get_type"
-                 c:type="GstRTSPFamily">
-      <member name="none"
-              value="0"
-              c:identifier="GST_RTSP_FAM_NONE"
-              glib:nick="none"/>
-      <member name="inet"
-              value="1"
-              c:identifier="GST_RTSP_FAM_INET"
-              glib:nick="inet"/>
-      <member name="inet6"
-              value="2"
-              c:identifier="GST_RTSP_FAM_INET6"
-              glib:nick="inet6"/>
-    </enumeration>
-    <enumeration name="RTSPHeaderField"
-                 glib:type-name="GstRTSPHeaderField"
-                 glib:get-type="gst_rtsp_header_field_get_type"
-                 c:type="GstRTSPHeaderField">
-      <member name="invalid"
-              value="0"
-              c:identifier="GST_RTSP_HDR_INVALID"
-              glib:nick="invalid"/>
-      <member name="accept"
-              value="1"
-              c:identifier="GST_RTSP_HDR_ACCEPT"
-              glib:nick="accept"/>
-      <member name="accept_encoding"
-              value="2"
-              c:identifier="GST_RTSP_HDR_ACCEPT_ENCODING"
-              glib:nick="accept-encoding"/>
-      <member name="accept_language"
-              value="3"
-              c:identifier="GST_RTSP_HDR_ACCEPT_LANGUAGE"
-              glib:nick="accept-language"/>
-      <member name="allow"
-              value="4"
-              c:identifier="GST_RTSP_HDR_ALLOW"
-              glib:nick="allow"/>
-      <member name="authorization"
-              value="5"
-              c:identifier="GST_RTSP_HDR_AUTHORIZATION"
-              glib:nick="authorization"/>
-      <member name="bandwidth"
-              value="6"
-              c:identifier="GST_RTSP_HDR_BANDWIDTH"
-              glib:nick="bandwidth"/>
-      <member name="blocksize"
-              value="7"
-              c:identifier="GST_RTSP_HDR_BLOCKSIZE"
-              glib:nick="blocksize"/>
-      <member name="cache_control"
-              value="8"
-              c:identifier="GST_RTSP_HDR_CACHE_CONTROL"
-              glib:nick="cache-control"/>
-      <member name="conference"
-              value="9"
-              c:identifier="GST_RTSP_HDR_CONFERENCE"
-              glib:nick="conference"/>
-      <member name="connection"
-              value="10"
-              c:identifier="GST_RTSP_HDR_CONNECTION"
-              glib:nick="connection"/>
-      <member name="content_base"
-              value="11"
-              c:identifier="GST_RTSP_HDR_CONTENT_BASE"
-              glib:nick="content-base"/>
-      <member name="content_encoding"
-              value="12"
-              c:identifier="GST_RTSP_HDR_CONTENT_ENCODING"
-              glib:nick="content-encoding"/>
-      <member name="content_language"
-              value="13"
-              c:identifier="GST_RTSP_HDR_CONTENT_LANGUAGE"
-              glib:nick="content-language"/>
-      <member name="content_length"
-              value="14"
-              c:identifier="GST_RTSP_HDR_CONTENT_LENGTH"
-              glib:nick="content-length"/>
-      <member name="content_location"
-              value="15"
-              c:identifier="GST_RTSP_HDR_CONTENT_LOCATION"
-              glib:nick="content-location"/>
-      <member name="content_type"
-              value="16"
-              c:identifier="GST_RTSP_HDR_CONTENT_TYPE"
-              glib:nick="content-type"/>
-      <member name="cseq"
-              value="17"
-              c:identifier="GST_RTSP_HDR_CSEQ"
-              glib:nick="cseq"/>
-      <member name="date"
-              value="18"
-              c:identifier="GST_RTSP_HDR_DATE"
-              glib:nick="date"/>
-      <member name="expires"
-              value="19"
-              c:identifier="GST_RTSP_HDR_EXPIRES"
-              glib:nick="expires"/>
-      <member name="from"
-              value="20"
-              c:identifier="GST_RTSP_HDR_FROM"
-              glib:nick="from"/>
-      <member name="if_modified_since"
-              value="21"
-              c:identifier="GST_RTSP_HDR_IF_MODIFIED_SINCE"
-              glib:nick="if-modified-since"/>
-      <member name="last_modified"
-              value="22"
-              c:identifier="GST_RTSP_HDR_LAST_MODIFIED"
-              glib:nick="last-modified"/>
-      <member name="proxy_authenticate"
-              value="23"
-              c:identifier="GST_RTSP_HDR_PROXY_AUTHENTICATE"
-              glib:nick="proxy-authenticate"/>
-      <member name="proxy_require"
-              value="24"
-              c:identifier="GST_RTSP_HDR_PROXY_REQUIRE"
-              glib:nick="proxy-require"/>
-      <member name="public"
-              value="25"
-              c:identifier="GST_RTSP_HDR_PUBLIC"
-              glib:nick="public"/>
-      <member name="range"
-              value="26"
-              c:identifier="GST_RTSP_HDR_RANGE"
-              glib:nick="range"/>
-      <member name="referer"
-              value="27"
-              c:identifier="GST_RTSP_HDR_REFERER"
-              glib:nick="referer"/>
-      <member name="require"
-              value="28"
-              c:identifier="GST_RTSP_HDR_REQUIRE"
-              glib:nick="require"/>
-      <member name="retry_after"
-              value="29"
-              c:identifier="GST_RTSP_HDR_RETRY_AFTER"
-              glib:nick="retry-after"/>
-      <member name="rtp_info"
-              value="30"
-              c:identifier="GST_RTSP_HDR_RTP_INFO"
-              glib:nick="rtp-info"/>
-      <member name="scale"
-              value="31"
-              c:identifier="GST_RTSP_HDR_SCALE"
-              glib:nick="scale"/>
-      <member name="session"
-              value="32"
-              c:identifier="GST_RTSP_HDR_SESSION"
-              glib:nick="session"/>
-      <member name="server"
-              value="33"
-              c:identifier="GST_RTSP_HDR_SERVER"
-              glib:nick="server"/>
-      <member name="speed"
-              value="34"
-              c:identifier="GST_RTSP_HDR_SPEED"
-              glib:nick="speed"/>
-      <member name="transport"
-              value="35"
-              c:identifier="GST_RTSP_HDR_TRANSPORT"
-              glib:nick="transport"/>
-      <member name="unsupported"
-              value="36"
-              c:identifier="GST_RTSP_HDR_UNSUPPORTED"
-              glib:nick="unsupported"/>
-      <member name="user_agent"
-              value="37"
-              c:identifier="GST_RTSP_HDR_USER_AGENT"
-              glib:nick="user-agent"/>
-      <member name="via"
-              value="38"
-              c:identifier="GST_RTSP_HDR_VIA"
-              glib:nick="via"/>
-      <member name="www_authenticate"
-              value="39"
-              c:identifier="GST_RTSP_HDR_WWW_AUTHENTICATE"
-              glib:nick="www-authenticate"/>
-      <member name="client_challenge"
-              value="40"
-              c:identifier="GST_RTSP_HDR_CLIENT_CHALLENGE"
-              glib:nick="client-challenge"/>
-      <member name="real_challenge1"
-              value="41"
-              c:identifier="GST_RTSP_HDR_REAL_CHALLENGE1"
-              glib:nick="real-challenge1"/>
-      <member name="real_challenge2"
-              value="42"
-              c:identifier="GST_RTSP_HDR_REAL_CHALLENGE2"
-              glib:nick="real-challenge2"/>
-      <member name="real_challenge3"
-              value="43"
-              c:identifier="GST_RTSP_HDR_REAL_CHALLENGE3"
-              glib:nick="real-challenge3"/>
-      <member name="subscribe"
-              value="44"
-              c:identifier="GST_RTSP_HDR_SUBSCRIBE"
-              glib:nick="subscribe"/>
-      <member name="alert"
-              value="45"
-              c:identifier="GST_RTSP_HDR_ALERT"
-              glib:nick="alert"/>
-      <member name="client_id"
-              value="46"
-              c:identifier="GST_RTSP_HDR_CLIENT_ID"
-              glib:nick="client-id"/>
-      <member name="company_id"
-              value="47"
-              c:identifier="GST_RTSP_HDR_COMPANY_ID"
-              glib:nick="company-id"/>
-      <member name="guid"
-              value="48"
-              c:identifier="GST_RTSP_HDR_GUID"
-              glib:nick="guid"/>
-      <member name="region_data"
-              value="49"
-              c:identifier="GST_RTSP_HDR_REGION_DATA"
-              glib:nick="region-data"/>
-      <member name="max_asm_width"
-              value="50"
-              c:identifier="GST_RTSP_HDR_MAX_ASM_WIDTH"
-              glib:nick="max-asm-width"/>
-      <member name="language"
-              value="51"
-              c:identifier="GST_RTSP_HDR_LANGUAGE"
-              glib:nick="language"/>
-      <member name="player_start_time"
-              value="52"
-              c:identifier="GST_RTSP_HDR_PLAYER_START_TIME"
-              glib:nick="player-start-time"/>
-      <member name="location"
-              value="53"
-              c:identifier="GST_RTSP_HDR_LOCATION"
-              glib:nick="location"/>
-      <member name="etag"
-              value="54"
-              c:identifier="GST_RTSP_HDR_ETAG"
-              glib:nick="etag"/>
-      <member name="if_match"
-              value="55"
-              c:identifier="GST_RTSP_HDR_IF_MATCH"
-              glib:nick="if-match"/>
-      <member name="accept_charset"
-              value="56"
-              c:identifier="GST_RTSP_HDR_ACCEPT_CHARSET"
-              glib:nick="accept-charset"/>
-      <member name="supported"
-              value="57"
-              c:identifier="GST_RTSP_HDR_SUPPORTED"
-              glib:nick="supported"/>
-      <member name="vary"
-              value="58"
-              c:identifier="GST_RTSP_HDR_VARY"
-              glib:nick="vary"/>
-      <member name="x_accelerate_streaming"
-              value="59"
-              c:identifier="GST_RTSP_HDR_X_ACCELERATE_STREAMING"
-              glib:nick="x-accelerate-streaming"/>
-      <member name="x_accept_authent"
-              value="60"
-              c:identifier="GST_RTSP_HDR_X_ACCEPT_AUTHENT"
-              glib:nick="x-accept-authent"/>
-      <member name="x_accept_proxy_authent"
-              value="61"
-              c:identifier="GST_RTSP_HDR_X_ACCEPT_PROXY_AUTHENT"
-              glib:nick="x-accept-proxy-authent"/>
-      <member name="x_broadcast_id"
-              value="62"
-              c:identifier="GST_RTSP_HDR_X_BROADCAST_ID"
-              glib:nick="x-broadcast-id"/>
-      <member name="x_burst_streaming"
-              value="63"
-              c:identifier="GST_RTSP_HDR_X_BURST_STREAMING"
-              glib:nick="x-burst-streaming"/>
-      <member name="x_notice"
-              value="64"
-              c:identifier="GST_RTSP_HDR_X_NOTICE"
-              glib:nick="x-notice"/>
-      <member name="x_player_lag_time"
-              value="65"
-              c:identifier="GST_RTSP_HDR_X_PLAYER_LAG_TIME"
-              glib:nick="x-player-lag-time"/>
-      <member name="x_playlist"
-              value="66"
-              c:identifier="GST_RTSP_HDR_X_PLAYLIST"
-              glib:nick="x-playlist"/>
-      <member name="x_playlist_change_notice"
-              value="67"
-              c:identifier="GST_RTSP_HDR_X_PLAYLIST_CHANGE_NOTICE"
-              glib:nick="x-playlist-change-notice"/>
-      <member name="x_playlist_gen_id"
-              value="68"
-              c:identifier="GST_RTSP_HDR_X_PLAYLIST_GEN_ID"
-              glib:nick="x-playlist-gen-id"/>
-      <member name="x_playlist_seek_id"
-              value="69"
-              c:identifier="GST_RTSP_HDR_X_PLAYLIST_SEEK_ID"
-              glib:nick="x-playlist-seek-id"/>
-      <member name="x_proxy_client_agent"
-              value="70"
-              c:identifier="GST_RTSP_HDR_X_PROXY_CLIENT_AGENT"
-              glib:nick="x-proxy-client-agent"/>
-      <member name="x_proxy_client_verb"
-              value="71"
-              c:identifier="GST_RTSP_HDR_X_PROXY_CLIENT_VERB"
-              glib:nick="x-proxy-client-verb"/>
-      <member name="x_receding_playlistchange"
-              value="72"
-              c:identifier="GST_RTSP_HDR_X_RECEDING_PLAYLISTCHANGE"
-              glib:nick="x-receding-playlistchange"/>
-      <member name="x_rtp_info"
-              value="73"
-              c:identifier="GST_RTSP_HDR_X_RTP_INFO"
-              glib:nick="x-rtp-info"/>
-      <member name="x_startupprofile"
-              value="74"
-              c:identifier="GST_RTSP_HDR_X_STARTUPPROFILE"
-              glib:nick="x-startupprofile"/>
-      <member name="timestamp"
-              value="75"
-              c:identifier="GST_RTSP_HDR_TIMESTAMP"
-              glib:nick="timestamp"/>
-      <member name="authentication_info"
-              value="76"
-              c:identifier="GST_RTSP_HDR_AUTHENTICATION_INFO"
-              glib:nick="authentication-info"/>
-      <member name="host"
-              value="77"
-              c:identifier="GST_RTSP_HDR_HOST"
-              glib:nick="host"/>
-      <member name="pragma"
-              value="78"
-              c:identifier="GST_RTSP_HDR_PRAGMA"
-              glib:nick="pragma"/>
-      <member name="x_server_ip_address"
-              value="79"
-              c:identifier="GST_RTSP_HDR_X_SERVER_IP_ADDRESS"
-              glib:nick="x-server-ip-address"/>
-      <member name="x_sessioncookie"
-              value="80"
-              c:identifier="GST_RTSP_HDR_X_SESSIONCOOKIE"
-              glib:nick="x-sessioncookie"/>
-      <member name="last"
-              value="81"
-              c:identifier="GST_RTSP_HDR_LAST"
-              glib:nick="last"/>
-    </enumeration>
-    <bitfield name="RTSPLowerTrans"
-              doc="The different transport methods."
-              glib:type-name="GstRTSPLowerTrans"
-              glib:get-type="gst_rtsp_lower_trans_get_type"
-              c:type="GstRTSPLowerTrans">
-      <member name="udp_unicast"
-              value="1"
-              c:identifier="UDP Unicast Mode"
-              glib:nick="udp-unicast"/>
-      <member name="udp_multicast"
-              value="2"
-              c:identifier="UDP Multicast Mode"
-              glib:nick="udp-multicast"/>
-      <member name="tcp"
-              value="4"
-              c:identifier="TCP interleaved mode"
-              glib:nick="tcp"/>
-      <member name="http"
-              value="16"
-              c:identifier="HTTP tunneled mode"
-              glib:nick="http"/>
-    </bitfield>
-    <record name="RTSPMessage"
-            c:type="GstRTSPMessage"
-            doc="An RTSP message containing request, response or data messages. Depending on
-the @type, the appropriate structure may be accessed.">
-      <field name="type" writable="1">
-        <type name="RTSPMsgType" c:type="GstRTSPMsgType"/>
-      </field>
-      <union name="type_data" c:type="type_data">
-        <record name="request" c:type="request">
-          <field name="method" writable="1">
-            <type name="RTSPMethod" c:type="GstRTSPMethod"/>
-          </field>
-          <field name="uri" writable="1">
-            <type name="utf8" c:type="gchar*"/>
-          </field>
-          <field name="version" writable="1">
-            <type name="RTSPVersion" c:type="GstRTSPVersion"/>
-          </field>
-        </record>
-        <record name="response" c:type="response">
-          <field name="code" writable="1">
-            <type name="RTSPStatusCode" c:type="GstRTSPStatusCode"/>
-          </field>
-          <field name="reason" writable="1">
-            <type name="utf8" c:type="gchar*"/>
-          </field>
-          <field name="version" writable="1">
-            <type name="RTSPVersion" c:type="GstRTSPVersion"/>
-          </field>
-        </record>
-        <record name="data" c:type="data">
-          <field name="channel" writable="1">
-            <type name="uint8" c:type="guint8"/>
-          </field>
-        </record>
-      </union>
-      <field name="hdr_fields" writable="1">
-        <type name="GLib.Array" c:type="GArray*"/>
-      </field>
-      <field name="body" writable="1">
-        <type name="any" c:type="guint8*"/>
-      </field>
-      <field name="body_size" writable="1">
-        <type name="uint" c:type="guint"/>
-      </field>
-      <constructor name="new"
-                   c:identifier="gst_rtsp_message_new"
-                   doc="Create a new initialized #GstRTSPMessage. Free with gst_rtsp_message_free().">
-        <return-value transfer-ownership="full">
-          <type name="RTSPMessage" c:type="GstRTSPResult"/>
-        </return-value>
-        <parameters>
-          <parameter name="msg" transfer-ownership="none">
-            <type name="RTSPMessage" c:type="GstRTSPMessage**"/>
-          </parameter>
-        </parameters>
-      </constructor>
-      <constructor name="new_request"
-                   c:identifier="gst_rtsp_message_new_request"
-                   doc="Create a new #GstRTSPMessage with @method and @uri and store the result
-request message in @msg. Free with gst_rtsp_message_free().">
-        <return-value transfer-ownership="full">
-          <type name="RTSPMessage" c:type="GstRTSPResult"/>
-        </return-value>
-        <parameters>
-          <parameter name="msg" transfer-ownership="none">
-            <type name="RTSPMessage" c:type="GstRTSPMessage**"/>
-          </parameter>
-          <parameter name="method" transfer-ownership="none">
-            <type name="RTSPMethod" c:type="GstRTSPMethod"/>
-          </parameter>
-          <parameter name="uri" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </constructor>
-      <constructor name="new_response"
-                   c:identifier="gst_rtsp_message_new_response"
-                   doc="Create a new response #GstRTSPMessage with @code and @reason and store the
-result message in @msg. Free with gst_rtsp_message_free().
-When @reason is #NULL, the default reason for @code will be used.
-When @request is not #NULL, the relevant headers will be copied to the new
-response message.">
-        <return-value transfer-ownership="full">
-          <type name="RTSPMessage" c:type="GstRTSPResult"/>
-        </return-value>
-        <parameters>
-          <parameter name="msg" transfer-ownership="none">
-            <type name="RTSPMessage" c:type="GstRTSPMessage**"/>
-          </parameter>
-          <parameter name="code" transfer-ownership="none">
-            <type name="RTSPStatusCode" c:type="GstRTSPStatusCode"/>
-          </parameter>
-          <parameter name="reason" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="request" transfer-ownership="none">
-            <type name="RTSPMessage" c:type="GstRTSPMessage*"/>
-          </parameter>
-        </parameters>
-      </constructor>
-      <constructor name="new_data"
-                   c:identifier="gst_rtsp_message_new_data"
-                   doc="Create a new data #GstRTSPMessage with @channel and store the
-result message in @msg. Free with gst_rtsp_message_free().">
-        <return-value transfer-ownership="full">
-          <type name="RTSPMessage" c:type="GstRTSPResult"/>
-        </return-value>
-        <parameters>
-          <parameter name="msg" transfer-ownership="none">
-            <type name="RTSPMessage" c:type="GstRTSPMessage**"/>
-          </parameter>
-          <parameter name="channel" transfer-ownership="none">
-            <type name="uint8" c:type="guint8"/>
-          </parameter>
-        </parameters>
-      </constructor>
-      <method name="init"
-              c:identifier="gst_rtsp_message_init"
-              doc="Initialize @msg. This function is mostly used when @msg is allocated on the
-stack. The reverse operation of this is gst_rtsp_message_unset().">
-        <return-value transfer-ownership="full">
-          <type name="RTSPResult" c:type="GstRTSPResult"/>
-        </return-value>
-      </method>
-      <method name="unset"
-              c:identifier="gst_rtsp_message_unset"
-              doc="Unset the contents of @msg so that it becomes an uninitialized
-#GstRTSPMessage again. This function is mostly used in combination with
-gst_rtsp_message_init_request(), gst_rtsp_message_init_response() and
-gst_rtsp_message_init_data() on stack allocated #GstRTSPMessage structures.">
-        <return-value transfer-ownership="full">
-          <type name="RTSPResult" c:type="GstRTSPResult"/>
-        </return-value>
-      </method>
-      <method name="free"
-              c:identifier="gst_rtsp_message_free"
-              doc="Free the memory used by @msg.">
-        <return-value transfer-ownership="full">
-          <type name="RTSPResult" c:type="GstRTSPResult"/>
-        </return-value>
-      </method>
-      <method name="init_request"
-              c:identifier="gst_rtsp_message_init_request"
-              doc="Initialize @msg as a request message with @method and @uri. To clear @msg
-again, use gst_rtsp_message_unset().">
-        <return-value transfer-ownership="full">
-          <type name="RTSPResult" c:type="GstRTSPResult"/>
-        </return-value>
-        <parameters>
-          <parameter name="method" transfer-ownership="none">
-            <type name="RTSPMethod" c:type="GstRTSPMethod"/>
-          </parameter>
-          <parameter name="uri" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="parse_request"
-              c:identifier="gst_rtsp_message_parse_request"
-              doc="Parse the request message @msg and store the values @method, @uri and
-value.">
-        <return-value transfer-ownership="full">
-          <type name="RTSPResult" c:type="GstRTSPResult"/>
-        </return-value>
-        <parameters>
-          <parameter name="method" transfer-ownership="none">
-            <type name="RTSPMethod" c:type="GstRTSPMethod*"/>
-          </parameter>
-          <parameter name="uri" transfer-ownership="none">
-            <array c:type="gchar**">
-              <type name="utf8"/>
-            </array>
-          </parameter>
-          <parameter name="version" transfer-ownership="none">
-            <type name="RTSPVersion" c:type="GstRTSPVersion*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="init_response"
-              c:identifier="gst_rtsp_message_init_response"
-              doc="Initialize @msg with @code and @reason.
-When @reason is #NULL, the default reason for @code will be used.
-When @request is not #NULL, the relevant headers will be copied to the new
-response message.">
-        <return-value transfer-ownership="full">
-          <type name="RTSPResult" c:type="GstRTSPResult"/>
-        </return-value>
-        <parameters>
-          <parameter name="code" transfer-ownership="none">
-            <type name="RTSPStatusCode" c:type="GstRTSPStatusCode"/>
-          </parameter>
-          <parameter name="reason" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="request" transfer-ownership="none">
-            <type name="RTSPMessage" c:type="GstRTSPMessage*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="parse_response"
-              c:identifier="gst_rtsp_message_parse_response"
-              doc="Parse the response message @msg and store the values @code, @reason and
-value.">
-        <return-value transfer-ownership="full">
-          <type name="RTSPResult" c:type="GstRTSPResult"/>
-        </return-value>
-        <parameters>
-          <parameter name="code" transfer-ownership="none">
-            <type name="RTSPStatusCode" c:type="GstRTSPStatusCode*"/>
-          </parameter>
-          <parameter name="reason" transfer-ownership="none">
-            <array c:type="gchar**">
-              <type name="utf8"/>
-            </array>
-          </parameter>
-          <parameter name="version" transfer-ownership="none">
-            <type name="RTSPVersion" c:type="GstRTSPVersion*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="init_data"
-              c:identifier="gst_rtsp_message_init_data"
-              doc="Initialize a new data #GstRTSPMessage for @channel.">
-        <return-value transfer-ownership="full">
-          <type name="RTSPResult" c:type="GstRTSPResult"/>
-        </return-value>
-        <parameters>
-          <parameter name="channel" transfer-ownership="none">
-            <type name="uint8" c:type="guint8"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="parse_data"
-              c:identifier="gst_rtsp_message_parse_data"
-              doc="Parse the data message @msg and store the channel in @channel.">
-        <return-value transfer-ownership="full">
-          <type name="RTSPResult" c:type="GstRTSPResult"/>
-        </return-value>
-        <parameters>
-          <parameter name="channel" transfer-ownership="none">
-            <array c:type="guint8*">
-              <type name="uint8"/>
-            </array>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="add_header"
-              c:identifier="gst_rtsp_message_add_header"
-              doc="Add a header with key @field and @value to @msg. This function takes a copy
-of @value.">
-        <return-value transfer-ownership="full">
-          <type name="RTSPResult" c:type="GstRTSPResult"/>
-        </return-value>
-        <parameters>
-          <parameter name="field" transfer-ownership="none">
-            <type name="RTSPHeaderField" c:type="GstRTSPHeaderField"/>
-          </parameter>
-          <parameter name="value" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="take_header"
-              c:identifier="gst_rtsp_message_take_header"
-              doc="Add a header with key @field and @value to @msg. This function takes
-ownership of @value."
-              version="0.10.23">
-        <return-value transfer-ownership="full">
-          <type name="RTSPResult" c:type="GstRTSPResult"/>
-        </return-value>
-        <parameters>
-          <parameter name="field" transfer-ownership="none">
-            <type name="RTSPHeaderField" c:type="GstRTSPHeaderField"/>
-          </parameter>
-          <parameter name="value" transfer-ownership="full">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="remove_header"
-              c:identifier="gst_rtsp_message_remove_header"
-              doc="Remove the @indx header with key @field from @msg. If @indx equals -1, all
-headers will be removed.">
-        <return-value transfer-ownership="full">
-          <type name="RTSPResult" c:type="GstRTSPResult"/>
-        </return-value>
-        <parameters>
-          <parameter name="field" transfer-ownership="none">
-            <type name="RTSPHeaderField" c:type="GstRTSPHeaderField"/>
-          </parameter>
-          <parameter name="indx" transfer-ownership="none">
-            <type name="int" c:type="gint"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_header"
-              c:identifier="gst_rtsp_message_get_header"
-              doc="Get the @indx header value with key @field from @msg. The result in @value
-stays valid as long as it remains present in @msg.
-was not found.">
-        <return-value transfer-ownership="full">
-          <type name="RTSPResult" c:type="GstRTSPResult"/>
-        </return-value>
-        <parameters>
-          <parameter name="field" transfer-ownership="none">
-            <type name="RTSPHeaderField" c:type="GstRTSPHeaderField"/>
-          </parameter>
-          <parameter name="value" transfer-ownership="none">
-            <array c:type="gchar**">
-              <type name="utf8"/>
-            </array>
-          </parameter>
-          <parameter name="indx" transfer-ownership="none">
-            <type name="int" c:type="gint"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="append_headers"
-              c:identifier="gst_rtsp_message_append_headers"
-              doc="Append the currently configured headers in @msg to the #GString @str suitable
-for transmission.">
-        <return-value transfer-ownership="full">
-          <type name="RTSPResult" c:type="GstRTSPResult"/>
-        </return-value>
-        <parameters>
-          <parameter name="str" transfer-ownership="none">
-            <type name="GLib.String" c:type="GString*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="set_body"
-              c:identifier="gst_rtsp_message_set_body"
-              doc="Set the body of @msg to a copy of @data.">
-        <return-value transfer-ownership="full">
-          <type name="RTSPResult" c:type="GstRTSPResult"/>
-        </return-value>
-        <parameters>
-          <parameter name="data" transfer-ownership="none">
-            <array c:type="guint8*">
-              <type name="uint8"/>
-            </array>
-          </parameter>
-          <parameter name="size" transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="take_body"
-              c:identifier="gst_rtsp_message_take_body"
-              doc="Set the body of @msg to @data and @size. This method takes ownership of">
-        <return-value transfer-ownership="full">
-          <type name="RTSPResult" c:type="GstRTSPResult"/>
-        </return-value>
-        <parameters>
-          <parameter name="data" transfer-ownership="none">
-            <array c:type="guint8*">
-              <type name="uint8"/>
-            </array>
-          </parameter>
-          <parameter name="size" transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_body"
-              c:identifier="gst_rtsp_message_get_body"
-              doc="Get the body of @msg. @data remains valid for as long as @msg is valid and
-unchanged.">
-        <return-value transfer-ownership="full">
-          <type name="RTSPResult" c:type="GstRTSPResult"/>
-        </return-value>
-        <parameters>
-          <parameter name="data" direction="out" transfer-ownership="full">
-            <type name="uint8" c:type="guint8**"/>
-          </parameter>
-          <parameter name="size" direction="out" transfer-ownership="full">
-            <type name="uint" c:type="guint*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="steal_body"
-              c:identifier="gst_rtsp_message_steal_body"
-              doc="Take the body of @msg and store it in @data and @size. After this method,
-the body and size of @msg will be set to #NULL and 0 respectively.">
-        <return-value transfer-ownership="full">
-          <type name="RTSPResult" c:type="GstRTSPResult"/>
-        </return-value>
-        <parameters>
-          <parameter name="data" direction="out" transfer-ownership="full">
-            <type name="uint8" c:type="guint8**"/>
-          </parameter>
-          <parameter name="size" direction="out" transfer-ownership="full">
-            <type name="uint" c:type="guint*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="dump"
-              c:identifier="gst_rtsp_message_dump"
-              doc="Dump the contents of @msg to stdout.">
-        <return-value transfer-ownership="full">
-          <type name="RTSPResult" c:type="GstRTSPResult"/>
-        </return-value>
-      </method>
-    </record>
-    <bitfield name="RTSPMethod"
-              doc="The different supported RTSP methods."
-              glib:type-name="GstRTSPMethod"
-              glib:get-type="gst_rtsp_method_get_type"
-              c:type="GstRTSPMethod">
-      <member name="invalid"
-              value="0"
-              c:identifier="GST_RTSP_INVALID"
-              glib:nick="invalid"/>
-      <member name="describe"
-              value="1"
-              c:identifier="GST_RTSP_DESCRIBE"
-              glib:nick="describe"/>
-      <member name="announce"
-              value="2"
-              c:identifier="GST_RTSP_ANNOUNCE"
-              glib:nick="announce"/>
-      <member name="get_parameter"
-              value="4"
-              c:identifier="GST_RTSP_GET_PARAMETER"
-              glib:nick="get-parameter"/>
-      <member name="options"
-              value="8"
-              c:identifier="GST_RTSP_OPTIONS"
-              glib:nick="options"/>
-      <member name="pause"
-              value="16"
-              c:identifier="GST_RTSP_PAUSE"
-              glib:nick="pause"/>
-      <member name="play"
-              value="32"
-              c:identifier="GST_RTSP_PLAY"
-              glib:nick="play"/>
-      <member name="record"
-              value="64"
-              c:identifier="GST_RTSP_RECORD"
-              glib:nick="record"/>
-      <member name="redirect"
-              value="128"
-              c:identifier="GST_RTSP_REDIRECT"
-              glib:nick="redirect"/>
-      <member name="setup"
-              value="256"
-              c:identifier="GST_RTSP_SETUP"
-              glib:nick="setup"/>
-      <member name="set_parameter"
-              value="512"
-              c:identifier="GST_RTSP_SET_PARAMETER"
-              glib:nick="set-parameter"/>
-      <member name="teardown"
-              value="1024"
-              c:identifier="GST_RTSP_TEARDOWN"
-              glib:nick="teardown"/>
-      <member name="get"
-              value="2048"
-              c:identifier="GST_RTSP_GET"
-              glib:nick="get"/>
-      <member name="post"
-              value="4096"
-              c:identifier="GST_RTSP_POST"
-              glib:nick="post"/>
-    </bitfield>
-    <enumeration name="RTSPMsgType"
-                 doc="The type of a message."
-                 c:type="GstRTSPMsgType">
-      <member name="invalid"
-              value="0"
-              c:identifier="GST_RTSP_MESSAGE_INVALID"/>
-      <member name="request"
-              value="1"
-              c:identifier="GST_RTSP_MESSAGE_REQUEST"/>
-      <member name="response"
-              value="2"
-              c:identifier="GST_RTSP_MESSAGE_RESPONSE"/>
-      <member name="http_request"
-              value="3"
-              c:identifier="GST_RTSP_MESSAGE_HTTP_REQUEST"/>
-      <member name="http_response"
-              value="4"
-              c:identifier="GST_RTSP_MESSAGE_HTTP_RESPONSE"/>
-      <member name="data" value="5" c:identifier="GST_RTSP_MESSAGE_DATA"/>
-    </enumeration>
-    <bitfield name="RTSPProfile"
-              doc="The transfer profile to use."
-              c:type="GstRTSPProfile">
-      <member name="unknown"
-              value="0"
-              c:identifier="GST_RTSP_PROFILE_UNKNOWN"/>
-      <member name="avp" value="1" c:identifier="GST_RTSP_PROFILE_AVP"/>
-      <member name="savp" value="2" c:identifier="GST_RTSP_PROFILE_SAVP"/>
-    </bitfield>
-    <record name="RTSPRange"
-            c:type="GstRTSPRange"
-            doc="A type to specify a range.">
-      <field name="min" writable="1">
-        <type name="int" c:type="gint"/>
-      </field>
-      <field name="max" writable="1">
-        <type name="int" c:type="gint"/>
-      </field>
-    </record>
-    <enumeration name="RTSPRangeUnit"
-                 doc="Different possible time range units."
-                 c:type="GstRTSPRangeUnit">
-      <member name="smpte" value="0" c:identifier="GST_RTSP_RANGE_SMPTE"/>
-      <member name="smpte_30_drop"
-              value="1"
-              c:identifier="GST_RTSP_RANGE_SMPTE_30_DROP"/>
-      <member name="smpte_25"
-              value="2"
-              c:identifier="GST_RTSP_RANGE_SMPTE_25"/>
-      <member name="npt" value="3" c:identifier="GST_RTSP_RANGE_NPT"/>
-      <member name="clock" value="4" c:identifier="GST_RTSP_RANGE_CLOCK"/>
-    </enumeration>
-    <enumeration name="RTSPResult"
-                 doc="Result codes from the RTSP functions."
-                 glib:type-name="GstRTSPResult"
-                 glib:get-type="gst_rtsp_result_get_type"
-                 c:type="GstRTSPResult">
-      <member name="ok" value="0" c:identifier="GST_RTSP_OK" glib:nick="ok"/>
-      <member name="error"
-              value="-1"
-              c:identifier="GST_RTSP_ERROR"
-              glib:nick="error"/>
-      <member name="einval"
-              value="-2"
-              c:identifier="GST_RTSP_EINVAL"
-              glib:nick="einval"/>
-      <member name="eintr"
-              value="-3"
-              c:identifier="GST_RTSP_EINTR"
-              glib:nick="eintr"/>
-      <member name="enomem"
-              value="-4"
-              c:identifier="GST_RTSP_ENOMEM"
-              glib:nick="enomem"/>
-      <member name="eresolv"
-              value="-5"
-              c:identifier="GST_RTSP_ERESOLV"
-              glib:nick="eresolv"/>
-      <member name="enotimpl"
-              value="-6"
-              c:identifier="GST_RTSP_ENOTIMPL"
-              glib:nick="enotimpl"/>
-      <member name="esys"
-              value="-7"
-              c:identifier="GST_RTSP_ESYS"
-              glib:nick="esys"/>
-      <member name="eparse"
-              value="-8"
-              c:identifier="GST_RTSP_EPARSE"
-              glib:nick="eparse"/>
-      <member name="ewsastart"
-              value="-9"
-              c:identifier="GST_RTSP_EWSASTART"
-              glib:nick="ewsastart"/>
-      <member name="ewsaversion"
-              value="-10"
-              c:identifier="GST_RTSP_EWSAVERSION"
-              glib:nick="ewsaversion"/>
-      <member name="eeof"
-              value="-11"
-              c:identifier="GST_RTSP_EEOF"
-              glib:nick="eeof"/>
-      <member name="enet"
-              value="-12"
-              c:identifier="GST_RTSP_ENET"
-              glib:nick="enet"/>
-      <member name="enotip"
-              value="-13"
-              c:identifier="GST_RTSP_ENOTIP"
-              glib:nick="enotip"/>
-      <member name="etimeout"
-              value="-14"
-              c:identifier="GST_RTSP_ETIMEOUT"
-              glib:nick="etimeout"/>
-      <member name="etget"
-              value="-15"
-              c:identifier="GST_RTSP_ETGET"
-              glib:nick="etget"/>
-      <member name="etpost"
-              value="-16"
-              c:identifier="GST_RTSP_ETPOST"
-              glib:nick="etpost"/>
-      <member name="elast"
-              value="-17"
-              c:identifier="GST_RTSP_ELAST"
-              glib:nick="elast"/>
-    </enumeration>
-    <enumeration name="RTSPState"
-                 doc="The different RTSP states."
-                 glib:type-name="GstRTSPState"
-                 glib:get-type="gst_rtsp_state_get_type"
-                 c:type="GstRTSPState">
-      <member name="invalid"
-              value="0"
-              c:identifier="GST_RTSP_STATE_INVALID"
-              glib:nick="invalid"/>
-      <member name="init"
-              value="1"
-              c:identifier="GST_RTSP_STATE_INIT"
-              glib:nick="init"/>
-      <member name="ready"
-              value="2"
-              c:identifier="GST_RTSP_STATE_READY"
-              glib:nick="ready"/>
-      <member name="seeking"
-              value="3"
-              c:identifier="GST_RTSP_STATE_SEEKING"
-              glib:nick="seeking"/>
-      <member name="playing"
-              value="4"
-              c:identifier="GST_RTSP_STATE_PLAYING"
-              glib:nick="playing"/>
-      <member name="recording"
-              value="5"
-              c:identifier="GST_RTSP_STATE_RECORDING"
-              glib:nick="recording"/>
-    </enumeration>
-    <enumeration name="RTSPStatusCode"
-                 glib:type-name="GstRTSPStatusCode"
-                 glib:get-type="gst_rtsp_status_code_get_type"
-                 c:type="GstRTSPStatusCode">
-      <member name="invalid"
-              value="0"
-              c:identifier="GST_RTSP_STS_INVALID"
-              glib:nick="invalid"/>
-      <member name="continue"
-              value="100"
-              c:identifier="GST_RTSP_STS_CONTINUE"
-              glib:nick="continue"/>
-      <member name="ok"
-              value="200"
-              c:identifier="GST_RTSP_STS_OK"
-              glib:nick="ok"/>
-      <member name="created"
-              value="201"
-              c:identifier="GST_RTSP_STS_CREATED"
-              glib:nick="created"/>
-      <member name="low_on_storage"
-              value="250"
-              c:identifier="GST_RTSP_STS_LOW_ON_STORAGE"
-              glib:nick="low-on-storage"/>
-      <member name="multiple_choices"
-              value="300"
-              c:identifier="GST_RTSP_STS_MULTIPLE_CHOICES"
-              glib:nick="multiple-choices"/>
-      <member name="moved_permanently"
-              value="301"
-              c:identifier="GST_RTSP_STS_MOVED_PERMANENTLY"
-              glib:nick="moved-permanently"/>
-      <member name="move_temporarily"
-              value="302"
-              c:identifier="GST_RTSP_STS_MOVE_TEMPORARILY"
-              glib:nick="move-temporarily"/>
-      <member name="see_other"
-              value="303"
-              c:identifier="GST_RTSP_STS_SEE_OTHER"
-              glib:nick="see-other"/>
-      <member name="not_modified"
-              value="304"
-              c:identifier="GST_RTSP_STS_NOT_MODIFIED"
-              glib:nick="not-modified"/>
-      <member name="use_proxy"
-              value="305"
-              c:identifier="GST_RTSP_STS_USE_PROXY"
-              glib:nick="use-proxy"/>
-      <member name="bad_request"
-              value="400"
-              c:identifier="GST_RTSP_STS_BAD_REQUEST"
-              glib:nick="bad-request"/>
-      <member name="unauthorized"
-              value="401"
-              c:identifier="GST_RTSP_STS_UNAUTHORIZED"
-              glib:nick="unauthorized"/>
-      <member name="payment_required"
-              value="402"
-              c:identifier="GST_RTSP_STS_PAYMENT_REQUIRED"
-              glib:nick="payment-required"/>
-      <member name="forbidden"
-              value="403"
-              c:identifier="GST_RTSP_STS_FORBIDDEN"
-              glib:nick="forbidden"/>
-      <member name="not_found"
-              value="404"
-              c:identifier="GST_RTSP_STS_NOT_FOUND"
-              glib:nick="not-found"/>
-      <member name="method_not_allowed"
-              value="405"
-              c:identifier="GST_RTSP_STS_METHOD_NOT_ALLOWED"
-              glib:nick="method-not-allowed"/>
-      <member name="not_acceptable"
-              value="406"
-              c:identifier="GST_RTSP_STS_NOT_ACCEPTABLE"
-              glib:nick="not-acceptable"/>
-      <member name="proxy_auth_required"
-              value="407"
-              c:identifier="GST_RTSP_STS_PROXY_AUTH_REQUIRED"
-              glib:nick="proxy-auth-required"/>
-      <member name="request_timeout"
-              value="408"
-              c:identifier="GST_RTSP_STS_REQUEST_TIMEOUT"
-              glib:nick="request-timeout"/>
-      <member name="gone"
-              value="410"
-              c:identifier="GST_RTSP_STS_GONE"
-              glib:nick="gone"/>
-      <member name="length_required"
-              value="411"
-              c:identifier="GST_RTSP_STS_LENGTH_REQUIRED"
-              glib:nick="length-required"/>
-      <member name="precondition_failed"
-              value="412"
-              c:identifier="GST_RTSP_STS_PRECONDITION_FAILED"
-              glib:nick="precondition-failed"/>
-      <member name="request_entity_too_large"
-              value="413"
-              c:identifier="GST_RTSP_STS_REQUEST_ENTITY_TOO_LARGE"
-              glib:nick="request-entity-too-large"/>
-      <member name="request_uri_too_large"
-              value="414"
-              c:identifier="GST_RTSP_STS_REQUEST_URI_TOO_LARGE"
-              glib:nick="request-uri-too-large"/>
-      <member name="unsupported_media_type"
-              value="415"
-              c:identifier="GST_RTSP_STS_UNSUPPORTED_MEDIA_TYPE"
-              glib:nick="unsupported-media-type"/>
-      <member name="parameter_not_understood"
-              value="451"
-              c:identifier="GST_RTSP_STS_PARAMETER_NOT_UNDERSTOOD"
-              glib:nick="parameter-not-understood"/>
-      <member name="conference_not_found"
-              value="452"
-              c:identifier="GST_RTSP_STS_CONFERENCE_NOT_FOUND"
-              glib:nick="conference-not-found"/>
-      <member name="not_enough_bandwidth"
-              value="453"
-              c:identifier="GST_RTSP_STS_NOT_ENOUGH_BANDWIDTH"
-              glib:nick="not-enough-bandwidth"/>
-      <member name="session_not_found"
-              value="454"
-              c:identifier="GST_RTSP_STS_SESSION_NOT_FOUND"
-              glib:nick="session-not-found"/>
-      <member name="method_not_valid_in_this_state"
-              value="455"
-              c:identifier="GST_RTSP_STS_METHOD_NOT_VALID_IN_THIS_STATE"
-              glib:nick="method-not-valid-in-this-state"/>
-      <member name="header_field_not_valid_for_resource"
-              value="456"
-              c:identifier="GST_RTSP_STS_HEADER_FIELD_NOT_VALID_FOR_RESOURCE"
-              glib:nick="header-field-not-valid-for-resource"/>
-      <member name="invalid_range"
-              value="457"
-              c:identifier="GST_RTSP_STS_INVALID_RANGE"
-              glib:nick="invalid-range"/>
-      <member name="parameter_is_readonly"
-              value="458"
-              c:identifier="GST_RTSP_STS_PARAMETER_IS_READONLY"
-              glib:nick="parameter-is-readonly"/>
-      <member name="aggregate_operation_not_allowed"
-              value="459"
-              c:identifier="GST_RTSP_STS_AGGREGATE_OPERATION_NOT_ALLOWED"
-              glib:nick="aggregate-operation-not-allowed"/>
-      <member name="only_aggregate_operation_allowed"
-              value="460"
-              c:identifier="GST_RTSP_STS_ONLY_AGGREGATE_OPERATION_ALLOWED"
-              glib:nick="only-aggregate-operation-allowed"/>
-      <member name="unsupported_transport"
-              value="461"
-              c:identifier="GST_RTSP_STS_UNSUPPORTED_TRANSPORT"
-              glib:nick="unsupported-transport"/>
-      <member name="destination_unreachable"
-              value="462"
-              c:identifier="GST_RTSP_STS_DESTINATION_UNREACHABLE"
-              glib:nick="destination-unreachable"/>
-      <member name="internal_server_error"
-              value="500"
-              c:identifier="GST_RTSP_STS_INTERNAL_SERVER_ERROR"
-              glib:nick="internal-server-error"/>
-      <member name="not_implemented"
-              value="501"
-              c:identifier="GST_RTSP_STS_NOT_IMPLEMENTED"
-              glib:nick="not-implemented"/>
-      <member name="bad_gateway"
-              value="502"
-              c:identifier="GST_RTSP_STS_BAD_GATEWAY"
-              glib:nick="bad-gateway"/>
-      <member name="service_unavailable"
-              value="503"
-              c:identifier="GST_RTSP_STS_SERVICE_UNAVAILABLE"
-              glib:nick="service-unavailable"/>
-      <member name="gateway_timeout"
-              value="504"
-              c:identifier="GST_RTSP_STS_GATEWAY_TIMEOUT"
-              glib:nick="gateway-timeout"/>
-      <member name="rtsp_version_not_supported"
-              value="505"
-              c:identifier="GST_RTSP_STS_RTSP_VERSION_NOT_SUPPORTED"
-              glib:nick="rtsp-version-not-supported"/>
-      <member name="option_not_supported"
-              value="551"
-              c:identifier="GST_RTSP_STS_OPTION_NOT_SUPPORTED"
-              glib:nick="option-not-supported"/>
-    </enumeration>
-    <record name="RTSPTime" c:type="GstRTSPTime" doc="A time indication.">
-      <field name="type" writable="1">
-        <type name="RTSPTimeType" c:type="GstRTSPTimeType"/>
-      </field>
-      <field name="seconds" writable="1">
-        <type name="double" c:type="gdouble"/>
-      </field>
-    </record>
-    <record name="RTSPTimeRange" c:type="GstRTSPTimeRange" doc="A time range.">
-      <field name="unit" writable="1">
-        <type name="RTSPRangeUnit" c:type="GstRTSPRangeUnit"/>
-      </field>
-      <field name="min" writable="1">
-        <type name="RTSPTime" c:type="GstRTSPTime"/>
-      </field>
-      <field name="max" writable="1">
-        <type name="RTSPTime" c:type="GstRTSPTime"/>
-      </field>
-    </record>
-    <enumeration name="RTSPTimeType"
-                 doc="Possible time types."
-                 c:type="GstRTSPTimeType">
-      <member name="seconds" value="0" c:identifier="GST_RTSP_TIME_SECONDS"/>
-      <member name="now" value="1" c:identifier="GST_RTSP_TIME_NOW"/>
-      <member name="end" value="2" c:identifier="GST_RTSP_TIME_END"/>
-    </enumeration>
-    <bitfield name="RTSPTransMode"
-              doc="The transfer mode to use."
-              c:type="GstRTSPTransMode">
-      <member name="unknown" value="0" c:identifier="GST_RTSP_TRANS_UNKNOWN"/>
-      <member name="rtp" value="1" c:identifier="GST_RTSP_TRANS_RTP"/>
-      <member name="rdt" value="2" c:identifier="GST_RTSP_TRANS_RDT"/>
-    </bitfield>
-    <record name="RTSPTransport" c:type="_GstRTSPTransport">
-      <field name="trans" writable="1">
-        <type name="RTSPTransMode" c:type="GstRTSPTransMode"/>
-      </field>
-      <field name="profile" writable="1">
-        <type name="RTSPProfile" c:type="GstRTSPProfile"/>
-      </field>
-      <field name="lower_transport" writable="1">
-        <type name="RTSPLowerTrans" c:type="GstRTSPLowerTrans"/>
-      </field>
-      <field name="destination" writable="1">
-        <type name="utf8" c:type="gchar*"/>
-      </field>
-      <field name="source" writable="1">
-        <type name="utf8" c:type="gchar*"/>
-      </field>
-      <field name="layers" writable="1">
-        <type name="uint" c:type="guint"/>
-      </field>
-      <field name="mode_play" writable="1">
-        <type name="boolean" c:type="gboolean"/>
-      </field>
-      <field name="mode_record" writable="1">
-        <type name="boolean" c:type="gboolean"/>
-      </field>
-      <field name="append" writable="1">
-        <type name="boolean" c:type="gboolean"/>
-      </field>
-      <field name="interleaved" writable="1">
-        <type name="RTSPRange" c:type="GstRTSPRange"/>
-      </field>
-      <field name="ttl" writable="1">
-        <type name="uint" c:type="guint"/>
-      </field>
-      <field name="port" writable="1">
-        <type name="RTSPRange" c:type="GstRTSPRange"/>
-      </field>
-      <field name="client_port" writable="1">
-        <type name="RTSPRange" c:type="GstRTSPRange"/>
-      </field>
-      <field name="server_port" writable="1">
-        <type name="RTSPRange" c:type="GstRTSPRange"/>
-      </field>
-      <field name="ssrc" writable="1">
-        <type name="uint" c:type="guint"/>
-      </field>
-    </record>
-    <record name="RTSPUrl"
-            c:type="GstRTSPUrl"
-            doc="This structure contains the result of a parsed RTSP URL"
-            glib:type-name="GstRTSPUrl"
-            glib:get-type="gst_rtsp_url_get_type">
-      <field name="transports" writable="1">
-        <type name="RTSPLowerTrans" c:type="GstRTSPLowerTrans"/>
-      </field>
-      <field name="family" writable="1">
-        <type name="RTSPFamily" c:type="GstRTSPFamily"/>
-      </field>
-      <field name="user" writable="1">
-        <type name="utf8" c:type="gchar*"/>
-      </field>
-      <field name="passwd" writable="1">
-        <type name="utf8" c:type="gchar*"/>
-      </field>
-      <field name="host" writable="1">
-        <type name="utf8" c:type="gchar*"/>
-      </field>
-      <field name="port" writable="1">
-        <type name="uint16" c:type="guint16"/>
-      </field>
-      <field name="abspath" writable="1">
-        <type name="utf8" c:type="gchar*"/>
-      </field>
-      <field name="query" writable="1">
-        <type name="utf8" c:type="gchar*"/>
-      </field>
-      <method name="copy"
-              c:identifier="gst_rtsp_url_copy"
-              doc="Make a copy of @url."
-              version="0.10.22">
-        <return-value transfer-ownership="full" doc="after usage.">
-          <type name="RTSPUrl" c:type="GstRTSPUrl*"/>
-        </return-value>
-      </method>
-      <method name="free"
-              c:identifier="gst_rtsp_url_free"
-              doc="Free the memory used by @url.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </method>
-      <method name="get_request_uri"
-              c:identifier="gst_rtsp_url_get_request_uri"
-              doc="Get a newly allocated string describing the request URI for @url.">
-        <return-value transfer-ownership="full" doc="after usage.">
-          <type name="utf8" c:type="gchar*"/>
-        </return-value>
-      </method>
-      <method name="set_port"
-              c:identifier="gst_rtsp_url_set_port"
-              doc="Set the port number in @url to @port.">
-        <return-value transfer-ownership="full">
-          <type name="RTSPResult" c:type="GstRTSPResult"/>
-        </return-value>
-        <parameters>
-          <parameter name="port" transfer-ownership="none">
-            <type name="uint16" c:type="guint16"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_port"
-              c:identifier="gst_rtsp_url_get_port"
-              doc="Get the port number of @url.">
-        <return-value transfer-ownership="full">
-          <type name="RTSPResult" c:type="GstRTSPResult"/>
-        </return-value>
-        <parameters>
-          <parameter name="port" direction="out" transfer-ownership="full">
-            <type name="uint16" c:type="guint16*"/>
-          </parameter>
-        </parameters>
-      </method>
-    </record>
-    <enumeration name="RTSPVersion"
-                 doc="The supported RTSP versions."
-                 glib:type-name="GstRTSPVersion"
-                 glib:get-type="gst_rtsp_version_get_type"
-                 c:type="GstRTSPVersion">
-      <member name="invalid"
-              value="0"
-              c:identifier="GST_RTSP_VERSION_INVALID"
-              glib:nick="invalid"/>
-      <member name="1_0"
-              value="16"
-              c:identifier="GST_RTSP_VERSION_1_0"
-              glib:nick="1-0"/>
-      <member name="1_1"
-              value="17"
-              c:identifier="GST_RTSP_VERSION_1_1"
-              glib:nick="1-1"/>
-    </enumeration>
-    <record name="RTSPWatch"
-            c:type="GstRTSPWatch"
-            doc="Opaque RTSP watch object that can be used for asynchronous RTSP
-operations.">
-      <constructor name="new"
-                   c:identifier="gst_rtsp_watch_new"
-                   doc="Create a watch object for @conn. The functions provided in @funcs will be
-called with @user_data when activity happened on the watch.
-The new watch is usually created so that it can be attached to a
-maincontext with gst_rtsp_watch_attach().
-communication. Free with gst_rtsp_watch_unref () after usage."
-                   version="0.10.23">
-        <return-value transfer-ownership="full">
-          <type name="RTSPWatch" c:type="GstRTSPWatch*"/>
-        </return-value>
-        <parameters>
-          <parameter name="conn" transfer-ownership="none">
-            <type name="RTSPConnection" c:type="GstRTSPConnection*"/>
-          </parameter>
-          <parameter name="funcs" transfer-ownership="none">
-            <type name="RTSPWatchFuncs" c:type="GstRTSPWatchFuncs*"/>
-          </parameter>
-          <parameter name="user_data" transfer-ownership="none">
-            <type name="any" c:type="gpointer"/>
-          </parameter>
-          <parameter name="notify" transfer-ownership="none" scope="call">
-            <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
-          </parameter>
-        </parameters>
-      </constructor>
-      <method name="reset"
-              c:identifier="gst_rtsp_watch_reset"
-              doc="Reset @watch, this is usually called after gst_rtsp_connection_do_tunnel()
-when the file descriptors of the connection might have changed."
-              version="0.10.23">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </method>
-      <method name="unref"
-              c:identifier="gst_rtsp_watch_unref"
-              doc="Decreases the reference count of @watch by one. If the resulting reference
-count is zero the watch and associated memory will be destroyed."
-              version="0.10.23">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-      </method>
-      <method name="attach"
-              c:identifier="gst_rtsp_watch_attach"
-              doc="Adds a #GstRTSPWatch to a context so that it will be executed within that context."
-              version="0.10.23">
-        <return-value transfer-ownership="none"
-                      doc="for the watch within the GMainContext.">
-          <type name="uint" c:type="guint"/>
-        </return-value>
-        <parameters>
-          <parameter name="context" transfer-ownership="none">
-            <type name="GLib.MainContext" c:type="GMainContext*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="write_data"
-              c:identifier="gst_rtsp_watch_write_data"
-              doc="Write @data using the connection of the @watch. If it cannot be sent
-immediately, it will be queued for transmission in @watch. The contents of
-callback.
-This function will take ownership of @data and g_free() it after use."
-              version="0.10.25">
-        <return-value transfer-ownership="full">
-          <type name="RTSPResult" c:type="GstRTSPResult"/>
-        </return-value>
-        <parameters>
-          <parameter name="data" transfer-ownership="none">
-            <array c:type="guint8*">
-              <type name="uint8"/>
-            </array>
-          </parameter>
-          <parameter name="size" transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
-          </parameter>
-          <parameter name="id" direction="out" transfer-ownership="full">
-            <type name="uint" c:type="guint*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="send_message"
-              c:identifier="gst_rtsp_watch_send_message"
-              doc="Send a @message using the connection of the @watch. If it cannot be sent
-immediately, it will be queued for transmission in @watch. The contents of
-callback."
-              version="0.10.25">
-        <return-value transfer-ownership="full">
-          <type name="RTSPResult" c:type="GstRTSPResult"/>
-        </return-value>
-        <parameters>
-          <parameter name="message" transfer-ownership="none">
-            <type name="RTSPMessage" c:type="GstRTSPMessage*"/>
-          </parameter>
-          <parameter name="id" direction="out" transfer-ownership="full">
-            <type name="uint" c:type="guint*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="queue_data"
-              c:identifier="gst_rtsp_watch_queue_data"
-              doc="Queue @data for transmission in @watch. It will be transmitted when the
-connection of the @watch becomes writable.
-This function will take ownership of @data and g_free() it after use.
-The return value of this function will be used as the id argument in the
-message_sent callback."
-              version="0.10.24"
-              deprecated="Use gst_rtsp_watch_write_data()">
-        <return-value transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
-        </return-value>
-        <parameters>
-          <parameter name="data" transfer-ownership="none">
-            <array c:type="guint8*">
-              <type name="uint8"/>
-            </array>
-          </parameter>
-          <parameter name="size" transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="queue_message"
-              c:identifier="gst_rtsp_watch_queue_message"
-              doc="Queue a @message for transmission in @watch. The contents of this
-message will be serialized and transmitted when the connection of the
-The return value of this function will be used as the id argument in the
-message_sent callback."
-              version="0.10.23"
-              deprecated="Use gst_rtsp_watch_send_message()">
-        <return-value transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
-        </return-value>
-        <parameters>
-          <parameter name="message" transfer-ownership="none">
-            <type name="RTSPMessage" c:type="GstRTSPMessage*"/>
-          </parameter>
-        </parameters>
-      </method>
-    </record>
-    <record name="RTSPWatchFuncs"
-            c:type="GstRTSPWatchFuncs"
-            doc="connection must be saved.
-you usually pair the tunnelid of this connection with the saved one using
-gst_rtsp_connection_do_tunnel().
-the @error callback. Since 0.10.25
-Since 0.10.29
-Callback functions from a #GstRTSPWatch."
-            version="0.10.23">
-      <field name="message_received">
-        <type name="any" c:type="pointer"/>
-      </field>
-      <field name="message_sent">
-        <type name="any" c:type="pointer"/>
-      </field>
-      <field name="closed">
-        <type name="any" c:type="pointer"/>
-      </field>
-      <field name="error">
-        <type name="any" c:type="pointer"/>
-      </field>
-      <field name="tunnel_start">
-        <type name="any" c:type="pointer"/>
-      </field>
-      <field name="tunnel_complete">
-        <type name="any" c:type="pointer"/>
-      </field>
-      <field name="error_full">
-        <type name="any" c:type="pointer"/>
-      </field>
-      <field name="tunnel_lost">
-        <type name="any" c:type="pointer"/>
-      </field>
-      <field name="_gst_reserved" writable="1">
-        <array zero-terminated="0" c:type="gpointer" fixed-size="2">
-          <type name="any"/>
-        </array>
-      </field>
-    </record>
-    <function name="base64_decode_ip"
-              c:identifier="gst_rtsp_base64_decode_ip"
-              doc="Decode the base64 string pointed to by @data in-place. When @len is not #NULL
-it will contain the length of the decoded data.">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="data" transfer-ownership="full">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-        <parameter name="len" direction="out" transfer-ownership="full">
-          <type name="size_t" c:type="gsize*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="base64_encode"
-              c:identifier="gst_rtsp_base64_encode"
-              doc="Encode a sequence of binary data into its Base-64 stringified representation.
-representing @data."
-              deprecated="Use g_base64_encode()">
-      <return-value transfer-ownership="full">
-        <type name="utf8" c:type="gchar*"/>
-      </return-value>
-      <parameters>
-        <parameter name="data" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-        <parameter name="len" transfer-ownership="none">
-          <type name="size_t" c:type="gsize"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="connection_accept"
-              c:identifier="gst_rtsp_connection_accept"
-              doc="Accept a new connection on @sock and create a new #GstRTSPConnection for
-handling communication on new socket."
-              version="0.10.23">
-      <return-value transfer-ownership="full">
-        <type name="RTSPResult" c:type="GstRTSPResult"/>
-      </return-value>
-      <parameters>
-        <parameter name="sock" transfer-ownership="none">
-          <type name="int" c:type="gint"/>
-        </parameter>
-        <parameter name="conn" transfer-ownership="none">
-          <type name="RTSPConnection" c:type="GstRTSPConnection**"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="connection_create"
-              c:identifier="gst_rtsp_connection_create"
-              doc="Create a newly allocated #GstRTSPConnection from @url and store it in @conn.
-The connection will not yet attempt to connect to @url, use
-gst_rtsp_connection_connect().
-A copy of @url will be made.">
-      <return-value transfer-ownership="full">
-        <type name="RTSPResult" c:type="GstRTSPResult"/>
-      </return-value>
-      <parameters>
-        <parameter name="url" transfer-ownership="none">
-          <type name="RTSPUrl" c:type="GstRTSPUrl*"/>
-        </parameter>
-        <parameter name="conn" transfer-ownership="none">
-          <type name="RTSPConnection" c:type="GstRTSPConnection**"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="connection_create_from_fd"
-              c:identifier="gst_rtsp_connection_create_from_fd"
-              doc="Create a new #GstRTSPConnection for handling communication on the existing
-file descriptor @fd. The @initial_buffer contains any data already read from"
-              version="0.10.25">
-      <return-value transfer-ownership="full">
-        <type name="RTSPResult" c:type="GstRTSPResult"/>
-      </return-value>
-      <parameters>
-        <parameter name="fd" transfer-ownership="none">
-          <type name="int" c:type="gint"/>
-        </parameter>
-        <parameter name="ip" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-        <parameter name="port" transfer-ownership="none">
-          <type name="uint16" c:type="guint16"/>
-        </parameter>
-        <parameter name="initial_buffer" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-        <parameter name="conn" transfer-ownership="none">
-          <type name="RTSPConnection" c:type="GstRTSPConnection**"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="find_header_field"
-              c:identifier="gst_rtsp_find_header_field"
-              doc="Convert @header to a #GstRTSPHeaderField.
-header field is unknown.">
-      <return-value transfer-ownership="full">
-        <type name="RTSPHeaderField" c:type="GstRTSPHeaderField"/>
-      </return-value>
-      <parameters>
-        <parameter name="header" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="find_method"
-              c:identifier="gst_rtsp_find_method"
-              doc="Convert @method to a #GstRTSPMethod.
-method is unknown.">
-      <return-value transfer-ownership="full">
-        <type name="RTSPMethod" c:type="GstRTSPMethod"/>
-      </return-value>
-      <parameters>
-        <parameter name="method" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="header_allow_multiple"
-              c:identifier="gst_rtsp_header_allow_multiple"
-              doc="Check whether @field may appear multiple times in a message."
-              version="0.10.25">
-      <return-value transfer-ownership="none">
-        <type name="boolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="field" transfer-ownership="none">
-          <type name="RTSPHeaderField" c:type="GstRTSPHeaderField"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="header_as_text"
-              c:identifier="gst_rtsp_header_as_text"
-              doc="Convert @field to a string.">
-      <return-value transfer-ownership="none">
-        <type name="utf8" c:type="gchar*"/>
-      </return-value>
-      <parameters>
-        <parameter name="field" transfer-ownership="none">
-          <type name="RTSPHeaderField" c:type="GstRTSPHeaderField"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="message_get_type"
-              c:identifier="gst_rtsp_message_get_type"
-              doc="Get the message type of @msg.">
-      <return-value transfer-ownership="full">
-        <type name="RTSPMsgType" c:type="GstRTSPMsgType"/>
-      </return-value>
-      <parameters>
-        <parameter name="msg" transfer-ownership="none">
-          <type name="RTSPMessage" c:type="GstRTSPMessage*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="method_as_text"
-              c:identifier="gst_rtsp_method_as_text"
-              doc="Convert @method to a string.">
-      <return-value transfer-ownership="none">
-        <type name="utf8" c:type="gchar*"/>
-      </return-value>
-      <parameters>
-        <parameter name="method" transfer-ownership="none">
-          <type name="RTSPMethod" c:type="GstRTSPMethod"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="options_as_text"
-              c:identifier="gst_rtsp_options_as_text"
-              doc="Convert @options to a string."
-              version="0.10.23">
-      <return-value transfer-ownership="full" doc="after usage.">
-        <type name="utf8" c:type="gchar*"/>
-      </return-value>
-      <parameters>
-        <parameter name="options" transfer-ownership="none">
-          <type name="RTSPMethod" c:type="GstRTSPMethod"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="range_free"
-              c:identifier="gst_rtsp_range_free"
-              doc="Free the memory alocated by @range.">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="range" transfer-ownership="none">
-          <type name="RTSPTimeRange" c:type="GstRTSPTimeRange*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="range_parse"
-              c:identifier="gst_rtsp_range_parse"
-              doc="Parse @rangestr to a #GstRTSPTimeRange.">
-      <return-value transfer-ownership="full">
-        <type name="RTSPResult" c:type="GstRTSPResult"/>
-      </return-value>
-      <parameters>
-        <parameter name="rangestr" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-        <parameter name="range" transfer-ownership="none">
-          <type name="RTSPTimeRange" c:type="GstRTSPTimeRange**"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="range_to_string"
-              c:identifier="gst_rtsp_range_to_string"
-              doc="Convert @range into a string representation."
-              version="0.10.23">
-      <return-value transfer-ownership="full" doc="after usage.">
-        <type name="utf8" c:type="gchar*"/>
-      </return-value>
-      <parameters>
-        <parameter name="range" transfer-ownership="none">
-          <type name="RTSPTimeRange" c:type="GstRTSPTimeRange*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="status_as_text"
-              c:identifier="gst_rtsp_status_as_text"
-              doc="Convert @code to a string.">
-      <return-value transfer-ownership="none">
-        <type name="utf8" c:type="gchar*"/>
-      </return-value>
-      <parameters>
-        <parameter name="code" transfer-ownership="none">
-          <type name="RTSPStatusCode" c:type="GstRTSPStatusCode"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="strresult"
-              c:identifier="gst_rtsp_strresult"
-              doc="Convert @result in a human readable string.">
-      <return-value transfer-ownership="full" doc="after usage.">
-        <type name="utf8" c:type="gchar*"/>
-      </return-value>
-      <parameters>
-        <parameter name="result" transfer-ownership="none">
-          <type name="RTSPResult" c:type="GstRTSPResult"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="transport_as_text"
-              c:identifier="gst_rtsp_transport_as_text"
-              doc="Convert @transport into a string that can be used to signal the transport in
-an RTSP SETUP response.
-is invalid.">
-      <return-value transfer-ownership="full">
-        <type name="utf8" c:type="gchar*"/>
-      </return-value>
-      <parameters>
-        <parameter name="transport" transfer-ownership="none">
-          <type name="RTSPTransport" c:type="GstRTSPTransport*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="transport_free"
-              c:identifier="gst_rtsp_transport_free"
-              doc="Free the memory used by @transport.">
-      <return-value transfer-ownership="full">
-        <type name="RTSPResult" c:type="GstRTSPResult"/>
-      </return-value>
-      <parameters>
-        <parameter name="transport" transfer-ownership="none">
-          <type name="RTSPTransport" c:type="GstRTSPTransport*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="transport_get_manager"
-              c:identifier="gst_rtsp_transport_get_manager"
-              doc="Get the #GStreamer element that can handle the buffers transported over
-It is possible that there are several managers available, use @option to
-selected one.
-needed/available for @trans.">
-      <return-value transfer-ownership="full">
-        <type name="RTSPResult" c:type="GstRTSPResult"/>
-      </return-value>
-      <parameters>
-        <parameter name="trans" transfer-ownership="none">
-          <type name="RTSPTransMode" c:type="GstRTSPTransMode"/>
-        </parameter>
-        <parameter name="manager" transfer-ownership="none">
-          <array c:type="gchar**">
-            <type name="utf8"/>
-          </array>
-        </parameter>
-        <parameter name="option" transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="transport_get_mime"
-              c:identifier="gst_rtsp_transport_get_mime"
-              doc="Get the mime type of the transport mode @trans. This mime type is typically
-used to generate #GstCaps on buffers.">
-      <return-value transfer-ownership="full">
-        <type name="RTSPResult" c:type="GstRTSPResult"/>
-      </return-value>
-      <parameters>
-        <parameter name="trans" transfer-ownership="none">
-          <type name="RTSPTransMode" c:type="GstRTSPTransMode"/>
-        </parameter>
-        <parameter name="mime" transfer-ownership="none">
-          <array c:type="gchar**">
-            <type name="utf8"/>
-          </array>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="transport_init"
-              c:identifier="gst_rtsp_transport_init"
-              doc="Initialize @transport so that it can be used.">
-      <return-value transfer-ownership="full">
-        <type name="RTSPResult" c:type="GstRTSPResult"/>
-      </return-value>
-      <parameters>
-        <parameter name="transport" transfer-ownership="none">
-          <type name="RTSPTransport" c:type="GstRTSPTransport*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="transport_new"
-              c:identifier="gst_rtsp_transport_new"
-              doc="Allocate a new initialized #GstRTSPTransport. Use gst_rtsp_transport_free()
-after usage.">
-      <return-value transfer-ownership="full">
-        <type name="RTSPResult" c:type="GstRTSPResult"/>
-      </return-value>
-      <parameters>
-        <parameter name="transport" transfer-ownership="none">
-          <type name="RTSPTransport" c:type="GstRTSPTransport**"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="transport_parse"
-              c:identifier="gst_rtsp_transport_parse"
-              doc="Parse the RTSP transport string @str into @transport.">
-      <return-value transfer-ownership="full">
-        <type name="RTSPResult" c:type="GstRTSPResult"/>
-      </return-value>
-      <parameters>
-        <parameter name="str" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-        <parameter name="transport" transfer-ownership="none">
-          <type name="RTSPTransport" c:type="GstRTSPTransport*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="url_parse"
-              c:identifier="gst_rtsp_url_parse"
-              doc="Parse the RTSP @urlstr into a newly allocated #GstRTSPUrl. Free after usage
-with gst_rtsp_url_free().">
-      <return-value transfer-ownership="full">
-        <type name="RTSPResult" c:type="GstRTSPResult"/>
-      </return-value>
-      <parameters>
-        <parameter name="urlstr" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-        <parameter name="url" transfer-ownership="none">
-          <type name="RTSPUrl" c:type="GstRTSPUrl**"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="version_as_text"
-              c:identifier="gst_rtsp_version_as_text"
-              doc="Convert @version to a string.">
-      <return-value transfer-ownership="none">
-        <type name="utf8" c:type="gchar*"/>
-      </return-value>
-      <parameters>
-        <parameter name="version" transfer-ownership="none">
-          <type name="RTSPVersion" c:type="GstRTSPVersion"/>
-        </parameter>
-      </parameters>
-    </function>
-  </namespace>
-</repository>
diff --git a/extra/gstreamer/rtsp/ffi/ffi.factor b/extra/gstreamer/rtsp/ffi/ffi.factor
deleted file mode 100644 (file)
index a3989d7..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-! Copyright (C) 2010 Anton Gorenko.
-! See http://factorcode.org/license.txt for BSD license.
-USING: alien alien.syntax alien.libraries combinators kernel
-system
-gobject-introspection glib.ffi gstreamer.ffi gstreamer.sdp.ffi ;
-IN: gstreamer.rtsp.ffi
-
-<<
-"gstreamer.rtsp" {
-    { [ os winnt? ] [ drop ] }
-    { [ os macosx? ] [ drop ] }
-    { [ os unix? ] [ "libgstrtsp-0.10.so" cdecl add-library ] }
-} cond
->>
-
-! git error (there is _GstRTSPTransport only in .gir)
-C-TYPE: GstRTSPTransport
-
-GIR: vocab:gstreamer/rtsp/GstRtsp-0.10.gir
-
diff --git a/extra/gstreamer/rtsp/rtsp.factor b/extra/gstreamer/rtsp/rtsp.factor
deleted file mode 100644 (file)
index 72069f6..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-! Copyright (C) 2010 Anton Gorenko.
-! See http://factorcode.org/license.txt for BSD license.
-USING: gstreamer.rtsp.ffi ;
-IN: gstreamer.rtsp
-
diff --git a/extra/gstreamer/sdp/GstSdp-0.10.gir b/extra/gstreamer/sdp/GstSdp-0.10.gir
deleted file mode 100644 (file)
index 16f62f6..0000000
+++ /dev/null
@@ -1,1056 +0,0 @@
-<?xml version="1.0"?>
-<!-- This file was automatically generated from C sources - DO NOT EDIT!
-To affect the contents of this file, edit the original C definitions,
-and/or use gtk-doc annotations.  -->
-<repository version="1.0"
-            xmlns="http://www.gtk.org/introspection/core/1.0"
-            xmlns:c="http://www.gtk.org/introspection/c/1.0"
-            xmlns:glib="http://www.gtk.org/introspection/glib/1.0">
-  <include name="GLib" version="2.0"/>
-  <include name="GModule" version="2.0"/>
-  <include name="GObject" version="2.0"/>
-  <include name="Gst" version="0.10"/>
-  <include name="libxml2" version="2.0"/>
-  <package name="gstreamer-0.10"/>
-  <c:include name="gst/audio/gstsdp.h"/>
-  <c:include name="gst/audio/gstsdpmessage.h"/>
-  <namespace name="GstSdp"
-             version="0.10"
-             shared-library="libgstsdp-0.10.so.0"
-             c:prefix="Gst">
-    <constant name="BWTYPE_AS" value="AS">
-      <type name="utf8"/>
-    </constant>
-    <constant name="BWTYPE_CT" value="CT">
-      <type name="utf8"/>
-    </constant>
-    <constant name="BWTYPE_EXT_PREFIX" value="X-">
-      <type name="utf8"/>
-    </constant>
-    <constant name="BWTYPE_RS" value="RS">
-      <type name="utf8"/>
-    </constant>
-    <record name="SDPAttribute"
-            c:type="GstSDPAttribute"
-            doc="The contents of the SDP &quot;a=&quot; field which contains a key/value pair.">
-      <field name="key" writable="1">
-        <type name="utf8" c:type="gchar*"/>
-      </field>
-      <field name="value" writable="1">
-        <type name="utf8" c:type="gchar*"/>
-      </field>
-    </record>
-    <record name="SDPBandwidth"
-            c:type="GstSDPBandwidth"
-            doc="The contents of the SDP &quot;b=&quot; field which specifies the proposed bandwidth to
-be used by the session or media.">
-      <field name="bwtype" writable="1">
-        <type name="utf8" c:type="gchar*"/>
-      </field>
-      <field name="bandwidth" writable="1">
-        <type name="uint" c:type="guint"/>
-      </field>
-    </record>
-    <record name="SDPConnection"
-            c:type="GstSDPConnection"
-            doc="&quot;Internet&quot;.
-The contents of the SDP &quot;c=&quot; field which contains connection data.">
-      <field name="nettype" writable="1">
-        <type name="utf8" c:type="gchar*"/>
-      </field>
-      <field name="addrtype" writable="1">
-        <type name="utf8" c:type="gchar*"/>
-      </field>
-      <field name="address" writable="1">
-        <type name="utf8" c:type="gchar*"/>
-      </field>
-      <field name="ttl" writable="1">
-        <type name="uint" c:type="guint"/>
-      </field>
-      <field name="addr_number" writable="1">
-        <type name="uint" c:type="guint"/>
-      </field>
-    </record>
-    <record name="SDPKey"
-            c:type="GstSDPKey"
-            doc="The contents of the SDP &quot;k=&quot; field which is used to convey encryption
-keys.">
-      <field name="type" writable="1">
-        <type name="utf8" c:type="gchar*"/>
-      </field>
-      <field name="data" writable="1">
-        <type name="utf8" c:type="gchar*"/>
-      </field>
-    </record>
-    <record name="SDPMedia"
-            c:type="GstSDPMedia"
-            doc="The contents of the SDP &quot;m=&quot; field with all related fields.">
-      <field name="media" writable="1">
-        <type name="utf8" c:type="gchar*"/>
-      </field>
-      <field name="port" writable="1">
-        <type name="uint" c:type="guint"/>
-      </field>
-      <field name="num_ports" writable="1">
-        <type name="uint" c:type="guint"/>
-      </field>
-      <field name="proto" writable="1">
-        <type name="utf8" c:type="gchar*"/>
-      </field>
-      <field name="fmts" writable="1">
-        <type name="GLib.Array" c:type="GArray*"/>
-      </field>
-      <field name="information" writable="1">
-        <type name="utf8" c:type="gchar*"/>
-      </field>
-      <field name="connections" writable="1">
-        <type name="GLib.Array" c:type="GArray*"/>
-      </field>
-      <field name="bandwidths" writable="1">
-        <type name="GLib.Array" c:type="GArray*"/>
-      </field>
-      <field name="key" writable="1">
-        <type name="SDPKey" c:type="GstSDPKey"/>
-      </field>
-      <field name="attributes" writable="1">
-        <type name="GLib.Array" c:type="GArray*"/>
-      </field>
-      <constructor name="new"
-                   c:identifier="gst_sdp_media_new"
-                   doc="Allocate a new GstSDPMedia and store the result in @media.">
-        <return-value transfer-ownership="full">
-          <type name="SDPMedia" c:type="GstSDPResult"/>
-        </return-value>
-        <parameters>
-          <parameter name="media" transfer-ownership="none">
-            <type name="SDPMedia" c:type="GstSDPMedia**"/>
-          </parameter>
-        </parameters>
-      </constructor>
-      <method name="init"
-              c:identifier="gst_sdp_media_init"
-              doc="Initialize @media so that its contents are as if it was freshly allocated
-with gst_sdp_media_new(). This function is mostly used to initialize a media
-allocated on the stack. gst_sdp_media_uninit() undoes this operation.
-When this function is invoked on newly allocated data (with malloc or on the
-stack), its contents should be set to 0 before calling this function.">
-        <return-value transfer-ownership="full">
-          <type name="SDPResult" c:type="GstSDPResult"/>
-        </return-value>
-      </method>
-      <method name="uninit"
-              c:identifier="gst_sdp_media_uninit"
-              doc="Free all resources allocated in @media. @media should not be used anymore after
-this function. This function should be used when @media was allocated on the
-stack and initialized with gst_sdp_media_init().">
-        <return-value transfer-ownership="full">
-          <type name="SDPResult" c:type="GstSDPResult"/>
-        </return-value>
-      </method>
-      <method name="free"
-              c:identifier="gst_sdp_media_free"
-              doc="Free all resources allocated by @media. @media should not be used anymore after
-this function. This function should be used when @media was dynamically
-allocated with gst_sdp_media_new().">
-        <return-value transfer-ownership="full">
-          <type name="SDPResult" c:type="GstSDPResult"/>
-        </return-value>
-      </method>
-      <method name="as_text"
-              c:identifier="gst_sdp_media_as_text"
-              doc="Convert the contents of @media to a text string.">
-        <return-value transfer-ownership="full">
-          <type name="utf8" c:type="gchar*"/>
-        </return-value>
-      </method>
-      <method name="get_media"
-              c:identifier="gst_sdp_media_get_media"
-              doc="Get the media description of @media.">
-        <return-value transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </return-value>
-      </method>
-      <method name="set_media"
-              c:identifier="gst_sdp_media_set_media"
-              doc="Set the media description of @media to @med.">
-        <return-value transfer-ownership="full">
-          <type name="SDPResult" c:type="GstSDPResult"/>
-        </return-value>
-        <parameters>
-          <parameter name="med" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_port"
-              c:identifier="gst_sdp_media_get_port"
-              doc="Get the port number for @media.">
-        <return-value transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
-        </return-value>
-      </method>
-      <method name="get_num_ports"
-              c:identifier="gst_sdp_media_get_num_ports"
-              doc="Get the number of ports for @media.">
-        <return-value transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
-        </return-value>
-      </method>
-      <method name="set_port_info"
-              c:identifier="gst_sdp_media_set_port_info"
-              doc="Set the port information in @media.">
-        <return-value transfer-ownership="full">
-          <type name="SDPResult" c:type="GstSDPResult"/>
-        </return-value>
-        <parameters>
-          <parameter name="port" transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
-          </parameter>
-          <parameter name="num_ports" transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_proto"
-              c:identifier="gst_sdp_media_get_proto"
-              doc="Get the transport protocol of @media">
-        <return-value transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </return-value>
-      </method>
-      <method name="set_proto"
-              c:identifier="gst_sdp_media_set_proto"
-              doc="Set the media transport protocol of @media to @proto.">
-        <return-value transfer-ownership="full">
-          <type name="SDPResult" c:type="GstSDPResult"/>
-        </return-value>
-        <parameters>
-          <parameter name="proto" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="formats_len"
-              c:identifier="gst_sdp_media_formats_len"
-              doc="Get the number of formats in @media.">
-        <return-value transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
-        </return-value>
-      </method>
-      <method name="get_format"
-              c:identifier="gst_sdp_media_get_format"
-              doc="Get the format information at position @idx in @media.">
-        <return-value transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </return-value>
-        <parameters>
-          <parameter name="idx" transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="add_format"
-              c:identifier="gst_sdp_media_add_format"
-              doc="Add the format information to @media.">
-        <return-value transfer-ownership="full">
-          <type name="SDPResult" c:type="GstSDPResult"/>
-        </return-value>
-        <parameters>
-          <parameter name="format" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_information"
-              c:identifier="gst_sdp_media_get_information"
-              doc="Get the information of @media">
-        <return-value transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </return-value>
-      </method>
-      <method name="set_information"
-              c:identifier="gst_sdp_media_set_information"
-              doc="Set the media information of @media to @information.">
-        <return-value transfer-ownership="full">
-          <type name="SDPResult" c:type="GstSDPResult"/>
-        </return-value>
-        <parameters>
-          <parameter name="information" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="connections_len"
-              c:identifier="gst_sdp_media_connections_len"
-              doc="Get the number of connection fields in @media.">
-        <return-value transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
-        </return-value>
-      </method>
-      <method name="get_connection"
-              c:identifier="gst_sdp_media_get_connection"
-              doc="Get the connection at position @idx in @media.">
-        <return-value transfer-ownership="none">
-          <type name="SDPConnection" c:type="GstSDPConnection*"/>
-        </return-value>
-        <parameters>
-          <parameter name="idx" transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="add_connection"
-              c:identifier="gst_sdp_media_add_connection"
-              doc="&quot;Internet&quot;.
-Add the given connection parameters to @media.">
-        <return-value transfer-ownership="full">
-          <type name="SDPResult" c:type="GstSDPResult"/>
-        </return-value>
-        <parameters>
-          <parameter name="nettype" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="addrtype" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="address" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="ttl" transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
-          </parameter>
-          <parameter name="addr_number" transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="bandwidths_len"
-              c:identifier="gst_sdp_media_bandwidths_len"
-              doc="Get the number of bandwidth fields in @media.">
-        <return-value transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
-        </return-value>
-      </method>
-      <method name="get_bandwidth"
-              c:identifier="gst_sdp_media_get_bandwidth"
-              doc="Get the bandwidth at position @idx in @media.">
-        <return-value transfer-ownership="none">
-          <type name="SDPBandwidth" c:type="GstSDPBandwidth*"/>
-        </return-value>
-        <parameters>
-          <parameter name="idx" transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="add_bandwidth"
-              c:identifier="gst_sdp_media_add_bandwidth"
-              doc="Add the bandwidth information with @bwtype and @bandwidth to @media.">
-        <return-value transfer-ownership="full">
-          <type name="SDPResult" c:type="GstSDPResult"/>
-        </return-value>
-        <parameters>
-          <parameter name="bwtype" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="bandwidth" transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_key"
-              c:identifier="gst_sdp_media_get_key"
-              doc="Get the encryption information from @media.">
-        <return-value transfer-ownership="none">
-          <type name="SDPKey" c:type="GstSDPKey*"/>
-        </return-value>
-      </method>
-      <method name="set_key"
-              c:identifier="gst_sdp_media_set_key"
-              doc="Adds the encryption information to @media.">
-        <return-value transfer-ownership="full">
-          <type name="SDPResult" c:type="GstSDPResult"/>
-        </return-value>
-        <parameters>
-          <parameter name="type" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="data" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="attributes_len"
-              c:identifier="gst_sdp_media_attributes_len"
-              doc="Get the number of attribute fields in @media.">
-        <return-value transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
-        </return-value>
-      </method>
-      <method name="get_attribute"
-              c:identifier="gst_sdp_media_get_attribute"
-              doc="Get the attribute at position @idx in @media.">
-        <return-value transfer-ownership="none">
-          <type name="SDPAttribute" c:type="GstSDPAttribute*"/>
-        </return-value>
-        <parameters>
-          <parameter name="idx" transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_attribute_val"
-              c:identifier="gst_sdp_media_get_attribute_val"
-              doc="Get the first attribute value for @key in @media.">
-        <return-value transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </return-value>
-        <parameters>
-          <parameter name="key" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_attribute_val_n"
-              c:identifier="gst_sdp_media_get_attribute_val_n"
-              doc="Get the @nth attribute value for @key in @media.">
-        <return-value transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </return-value>
-        <parameters>
-          <parameter name="key" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="nth" transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="add_attribute"
-              c:identifier="gst_sdp_media_add_attribute"
-              doc="Add the attribute with @key and @value to @media.">
-        <return-value transfer-ownership="full">
-          <type name="SDPResult" c:type="GstSDPResult"/>
-        </return-value>
-        <parameters>
-          <parameter name="key" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="value" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </method>
-    </record>
-    <record name="SDPMessage"
-            c:type="GstSDPMessage"
-            doc="The contents of the SDP message.">
-      <field name="version" writable="1">
-        <type name="utf8" c:type="gchar*"/>
-      </field>
-      <field name="origin" writable="1">
-        <type name="SDPOrigin" c:type="GstSDPOrigin"/>
-      </field>
-      <field name="session_name" writable="1">
-        <type name="utf8" c:type="gchar*"/>
-      </field>
-      <field name="information" writable="1">
-        <type name="utf8" c:type="gchar*"/>
-      </field>
-      <field name="uri" writable="1">
-        <type name="utf8" c:type="gchar*"/>
-      </field>
-      <field name="emails" writable="1">
-        <type name="GLib.Array" c:type="GArray*"/>
-      </field>
-      <field name="phones" writable="1">
-        <type name="GLib.Array" c:type="GArray*"/>
-      </field>
-      <field name="connection" writable="1">
-        <type name="SDPConnection" c:type="GstSDPConnection"/>
-      </field>
-      <field name="bandwidths" writable="1">
-        <type name="GLib.Array" c:type="GArray*"/>
-      </field>
-      <field name="times" writable="1">
-        <type name="GLib.Array" c:type="GArray*"/>
-      </field>
-      <field name="zones" writable="1">
-        <type name="GLib.Array" c:type="GArray*"/>
-      </field>
-      <field name="key" writable="1">
-        <type name="SDPKey" c:type="GstSDPKey"/>
-      </field>
-      <field name="attributes" writable="1">
-        <type name="GLib.Array" c:type="GArray*"/>
-      </field>
-      <field name="medias" writable="1">
-        <type name="GLib.Array" c:type="GArray*"/>
-      </field>
-      <constructor name="new"
-                   c:identifier="gst_sdp_message_new"
-                   doc="Allocate a new GstSDPMessage and store the result in @msg.">
-        <return-value transfer-ownership="full">
-          <type name="SDPMessage" c:type="GstSDPResult"/>
-        </return-value>
-        <parameters>
-          <parameter name="msg" transfer-ownership="none">
-            <type name="SDPMessage" c:type="GstSDPMessage**"/>
-          </parameter>
-        </parameters>
-      </constructor>
-      <method name="init"
-              c:identifier="gst_sdp_message_init"
-              doc="Initialize @msg so that its contents are as if it was freshly allocated
-with gst_sdp_message_new(). This function is mostly used to initialize a message
-allocated on the stack. gst_sdp_message_uninit() undoes this operation.
-When this function is invoked on newly allocated data (with malloc or on the
-stack), its contents should be set to 0 before calling this function.">
-        <return-value transfer-ownership="full">
-          <type name="SDPResult" c:type="GstSDPResult"/>
-        </return-value>
-      </method>
-      <method name="uninit"
-              c:identifier="gst_sdp_message_uninit"
-              doc="Free all resources allocated in @msg. @msg should not be used anymore after
-this function. This function should be used when @msg was allocated on the
-stack and initialized with gst_sdp_message_init().">
-        <return-value transfer-ownership="full">
-          <type name="SDPResult" c:type="GstSDPResult"/>
-        </return-value>
-      </method>
-      <method name="free"
-              c:identifier="gst_sdp_message_free"
-              doc="Free all resources allocated by @msg. @msg should not be used anymore after
-this function. This function should be used when @msg was dynamically
-allocated with gst_sdp_message_new().">
-        <return-value transfer-ownership="full">
-          <type name="SDPResult" c:type="GstSDPResult"/>
-        </return-value>
-      </method>
-      <method name="as_text"
-              c:identifier="gst_sdp_message_as_text"
-              doc="Convert the contents of @msg to a text string.">
-        <return-value transfer-ownership="full">
-          <type name="utf8" c:type="gchar*"/>
-        </return-value>
-      </method>
-      <method name="get_version"
-              c:identifier="gst_sdp_message_get_version"
-              doc="Get the version in @msg.">
-        <return-value transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </return-value>
-      </method>
-      <method name="set_version"
-              c:identifier="gst_sdp_message_set_version"
-              doc="Set the version in @msg.">
-        <return-value transfer-ownership="full">
-          <type name="SDPResult" c:type="GstSDPResult"/>
-        </return-value>
-        <parameters>
-          <parameter name="version" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_origin"
-              c:identifier="gst_sdp_message_get_origin"
-              doc="Get the origin of @msg.">
-        <return-value transfer-ownership="none">
-          <type name="SDPOrigin" c:type="GstSDPOrigin*"/>
-        </return-value>
-      </method>
-      <method name="set_origin"
-              c:identifier="gst_sdp_message_set_origin"
-              doc="Configure the SDP origin in @msg with the given parameters.">
-        <return-value transfer-ownership="full">
-          <type name="SDPResult" c:type="GstSDPResult"/>
-        </return-value>
-        <parameters>
-          <parameter name="username" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="sess_id" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="sess_version" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="nettype" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="addrtype" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="addr" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_session_name"
-              c:identifier="gst_sdp_message_get_session_name"
-              doc="Get the session name in @msg.">
-        <return-value transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </return-value>
-      </method>
-      <method name="set_session_name"
-              c:identifier="gst_sdp_message_set_session_name"
-              doc="Set the session name in @msg.">
-        <return-value transfer-ownership="full">
-          <type name="SDPResult" c:type="GstSDPResult"/>
-        </return-value>
-        <parameters>
-          <parameter name="session_name" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_information"
-              c:identifier="gst_sdp_message_get_information"
-              doc="Get the information in @msg.">
-        <return-value transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </return-value>
-      </method>
-      <method name="set_information"
-              c:identifier="gst_sdp_message_set_information"
-              doc="Set the information in @msg.">
-        <return-value transfer-ownership="full">
-          <type name="SDPResult" c:type="GstSDPResult"/>
-        </return-value>
-        <parameters>
-          <parameter name="information" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_uri"
-              c:identifier="gst_sdp_message_get_uri"
-              doc="Get the URI in @msg.">
-        <return-value transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </return-value>
-      </method>
-      <method name="set_uri"
-              c:identifier="gst_sdp_message_set_uri"
-              doc="Set the URI in @msg.">
-        <return-value transfer-ownership="full">
-          <type name="SDPResult" c:type="GstSDPResult"/>
-        </return-value>
-        <parameters>
-          <parameter name="uri" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="emails_len"
-              c:identifier="gst_sdp_message_emails_len"
-              doc="Get the number of emails in @msg.">
-        <return-value transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
-        </return-value>
-      </method>
-      <method name="get_email"
-              c:identifier="gst_sdp_message_get_email"
-              doc="Get the email with number @idx from @msg.">
-        <return-value transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </return-value>
-        <parameters>
-          <parameter name="idx" transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="add_email"
-              c:identifier="gst_sdp_message_add_email"
-              doc="Add @email to the list of emails in @msg.">
-        <return-value transfer-ownership="full">
-          <type name="SDPResult" c:type="GstSDPResult"/>
-        </return-value>
-        <parameters>
-          <parameter name="email" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="phones_len"
-              c:identifier="gst_sdp_message_phones_len"
-              doc="Get the number of phones in @msg.">
-        <return-value transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
-        </return-value>
-      </method>
-      <method name="get_phone"
-              c:identifier="gst_sdp_message_get_phone"
-              doc="Get the phone with number @idx from @msg.">
-        <return-value transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </return-value>
-        <parameters>
-          <parameter name="idx" transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="add_phone"
-              c:identifier="gst_sdp_message_add_phone"
-              doc="Add @phone to the list of phones in @msg.">
-        <return-value transfer-ownership="full">
-          <type name="SDPResult" c:type="GstSDPResult"/>
-        </return-value>
-        <parameters>
-          <parameter name="phone" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_connection"
-              c:identifier="gst_sdp_message_get_connection"
-              doc="Get the connection of @msg.">
-        <return-value transfer-ownership="none">
-          <type name="SDPConnection" c:type="GstSDPConnection*"/>
-        </return-value>
-      </method>
-      <method name="set_connection"
-              c:identifier="gst_sdp_message_set_connection"
-              doc="&quot;Internet&quot;.
-Configure the SDP connection in @msg with the given parameters.">
-        <return-value transfer-ownership="full">
-          <type name="SDPResult" c:type="GstSDPResult"/>
-        </return-value>
-        <parameters>
-          <parameter name="nettype" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="addrtype" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="address" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="ttl" transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
-          </parameter>
-          <parameter name="addr_number" transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="bandwidths_len"
-              c:identifier="gst_sdp_message_bandwidths_len"
-              doc="Get the number of bandwidth information in @msg.">
-        <return-value transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
-        </return-value>
-      </method>
-      <method name="get_bandwidth"
-              c:identifier="gst_sdp_message_get_bandwidth"
-              doc="Get the bandwidth at index @idx from @msg.">
-        <return-value transfer-ownership="none">
-          <type name="SDPBandwidth" c:type="GstSDPBandwidth*"/>
-        </return-value>
-        <parameters>
-          <parameter name="idx" transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="add_bandwidth"
-              c:identifier="gst_sdp_message_add_bandwidth"
-              doc="Add the specified bandwidth information to @msg.">
-        <return-value transfer-ownership="full">
-          <type name="SDPResult" c:type="GstSDPResult"/>
-        </return-value>
-        <parameters>
-          <parameter name="bwtype" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="bandwidth" transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="times_len"
-              c:identifier="gst_sdp_message_times_len"
-              doc="Get the number of time information entries in @msg.">
-        <return-value transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
-        </return-value>
-      </method>
-      <method name="get_time"
-              c:identifier="gst_sdp_message_get_time"
-              doc="Get time information with index @idx from @msg.">
-        <return-value transfer-ownership="none">
-          <type name="SDPTime" c:type="GstSDPTime*"/>
-        </return-value>
-        <parameters>
-          <parameter name="idx" transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="add_time"
-              c:identifier="gst_sdp_message_add_time"
-              doc="Add time information @start and @stop to @msg.">
-        <return-value transfer-ownership="full">
-          <type name="SDPResult" c:type="GstSDPResult"/>
-        </return-value>
-        <parameters>
-          <parameter name="start" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="stop" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="repeat" transfer-ownership="none">
-            <array c:type="gchar**">
-              <type name="utf8"/>
-            </array>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="zones_len"
-              c:identifier="gst_sdp_message_zones_len"
-              doc="Get the number of time zone information entries in @msg.">
-        <return-value transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
-        </return-value>
-      </method>
-      <method name="get_zone"
-              c:identifier="gst_sdp_message_get_zone"
-              doc="Get time zone information with index @idx from @msg.">
-        <return-value transfer-ownership="none">
-          <type name="SDPZone" c:type="GstSDPZone*"/>
-        </return-value>
-        <parameters>
-          <parameter name="idx" transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="add_zone"
-              c:identifier="gst_sdp_message_add_zone"
-              doc="Add time zone information to @msg.">
-        <return-value transfer-ownership="full">
-          <type name="SDPResult" c:type="GstSDPResult"/>
-        </return-value>
-        <parameters>
-          <parameter name="adj_time" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="typed_time" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_key"
-              c:identifier="gst_sdp_message_get_key"
-              doc="Get the encryption information from @msg.">
-        <return-value transfer-ownership="none">
-          <type name="SDPKey" c:type="GstSDPKey*"/>
-        </return-value>
-      </method>
-      <method name="set_key"
-              c:identifier="gst_sdp_message_set_key"
-              doc="Adds the encryption information to @msg.">
-        <return-value transfer-ownership="full">
-          <type name="SDPResult" c:type="GstSDPResult"/>
-        </return-value>
-        <parameters>
-          <parameter name="type" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="data" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="attributes_len"
-              c:identifier="gst_sdp_message_attributes_len"
-              doc="Get the number of attributes in @msg.">
-        <return-value transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
-        </return-value>
-      </method>
-      <method name="get_attribute"
-              c:identifier="gst_sdp_message_get_attribute"
-              doc="Get the attribute at position @idx in @msg.">
-        <return-value transfer-ownership="none">
-          <type name="SDPAttribute" c:type="GstSDPAttribute*"/>
-        </return-value>
-        <parameters>
-          <parameter name="idx" transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_attribute_val"
-              c:identifier="gst_sdp_message_get_attribute_val"
-              doc="Get the first attribute with key @key in @msg.">
-        <return-value transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </return-value>
-        <parameters>
-          <parameter name="key" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="get_attribute_val_n"
-              c:identifier="gst_sdp_message_get_attribute_val_n"
-              doc="Get the @nth attribute with key @key in @msg.">
-        <return-value transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </return-value>
-        <parameters>
-          <parameter name="key" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="nth" transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="add_attribute"
-              c:identifier="gst_sdp_message_add_attribute"
-              doc="Add the attribute with @key and @value to @msg.">
-        <return-value transfer-ownership="full">
-          <type name="SDPResult" c:type="GstSDPResult"/>
-        </return-value>
-        <parameters>
-          <parameter name="key" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-          <parameter name="value" transfer-ownership="none">
-            <type name="utf8" c:type="gchar*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="medias_len"
-              c:identifier="gst_sdp_message_medias_len"
-              doc="Get the number of media descriptions in @msg.">
-        <return-value transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
-        </return-value>
-      </method>
-      <method name="get_media"
-              c:identifier="gst_sdp_message_get_media"
-              doc="Get the media description at index @idx in @msg.">
-        <return-value transfer-ownership="none">
-          <type name="SDPMedia" c:type="GstSDPMedia*"/>
-        </return-value>
-        <parameters>
-          <parameter name="idx" transfer-ownership="none">
-            <type name="uint" c:type="guint"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="add_media"
-              c:identifier="gst_sdp_message_add_media"
-              doc="Adds @media to the array of medias in @msg. This function takes ownership of
-the contents of @media so that @media will have to be reinitialized with
-gst_media_init() before it can be used again.">
-        <return-value transfer-ownership="full">
-          <type name="SDPResult" c:type="GstSDPResult"/>
-        </return-value>
-        <parameters>
-          <parameter name="media" transfer-ownership="none">
-            <type name="SDPMedia" c:type="GstSDPMedia*"/>
-          </parameter>
-        </parameters>
-      </method>
-      <method name="dump"
-              c:identifier="gst_sdp_message_dump"
-              doc="Dump the parsed contents of @msg to stdout.">
-        <return-value transfer-ownership="full">
-          <type name="SDPResult" c:type="GstSDPResult"/>
-        </return-value>
-      </method>
-    </record>
-    <record name="SDPOrigin"
-            c:type="GstSDPOrigin"
-            doc="if the originating host does not support the concept of user ids.
-session.
-&quot;Internet&quot;.
-created.
-The contents of the SDP &quot;o=&quot; field which gives the originator of the session
-(their username and the address of the user&apos;s host) plus a session id and
-session version number.">
-      <field name="username" writable="1">
-        <type name="utf8" c:type="gchar*"/>
-      </field>
-      <field name="sess_id" writable="1">
-        <type name="utf8" c:type="gchar*"/>
-      </field>
-      <field name="sess_version" writable="1">
-        <type name="utf8" c:type="gchar*"/>
-      </field>
-      <field name="nettype" writable="1">
-        <type name="utf8" c:type="gchar*"/>
-      </field>
-      <field name="addrtype" writable="1">
-        <type name="utf8" c:type="gchar*"/>
-      </field>
-      <field name="addr" writable="1">
-        <type name="utf8" c:type="gchar*"/>
-      </field>
-    </record>
-    <enumeration name="SDPResult"
-                 doc="Return values for the SDP functions."
-                 c:type="GstSDPResult">
-      <member name="ok" value="0" c:identifier="GST_SDP_OK"/>
-      <member name="einval" value="-1" c:identifier="GST_SDP_EINVAL"/>
-    </enumeration>
-    <record name="SDPTime"
-            c:type="GstSDPTime"
-            doc="representation of Network Time Protocol (NTP) time values in seconds
-representation of Network Time Protocol (NTP) time values in seconds
-The contents of the SDP &quot;t=&quot; field which specify the start and stop times for
-a conference session.">
-      <field name="start" writable="1">
-        <type name="utf8" c:type="gchar*"/>
-      </field>
-      <field name="stop" writable="1">
-        <type name="utf8" c:type="gchar*"/>
-      </field>
-      <field name="repeat" writable="1">
-        <type name="GLib.Array" c:type="GArray*"/>
-      </field>
-    </record>
-    <record name="SDPZone"
-            c:type="GstSDPZone"
-            doc="The contents of the SDP &quot;z=&quot; field which allows the sender to
-specify a list of time zone adjustments and offsets from the base
-time.">
-      <field name="time" writable="1">
-        <type name="utf8" c:type="gchar*"/>
-      </field>
-      <field name="typed_time" writable="1">
-        <type name="utf8" c:type="gchar*"/>
-      </field>
-    </record>
-    <function name="message_parse_buffer"
-              c:identifier="gst_sdp_message_parse_buffer"
-              doc="Parse the contents of @size bytes pointed to by @data and store the result in">
-      <return-value transfer-ownership="full">
-        <type name="SDPResult" c:type="GstSDPResult"/>
-      </return-value>
-      <parameters>
-        <parameter name="data" transfer-ownership="none">
-          <array c:type="guint8*">
-            <type name="uint8"/>
-          </array>
-        </parameter>
-        <parameter name="size" transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
-        </parameter>
-        <parameter name="msg" transfer-ownership="none">
-          <type name="SDPMessage" c:type="GstSDPMessage*"/>
-        </parameter>
-      </parameters>
-    </function>
-  </namespace>
-</repository>
diff --git a/extra/gstreamer/sdp/ffi/ffi.factor b/extra/gstreamer/sdp/ffi/ffi.factor
deleted file mode 100644 (file)
index f023bb2..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-! Copyright (C) 2010 Anton Gorenko.
-! See http://factorcode.org/license.txt for BSD license.
-USING: alien alien.libraries combinators kernel system
-gobject-introspection glib.ffi ;
-IN: gstreamer.sdp.ffi
-
-<<
-"gstreamer.sdp" {
-    { [ os winnt? ] [ drop ] }
-    { [ os macosx? ] [ drop ] }
-    { [ os unix? ] [ "libgstsdp-0.10.so" cdecl add-library ] }
-} cond
->>
-
-GIR: vocab:gstreamer/sdp/GstSdp-0.10.gir
-
diff --git a/extra/gstreamer/sdp/sdp.factor b/extra/gstreamer/sdp/sdp.factor
deleted file mode 100644 (file)
index 1cfdbfe..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-! Copyright (C) 2010 Anton Gorenko.
-! See http://factorcode.org/license.txt for BSD license.
-USING: gstreamer.sdp.ffi ;
-IN: gstreamer.sdp
-
diff --git a/extra/gstreamer/summary.txt b/extra/gstreamer/summary.txt
deleted file mode 100644 (file)
index 4094ff9..0000000
+++ /dev/null
@@ -1 +0,0 @@
-GStreamer binding
diff --git a/extra/gstreamer/tag/GstTag-0.10.gir b/extra/gstreamer/tag/GstTag-0.10.gir
deleted file mode 100644 (file)
index f571459..0000000
+++ /dev/null
@@ -1,797 +0,0 @@
-<?xml version="1.0"?>
-<!-- This file was automatically generated from C sources - DO NOT EDIT!
-To affect the contents of this file, edit the original C definitions,
-and/or use gtk-doc annotations.  -->
-<repository version="1.0"
-            xmlns="http://www.gtk.org/introspection/core/1.0"
-            xmlns:c="http://www.gtk.org/introspection/c/1.0"
-            xmlns:glib="http://www.gtk.org/introspection/glib/1.0">
-  <include name="GLib" version="2.0"/>
-  <include name="GModule" version="2.0"/>
-  <include name="GObject" version="2.0"/>
-  <include name="Gst" version="0.10"/>
-  <include name="GstBase" version="0.10"/>
-  <include name="libxml2" version="2.0"/>
-  <package name="gstreamer-0.10"/>
-  <package name="gstreamer-base-0.10"/>
-  <namespace name="GstTag"
-             version="0.10"
-             shared-library="libgsttag-0.10.so.0"
-             c:prefix="Gst">
-    <constant name="CDDA_CDDB_DISCID" value="discid">
-      <type name="utf8"/>
-    </constant>
-    <constant name="CDDA_CDDB_DISCID_FULL" value="discid-full">
-      <type name="utf8"/>
-    </constant>
-    <constant name="CDDA_MUSICBRAINZ_DISCID" value="musicbrainz-discid">
-      <type name="utf8"/>
-    </constant>
-    <constant name="CDDA_MUSICBRAINZ_DISCID_FULL"
-              value="musicbrainz-discid-full">
-      <type name="utf8"/>
-    </constant>
-    <constant name="CMML_CLIP" value="cmml-clip">
-      <type name="utf8"/>
-    </constant>
-    <constant name="CMML_HEAD" value="cmml-head">
-      <type name="utf8"/>
-    </constant>
-    <constant name="CMML_STREAM" value="cmml-stream">
-      <type name="utf8"/>
-    </constant>
-    <constant name="MUSICBRAINZ_ALBUMARTISTID"
-              value="musicbrainz-albumartistid">
-      <type name="utf8"/>
-    </constant>
-    <constant name="MUSICBRAINZ_ALBUMID" value="musicbrainz-albumid">
-      <type name="utf8"/>
-    </constant>
-    <constant name="MUSICBRAINZ_ARTISTID" value="musicbrainz-artistid">
-      <type name="utf8"/>
-    </constant>
-    <constant name="MUSICBRAINZ_TRACKID" value="musicbrainz-trackid">
-      <type name="utf8"/>
-    </constant>
-    <constant name="MUSICBRAINZ_TRMID" value="musicbrainz-trmid">
-      <type name="utf8"/>
-    </constant>
-    <class name="TagDemux"
-           c:type="GstTagDemux"
-           doc="Opaque #GstTagDemux structure."
-           version="0.10.15"
-           parent="Gst.Element"
-           abstract="1"
-           glib:type-name="GstTagDemux"
-           glib:get-type="gst_tag_demux_get_type"
-           glib:type-struct="TagDemuxClass">
-      <virtual-method name="identify_tag">
-        <return-value transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </return-value>
-        <parameters>
-          <parameter name="buffer" transfer-ownership="none">
-            <type name="Gst.Buffer" c:type="GstBuffer*"/>
-          </parameter>
-          <parameter name="start_tag" transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </parameter>
-          <parameter name="tag_size" direction="out" transfer-ownership="full">
-            <type name="uint" c:type="guint*"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <virtual-method name="parse_tag">
-        <return-value transfer-ownership="full">
-          <type name="TagDemuxResult" c:type="GstTagDemuxResult"/>
-        </return-value>
-        <parameters>
-          <parameter name="buffer" transfer-ownership="none">
-            <type name="Gst.Buffer" c:type="GstBuffer*"/>
-          </parameter>
-          <parameter name="start_tag" transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </parameter>
-          <parameter name="tag_size" direction="out" transfer-ownership="full">
-            <type name="uint" c:type="guint*"/>
-          </parameter>
-          <parameter name="tags" transfer-ownership="none">
-            <type name="Gst.TagList" c:type="GstTagList**"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <virtual-method name="merge_tags">
-        <return-value transfer-ownership="full">
-          <type name="Gst.TagList" c:type="GstTagList*"/>
-        </return-value>
-        <parameters>
-          <parameter name="start_tags" transfer-ownership="none">
-            <type name="Gst.TagList" c:type="GstTagList*"/>
-          </parameter>
-          <parameter name="end_tags" transfer-ownership="none">
-            <type name="Gst.TagList" c:type="GstTagList*"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <field name="element">
-        <type name="Gst.Element" c:type="GstElement"/>
-      </field>
-      <field name="priv">
-        <type name="TagDemuxPrivate" c:type="GstTagDemuxPrivate*"/>
-      </field>
-      <field name="reserved">
-        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
-          <type name="any"/>
-        </array>
-      </field>
-    </class>
-    <record name="TagDemuxClass"
-            c:type="GstTagDemuxClass"
-            glib:is-gtype-struct-for="TagDemux"
-            doc="determine its total size. Set to 0 if not interested in start tags.
-Subclasses should set this in their class_init function.
-determine its total size. Set to 0 if not interested in end tags.
-Subclasses should set this in their class_init function.
-tag. Buffer may be larger than the specified minimum size.
-Subclassed MUST override this vfunc in their class_init function.
-the identify_tag vfunc before. The parse_tag vfunc may change the size
-stored in *tag_size and return GST_TAG_DEMUX_RESULT_AGAIN to request a
-larger or smaller buffer. It is also permitted to adjust the tag_size to a
-smaller value and then return GST_TAG_DEMUX_RESULT_OK in one go.
-Subclassed MUST override the parse_tag vfunc in their class_init function.
-vfunc to allow prioritising of start or end tag according to user
-preference.  Note that both start_tags and end_tags may be NULL. By default
-start tags are prefered over end tags.
-The #GstTagDemuxClass structure.  See documentation at beginning of section
-for details about what subclasses need to override and do."
-            version="0.10.15">
-      <field name="parent_class">
-        <type name="Gst.ElementClass" c:type="GstElementClass"/>
-      </field>
-      <field name="min_start_size">
-        <type name="uint" c:type="guint"/>
-      </field>
-      <field name="min_end_size">
-        <type name="uint" c:type="guint"/>
-      </field>
-      <field name="identify_tag">
-        <callback name="identify_tag" c:type="identify_tag">
-          <return-value transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </return-value>
-          <parameters>
-            <parameter name="demux" transfer-ownership="none">
-              <type name="TagDemux" c:type="GstTagDemux*"/>
-            </parameter>
-            <parameter name="buffer" transfer-ownership="none">
-              <type name="Gst.Buffer" c:type="GstBuffer*"/>
-            </parameter>
-            <parameter name="start_tag" transfer-ownership="none">
-              <type name="boolean" c:type="gboolean"/>
-            </parameter>
-            <parameter name="tag_size"
-                       direction="out"
-                       transfer-ownership="full">
-              <type name="uint" c:type="guint*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="parse_tag">
-        <callback name="parse_tag" c:type="parse_tag">
-          <return-value transfer-ownership="full">
-            <type name="TagDemuxResult" c:type="GstTagDemuxResult"/>
-          </return-value>
-          <parameters>
-            <parameter name="demux" transfer-ownership="none">
-              <type name="TagDemux" c:type="GstTagDemux*"/>
-            </parameter>
-            <parameter name="buffer" transfer-ownership="none">
-              <type name="Gst.Buffer" c:type="GstBuffer*"/>
-            </parameter>
-            <parameter name="start_tag" transfer-ownership="none">
-              <type name="boolean" c:type="gboolean"/>
-            </parameter>
-            <parameter name="tag_size"
-                       direction="out"
-                       transfer-ownership="full">
-              <type name="uint" c:type="guint*"/>
-            </parameter>
-            <parameter name="tags" transfer-ownership="none">
-              <type name="Gst.TagList" c:type="GstTagList**"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="merge_tags">
-        <callback name="merge_tags" c:type="merge_tags">
-          <return-value transfer-ownership="full">
-            <type name="Gst.TagList" c:type="GstTagList*"/>
-          </return-value>
-          <parameters>
-            <parameter name="demux" transfer-ownership="none">
-              <type name="TagDemux" c:type="GstTagDemux*"/>
-            </parameter>
-            <parameter name="start_tags" transfer-ownership="none">
-              <type name="Gst.TagList" c:type="GstTagList*"/>
-            </parameter>
-            <parameter name="end_tags" transfer-ownership="none">
-              <type name="Gst.TagList" c:type="GstTagList*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="reserved">
-        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
-          <type name="any"/>
-        </array>
-      </field>
-    </record>
-    <record name="TagDemuxPrivate" c:type="GstTagDemuxPrivate">
-    </record>
-    <enumeration name="TagDemuxResult"
-                 doc="Result values from the parse_tag virtual function."
-                 version="0.10.15"
-                 glib:type-name="GstTagDemuxResult"
-                 glib:get-type="gst_tag_demux_result_get_type"
-                 c:type="GstTagDemuxResult">
-      <member name="broken_tag"
-              value="0"
-              c:identifier="GST_TAG_DEMUX_RESULT_BROKEN_TAG"
-              glib:nick="broken-tag"/>
-      <member name="again"
-              value="1"
-              c:identifier="GST_TAG_DEMUX_RESULT_AGAIN"
-              glib:nick="again"/>
-      <member name="ok"
-              value="2"
-              c:identifier="GST_TAG_DEMUX_RESULT_OK"
-              glib:nick="ok"/>
-    </enumeration>
-    <enumeration name="TagImageType"
-                 doc="tell functions such as gst_tag_image_data_to_image_buffer() that no
-Type of image contained in an image tag (specified as field in
-the image buffer&apos;s caps structure)"
-                 version="0.10.9"
-                 glib:type-name="GstTagImageType"
-                 glib:get-type="gst_tag_image_type_get_type"
-                 c:type="GstTagImageType">
-      <member name="none"
-              value="-1"
-              c:identifier="GST_TAG_IMAGE_TYPE_NONE"
-              glib:nick="none"/>
-      <member name="undefined"
-              value="0"
-              c:identifier="GST_TAG_IMAGE_TYPE_UNDEFINED"
-              glib:nick="undefined"/>
-      <member name="front_cover"
-              value="1"
-              c:identifier="GST_TAG_IMAGE_TYPE_FRONT_COVER"
-              glib:nick="front-cover"/>
-      <member name="back_cover"
-              value="2"
-              c:identifier="GST_TAG_IMAGE_TYPE_BACK_COVER"
-              glib:nick="back-cover"/>
-      <member name="leaflet_page"
-              value="3"
-              c:identifier="GST_TAG_IMAGE_TYPE_LEAFLET_PAGE"
-              glib:nick="leaflet-page"/>
-      <member name="medium"
-              value="4"
-              c:identifier="GST_TAG_IMAGE_TYPE_MEDIUM"
-              glib:nick="medium"/>
-      <member name="lead_artist"
-              value="5"
-              c:identifier="GST_TAG_IMAGE_TYPE_LEAD_ARTIST"
-              glib:nick="lead-artist"/>
-      <member name="artist"
-              value="6"
-              c:identifier="GST_TAG_IMAGE_TYPE_ARTIST"
-              glib:nick="artist"/>
-      <member name="conductor"
-              value="7"
-              c:identifier="GST_TAG_IMAGE_TYPE_CONDUCTOR"
-              glib:nick="conductor"/>
-      <member name="band_orchestra"
-              value="8"
-              c:identifier="GST_TAG_IMAGE_TYPE_BAND_ORCHESTRA"
-              glib:nick="band-orchestra"/>
-      <member name="composer"
-              value="9"
-              c:identifier="GST_TAG_IMAGE_TYPE_COMPOSER"
-              glib:nick="composer"/>
-      <member name="lyricist"
-              value="10"
-              c:identifier="GST_TAG_IMAGE_TYPE_LYRICIST"
-              glib:nick="lyricist"/>
-      <member name="recording_location"
-              value="11"
-              c:identifier="GST_TAG_IMAGE_TYPE_RECORDING_LOCATION"
-              glib:nick="recording-location"/>
-      <member name="during_recording"
-              value="12"
-              c:identifier="GST_TAG_IMAGE_TYPE_DURING_RECORDING"
-              glib:nick="during-recording"/>
-      <member name="during_performance"
-              value="13"
-              c:identifier="GST_TAG_IMAGE_TYPE_DURING_PERFORMANCE"
-              glib:nick="during-performance"/>
-      <member name="video_capture"
-              value="14"
-              c:identifier="GST_TAG_IMAGE_TYPE_VIDEO_CAPTURE"
-              glib:nick="video-capture"/>
-      <member name="fish"
-              value="15"
-              c:identifier="GST_TAG_IMAGE_TYPE_FISH"
-              glib:nick="fish"/>
-      <member name="illustration"
-              value="16"
-              c:identifier="GST_TAG_IMAGE_TYPE_ILLUSTRATION"
-              glib:nick="illustration"/>
-      <member name="artist_logo"
-              value="17"
-              c:identifier="GST_TAG_IMAGE_TYPE_BAND_ARTIST_LOGO"
-              glib:nick="artist-logo"/>
-      <member name="publisher_studio_logo"
-              value="18"
-              c:identifier="GST_TAG_IMAGE_TYPE_PUBLISHER_STUDIO_LOGO"
-              glib:nick="publisher-studio-logo"/>
-    </enumeration>
-    <function name="freeform_string_to_utf8"
-              c:identifier="gst_tag_freeform_string_to_utf8"
-              doc="or NULL
-Convenience function to read a string with unknown character encoding. If
-the string is already in UTF-8 encoding, it will be returned right away.
-If not it tries to detect byte-order-mark for UTF-16/32 cases and use that.
-Otherwise, the environment will be searched for a number of environment
-variables (whose names are specified in the NULL-terminated string array
-are specified, the current locale will be tried. If that also doesn&apos;t work,
-ISO-8859-1 is assumed (which will almost always succeed)."
-              version="0.10.13">
-      <return-value transfer-ownership="full">
-        <type name="utf8" c:type="gchar*"/>
-      </return-value>
-      <parameters>
-        <parameter name="data" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-        <parameter name="size" transfer-ownership="none">
-          <type name="int" c:type="gint"/>
-        </parameter>
-        <parameter name="env_vars" transfer-ownership="none">
-          <array c:type="gchar**">
-            <type name="utf8"/>
-          </array>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="from_id3_tag"
-              c:identifier="gst_tag_from_id3_tag"
-              doc="Looks up the GStreamer tag for a ID3v2 tag.">
-      <return-value transfer-ownership="none">
-        <type name="utf8" c:type="gchar*"/>
-      </return-value>
-      <parameters>
-        <parameter name="id3_tag" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="from_id3_user_tag"
-              c:identifier="gst_tag_from_id3_user_tag"
-              doc="Looks up the GStreamer tag for an ID3v2 user tag (e.g. description in
-TXXX frame or owner in UFID frame).">
-      <return-value transfer-ownership="none">
-        <type name="utf8" c:type="gchar*"/>
-      </return-value>
-      <parameters>
-        <parameter name="type" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-        <parameter name="id3_user_tag" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="from_vorbis_tag"
-              c:identifier="gst_tag_from_vorbis_tag"
-              doc="Looks up the GStreamer tag for a vorbiscomment tag.">
-      <return-value transfer-ownership="none">
-        <type name="utf8" c:type="gchar*"/>
-      </return-value>
-      <parameters>
-        <parameter name="vorbis_tag" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="get_language_code_iso_639_1"
-              c:identifier="gst_tag_get_language_code_iso_639_1"
-              doc="Returns two-letter ISO-639-1 language code given a three-letter ISO-639-2
-language code or two-letter ISO-639-1 language code (both are accepted for
-convenience).
-Language codes are case-sensitive and expected to be lower case.
-or NULL if no mapping is known. The returned string must not be
-modified or freed."
-              version="0.10.26">
-      <return-value transfer-ownership="none">
-        <type name="utf8" c:type="gchar*"/>
-      </return-value>
-      <parameters>
-        <parameter name="lang_code" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="get_language_code_iso_639_2B"
-              c:identifier="gst_tag_get_language_code_iso_639_2B"
-              doc="Returns three-letter ISO-639-2 &quot;bibliographic&quot; language code given a
-two-letter ISO-639-1 language code or a three-letter ISO-639-2 language
-code (both are accepted for convenience).
-The &quot;bibliographic&quot; code is derived from the English name of the language
-(e.g. &quot;ger&quot; for German instead of &quot;de&quot; or &quot;deu&quot;). In most scenarios, the
-&quot;terminological&quot; codes are prefered.
-Language codes are case-sensitive and expected to be lower case.
-or NULL if no mapping is known. The returned string must not be
-modified or freed."
-              version="0.10.26">
-      <return-value transfer-ownership="none">
-        <type name="utf8" c:type="gchar*"/>
-      </return-value>
-      <parameters>
-        <parameter name="lang_code" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="get_language_code_iso_639_2T"
-              c:identifier="gst_tag_get_language_code_iso_639_2T"
-              doc="Returns three-letter ISO-639-2 &quot;terminological&quot; language code given a
-two-letter ISO-639-1 language code or a three-letter ISO-639-2 language
-code (both are accepted for convenience).
-The &quot;terminological&quot; code is derived from the local name of the language
-(e.g. &quot;deu&quot; for German instead of &quot;ger&quot;). In most scenarios, the
-&quot;terminological&quot; codes are prefered over the &quot;bibliographic&quot; ones.
-Language codes are case-sensitive and expected to be lower case.
-or NULL if no mapping is known. The returned string must not be
-modified or freed."
-              version="0.10.26">
-      <return-value transfer-ownership="none">
-        <type name="utf8" c:type="gchar*"/>
-      </return-value>
-      <parameters>
-        <parameter name="lang_code" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="get_language_codes"
-              c:identifier="gst_tag_get_language_codes"
-              doc="Returns a list of known language codes (in form of two-letter ISO-639-1
-codes). This is useful for UIs to build a list of available languages for
-tagging purposes (e.g. to tag an audio track appropriately in a video or
-audio editor).
-with g_strfreev() when no longer needed."
-              version="0.10.26">
-      <return-value transfer-ownership="full">
-        <array c:type="gchar**">
-          <type name="utf8"/>
-        </array>
-      </return-value>
-    </function>
-    <function name="get_language_name"
-              c:identifier="gst_tag_get_language_name"
-              doc="Returns the name of the language given an ISO-639 language code, such
-as often found in a GST_TAG_LANGUAGE tag. The name will be translated
-according to the current locale (if the library was built against the
-iso-codes package, otherwise the English name will be returned).
-Language codes are case-sensitive and expected to be lower case.
-not be mapped to a language name. The returned string must not be
-modified and does not need to freed; it will stay valid until the
-application is terminated."
-              version="0.10.26">
-      <return-value transfer-ownership="none">
-        <type name="utf8" c:type="gchar*"/>
-      </return-value>
-      <parameters>
-        <parameter name="language_code" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="id3_genre_count"
-              c:identifier="gst_tag_id3_genre_count"
-              doc="Gets the number of ID3v1 genres that can be identified. Winamp genres are
-included.">
-      <return-value transfer-ownership="none">
-        <type name="uint" c:type="guint"/>
-      </return-value>
-    </function>
-    <function name="id3_genre_get"
-              c:identifier="gst_tag_id3_genre_get"
-              doc="Gets the ID3v1 genre name for a given ID.">
-      <return-value transfer-ownership="none">
-        <type name="utf8" c:type="gchar*"/>
-      </return-value>
-      <parameters>
-        <parameter name="id" transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="image_data_to_image_buffer"
-              c:identifier="gst_tag_image_data_to_image_buffer"
-              doc="#GST_TAG_IMAGE_TYPE_NONE if no image type should be set at all (e.g.
-for preview images)
-Helper function for tag-reading plugins to create a #GstBuffer suitable to
-add to a #GstTagList as an image tag (such as #GST_TAG_IMAGE or
-#GST_TAG_PREVIEW_IMAGE) from the encoded image data and an (optional) image
-type.
-blob of binary image data, often accompanied by a MIME type or some other
-content type string (e.g. &apos;png&apos;, &apos;jpeg&apos;, &apos;jpg&apos;). Sometimes there is also an
-&apos;image type&apos; to indicate what kind of image this is (e.g. front cover,
-back cover, artist, etc.). The image data may also be an URI to the image
-rather than the image itself.
-In GStreamer, image tags are #GstBuffer&lt;!-- --&gt;s containing the raw image
-data, with the buffer caps describing the content type of the image
-(e.g. image/jpeg, image/png, text/uri-list). The buffer caps may contain
-an additional &apos;image-type&apos; field of #GST_TYPE_TAG_IMAGE_TYPE to describe
-the type of image (front cover, back cover etc.). #GST_TAG_PREVIEW_IMAGE
-tags should not carry an image type, their type is already indicated via
-the special tag name.
-This function will do various checks and typefind the encoded image
-data (we can&apos;t trust the declared mime type)."
-              version="0.10.20">
-      <return-value transfer-ownership="full">
-        <type name="Gst.Buffer" c:type="GstBuffer*"/>
-      </return-value>
-      <parameters>
-        <parameter name="image_data" transfer-ownership="none" doc="image">
-          <array c:type="guint8*">
-            <type name="uint8"/>
-          </array>
-        </parameter>
-        <parameter name="image_data_len" transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
-        </parameter>
-        <parameter name="image_type" transfer-ownership="none">
-          <type name="TagImageType" c:type="GstTagImageType"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="list_add_id3_image"
-              c:identifier="gst_tag_list_add_id3_image"
-              doc="the APIC frame (0 = unknown/other)
-Adds an image from an ID3 APIC frame (or similar, such as used in FLAC)
-to the given tag list. Also see gst_tag_image_data_to_image_buffer() for
-more information on image tags in GStreamer."
-              version="0.10.20">
-      <return-value transfer-ownership="none">
-        <type name="boolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="tag_list" transfer-ownership="none">
-          <type name="Gst.TagList" c:type="GstTagList*"/>
-        </parameter>
-        <parameter name="image_data" transfer-ownership="none" doc="image">
-          <array c:type="guint8*">
-            <type name="uint8"/>
-          </array>
-        </parameter>
-        <parameter name="image_data_len" transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
-        </parameter>
-        <parameter name="id3_picture_type"
-                   transfer-ownership="none"
-                   doc="specification for">
-          <type name="uint" c:type="guint"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="list_from_vorbiscomment_buffer"
-              c:identifier="gst_tag_list_from_vorbiscomment_buffer"
-              doc="of this vorbis comment or NULL if you don&apos;t need it.
-Creates a new tag list that contains the information parsed out of a
-vorbiscomment packet.
-given vorbiscomment buffer or NULL on error.">
-      <return-value transfer-ownership="full">
-        <type name="Gst.TagList" c:type="GstTagList*"/>
-      </return-value>
-      <parameters>
-        <parameter name="buffer" transfer-ownership="none">
-          <type name="Gst.Buffer" c:type="GstBuffer*"/>
-        </parameter>
-        <parameter name="id_data" transfer-ownership="none">
-          <array c:type="guint8*">
-            <type name="uint8"/>
-          </array>
-        </parameter>
-        <parameter name="id_data_length" transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
-        </parameter>
-        <parameter name="vendor_string" transfer-ownership="none">
-          <array c:type="gchar**">
-            <type name="utf8"/>
-          </array>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="list_from_xmp_buffer"
-              c:identifier="gst_tag_list_from_xmp_buffer"
-              doc="Parse a xmp packet into a taglist."
-              version="0.10.29">
-      <return-value transfer-ownership="full">
-        <type name="Gst.TagList" c:type="GstTagList*"/>
-      </return-value>
-      <parameters>
-        <parameter name="buffer" transfer-ownership="none">
-          <type name="Gst.Buffer" c:type="GstBuffer*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="list_new_from_id3v1"
-              c:identifier="gst_tag_list_new_from_id3v1"
-              doc="Parses the data containing an ID3v1 tag and returns a #GstTagList from the
-parsed data.">
-      <return-value transfer-ownership="full">
-        <type name="Gst.TagList" c:type="GstTagList*"/>
-      </return-value>
-      <parameters>
-        <parameter name="data" transfer-ownership="none">
-          <array c:type="guint8*">
-            <type name="uint8"/>
-          </array>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="list_to_vorbiscomment_buffer"
-              c:identifier="gst_tag_list_to_vorbiscomment_buffer"
-              doc="Creates a new vorbiscomment buffer from a tag list.
-that could be converted from the given tag list.">
-      <return-value transfer-ownership="full">
-        <type name="Gst.Buffer" c:type="GstBuffer*"/>
-      </return-value>
-      <parameters>
-        <parameter name="list" transfer-ownership="none">
-          <type name="Gst.TagList" c:type="GstTagList*"/>
-        </parameter>
-        <parameter name="id_data" transfer-ownership="none">
-          <array c:type="guint8*">
-            <type name="uint8"/>
-          </array>
-        </parameter>
-        <parameter name="id_data_length" transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
-        </parameter>
-        <parameter name="vendor_string" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="list_to_xmp_buffer"
-              c:identifier="gst_tag_list_to_xmp_buffer"
-              doc="Formats a taglist as a xmp packet."
-              version="0.10.29">
-      <return-value transfer-ownership="full">
-        <type name="Gst.Buffer" c:type="GstBuffer*"/>
-      </return-value>
-      <parameters>
-        <parameter name="list" transfer-ownership="none">
-          <type name="Gst.TagList" c:type="GstTagList*"/>
-        </parameter>
-        <parameter name="read_only" transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="parse_extended_comment"
-              c:identifier="gst_tag_parse_extended_comment"
-              doc="Convenience function to parse a GST_TAG_EXTENDED_COMMENT string and
-separate it into its components.
-If successful, @key, @lang and/or @value will be set to newly allocated
-strings that you need to free with g_free() when done. @key and @lang
-may also be set to NULL by this function if there is no key or no language
-code in the extended comment string."
-              version="0.10.10">
-      <return-value transfer-ownership="none">
-        <type name="boolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="ext_comment" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-        <parameter name="key" transfer-ownership="none">
-          <array c:type="gchar**">
-            <type name="utf8"/>
-          </array>
-        </parameter>
-        <parameter name="lang" transfer-ownership="none">
-          <array c:type="gchar**">
-            <type name="utf8"/>
-          </array>
-        </parameter>
-        <parameter name="value" transfer-ownership="none">
-          <array c:type="gchar**">
-            <type name="utf8"/>
-          </array>
-        </parameter>
-        <parameter name="fail_if_no_key" transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="register_musicbrainz_tags"
-              c:identifier="gst_tag_register_musicbrainz_tags">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-    </function>
-    <function name="to_id3_tag"
-              c:identifier="gst_tag_to_id3_tag"
-              doc="Looks up the ID3v2 tag for a GStreamer tag.">
-      <return-value transfer-ownership="none">
-        <type name="utf8" c:type="gchar*"/>
-      </return-value>
-      <parameters>
-        <parameter name="gst_tag" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="to_vorbis_comments"
-              c:identifier="gst_tag_to_vorbis_comments"
-              doc="Creates a new tag list that contains the information parsed out of a
-vorbiscomment packet.
-g_list_foreach (list, (GFunc) g_free, NULL) plus g_list_free (list)">
-      <return-value transfer-ownership="full">
-        <type name="GLib.List" c:type="GList*"/>
-      </return-value>
-      <parameters>
-        <parameter name="list" transfer-ownership="none">
-          <type name="Gst.TagList" c:type="GstTagList*"/>
-        </parameter>
-        <parameter name="tag" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="to_vorbis_tag"
-              c:identifier="gst_tag_to_vorbis_tag"
-              doc="Looks up the vorbiscomment tag for a GStreamer tag.">
-      <return-value transfer-ownership="none">
-        <type name="utf8" c:type="gchar*"/>
-      </return-value>
-      <parameters>
-        <parameter name="gst_tag" transfer-ownership="none">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="vorbis_tag_add"
-              c:identifier="gst_vorbis_tag_add"
-              doc="Convenience function using gst_tag_from_vorbis_tag(), parsing
-a vorbis comment string into the right type and adding it to the
-given taglist @list.
-Unknown vorbiscomment tags will be added to the tag list in form
-of a #GST_TAG_EXTENDED_COMMENT (since 0.10.10 at least).">
-      <return-value transfer-ownership="none">
-        <type name="none" c:type="void"/>
-      </return-value>
-      <parameters>
-        <parameter name="list" transfer-ownership="none">
-          <type name="Gst.TagList" c:type="GstTagList*"/>
-        </parameter>
-        <parameter name="tag"
-                   transfer-ownership="none"
-                   doc="must be valid UTF-8">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-        <parameter name="value"
-                   transfer-ownership="none"
-                   doc="must be valid UTF-8">
-          <type name="utf8" c:type="gchar*"/>
-        </parameter>
-      </parameters>
-    </function>
-  </namespace>
-</repository>
diff --git a/extra/gstreamer/tag/ffi/ffi.factor b/extra/gstreamer/tag/ffi/ffi.factor
deleted file mode 100644 (file)
index 28eda35..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-! Copyright (C) 2010 Anton Gorenko.
-! See http://factorcode.org/license.txt for BSD license.
-USING: alien alien.libraries combinators kernel system
-gobject-introspection glib.ffi gstreamer.ffi ;
-IN: gstreamer.tag.ffi
-
-<<
-"gstreamer.tag" {
-    { [ os winnt? ] [ drop ] }
-    { [ os macosx? ] [ drop ] }
-    { [ os unix? ] [ "libgsttag-0.10.so" cdecl add-library ] }
-} cond
->>
-
-GIR: vocab:gstreamer/tag/GstTag-0.10.gir
-
diff --git a/extra/gstreamer/tag/tag.factor b/extra/gstreamer/tag/tag.factor
deleted file mode 100644 (file)
index 30c6c97..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-! Copyright (C) 2010 Anton Gorenko.
-! See http://factorcode.org/license.txt for BSD license.
-USING: gstreamer.tag.ffi ;
-IN: gstreamer.tag
-
diff --git a/extra/gstreamer/tags.txt b/extra/gstreamer/tags.txt
deleted file mode 100755 (executable)
index be30e2c..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-bindings
-audio
-video
diff --git a/extra/gstreamer/video/GstVideo-0.10.gir b/extra/gstreamer/video/GstVideo-0.10.gir
deleted file mode 100644 (file)
index ff905a0..0000000
+++ /dev/null
@@ -1,925 +0,0 @@
-<?xml version="1.0"?>
-<!-- This file was automatically generated from C sources - DO NOT EDIT!
-To affect the contents of this file, edit the original C definitions,
-and/or use gtk-doc annotations.  -->
-<repository version="1.0"
-            xmlns="http://www.gtk.org/introspection/core/1.0"
-            xmlns:c="http://www.gtk.org/introspection/c/1.0"
-            xmlns:glib="http://www.gtk.org/introspection/glib/1.0">
-  <include name="GLib" version="2.0"/>
-  <include name="GModule" version="2.0"/>
-  <include name="GObject" version="2.0"/>
-  <include name="Gst" version="0.10"/>
-  <include name="GstBase" version="0.10"/>
-  <include name="libxml2" version="2.0"/>
-  <package name="gstreamer-0.10"/>
-  <package name="gstreamer-base-0.10"/>
-  <c:include name="gst/video/gstvideofilter.h"/>
-  <c:include name="gst/video/gstvideosink.h"/>
-  <c:include name="gst/video/video-enumtypes.h"/>
-  <c:include name="gst/video/video.h"/>
-  <namespace name="GstVideo"
-             version="0.10"
-             shared-library="libgstvideo-0.10.so.0"
-             c:prefix="Gst">
-    <constant name="BLUE_MASK_15" value="0x001f">
-      <type name="utf8"/>
-    </constant>
-    <constant name="BLUE_MASK_15_INT" value="31">
-      <type name="int"/>
-    </constant>
-    <constant name="BLUE_MASK_16" value="0x001f">
-      <type name="utf8"/>
-    </constant>
-    <constant name="BLUE_MASK_16_INT" value="31">
-      <type name="int"/>
-    </constant>
-    <constant name="BYTE1_MASK_24" value="0x00FF0000">
-      <type name="utf8"/>
-    </constant>
-    <constant name="BYTE1_MASK_24_INT" value="16711680">
-      <type name="int"/>
-    </constant>
-    <constant name="BYTE1_MASK_32" value="0xFF000000">
-      <type name="utf8"/>
-    </constant>
-    <constant name="BYTE1_MASK_32_INT" value="-16777216">
-      <type name="int"/>
-    </constant>
-    <constant name="BYTE2_MASK_24" value="0x0000FF00">
-      <type name="utf8"/>
-    </constant>
-    <constant name="BYTE2_MASK_24_INT" value="65280">
-      <type name="int"/>
-    </constant>
-    <constant name="BYTE2_MASK_32" value="0x00FF0000">
-      <type name="utf8"/>
-    </constant>
-    <constant name="BYTE2_MASK_32_INT" value="16711680">
-      <type name="int"/>
-    </constant>
-    <constant name="BYTE3_MASK_24" value="0x000000FF">
-      <type name="utf8"/>
-    </constant>
-    <constant name="BYTE3_MASK_24_INT" value="255">
-      <type name="int"/>
-    </constant>
-    <constant name="BYTE3_MASK_32" value="0x0000FF00">
-      <type name="utf8"/>
-    </constant>
-    <constant name="BYTE3_MASK_32_INT" value="65280">
-      <type name="int"/>
-    </constant>
-    <constant name="BYTE4_MASK_32" value="0x000000FF">
-      <type name="utf8"/>
-    </constant>
-    <constant name="BYTE4_MASK_32_INT" value="255">
-      <type name="int"/>
-    </constant>
-    <constant name="CAPS_GRAY8"
-              value="video/x-raw-gray, bpp = (int) 8, depth = (int) 8, width = ">
-      <type name="utf8"/>
-    </constant>
-    <constant name="CAPS_RGB_15"
-              value="video/x-raw-rgb, bpp = (int) 16, depth = (int) 15, endianness = (int) BYTE_ORDER, red_mask = (int) ">
-      <type name="utf8"/>
-    </constant>
-    <constant name="CAPS_RGB_16"
-              value="video/x-raw-rgb, bpp = (int) 16, depth = (int) 16, endianness = (int) BYTE_ORDER, red_mask = (int) ">
-      <type name="utf8"/>
-    </constant>
-    <constant name="FPS_RANGE" value="(fraction) [ 0, max ]">
-      <type name="utf8"/>
-    </constant>
-    <constant name="GREEN_MASK_15" value="0x03e0">
-      <type name="utf8"/>
-    </constant>
-    <constant name="GREEN_MASK_15_INT" value="992">
-      <type name="int"/>
-    </constant>
-    <constant name="GREEN_MASK_16" value="0x07e0">
-      <type name="utf8"/>
-    </constant>
-    <constant name="GREEN_MASK_16_INT" value="2016">
-      <type name="int"/>
-    </constant>
-    <constant name="RED_MASK_15" value="0x7c00">
-      <type name="utf8"/>
-    </constant>
-    <constant name="RED_MASK_15_INT" value="31744">
-      <type name="int"/>
-    </constant>
-    <constant name="RED_MASK_16" value="0xf800">
-      <type name="utf8"/>
-    </constant>
-    <constant name="RED_MASK_16_INT" value="63488">
-      <type name="int"/>
-    </constant>
-    <constant name="SIZE_RANGE" value="(int) [ 1, max ]">
-      <type name="utf8"/>
-    </constant>
-    <class name="VideoFilter"
-           c:type="GstVideoFilter"
-           parent="GstBase.BaseTransform"
-           abstract="1"
-           glib:type-name="GstVideoFilter"
-           glib:get-type="gst_video_filter_get_type"
-           glib:type-struct="VideoFilterClass">
-      <field name="element">
-        <type name="GstBase.BaseTransform" c:type="GstBaseTransform"/>
-      </field>
-      <field name="inited">
-        <type name="boolean" c:type="gboolean"/>
-      </field>
-    </class>
-    <record name="VideoFilterClass"
-            c:type="GstVideoFilterClass"
-            glib:is-gtype-struct-for="VideoFilter">
-      <field name="parent_class">
-        <type name="GstBase.BaseTransformClass"
-              c:type="GstBaseTransformClass"/>
-      </field>
-    </record>
-    <enumeration name="VideoFormat"
-                 doc="Enum value describing the most common video formats."
-                 glib:type-name="GstVideoFormat"
-                 glib:get-type="gst_video_format_get_type"
-                 c:type="GstVideoFormat">
-      <member name="unknown"
-              value="0"
-              c:identifier="GST_VIDEO_FORMAT_UNKNOWN"
-              glib:nick="unknown"/>
-      <member name="i420"
-              value="1"
-              c:identifier="GST_VIDEO_FORMAT_I420"
-              glib:nick="i420"/>
-      <member name="yv12"
-              value="2"
-              c:identifier="GST_VIDEO_FORMAT_YV12"
-              glib:nick="yv12"/>
-      <member name="yuy2"
-              value="3"
-              c:identifier="GST_VIDEO_FORMAT_YUY2"
-              glib:nick="yuy2"/>
-      <member name="uyvy"
-              value="4"
-              c:identifier="GST_VIDEO_FORMAT_UYVY"
-              glib:nick="uyvy"/>
-      <member name="ayuv"
-              value="5"
-              c:identifier="GST_VIDEO_FORMAT_AYUV"
-              glib:nick="ayuv"/>
-      <member name="rgbx"
-              value="6"
-              c:identifier="GST_VIDEO_FORMAT_RGBx"
-              glib:nick="rgbx"/>
-      <member name="bgrx"
-              value="7"
-              c:identifier="GST_VIDEO_FORMAT_BGRx"
-              glib:nick="bgrx"/>
-      <member name="xrgb"
-              value="8"
-              c:identifier="GST_VIDEO_FORMAT_xRGB"
-              glib:nick="xrgb"/>
-      <member name="xbgr"
-              value="9"
-              c:identifier="GST_VIDEO_FORMAT_xBGR"
-              glib:nick="xbgr"/>
-      <member name="rgba"
-              value="10"
-              c:identifier="GST_VIDEO_FORMAT_RGBA"
-              glib:nick="rgba"/>
-      <member name="bgra"
-              value="11"
-              c:identifier="GST_VIDEO_FORMAT_BGRA"
-              glib:nick="bgra"/>
-      <member name="argb"
-              value="12"
-              c:identifier="GST_VIDEO_FORMAT_ARGB"
-              glib:nick="argb"/>
-      <member name="abgr"
-              value="13"
-              c:identifier="GST_VIDEO_FORMAT_ABGR"
-              glib:nick="abgr"/>
-      <member name="rgb"
-              value="14"
-              c:identifier="GST_VIDEO_FORMAT_RGB"
-              glib:nick="rgb"/>
-      <member name="bgr"
-              value="15"
-              c:identifier="GST_VIDEO_FORMAT_BGR"
-              glib:nick="bgr"/>
-      <member name="y41b"
-              value="16"
-              c:identifier="GST_VIDEO_FORMAT_Y41B"
-              glib:nick="y41b"/>
-      <member name="y42b"
-              value="17"
-              c:identifier="GST_VIDEO_FORMAT_Y42B"
-              glib:nick="y42b"/>
-      <member name="yvyu"
-              value="18"
-              c:identifier="GST_VIDEO_FORMAT_YVYU"
-              glib:nick="yvyu"/>
-      <member name="y444"
-              value="19"
-              c:identifier="GST_VIDEO_FORMAT_Y444"
-              glib:nick="y444"/>
-      <member name="v210"
-              value="20"
-              c:identifier="GST_VIDEO_FORMAT_v210"
-              glib:nick="v210"/>
-      <member name="v216"
-              value="21"
-              c:identifier="GST_VIDEO_FORMAT_v216"
-              glib:nick="v216"/>
-      <member name="nv12"
-              value="22"
-              c:identifier="GST_VIDEO_FORMAT_NV12"
-              glib:nick="nv12"/>
-      <member name="nv21"
-              value="23"
-              c:identifier="GST_VIDEO_FORMAT_NV21"
-              glib:nick="nv21"/>
-      <member name="gray8"
-              value="24"
-              c:identifier="GST_VIDEO_FORMAT_GRAY8"
-              glib:nick="gray8"/>
-      <member name="gray16_be"
-              value="25"
-              c:identifier="GST_VIDEO_FORMAT_GRAY16_BE"
-              glib:nick="gray16-be"/>
-      <member name="gray16_le"
-              value="26"
-              c:identifier="GST_VIDEO_FORMAT_GRAY16_LE"
-              glib:nick="gray16-le"/>
-    </enumeration>
-    <record name="VideoRectangle"
-            c:type="GstVideoRectangle"
-            doc="Helper structure representing a rectangular area.">
-      <field name="x" writable="1">
-        <type name="int" c:type="gint"/>
-      </field>
-      <field name="y" writable="1">
-        <type name="int" c:type="gint"/>
-      </field>
-      <field name="w" writable="1">
-        <type name="int" c:type="gint"/>
-      </field>
-      <field name="h" writable="1">
-        <type name="int" c:type="gint"/>
-      </field>
-    </record>
-    <class name="VideoSink"
-           c:type="GstVideoSink"
-           doc="The video sink instance structure. Derived video sinks should set the"
-           parent="GstBase.BaseSink"
-           glib:type-name="GstVideoSink"
-           glib:get-type="gst_video_sink_get_type"
-           glib:type-struct="VideoSinkClass">
-      <function name="center_rect"
-                c:identifier="gst_video_sink_center_rect"
-                doc="Takes @src rectangle and position it at the center of @dst rectangle with or
-without @scaling. It handles clipping if the @src rectangle is bigger than
-the @dst one and @scaling is set to FALSE.">
-        <return-value transfer-ownership="none">
-          <type name="none" c:type="void"/>
-        </return-value>
-        <parameters>
-          <parameter name="src" transfer-ownership="none">
-            <type name="VideoRectangle" c:type="GstVideoRectangle"/>
-          </parameter>
-          <parameter name="dst" transfer-ownership="none">
-            <type name="VideoRectangle" c:type="GstVideoRectangle"/>
-          </parameter>
-          <parameter name="result" transfer-ownership="none">
-            <type name="VideoRectangle" c:type="GstVideoRectangle*"/>
-          </parameter>
-          <parameter name="scaling" transfer-ownership="none">
-            <type name="boolean" c:type="gboolean"/>
-          </parameter>
-        </parameters>
-      </function>
-      <virtual-method name="show_frame">
-        <return-value transfer-ownership="full">
-          <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
-        </return-value>
-        <parameters>
-          <parameter name="buf" transfer-ownership="none">
-            <type name="Gst.Buffer" c:type="GstBuffer*"/>
-          </parameter>
-        </parameters>
-      </virtual-method>
-      <property name="show-preroll-frame" writable="1" construct="1">
-        <type name="boolean" c:type="gboolean"/>
-      </property>
-      <field name="element">
-        <type name="GstBase.BaseSink" c:type="GstBaseSink"/>
-      </field>
-      <field name="width">
-        <type name="int" c:type="gint"/>
-      </field>
-      <field name="height">
-        <type name="int" c:type="gint"/>
-      </field>
-      <field name="priv">
-        <type name="VideoSinkPrivate" c:type="GstVideoSinkPrivate*"/>
-      </field>
-      <field name="_gst_reserved">
-        <array zero-terminated="0" c:type="gpointer" fixed-size="3">
-          <type name="any"/>
-        </array>
-      </field>
-    </class>
-    <record name="VideoSinkClass"
-            c:type="GstVideoSinkClass"
-            glib:is-gtype-struct-for="VideoSink"
-            doc="#GstBaseSink::preroll vfuncs. Rendering during preroll will be
-suppressed if the &apos;show-preroll-frame&apos; property is set to #FALSE.
-The video sink class structure. Derived classes should override the"
-            version="0.10.25">
-      <field name="parent_class">
-        <type name="GstBase.BaseSinkClass" c:type="GstBaseSinkClass"/>
-      </field>
-      <field name="show_frame">
-        <callback name="show_frame" c:type="show_frame">
-          <return-value transfer-ownership="full">
-            <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
-          </return-value>
-          <parameters>
-            <parameter name="video_sink" transfer-ownership="none">
-              <type name="VideoSink" c:type="GstVideoSink*"/>
-            </parameter>
-            <parameter name="buf" transfer-ownership="none">
-              <type name="Gst.Buffer" c:type="GstBuffer*"/>
-            </parameter>
-          </parameters>
-        </callback>
-      </field>
-      <field name="_gst_reserved">
-        <array zero-terminated="0" c:type="gpointer" fixed-size="3">
-          <type name="any"/>
-        </array>
-      </field>
-    </record>
-    <record name="VideoSinkPrivate" c:type="GstVideoSinkPrivate">
-    </record>
-    <function name="calculate_display_ratio"
-              c:identifier="gst_video_calculate_display_ratio"
-              doc="Given the Pixel Aspect Ratio and size of an input video frame, and the
-pixel aspect ratio of the intended display device, calculates the actual
-display ratio the video will be rendered with.
-dar_n and dar_d parameters.
-The return value is FALSE in the case of integer overflow or other error."
-              version="0.10.7">
-      <return-value transfer-ownership="none">
-        <type name="boolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="dar_n" direction="out" transfer-ownership="full">
-          <type name="uint" c:type="guint*"/>
-        </parameter>
-        <parameter name="dar_d" direction="out" transfer-ownership="full">
-          <type name="uint" c:type="guint*"/>
-        </parameter>
-        <parameter name="video_width" transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
-        </parameter>
-        <parameter name="video_height" transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
-        </parameter>
-        <parameter name="video_par_n" transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
-        </parameter>
-        <parameter name="video_par_d" transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
-        </parameter>
-        <parameter name="display_par_n" transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
-        </parameter>
-        <parameter name="display_par_d" transfer-ownership="none">
-          <type name="uint" c:type="guint"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="event_new_still_frame"
-              c:identifier="gst_video_event_new_still_frame"
-              doc="Creates a new Still Frame event. If @in_still is %TRUE, then the event
-represents the start of a still frame sequence. If it is %FALSE, then
-the event ends a still frame sequence.
-To parse an event created by gst_video_event_new_still_frame() use
-gst_video_event_parse_still_frame()."
-              version="0.10.26">
-      <return-value transfer-ownership="full">
-        <type name="Gst.Event" c:type="GstEvent*"/>
-      </return-value>
-      <parameters>
-        <parameter name="in_still" transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="event_parse_still_frame"
-              c:identifier="gst_video_event_parse_still_frame"
-              doc="Parse a #GstEvent, identify if it is a Still Frame event, and
-return the still-frame state from the event if it is.
-If the event represents the start of a still frame, the in_still
-variable will be set to TRUE, otherwise FALSE. It is OK to pass NULL for the
-in_still variable order to just check whether the event is a valid still-frame
-event.
-Create a still frame event using gst_video_event_new_still_frame()"
-              version="0.10.26">
-      <return-value transfer-ownership="none">
-        <type name="boolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="event" transfer-ownership="none">
-          <type name="Gst.Event" c:type="GstEvent*"/>
-        </parameter>
-        <parameter name="in_still" direction="out" transfer-ownership="full">
-          <type name="boolean" c:type="gboolean*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="format_convert"
-              c:identifier="gst_video_format_convert"
-              doc="Converts among various #GstFormat types.  This function handles
-GST_FORMAT_BYTES, GST_FORMAT_TIME, and GST_FORMAT_DEFAULT.  For
-raw video, GST_FORMAT_DEFAULT corresponds to video frames.  This
-function can be to handle pad queries of the type GST_QUERY_CONVERT."
-              version="0.10.16">
-      <return-value transfer-ownership="none">
-        <type name="boolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="format" transfer-ownership="none">
-          <type name="VideoFormat" c:type="GstVideoFormat"/>
-        </parameter>
-        <parameter name="width" transfer-ownership="none">
-          <type name="int" c:type="int"/>
-        </parameter>
-        <parameter name="height" transfer-ownership="none">
-          <type name="int" c:type="int"/>
-        </parameter>
-        <parameter name="fps_n" transfer-ownership="none">
-          <type name="int" c:type="int"/>
-        </parameter>
-        <parameter name="fps_d" transfer-ownership="none">
-          <type name="int" c:type="int"/>
-        </parameter>
-        <parameter name="src_format" transfer-ownership="none">
-          <type name="Gst.Format" c:type="GstFormat"/>
-        </parameter>
-        <parameter name="src_value" transfer-ownership="none">
-          <type name="int64" c:type="gint64"/>
-        </parameter>
-        <parameter name="dest_format" transfer-ownership="none">
-          <type name="Gst.Format" c:type="GstFormat"/>
-        </parameter>
-        <parameter name="dest_value" direction="out" transfer-ownership="full">
-          <type name="int64" c:type="gint64*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="format_from_fourcc"
-              c:identifier="gst_video_format_from_fourcc"
-              doc="Converts a FOURCC value into the corresponding #GstVideoFormat.
-If the FOURCC cannot be represented by #GstVideoFormat,
-#GST_VIDEO_FORMAT_UNKNOWN is returned."
-              version="0.10.16">
-      <return-value transfer-ownership="full">
-        <type name="VideoFormat" c:type="GstVideoFormat"/>
-      </return-value>
-      <parameters>
-        <parameter name="fourcc" transfer-ownership="none">
-          <type name="uint32" c:type="guint32"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="format_get_component_height"
-              c:identifier="gst_video_format_get_component_height"
-              doc="Calculates the height of the component.  See
-of the component index."
-              version="0.10.16">
-      <return-value transfer-ownership="none">
-        <type name="int" c:type="int"/>
-      </return-value>
-      <parameters>
-        <parameter name="format" transfer-ownership="none">
-          <type name="VideoFormat" c:type="GstVideoFormat"/>
-        </parameter>
-        <parameter name="component" transfer-ownership="none">
-          <type name="int" c:type="int"/>
-        </parameter>
-        <parameter name="height" transfer-ownership="none">
-          <type name="int" c:type="int"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="format_get_component_offset"
-              c:identifier="gst_video_format_get_component_offset"
-              doc="Calculates the offset (in bytes) of the first pixel of the component
-with index @component.  For packed formats, this will typically be a
-small integer (0, 1, 2, 3).  For planar formats, this will be a
-(relatively) large offset to the beginning of the second or third
-component planes.  See @gst_video_format_get_row_stride for a description
-of the component index."
-              version="0.10.16">
-      <return-value transfer-ownership="none">
-        <type name="int" c:type="int"/>
-      </return-value>
-      <parameters>
-        <parameter name="format" transfer-ownership="none">
-          <type name="VideoFormat" c:type="GstVideoFormat"/>
-        </parameter>
-        <parameter name="component" transfer-ownership="none">
-          <type name="int" c:type="int"/>
-        </parameter>
-        <parameter name="width" transfer-ownership="none">
-          <type name="int" c:type="int"/>
-        </parameter>
-        <parameter name="height" transfer-ownership="none">
-          <type name="int" c:type="int"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="format_get_component_width"
-              c:identifier="gst_video_format_get_component_width"
-              doc="Calculates the width of the component.  See
-of the component index."
-              version="0.10.16">
-      <return-value transfer-ownership="none">
-        <type name="int" c:type="int"/>
-      </return-value>
-      <parameters>
-        <parameter name="format" transfer-ownership="none">
-          <type name="VideoFormat" c:type="GstVideoFormat"/>
-        </parameter>
-        <parameter name="component" transfer-ownership="none">
-          <type name="int" c:type="int"/>
-        </parameter>
-        <parameter name="width" transfer-ownership="none">
-          <type name="int" c:type="int"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="format_get_pixel_stride"
-              c:identifier="gst_video_format_get_pixel_stride"
-              doc="Calculates the pixel stride (number of bytes from one pixel to the
-pixel to its immediate left) for the video component with an index
-of @component.  See @gst_video_format_get_row_stride for a description
-of the component index."
-              version="0.10.16">
-      <return-value transfer-ownership="none">
-        <type name="int" c:type="int"/>
-      </return-value>
-      <parameters>
-        <parameter name="format" transfer-ownership="none">
-          <type name="VideoFormat" c:type="GstVideoFormat"/>
-        </parameter>
-        <parameter name="component" transfer-ownership="none">
-          <type name="int" c:type="int"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="format_get_row_stride"
-              c:identifier="gst_video_format_get_row_stride"
-              doc="Calculates the row stride (number of bytes from one row of pixels to
-the next) for the video component with an index of @component.  For
-YUV video, Y, U, and V have component indices of 0, 1, and 2,
-respectively.  For RGB video, R, G, and B have component indicies of
-0, 1, and 2, respectively.  Alpha channels, if present, have a component
-index of 3.  The @width parameter always represents the width of the
-video, not the component."
-              version="0.10.16">
-      <return-value transfer-ownership="none">
-        <type name="int" c:type="int"/>
-      </return-value>
-      <parameters>
-        <parameter name="format" transfer-ownership="none">
-          <type name="VideoFormat" c:type="GstVideoFormat"/>
-        </parameter>
-        <parameter name="component" transfer-ownership="none">
-          <type name="int" c:type="int"/>
-        </parameter>
-        <parameter name="width" transfer-ownership="none">
-          <type name="int" c:type="int"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="format_get_size"
-              c:identifier="gst_video_format_get_size"
-              doc="Calculates the total number of bytes in the raw video format.  This
-number should be used when allocating a buffer for raw video."
-              version="0.10.16">
-      <return-value transfer-ownership="none" doc="of raw video format">
-        <type name="int" c:type="int"/>
-      </return-value>
-      <parameters>
-        <parameter name="format" transfer-ownership="none">
-          <type name="VideoFormat" c:type="GstVideoFormat"/>
-        </parameter>
-        <parameter name="width" transfer-ownership="none">
-          <type name="int" c:type="int"/>
-        </parameter>
-        <parameter name="height" transfer-ownership="none">
-          <type name="int" c:type="int"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="format_has_alpha"
-              c:identifier="gst_video_format_has_alpha"
-              doc="Returns TRUE or FALSE depending on if the video format provides an
-alpha channel."
-              version="0.10.16">
-      <return-value transfer-ownership="none">
-        <type name="boolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="format" transfer-ownership="none">
-          <type name="VideoFormat" c:type="GstVideoFormat"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="format_is_gray"
-              c:identifier="gst_video_format_is_gray"
-              doc="Determine whether the video format is a grayscale format."
-              version="0.10.29">
-      <return-value transfer-ownership="none">
-        <type name="boolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="format" transfer-ownership="none">
-          <type name="VideoFormat" c:type="GstVideoFormat"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="format_is_rgb"
-              c:identifier="gst_video_format_is_rgb"
-              doc="Determine whether the video format is an RGB format."
-              version="0.10.16">
-      <return-value transfer-ownership="none">
-        <type name="boolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="format" transfer-ownership="none">
-          <type name="VideoFormat" c:type="GstVideoFormat"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="format_is_yuv"
-              c:identifier="gst_video_format_is_yuv"
-              doc="Determine whether the video format is a YUV format."
-              version="0.10.16">
-      <return-value transfer-ownership="none">
-        <type name="boolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="format" transfer-ownership="none">
-          <type name="VideoFormat" c:type="GstVideoFormat"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="format_new_caps"
-              c:identifier="gst_video_format_new_caps"
-              doc="Creates a new #GstCaps object based on the parameters provided."
-              version="0.10.16">
-      <return-value transfer-ownership="full">
-        <type name="Gst.Caps" c:type="GstCaps*"/>
-      </return-value>
-      <parameters>
-        <parameter name="format" transfer-ownership="none">
-          <type name="VideoFormat" c:type="GstVideoFormat"/>
-        </parameter>
-        <parameter name="width" transfer-ownership="none">
-          <type name="int" c:type="int"/>
-        </parameter>
-        <parameter name="height" transfer-ownership="none">
-          <type name="int" c:type="int"/>
-        </parameter>
-        <parameter name="framerate_n" transfer-ownership="none">
-          <type name="int" c:type="int"/>
-        </parameter>
-        <parameter name="framerate_d" transfer-ownership="none">
-          <type name="int" c:type="int"/>
-        </parameter>
-        <parameter name="par_n" transfer-ownership="none">
-          <type name="int" c:type="int"/>
-        </parameter>
-        <parameter name="par_d" transfer-ownership="none">
-          <type name="int" c:type="int"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="format_new_caps_interlaced"
-              c:identifier="gst_video_format_new_caps_interlaced"
-              doc="Creates a new #GstCaps object based on the parameters provided."
-              version="0.10.23">
-      <return-value transfer-ownership="full">
-        <type name="Gst.Caps" c:type="GstCaps*"/>
-      </return-value>
-      <parameters>
-        <parameter name="format" transfer-ownership="none">
-          <type name="VideoFormat" c:type="GstVideoFormat"/>
-        </parameter>
-        <parameter name="width" transfer-ownership="none">
-          <type name="int" c:type="int"/>
-        </parameter>
-        <parameter name="height" transfer-ownership="none">
-          <type name="int" c:type="int"/>
-        </parameter>
-        <parameter name="framerate_n" transfer-ownership="none">
-          <type name="int" c:type="int"/>
-        </parameter>
-        <parameter name="framerate_d" transfer-ownership="none">
-          <type name="int" c:type="int"/>
-        </parameter>
-        <parameter name="par_n" transfer-ownership="none">
-          <type name="int" c:type="int"/>
-        </parameter>
-        <parameter name="par_d" transfer-ownership="none">
-          <type name="int" c:type="int"/>
-        </parameter>
-        <parameter name="interlaced" transfer-ownership="none">
-          <type name="boolean" c:type="gboolean"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="format_parse_caps"
-              c:identifier="gst_video_format_parse_caps"
-              doc="Determines the #GstVideoFormat of @caps and places it in the location
-pointed to by @format.  Extracts the size of the video and places it
-in the location pointed to by @width and @height.  If @caps does not
-represent one of the raw video formats listed in #GstVideoFormat, the
-function will fail and return FALSE."
-              version="0.10.16">
-      <return-value transfer-ownership="none">
-        <type name="boolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="caps" transfer-ownership="none">
-          <type name="Gst.Caps" c:type="GstCaps*"/>
-        </parameter>
-        <parameter name="format" transfer-ownership="none">
-          <type name="VideoFormat" c:type="GstVideoFormat*"/>
-        </parameter>
-        <parameter name="width" direction="out" transfer-ownership="full">
-          <type name="int" c:type="int*"/>
-        </parameter>
-        <parameter name="height" direction="out" transfer-ownership="full">
-          <type name="int" c:type="int*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="format_parse_caps_interlaced"
-              c:identifier="gst_video_format_parse_caps_interlaced"
-              doc="Extracts whether the caps represents interlaced content or not and places it
-in @interlaced."
-              version="0.10.23">
-      <return-value transfer-ownership="none">
-        <type name="boolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="caps" transfer-ownership="none">
-          <type name="Gst.Caps" c:type="GstCaps*"/>
-        </parameter>
-        <parameter name="interlaced" direction="out" transfer-ownership="full">
-          <type name="boolean" c:type="gboolean*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="format_to_fourcc"
-              c:identifier="gst_video_format_to_fourcc"
-              doc="Converts a #GstVideoFormat value into the corresponding FOURCC.  Only
-a few YUV formats have corresponding FOURCC values.  If @format has
-no corresponding FOURCC value, 0 is returned."
-              version="0.10.16">
-      <return-value transfer-ownership="none">
-        <type name="uint32" c:type="guint32"/>
-      </return-value>
-      <parameters>
-        <parameter name="format" transfer-ownership="none">
-          <type name="VideoFormat" c:type="GstVideoFormat"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="frame_rate"
-              c:identifier="gst_video_frame_rate"
-              doc="A convenience function to retrieve a GValue holding the framerate
-from the caps on a pad.
-The pad needs to have negotiated caps containing a framerate property.
-do not contain a framerate.">
-      <return-value transfer-ownership="none">
-        <type name="GObject.Value" c:type="GValue*"/>
-      </return-value>
-      <parameters>
-        <parameter name="pad" transfer-ownership="none">
-          <type name="Gst.Pad" c:type="GstPad*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="get_size"
-              c:identifier="gst_video_get_size"
-              doc="Inspect the caps of the provided pad and retrieve the width and height of
-the video frames it is configured for.
-The pad needs to have negotiated caps containing width and height properties.">
-      <return-value transfer-ownership="none">
-        <type name="boolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="pad" transfer-ownership="none">
-          <type name="Gst.Pad" c:type="GstPad*"/>
-        </parameter>
-        <parameter name="width" direction="out" transfer-ownership="full">
-          <type name="int" c:type="gint*"/>
-        </parameter>
-        <parameter name="height" direction="out" transfer-ownership="full">
-          <type name="int" c:type="gint*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="parse_caps_chroma_site"
-              c:identifier="gst_video_parse_caps_chroma_site"
-              doc="Extracts the chroma site used by the caps.  Possible values are
-&quot;mpeg2&quot; for MPEG-2 style chroma siting (co-sited horizontally,
-halfway-sited vertically), &quot;jpeg&quot; for JPEG and Theora style
-chroma siting (halfway-sited both horizontally and vertically).
-Other chroma site values are possible, but uncommon.
-When no chroma site is specified in the caps, it should be assumed
-to be &quot;mpeg2&quot;.
-determined."
-              version="0.10.29">
-      <return-value transfer-ownership="none">
-        <type name="utf8" c:type="char*"/>
-      </return-value>
-      <parameters>
-        <parameter name="caps" transfer-ownership="none">
-          <type name="Gst.Caps" c:type="GstCaps*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="parse_caps_color_matrix"
-              c:identifier="gst_video_parse_caps_color_matrix"
-              doc="Extracts the color matrix used by the caps.  Possible values are
-&quot;sdtv&quot; for the standard definition color matrix (as specified in
-Rec. ITU-R BT.470-6) or &quot;hdtv&quot; for the high definition color
-matrix (as specified in Rec. ITU-R BT.709)
-determined."
-              version="0.10.29">
-      <return-value transfer-ownership="none">
-        <type name="utf8" c:type="char*"/>
-      </return-value>
-      <parameters>
-        <parameter name="caps" transfer-ownership="none">
-          <type name="Gst.Caps" c:type="GstCaps*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="parse_caps_framerate"
-              c:identifier="gst_video_parse_caps_framerate"
-              doc="Extracts the frame rate from @caps and places the values in the locations
-pointed to by @fps_n and @fps_d.  Returns TRUE if the values could be
-parsed correctly, FALSE if not.
-This function can be used with #GstCaps that have any media type; it
-is not limited to formats handled by #GstVideoFormat."
-              version="0.10.16">
-      <return-value transfer-ownership="none">
-        <type name="boolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="caps" transfer-ownership="none">
-          <type name="Gst.Caps" c:type="GstCaps*"/>
-        </parameter>
-        <parameter name="fps_n" direction="out" transfer-ownership="full">
-          <type name="int" c:type="int*"/>
-        </parameter>
-        <parameter name="fps_d" direction="out" transfer-ownership="full">
-          <type name="int" c:type="int*"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="parse_caps_pixel_aspect_ratio"
-              c:identifier="gst_video_parse_caps_pixel_aspect_ratio"
-              doc="Extracts the pixel aspect ratio from @caps and places the values in
-the locations pointed to by @par_n and @par_d.  Returns TRUE if the
-values could be parsed correctly, FALSE if not.
-This function can be used with #GstCaps that have any media type; it
-is not limited to formats handled by #GstVideoFormat."
-              version="0.10.16">
-      <return-value transfer-ownership="none">
-        <type name="boolean" c:type="gboolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="caps" transfer-ownership="none">
-          <type name="Gst.Caps" c:type="GstCaps*"/>
-        </parameter>
-        <parameter name="par_n" direction="out" transfer-ownership="full">
-          <type name="int" c:type="int*"/>
-        </parameter>
-        <parameter name="par_d" direction="out" transfer-ownership="full">
-          <type name="int" c:type="int*"/>
-        </parameter>
-      </parameters>
-    </function>
-  </namespace>
-</repository>
diff --git a/extra/gstreamer/video/ffi/ffi.factor b/extra/gstreamer/video/ffi/ffi.factor
deleted file mode 100644 (file)
index 474c48b..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-! Copyright (C) 2010 Anton Gorenko.
-! See http://factorcode.org/license.txt for BSD license.
-USING: alien alien.c-types alien.libraries combinators kernel
-system
-gobject-introspection glib.ffi gobject.ffi gstreamer.ffi ;
-IN: gstreamer.video.ffi
-
-<<
-"gstreamer.video" {
-    { [ os winnt? ] [ drop ] }
-    { [ os macosx? ] [ drop ] }
-    { [ os unix? ] [ "libgstvideo-0.10.so" cdecl add-library ] }
-} cond
->>
-
-IMPLEMENT-STRUCTS: GstVideoRectangle ;
-
-GIR: vocab:gstreamer/video/GstVideo-0.10.gir
-
diff --git a/extra/gstreamer/video/video.factor b/extra/gstreamer/video/video.factor
deleted file mode 100644 (file)
index fde33e9..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-! Copyright (C) 2010 Anton Gorenko.
-! See http://factorcode.org/license.txt for BSD license.
-USING: gstreamer.video.ffi ;
-IN: gstreamer.video
-
diff --git a/unmaintained/clutter/Clutter-1.0.gir b/unmaintained/clutter/Clutter-1.0.gir
new file mode 100644 (file)
index 0000000..e8fc46f
--- /dev/null
@@ -0,0 +1,40940 @@
+<?xml version="1.0"?>
+<!-- This file was automatically generated from C sources - DO NOT EDIT!
+To affect the contents of this file, edit the original C definitions,
+and/or use gtk-doc annotations.  -->
+<repository version="1.2"
+            xmlns="http://www.gtk.org/introspection/core/1.0"
+            xmlns:c="http://www.gtk.org/introspection/c/1.0"
+            xmlns:glib="http://www.gtk.org/introspection/glib/1.0">
+  <include name="Atk" version="1.0"/>
+  <include name="Cogl" version="1.0"/>
+  <include name="GL" version="1.0"/>
+  <include name="GLib" version="2.0"/>
+  <include name="GObject" version="2.0"/>
+  <include name="Gio" version="2.0"/>
+  <include name="Json" version="1.0"/>
+  <include name="Pango" version="1.0"/>
+  <include name="PangoCairo" version="1.0"/>
+  <include name="PangoFT2" version="1.0"/>
+  <include name="cairo" version="1.0"/>
+  <include name="fontconfig" version="2.0"/>
+  <include name="freetype2" version="2.0"/>
+  <package name="clutter-1.0"/>
+  <c:include name="clutter/clutter.h"/>
+  <namespace name="Clutter"
+             version="1.0"
+             shared-library="libclutter-glx-1.0.so.0"
+             c:identifier-prefixes="Clutter"
+             c:symbol-prefixes="clutter">
+    <constant name="0" value="48">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="1" value="49">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="2" value="50">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="3" value="51">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="3270_AltCursor" value="64784">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="3270_Attn" value="64782">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="3270_BackTab" value="64773">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="3270_ChangeScreen" value="64793">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="3270_Copy" value="64789">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="3270_CursorBlink" value="64783">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="3270_CursorSelect" value="64796">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="3270_DeleteWord" value="64794">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="3270_Duplicate" value="64769">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="3270_Enter" value="64798">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="3270_EraseEOF" value="64774">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="3270_EraseInput" value="64775">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="3270_ExSelect" value="64795">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="3270_FieldMark" value="64770">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="3270_Ident" value="64787">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="3270_Jump" value="64786">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="3270_KeyClick" value="64785">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="3270_Left2" value="64772">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="3270_PA1" value="64778">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="3270_PA2" value="64779">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="3270_PA3" value="64780">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="3270_Play" value="64790">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="3270_PrintScreen" value="64797">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="3270_Quit" value="64777">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="3270_Record" value="64792">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="3270_Reset" value="64776">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="3270_Right2" value="64771">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="3270_Rule" value="64788">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="3270_Setup" value="64791">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="3270_Test" value="64781">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="4" value="52">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="5" value="53">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="6" value="54">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="7" value="55">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="8" value="56">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="9" value="57">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="A" value="65">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="AE" value="198">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Aacute" value="193">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Abelowdot" value="16785056">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Abreve" value="451">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Abreveacute" value="16785070">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Abrevebelowdot" value="16785078">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Abrevegrave" value="16785072">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Abrevehook" value="16785074">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Abrevetilde" value="16785076">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="AccessX_Enable" value="65136">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="AccessX_Feedback_Enable" value="65137">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Acircumflex" value="194">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Acircumflexacute" value="16785060">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Acircumflexbelowdot" value="16785068">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Acircumflexgrave" value="16785062">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Acircumflexhook" value="16785064">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Acircumflextilde" value="16785066">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <class name="Action"
+           c:symbol-prefix="action"
+           c:type="ClutterAction"
+           version="1.4"
+           parent="ActorMeta"
+           abstract="1"
+           glib:type-name="ClutterAction"
+           glib:get-type="clutter_action_get_type"
+           glib:type-struct="ActionClass">
+      <doc xml:whitespace="preserve">The &lt;structname&gt;ClutterAction&lt;/structname&gt; structure contains only
+private data and should be accessed using the provided API</doc>
+      <field name="parent_instance">
+        <type name="ActorMeta" c:type="ClutterActorMeta"/>
+      </field>
+    </class>
+    <record name="ActionClass"
+            c:type="ClutterActionClass"
+            glib:is-gtype-struct-for="Action"
+            version="1.4">
+      <doc xml:whitespace="preserve">The &lt;structname&gt;ClutterActionClass&lt;/structname&gt; structure contains
+only private data</doc>
+      <field name="parent_class">
+        <type name="ActorMetaClass" c:type="ClutterActorMetaClass"/>
+      </field>
+      <field name="_clutter_action1" introspectable="0">
+        <callback name="_clutter_action1">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_action2" introspectable="0">
+        <callback name="_clutter_action2">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_action3" introspectable="0">
+        <callback name="_clutter_action3">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_action4" introspectable="0">
+        <callback name="_clutter_action4">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_action5" introspectable="0">
+        <callback name="_clutter_action5">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_action6" introspectable="0">
+        <callback name="_clutter_action6">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_action7" introspectable="0">
+        <callback name="_clutter_action7">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_action8" introspectable="0">
+        <callback name="_clutter_action8">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+    </record>
+    <class name="Actor"
+           c:symbol-prefix="actor"
+           c:type="ClutterActor"
+           parent="GObject.InitiallyUnowned"
+           abstract="1"
+           glib:type-name="ClutterActor"
+           glib:get-type="clutter_actor_get_type"
+           glib:type-struct="ActorClass">
+      <doc xml:whitespace="preserve">Base class for actors.</doc>
+      <implements name="Atk.ImplementorIface"/>
+      <implements name="Animatable"/>
+      <implements name="Scriptable"/>
+      <virtual-method name="allocate" invoker="allocate" version="0.8">
+        <doc xml:whitespace="preserve">Called by the parent of an actor to assign the actor its size.
+Should never be called by applications (except when implementing
+a container or layout manager).
+Actors can know from their allocation box whether they have moved
+with respect to their parent actor. The @flags parameter describes
+additional information about the allocation, for instance whether
+the parent has moved with respect to the stage, for example because
+a grandparent's origin has moved.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="box" transfer-ownership="none">
+            <doc xml:whitespace="preserve">new allocation of the actor, in parent-relative coordinates</doc>
+            <type name="ActorBox" c:type="ClutterActorBox*"/>
+          </parameter>
+          <parameter name="flags" transfer-ownership="none">
+            <doc xml:whitespace="preserve">flags that control the allocation</doc>
+            <type name="AllocationFlags" c:type="ClutterAllocationFlags"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="apply_transform">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="matrix" transfer-ownership="none">
+            <type name="Cogl.Matrix" c:type="CoglMatrix*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="get_accessible" invoker="get_accessible">
+        <doc xml:whitespace="preserve">Returns the accessible object that describes the actor to an
+assistive technology.
+If no class-specific #AtkObject implementation is available for the
+actor instance in question, it will inherit an #AtkObject
+implementation from the first ancestor class for which such an
+implementation is defined.
+The documentation of the &lt;ulink
+url="http://developer.gnome.org/doc/API/2.0/atk/index.html"&gt;ATK&lt;/ulink&gt;
+library contains more information about accessible objects and
+their uses.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the #AtkObject associated with @actor</doc>
+          <type name="Atk.Object" c:type="AtkObject*"/>
+        </return-value>
+      </virtual-method>
+      <virtual-method name="get_preferred_height"
+                      invoker="get_preferred_height"
+                      version="0.8">
+        <doc xml:whitespace="preserve">Computes the requested minimum and natural heights for an actor,
+or if they are already computed, returns the cached values.
+An actor may not get its request - depending on the layout
+manager that's in effect.
+A request should not incorporate the actor's scale or anchor point;
+those transformations do not affect layout, only rendering.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="for_width" transfer-ownership="none">
+            <doc xml:whitespace="preserve">available width to assume in computing desired height, or a negative value to indicate that no width is defined</doc>
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+          <parameter name="min_height_p"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full"
+                     allow-none="1">
+            <doc xml:whitespace="preserve">return location for minimum height, or %NULL</doc>
+            <type name="gfloat" c:type="gfloat*"/>
+          </parameter>
+          <parameter name="natural_height_p"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full"
+                     allow-none="1">
+            <doc xml:whitespace="preserve">return location for natural height, or %NULL</doc>
+            <type name="gfloat" c:type="gfloat*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="get_preferred_width"
+                      invoker="get_preferred_width"
+                      version="0.8">
+        <doc xml:whitespace="preserve">Computes the requested minimum and natural widths for an actor,
+optionally depending on the specified height, or if they are
+already computed, returns the cached values.
+An actor may not get its request - depending on the layout
+manager that's in effect.
+A request should not incorporate the actor's scale or anchor point;
+those transformations do not affect layout, only rendering.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="for_height" transfer-ownership="none">
+            <doc xml:whitespace="preserve">available height when computing the preferred width, or a negative value to indicate that no height is defined</doc>
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+          <parameter name="min_width_p"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full"
+                     allow-none="1">
+            <doc xml:whitespace="preserve">return location for minimum width, or %NULL</doc>
+            <type name="gfloat" c:type="gfloat*"/>
+          </parameter>
+          <parameter name="natural_width_p"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full"
+                     allow-none="1">
+            <doc xml:whitespace="preserve">return location for the natural width, or %NULL</doc>
+            <type name="gfloat" c:type="gfloat*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="hide_all" invoker="hide_all" version="0.2">
+        <doc xml:whitespace="preserve">Calls clutter_actor_hide() on all child actors (if any).</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </virtual-method>
+      <virtual-method name="map" invoker="map" version="1.0">
+        <doc xml:whitespace="preserve">Sets the %CLUTTER_ACTOR_MAPPED flag on the actor and possibly maps
+and realizes its children if they are visible. Does nothing if the
+actor is not visible.
+#ClutterActor &lt;function&gt;map()&lt;/function&gt; virtual function in an actor
+and you need to map the children of that actor. It is not necessary
+to call this if you implement #ClutterContainer because the default
+implementation will automatically map children of containers.
+When overriding map, it is mandatory to chain up to the parent
+implementation.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </virtual-method>
+      <virtual-method name="show_all" invoker="show_all" version="0.2">
+        <doc xml:whitespace="preserve">Calls clutter_actor_show() on all children of an actor (if any).</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </virtual-method>
+      <virtual-method name="unmap" invoker="unmap" version="1.0">
+        <doc xml:whitespace="preserve">Unsets the %CLUTTER_ACTOR_MAPPED flag on the actor and possibly
+unmaps its children if they were mapped.
+#ClutterActor &lt;function&gt;unmap()&lt;/function&gt; virtual function in an actor
+and you need to unmap the children of that actor. It is not necessary
+to call this if you implement #ClutterContainer because the default
+implementation will automatically unmap children of containers.
+When overriding unmap, it is mandatory to chain up to the parent
+implementation.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </virtual-method>
+      <method name="add_action"
+              c:identifier="clutter_actor_add_action"
+              version="1.4">
+        <doc xml:whitespace="preserve">Adds @action to the list of actions applied to @self
+A #ClutterAction can only belong to one actor at a time
+The #ClutterActor will hold a reference on @action until either
+clutter_actor_remove_action() or clutter_actor_clear_actions()
+is called</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="action" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #ClutterAction</doc>
+            <type name="Action" c:type="ClutterAction*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="add_action_with_name"
+              c:identifier="clutter_actor_add_action_with_name"
+              version="1.4">
+        <doc xml:whitespace="preserve">A convenience function for setting the name of a #ClutterAction
+while adding it to the list of actions applied to @self
+This function is the logical equivalent of:
+|[
+clutter_actor_meta_set_name (CLUTTER_ACTOR_META (action), name);
+clutter_actor_add_action (self, action);
+]|</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the name to set on the action</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="action" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #ClutterAction</doc>
+            <type name="Action" c:type="ClutterAction*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="add_constraint"
+              c:identifier="clutter_actor_add_constraint"
+              version="1.4">
+        <doc xml:whitespace="preserve">Adds @constraint to the list of #ClutterConstraint&lt;!-- --&gt;s applied
+to @self
+The #ClutterActor will hold a reference on the @constraint until
+either clutter_actor_remove_constraint() or
+clutter_actor_clear_constraints() is called.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="constraint" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #ClutterConstraint</doc>
+            <type name="Constraint" c:type="ClutterConstraint*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="add_constraint_with_name"
+              c:identifier="clutter_actor_add_constraint_with_name"
+              version="1.4">
+        <doc xml:whitespace="preserve">A convenience function for setting the name of a #ClutterConstraint
+while adding it to the list of constraints applied to @self
+This function is the logical equivalent of:
+|[
+clutter_actor_meta_set_name (CLUTTER_ACTOR_META (constraint), name);
+clutter_actor_add_constraint (self, constraint);
+]|</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the name to set on the constraint</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="constraint" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #ClutterConstraint</doc>
+            <type name="Constraint" c:type="ClutterConstraint*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="add_effect"
+              c:identifier="clutter_actor_add_effect"
+              version="1.4">
+        <doc xml:whitespace="preserve">Adds @effect to the list of #ClutterEffect&lt;!-- --&gt;s applied to @self
+The #ClutterActor will hold a reference on the @effect until either
+clutter_actor_remove_effect() or clutter_actor_clear_effects() is
+called.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="effect" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #ClutterEffect</doc>
+            <type name="Effect" c:type="ClutterEffect*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="add_effect_with_name"
+              c:identifier="clutter_actor_add_effect_with_name"
+              version="1.4">
+        <doc xml:whitespace="preserve">A convenience function for setting the name of a #ClutterEffect
+while adding it to the list of effectss applied to @self
+This function is the logical equivalent of:
+|[
+clutter_actor_meta_set_name (CLUTTER_ACTOR_META (effect), name);
+clutter_actor_add_effect (self, effect);
+]|</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the name to set on the effect</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="effect" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #ClutterEffect</doc>
+            <type name="Effect" c:type="ClutterEffect*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="allocate"
+              c:identifier="clutter_actor_allocate"
+              version="0.8">
+        <doc xml:whitespace="preserve">Called by the parent of an actor to assign the actor its size.
+Should never be called by applications (except when implementing
+a container or layout manager).
+Actors can know from their allocation box whether they have moved
+with respect to their parent actor. The @flags parameter describes
+additional information about the allocation, for instance whether
+the parent has moved with respect to the stage, for example because
+a grandparent's origin has moved.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="box" transfer-ownership="none">
+            <doc xml:whitespace="preserve">new allocation of the actor, in parent-relative coordinates</doc>
+            <type name="ActorBox" c:type="ClutterActorBox*"/>
+          </parameter>
+          <parameter name="flags" transfer-ownership="none">
+            <doc xml:whitespace="preserve">flags that control the allocation</doc>
+            <type name="AllocationFlags" c:type="ClutterAllocationFlags"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="allocate_align_fill"
+              c:identifier="clutter_actor_allocate_align_fill"
+              version="1.4">
+        <doc xml:whitespace="preserve">Allocates @self by taking into consideration the available allocation
+area; an alignment factor on either axis; and whether the actor should
+fill the allocation on either axis.
+The @box should contain the available allocation width and height;
+if the x1 and y1 members of #ClutterActorBox are not set to 0, the
+allocation will be offset by their value.
+This function takes into consideration the geometry request specified by
+the #ClutterActor:request-mode property, and the text direction.
+This function is useful for fluid layout managers, like #ClutterBinLayout
+or #ClutterTableLayout</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="box" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #ClutterActorBox, containing the available width and height</doc>
+            <type name="ActorBox" c:type="ClutterActorBox*"/>
+          </parameter>
+          <parameter name="x_align" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the horizontal alignment, between 0 and 1</doc>
+            <type name="gdouble" c:type="gdouble"/>
+          </parameter>
+          <parameter name="y_align" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the vertical alignment, between 0 and 1</doc>
+            <type name="gdouble" c:type="gdouble"/>
+          </parameter>
+          <parameter name="x_fill" transfer-ownership="none">
+            <doc xml:whitespace="preserve">whether the actor should fill horizontally</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+          <parameter name="y_fill" transfer-ownership="none">
+            <doc xml:whitespace="preserve">whether the actor should fill vertically</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+          <parameter name="flags" transfer-ownership="none">
+            <doc xml:whitespace="preserve">allocation flags to be passed to clutter_actor_allocate()</doc>
+            <type name="AllocationFlags" c:type="ClutterAllocationFlags"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="allocate_available_size"
+              c:identifier="clutter_actor_allocate_available_size"
+              version="1.0">
+        <doc xml:whitespace="preserve">Allocates @self taking into account the #ClutterActor&lt;!-- --&gt;'s
+preferred size, but limiting it to the maximum available width
+and height provided.
+This function will do the right thing when dealing with the
+actor's request mode.
+The implementation of this function is equivalent to:
+|[
+if (request_mode == CLUTTER_REQUEST_HEIGHT_FOR_WIDTH)
+{
+clutter_actor_get_preferred_width (self, available_height,
+&amp;amp;min_width,
+&amp;amp;natural_width);
+width = CLAMP (natural_width, min_width, available_width);
+clutter_actor_get_preferred_height (self, width,
+&amp;amp;min_height,
+&amp;amp;natural_height);
+height = CLAMP (natural_height, min_height, available_height);
+}
+else
+{
+clutter_actor_get_preferred_height (self, available_width,
+&amp;amp;min_height,
+&amp;amp;natural_height);
+height = CLAMP (natural_height, min_height, available_height);
+clutter_actor_get_preferred_width (self, height,
+&amp;amp;min_width,
+&amp;amp;natural_width);
+width = CLAMP (natural_width, min_width, available_width);
+}
+box.x1 = x; box.y1 = y;
+box.x2 = box.x1 + available_width;
+box.y2 = box.y1 + available_height;
+clutter_actor_allocate (self, &amp;amp;box, flags);
+]|
+This function can be used by fluid layout managers to allocate
+an actor's preferred size without making it bigger than the area
+available for the container.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="x" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the actor's X coordinate</doc>
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+          <parameter name="y" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the actor's Y coordinate</doc>
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+          <parameter name="available_width" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the maximum available width, or -1 to use the actor's natural width</doc>
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+          <parameter name="available_height" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the maximum available height, or -1 to use the actor's natural height</doc>
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+          <parameter name="flags" transfer-ownership="none">
+            <doc xml:whitespace="preserve">flags controlling the allocation</doc>
+            <type name="AllocationFlags" c:type="ClutterAllocationFlags"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="allocate_preferred_size"
+              c:identifier="clutter_actor_allocate_preferred_size"
+              version="0.8">
+        <doc xml:whitespace="preserve">Allocates the natural size of @self.
+This function is a utility call for #ClutterActor implementations
+that allocates the actor's preferred natural size. It can be used
+by fixed layout managers (like #ClutterGroup or so called
+'composite actors') inside the ClutterActor::allocate
+implementation to give each child exactly how much space it
+requires.
+This function is not meant to be used by applications. It is also
+not meant to be used outside the implementation of the
+ClutterActor::allocate virtual function.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="flags" transfer-ownership="none">
+            <doc xml:whitespace="preserve">flags controlling the allocation</doc>
+            <type name="AllocationFlags" c:type="ClutterAllocationFlags"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="animate"
+              c:identifier="clutter_actor_animate"
+              version="1.0"
+              introspectable="0">
+        <doc xml:whitespace="preserve">Animates the given list of properties of @actor between the current
+value for each property and a new final value. The animation has a
+definite duration and a speed given by the @mode.
+For example, this:
+|[
+clutter_actor_animate (rectangle, CLUTTER_LINEAR, 250,
+"width", 100.0,
+"height", 100.0,
+NULL);
+]|
+will make width and height properties of the #ClutterActor "rectangle"
+grow linearly between the current value and 100 pixels, in 250 milliseconds.
+The animation @mode is a logical id, either from the #ClutterAnimationMode
+enumeration of from clutter_alpha_register_func().
+All the properties specified will be animated between the current value
+and the final value. If a property should be set at the beginning of
+the animation but not updated during the animation, it should be prefixed
+by the "fixed::" string, for instance:
+|[
+clutter_actor_animate (actor, CLUTTER_EASE_IN_SINE, 100,
+"rotation-angle-z", 360.0,
+"fixed::rotation-center-z", &amp;amp;center,
+NULL);
+]|
+Will animate the "rotation-angle-z" property between the current value
+and 360 degrees, and set the "rotation-center-z" property to the fixed
+value of the #ClutterVertex "center".
+This function will implicitly create a #ClutterAnimation object which
+will be assigned to the @actor and will be returned to the developer
+to control the animation or to know when the animation has been
+completed.
+If a name argument starts with "signal::", "signal-after::",
+"signal-swapped::" or "signal-swapped-after::" the two following arguments
+are used as callback function and data for a signal handler installed on
+the #ClutterAnimation object for the specified signal name, for instance:
+|[
+static void
+on_animation_completed (ClutterAnimation *animation,
+ClutterActor     *actor)
+{
+clutter_actor_hide (actor);
+}
+clutter_actor_animate (actor, CLUTTER_EASE_IN_CUBIC, 100,
+"opacity", 0,
+"signal::completed", on_animation_completed, actor,
+NULL);
+]|
+or, to automatically destroy an actor at the end of the animation:
+|[
+clutter_actor_animate (actor, CLUTTER_EASE_IN_CUBIC, 100,
+"opacity", 0,
+"signal-swapped-after::completed",
+clutter_actor_destroy,
+actor,
+NULL);
+]|
+The "signal::" modifier is the equivalent of using g_signal_connect();
+the "signal-after::" modifier is the equivalent of using
+g_signal_connect_after() or g_signal_connect_data() with the
+%G_CONNECT_AFTER; the "signal-swapped::" modifier is the equivalent
+of using g_signal_connect_swapped() or g_signal_connect_data() with the
+%G_CONNECT_SWAPPED flah; finally, the "signal-swapped-after::" modifier
+is the equivalent of using g_signal_connect_data() with both the
+%G_CONNECT_AFTER and %G_CONNECT_SWAPPED flags. The clutter_actor_animate()
+function will not keep track of multiple connections to the same signal,
+so it is your responsability to avoid them when calling
+clutter_actor_animate() multiple times on the same actor.
+Calling this function on an actor that is already being animated
+will cause the current animation to change with the new final values,
+the new easing mode and the new duration - that is, this code:
+|[
+clutter_actor_animate (actor, CLUTTER_LINEAR, 250,
+"width", 100.0,
+"height", 100.0,
+NULL);
+clutter_actor_animate (actor, CLUTTER_EASE_IN_CUBIC, 500,
+"x", 100.0,
+"y", 100.0,
+"width", 200.0,
+NULL);
+]|
+is the equivalent of:
+|[
+clutter_actor_animate (actor, CLUTTER_EASE_IN_CUBIC, 500,
+"x", 100.0,
+"y", 100.0,
+"width", 200.0,
+"height", 100.0,
+NULL);
+]|
+&lt;note&gt;Unless the animation is looping, the #ClutterAnimation created by
+clutter_actor_animate() will become invalid as soon as it is
+complete.&lt;/note&gt;
+Since the created #ClutterAnimation instance attached to @actor
+is guaranteed to be valid throughout the #ClutterAnimation::completed
+signal emission chain, you will not be able to create a new animation
+using clutter_actor_animate() on the same @actor from within the
+#ClutterAnimation::completed signal handler unless you use
+g_signal_connect_after() to connect the callback function, for instance:
+|[
+static void
+on_animation_completed (ClutterAnimation *animation,
+ClutterActor     *actor)
+{
+clutter_actor_animate (actor, CLUTTER_EASE_OUT_CUBIC, 250,
+"x", 500.0,
+"y", 500.0,
+NULL);
+}
+...
+animation = clutter_actor_animate (actor, CLUTTER_EASE_IN_CUBIC, 250,
+"x", 100.0,
+"y", 100.0,
+NULL);
+g_signal_connect (animation, "completed",
+G_CALLBACK (on_animation_completed),
+actor);
+...
+]|
+owned by the #ClutterActor and should not be unreferenced with
+g_object_unref()</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #ClutterAnimation object. The object is</doc>
+          <type name="Animation" c:type="ClutterAnimation*"/>
+        </return-value>
+        <parameters>
+          <parameter name="mode" transfer-ownership="none">
+            <doc xml:whitespace="preserve">an animation mode logical id</doc>
+            <type name="gulong" c:type="gulong"/>
+          </parameter>
+          <parameter name="duration" transfer-ownership="none">
+            <doc xml:whitespace="preserve">duration of the animation, in milliseconds</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+          <parameter name="first_property_name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the name of a property</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter transfer-ownership="none">
+            <varargs>
+            </varargs>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="animate_with_alpha"
+              c:identifier="clutter_actor_animate_with_alpha"
+              version="1.0"
+              introspectable="0">
+        <doc xml:whitespace="preserve">Animates the given list of properties of @actor between the current
+value for each property and a new final value. The animation has a
+definite behaviour given by the passed @alpha.
+See clutter_actor_animate() for further details.
+This function is useful if you want to use an existing #ClutterAlpha
+to animate @actor.
+#ClutterActor and should not be unreferenced with g_object_unref()</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #ClutterAnimation object. The object is owned by the</doc>
+          <type name="Animation" c:type="ClutterAnimation*"/>
+        </return-value>
+        <parameters>
+          <parameter name="alpha" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #ClutterAlpha</doc>
+            <type name="Alpha" c:type="ClutterAlpha*"/>
+          </parameter>
+          <parameter name="first_property_name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the name of a property</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter transfer-ownership="none">
+            <varargs>
+            </varargs>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="animate_with_alphav"
+              c:identifier="clutter_actor_animate_with_alphav"
+              version="1.0">
+        <doc xml:whitespace="preserve">Animates the given list of properties of @actor between the current
+value for each property and a new final value. The animation has a
+definite behaviour given by the passed @alpha.
+See clutter_actor_animate() for further details.
+This function is useful if you want to use an existing #ClutterAlpha
+to animate @actor.
+This is the vector-based variant of clutter_actor_animate_with_alpha(),
+useful for language bindings.
+&lt;warning&gt;Unlike clutter_actor_animate_with_alpha(), this function will
+not allow you to specify "signal::" names and callbacks.&lt;/warning&gt;
+#ClutterActor and should not be unreferenced with g_object_unref()</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #ClutterAnimation object. The object is owned by the</doc>
+          <type name="Animation" c:type="ClutterAnimation*"/>
+        </return-value>
+        <parameters>
+          <parameter name="alpha" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #ClutterAlpha</doc>
+            <type name="Alpha" c:type="ClutterAlpha*"/>
+          </parameter>
+          <parameter name="n_properties" transfer-ownership="none">
+            <doc xml:whitespace="preserve">number of property names and values</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="properties" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a vector containing the property names to set</doc>
+            <array length="1" c:type="gchar*">
+              <type name="utf8"/>
+            </array>
+          </parameter>
+          <parameter name="values" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a vector containing the property values to set</doc>
+            <array length="1" c:type="GValue*">
+              <type name="GObject.Value"/>
+            </array>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="animate_with_timeline"
+              c:identifier="clutter_actor_animate_with_timeline"
+              version="1.0"
+              introspectable="0">
+        <doc xml:whitespace="preserve">Animates the given list of properties of @actor between the current
+value for each property and a new final value. The animation has a
+definite duration given by @timeline and a speed given by the @mode.
+See clutter_actor_animate() for further details.
+This function is useful if you want to use an existing timeline
+to animate @actor.
+owned by the #ClutterActor and should not be unreferenced with
+g_object_unref()</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #ClutterAnimation object. The object is</doc>
+          <type name="Animation" c:type="ClutterAnimation*"/>
+        </return-value>
+        <parameters>
+          <parameter name="mode" transfer-ownership="none">
+            <doc xml:whitespace="preserve">an animation mode logical id</doc>
+            <type name="gulong" c:type="gulong"/>
+          </parameter>
+          <parameter name="timeline" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #ClutterTimeline</doc>
+            <type name="Timeline" c:type="ClutterTimeline*"/>
+          </parameter>
+          <parameter name="first_property_name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the name of a property</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter transfer-ownership="none">
+            <varargs>
+            </varargs>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="animate_with_timelinev"
+              c:identifier="clutter_actor_animate_with_timelinev"
+              version="1.0">
+        <doc xml:whitespace="preserve">Animates the given list of properties of @actor between the current
+value for each property and a new final value. The animation has a
+definite duration given by @timeline and a speed given by the @mode.
+See clutter_actor_animate() for further details.
+This function is useful if you want to use an existing timeline
+to animate @actor.
+This is the vector-based variant of clutter_actor_animate_with_timeline(),
+useful for language bindings.
+&lt;warning&gt;Unlike clutter_actor_animate_with_timeline(), this function
+will not allow you to specify "signal::" names and callbacks.&lt;/warning&gt;
+owned by the #ClutterActor and should not be unreferenced with
+g_object_unref()</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #ClutterAnimation object. The object is</doc>
+          <type name="Animation" c:type="ClutterAnimation*"/>
+        </return-value>
+        <parameters>
+          <parameter name="mode" transfer-ownership="none">
+            <doc xml:whitespace="preserve">an animation mode logical id</doc>
+            <type name="gulong" c:type="gulong"/>
+          </parameter>
+          <parameter name="timeline" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #ClutterTimeline</doc>
+            <type name="Timeline" c:type="ClutterTimeline*"/>
+          </parameter>
+          <parameter name="n_properties" transfer-ownership="none">
+            <doc xml:whitespace="preserve">number of property names and values</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="properties" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a vector containing the property names to set</doc>
+            <array length="2" c:type="gchar*">
+              <type name="utf8"/>
+            </array>
+          </parameter>
+          <parameter name="values" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a vector containing the property values to set</doc>
+            <array length="2" c:type="GValue*">
+              <type name="GObject.Value"/>
+            </array>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="animatev"
+              c:identifier="clutter_actor_animatev"
+              version="1.0">
+        <doc xml:whitespace="preserve">Animates the given list of properties of @actor between the current
+value for each property and a new final value. The animation has a
+definite duration and a speed given by the @mode.
+This is the vector-based variant of clutter_actor_animate(), useful
+for language bindings.
+&lt;warning&gt;Unlike clutter_actor_animate(), this function will not
+allow you to specify "signal::" names and callbacks.&lt;/warning&gt;
+owned by the #ClutterActor and should not be unreferenced with
+g_object_unref()</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #ClutterAnimation object. The object is</doc>
+          <type name="Animation" c:type="ClutterAnimation*"/>
+        </return-value>
+        <parameters>
+          <parameter name="mode" transfer-ownership="none">
+            <doc xml:whitespace="preserve">an animation mode logical id</doc>
+            <type name="gulong" c:type="gulong"/>
+          </parameter>
+          <parameter name="duration" transfer-ownership="none">
+            <doc xml:whitespace="preserve">duration of the animation, in milliseconds</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+          <parameter name="n_properties" transfer-ownership="none">
+            <doc xml:whitespace="preserve">number of property names and values</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="properties" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a vector containing the property names to set</doc>
+            <array length="2" c:type="gchar*">
+              <type name="utf8"/>
+            </array>
+          </parameter>
+          <parameter name="values" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a vector containing the property values to set</doc>
+            <array length="2" c:type="GValue*">
+              <type name="GObject.Value"/>
+            </array>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="apply_relative_transform_to_point"
+              c:identifier="clutter_actor_apply_relative_transform_to_point"
+              version="0.6">
+        <doc xml:whitespace="preserve">Transforms @point in coordinates relative to the actor into
+ancestor-relative coordinates using the relevant transform
+stack (i.e. scale, rotation, etc).
+If @ancestor is %NULL the ancestor will be the #ClutterStage. In
+this case, the coordinates returned will be the coordinates on
+the stage before the projection is applied. This is different from
+the behaviour of clutter_actor_apply_transform_to_point().</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="ancestor" transfer-ownership="none" allow-none="1">
+            <doc xml:whitespace="preserve">A #ClutterActor ancestor, or %NULL to use the default #ClutterStage</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+          <parameter name="point" transfer-ownership="none">
+            <doc xml:whitespace="preserve">A point as #ClutterVertex</doc>
+            <type name="Vertex" c:type="ClutterVertex*"/>
+          </parameter>
+          <parameter name="vertex" transfer-ownership="none">
+            <doc xml:whitespace="preserve">The translated #ClutterVertex</doc>
+            <type name="Vertex" c:type="ClutterVertex*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="apply_transform_to_point"
+              c:identifier="clutter_actor_apply_transform_to_point"
+              version="0.4">
+        <doc xml:whitespace="preserve">Transforms @point in coordinates relative to the actor
+into screen-relative coordinates with the current actor
+transformation (i.e. scale, rotation, etc)</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="point" transfer-ownership="none">
+            <doc xml:whitespace="preserve">A point as #ClutterVertex</doc>
+            <type name="Vertex" c:type="ClutterVertex*"/>
+          </parameter>
+          <parameter name="vertex" transfer-ownership="none">
+            <doc xml:whitespace="preserve">The translated #ClutterVertex</doc>
+            <type name="Vertex" c:type="ClutterVertex*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="clear_actions"
+              c:identifier="clutter_actor_clear_actions"
+              version="1.4">
+        <doc xml:whitespace="preserve">Clears the list of actions applied to @self</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </method>
+      <method name="clear_constraints"
+              c:identifier="clutter_actor_clear_constraints"
+              version="1.4">
+        <doc xml:whitespace="preserve">Clears the list of constraints applied to @self</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </method>
+      <method name="clear_effects"
+              c:identifier="clutter_actor_clear_effects"
+              version="1.4">
+        <doc xml:whitespace="preserve">Clears the list of effects applied to @self</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </method>
+      <method name="contains"
+              c:identifier="clutter_actor_contains"
+              version="1.4">
+        <doc xml:whitespace="preserve">Determines if @descendant is contained inside @self (either as an
+immediate child, or as a deeper descendant).</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">whether @descendent is contained within @self</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="descendant" transfer-ownership="none">
+            <doc xml:whitespace="preserve">A #ClutterActor, possibly contained in @self</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="create_pango_context"
+              c:identifier="clutter_actor_create_pango_context"
+              version="1.0">
+        <doc xml:whitespace="preserve">Creates a #PangoContext for the given actor. The #PangoContext
+is already configured using the appropriate font map, resolution
+and font options.
+See also clutter_actor_get_pango_context().
+Use g_object_unref() on the returned value to deallocate its
+resources</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">the newly created #PangoContext.</doc>
+          <type name="Pango.Context" c:type="PangoContext*"/>
+        </return-value>
+      </method>
+      <method name="create_pango_layout"
+              c:identifier="clutter_actor_create_pango_layout"
+              version="1.0">
+        <doc xml:whitespace="preserve">Creates a new #PangoLayout from the same #PangoContext used
+by the #ClutterActor. The #PangoLayout is already configured
+with the font map, resolution and font options, and the
+given @text.
+If you want to keep around a #PangoLayout created by this
+function you will have to connect to the #ClutterBackend::font-changed
+and #ClutterBackend::resolution-changed signals, and call
+pango_layout_context_changed() in response to them.
+Use g_object_unref() when done</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">the newly created #PangoLayout.</doc>
+          <type name="Pango.Layout" c:type="PangoLayout*"/>
+        </return-value>
+        <parameters>
+          <parameter name="text" transfer-ownership="none">
+            <doc xml:whitespace="preserve">(allow-none) the text to set on the #PangoLayout, or %NULL</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="destroy" c:identifier="clutter_actor_destroy">
+        <doc xml:whitespace="preserve">Destroys an actor.  When an actor is destroyed, it will break any
+references it holds to other objects.  If the actor is inside a
+container, the actor will be removed.
+When you destroy a container, its children will be destroyed as well.
+clutter_stage_get_default().</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </method>
+      <method name="detach_animation"
+              c:identifier="clutter_actor_detach_animation"
+              version="1.4">
+        <doc xml:whitespace="preserve">Detaches the #ClutterAnimation used by @actor, if clutter_actor_animate()
+has been called on @actor.
+Once the animation has been detached, it loses a reference. If it was
+the only reference then the #ClutterAnimation becomes invalid.
+The #ClutterAnimation::completed signal will not be emitted.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </method>
+      <method name="event" c:identifier="clutter_actor_event" version="0.6">
+        <doc xml:whitespace="preserve">This function is used to emit an event on the main stage.
+You should rarely need to use this function, except for
+synthetising events.
+if the actor handled the event, or %FALSE if the event was
+not handled</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the return value from the signal emission: %TRUE</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="event" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #ClutterEvent</doc>
+            <type name="Event" c:type="ClutterEvent*"/>
+          </parameter>
+          <parameter name="capture" transfer-ownership="none">
+            <doc xml:whitespace="preserve">TRUE if event in in capture phase, FALSE otherwise.</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_abs_allocation_vertices"
+              c:identifier="clutter_actor_get_abs_allocation_vertices"
+              version="0.4">
+        <doc xml:whitespace="preserve">Calculates the transformed screen coordinates of the four corners of
+the actor; the returned vertices relate to the #ClutterActorBox
+coordinates  as follows:
+&lt;itemizedlist&gt;
+&lt;listitem&gt;&lt;para&gt;v[0] contains (x1, y1)&lt;/para&gt;&lt;/listitem&gt;
+&lt;listitem&gt;&lt;para&gt;v[1] contains (x2, y1)&lt;/para&gt;&lt;/listitem&gt;
+&lt;listitem&gt;&lt;para&gt;v[2] contains (x1, y2)&lt;/para&gt;&lt;/listitem&gt;
+&lt;listitem&gt;&lt;para&gt;v[3] contains (x2, y2)&lt;/para&gt;&lt;/listitem&gt;
+&lt;/itemizedlist&gt;</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="verts"
+                     direction="out"
+                     caller-allocates="1"
+                     transfer-ownership="none">
+            <doc xml:whitespace="preserve">Pointer to a location of an array of 4 #ClutterVertex where to store the result.</doc>
+            <array c:type="ClutterVertex" fixed-size="4">
+              <type name="Vertex"/>
+            </array>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_accessible"
+              c:identifier="clutter_actor_get_accessible">
+        <doc xml:whitespace="preserve">Returns the accessible object that describes the actor to an
+assistive technology.
+If no class-specific #AtkObject implementation is available for the
+actor instance in question, it will inherit an #AtkObject
+implementation from the first ancestor class for which such an
+implementation is defined.
+The documentation of the &lt;ulink
+url="http://developer.gnome.org/doc/API/2.0/atk/index.html"&gt;ATK&lt;/ulink&gt;
+library contains more information about accessible objects and
+their uses.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the #AtkObject associated with @actor</doc>
+          <type name="Atk.Object" c:type="AtkObject*"/>
+        </return-value>
+      </method>
+      <method name="get_action"
+              c:identifier="clutter_actor_get_action"
+              version="1.4">
+        <doc xml:whitespace="preserve">Retrieves the #ClutterAction with the given name in the list
+of actions applied to @self
+name, or %NULL. The returned #ClutterAction is owned by the
+actor and it should not be unreferenced directly</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #ClutterAction for the given</doc>
+          <type name="Action" c:type="ClutterAction*"/>
+        </return-value>
+        <parameters>
+          <parameter name="name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the name of the action to retrieve</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_actions"
+              c:identifier="clutter_actor_get_actions"
+              version="1.4">
+        <doc xml:whitespace="preserve">Retrieves the list of actions applied to @self
+of the list of #ClutterAction&lt;!-- --&gt;s. The contents of the list are
+owned by the #ClutterActor. Use g_list_free() to free the resources
+allocated by the returned #GList</doc>
+        <return-value transfer-ownership="container">
+          <doc xml:whitespace="preserve">a copy</doc>
+          <type name="GLib.List" c:type="GList*">
+            <type name="Action"/>
+          </type>
+        </return-value>
+      </method>
+      <method name="get_allocation_box"
+              c:identifier="clutter_actor_get_allocation_box"
+              version="0.8">
+        <doc xml:whitespace="preserve">Gets the layout box an actor has been assigned. The allocation can
+only be assumed valid inside a paint() method; anywhere else, it
+may be out-of-date.
+An allocation does not incorporate the actor's scale or anchor point;
+those transformations do not affect layout, only rendering.
+&lt;note&gt;Do not call any of the clutter_actor_get_allocation_*() family
+of functions inside the implementation of the get_preferred_width()
+or get_preferred_height() virtual functions.&lt;/note&gt;</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="box"
+                     direction="out"
+                     caller-allocates="1"
+                     transfer-ownership="none">
+            <doc xml:whitespace="preserve">the function fills this in with the actor's allocation</doc>
+            <type name="ActorBox" c:type="ClutterActorBox*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_allocation_geometry"
+              c:identifier="clutter_actor_get_allocation_geometry"
+              version="0.8">
+        <doc xml:whitespace="preserve">Gets the layout box an actor has been assigned.  The allocation can
+only be assumed valid inside a paint() method; anywhere else, it
+may be out-of-date.
+An allocation does not incorporate the actor's scale or anchor point;
+those transformations do not affect layout, only rendering.
+The returned rectangle is in pixels.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="geom"
+                     direction="out"
+                     caller-allocates="1"
+                     transfer-ownership="none">
+            <doc xml:whitespace="preserve">allocation geometry in pixels</doc>
+            <type name="Geometry" c:type="ClutterGeometry*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_allocation_vertices"
+              c:identifier="clutter_actor_get_allocation_vertices"
+              version="0.6">
+        <doc xml:whitespace="preserve">Calculates the transformed coordinates of the four corners of the
+actor in the plane of @ancestor. The returned vertices relate to
+the #ClutterActorBox coordinates as follows:
+&lt;itemizedlist&gt;
+&lt;listitem&gt;&lt;para&gt;@verts[0] contains (x1, y1)&lt;/para&gt;&lt;/listitem&gt;
+&lt;listitem&gt;&lt;para&gt;@verts[1] contains (x2, y1)&lt;/para&gt;&lt;/listitem&gt;
+&lt;listitem&gt;&lt;para&gt;@verts[2] contains (x1, y2)&lt;/para&gt;&lt;/listitem&gt;
+&lt;listitem&gt;&lt;para&gt;@verts[3] contains (x2, y2)&lt;/para&gt;&lt;/listitem&gt;
+&lt;/itemizedlist&gt;
+If @ancestor is %NULL the ancestor will be the #ClutterStage. In
+this case, the coordinates returned will be the coordinates on
+the stage before the projection is applied. This is different from
+the behaviour of clutter_actor_get_abs_allocation_vertices().</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="ancestor" transfer-ownership="none" allow-none="1">
+            <doc xml:whitespace="preserve">A #ClutterActor to calculate the vertices against, or %NULL to use the #ClutterStage</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+          <parameter name="verts"
+                     direction="out"
+                     caller-allocates="1"
+                     transfer-ownership="none">
+            <doc xml:whitespace="preserve">return location for an array of 4 #ClutterVertex in which to store the result</doc>
+            <array c:type="ClutterVertex" fixed-size="4">
+              <type name="Vertex"/>
+            </array>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_anchor_point"
+              c:identifier="clutter_actor_get_anchor_point"
+              version="0.6">
+        <doc xml:whitespace="preserve">Gets the current anchor point of the @actor in pixels.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="anchor_x"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:whitespace="preserve">return location for the X coordinate of the anchor point</doc>
+            <type name="gfloat" c:type="gfloat*"/>
+          </parameter>
+          <parameter name="anchor_y"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:whitespace="preserve">return location for the Y coordinate of the anchor point</doc>
+            <type name="gfloat" c:type="gfloat*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_anchor_point_gravity"
+              c:identifier="clutter_actor_get_anchor_point_gravity"
+              version="1.0">
+        <doc xml:whitespace="preserve">Retrieves the anchor position expressed as a #ClutterGravity. If
+the anchor point was specified using pixels or units this will
+return %CLUTTER_GRAVITY_NONE.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the #ClutterGravity used by the anchor point</doc>
+          <type name="Gravity" c:type="ClutterGravity"/>
+        </return-value>
+      </method>
+      <method name="get_animation"
+              c:identifier="clutter_actor_get_animation"
+              version="1.0">
+        <doc xml:whitespace="preserve">Retrieves the #ClutterAnimation used by @actor, if clutter_actor_animate()
+has been called on @actor.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #ClutterAnimation, or %NULL</doc>
+          <type name="Animation" c:type="ClutterAnimation*"/>
+        </return-value>
+      </method>
+      <method name="get_clip"
+              c:identifier="clutter_actor_get_clip"
+              version="0.6">
+        <doc xml:whitespace="preserve">Gets the clip area for @self, if any is set</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="xoff"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full"
+                     allow-none="1">
+            <doc xml:whitespace="preserve">return location for the X offset of the clip rectangle, or %NULL</doc>
+            <type name="gfloat" c:type="gfloat*"/>
+          </parameter>
+          <parameter name="yoff"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full"
+                     allow-none="1">
+            <doc xml:whitespace="preserve">return location for the Y offset of the clip rectangle, or %NULL</doc>
+            <type name="gfloat" c:type="gfloat*"/>
+          </parameter>
+          <parameter name="width"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full"
+                     allow-none="1">
+            <doc xml:whitespace="preserve">return location for the width of the clip rectangle, or %NULL</doc>
+            <type name="gfloat" c:type="gfloat*"/>
+          </parameter>
+          <parameter name="height"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full"
+                     allow-none="1">
+            <doc xml:whitespace="preserve">return location for the height of the clip rectangle, or %NULL</doc>
+            <type name="gfloat" c:type="gfloat*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_clip_to_allocation"
+              c:identifier="clutter_actor_get_clip_to_allocation"
+              version="1.4">
+        <doc xml:whitespace="preserve">Retrieves the value set using clutter_actor_set_clip_to_allocation()</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if the #ClutterActor is clipped to its allocation</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+      </method>
+      <method name="get_constraint"
+              c:identifier="clutter_actor_get_constraint"
+              version="1.4">
+        <doc xml:whitespace="preserve">Retrieves the #ClutterConstraint with the given name in the list
+of constraints applied to @self
+name, or %NULL. The returned #ClutterConstraint is owned by the
+actor and it should not be unreferenced directly</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #ClutterConstraint for the given</doc>
+          <type name="Constraint" c:type="ClutterConstraint*"/>
+        </return-value>
+        <parameters>
+          <parameter name="name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the name of the constraint to retrieve</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_constraints"
+              c:identifier="clutter_actor_get_constraints"
+              version="1.4">
+        <doc xml:whitespace="preserve">Retrieves the list of constraints applied to @self
+of the list of #ClutterConstraint&lt;!-- --&gt;s. The contents of the list are
+owned by the #ClutterActor. Use g_list_free() to free the resources
+allocated by the returned #GList</doc>
+        <return-value transfer-ownership="container">
+          <doc xml:whitespace="preserve">a copy</doc>
+          <type name="GLib.List" c:type="GList*">
+            <type name="Constraint"/>
+          </type>
+        </return-value>
+      </method>
+      <method name="get_depth" c:identifier="clutter_actor_get_depth">
+        <doc xml:whitespace="preserve">Retrieves the depth of @self.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the depth of the actor</doc>
+          <type name="gfloat" c:type="gfloat"/>
+        </return-value>
+      </method>
+      <method name="get_effect"
+              c:identifier="clutter_actor_get_effect"
+              version="1.4">
+        <doc xml:whitespace="preserve">Retrieves the #ClutterEffect with the given name in the list
+of effects applied to @self
+name, or %NULL. The returned #ClutterEffect is owned by the
+actor and it should not be unreferenced directly</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #ClutterEffect for the given</doc>
+          <type name="Effect" c:type="ClutterEffect*"/>
+        </return-value>
+        <parameters>
+          <parameter name="name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the name of the effect to retrieve</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_effects"
+              c:identifier="clutter_actor_get_effects"
+              version="1.4">
+        <doc xml:whitespace="preserve">Retrieves the #ClutterEffect&lt;!-- --&gt;s applied on @self, if any
+of #ClutterEffect&lt;!-- --&gt;s, or %NULL. The elements of the returned
+list are owned by Clutter and they should not be freed. You should
+free the returned list using g_list_free() when done</doc>
+        <return-value transfer-ownership="container">
+          <doc xml:whitespace="preserve">a list</doc>
+          <type name="GLib.List" c:type="GList*">
+            <type name="Effect"/>
+          </type>
+        </return-value>
+      </method>
+      <method name="get_fixed_position_set"
+              c:identifier="clutter_actor_get_fixed_position_set"
+              version="0.8">
+        <doc xml:whitespace="preserve">Checks whether an actor has a fixed position set (and will thus be
+unaffected by any layout manager).</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if the fixed position is set on the actor</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+      </method>
+      <method name="get_flags"
+              c:identifier="clutter_actor_get_flags"
+              version="1.0">
+        <doc xml:whitespace="preserve">Retrieves the flags set on @self</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">a bitwise or of #ClutterActorFlags or 0</doc>
+          <type name="ActorFlags" c:type="ClutterActorFlags"/>
+        </return-value>
+      </method>
+      <method name="get_geometry" c:identifier="clutter_actor_get_geometry">
+        <doc xml:whitespace="preserve">Gets the size and position of an actor relative to its parent
+actor. This is the same as calling clutter_actor_get_position() and
+clutter_actor_get_size(). It tries to "do what you mean" and get the
+requested size and position if the actor's allocation is invalid.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="geometry"
+                     direction="out"
+                     caller-allocates="1"
+                     transfer-ownership="none">
+            <doc xml:whitespace="preserve">A location to store actors #ClutterGeometry</doc>
+            <type name="Geometry" c:type="ClutterGeometry*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_gid"
+              c:identifier="clutter_actor_get_gid"
+              version="0.6">
+        <doc xml:whitespace="preserve">Retrieves the unique id for @self.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">Globally unique value for this object instance.</doc>
+          <type name="guint32" c:type="guint32"/>
+        </return-value>
+      </method>
+      <method name="get_height" c:identifier="clutter_actor_get_height">
+        <doc xml:whitespace="preserve">Retrieves the height of a #ClutterActor.
+If the actor has a valid allocation, this function will return the
+height of the allocated area given to the actor.
+If the actor does not have a valid allocation, this function will
+return the actor's natural height, that is the preferred height of
+the actor.
+If you care whether you get the preferred height or the height that
+has been assigned to the actor, you should probably call a different
+function like clutter_actor_get_allocation_box() to retrieve the
+allocated size or clutter_actor_get_preferred_height() to retrieve the
+preferred height.
+If an actor has a fixed height, for instance a height that has been
+assigned using clutter_actor_set_height(), the height returned will
+be the same value.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the height of the actor, in pixels</doc>
+          <type name="gfloat" c:type="gfloat"/>
+        </return-value>
+      </method>
+      <method name="get_name" c:identifier="clutter_actor_get_name">
+        <doc xml:whitespace="preserve">Retrieves the name of @self.
+owned by the actor and should not be modified or freed.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the name of the actor, or %NULL. The returned string is</doc>
+          <type name="utf8" c:type="gchar*"/>
+        </return-value>
+      </method>
+      <method name="get_opacity" c:identifier="clutter_actor_get_opacity">
+        <doc xml:whitespace="preserve">Retrieves the opacity value of an actor, as set by
+clutter_actor_set_opacity().
+For retrieving the absolute opacity of the actor inside a paint
+virtual function, see clutter_actor_get_paint_opacity().</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the opacity of the actor</doc>
+          <type name="guint8" c:type="guint8"/>
+        </return-value>
+      </method>
+      <method name="get_paint_opacity"
+              c:identifier="clutter_actor_get_paint_opacity"
+              version="0.8">
+        <doc xml:whitespace="preserve">Retrieves the absolute opacity of the actor, as it appears on the stage.
+This function traverses the hierarchy chain and composites the opacity of
+the actor with that of its parents.
+This function is intended for subclasses to use in the paint virtual
+function, to paint themselves with the correct opacity.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">The actor opacity value.</doc>
+          <type name="guint8" c:type="guint8"/>
+        </return-value>
+      </method>
+      <method name="get_paint_visibility"
+              c:identifier="clutter_actor_get_paint_visibility"
+              version="0.8.4">
+        <doc xml:whitespace="preserve">Retrieves the 'paint' visibility of an actor recursively checking for non
+visible parents.
+This is by definition the same as CLUTTER_ACTOR_IS_MAPPED().</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">TRUE if the actor is visibile and will be painted.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+      </method>
+      <method name="get_pango_context"
+              c:identifier="clutter_actor_get_pango_context"
+              version="1.0">
+        <doc xml:whitespace="preserve">Retrieves the #PangoContext for @self. The actor's #PangoContext
+is already configured using the appropriate font map, resolution
+and font options.
+Unlike clutter_actor_create_pango_context(), this context is owend
+by the #ClutterActor and it will be updated each time the options
+stored by the #ClutterBackend change.
+You can use the returned #PangoContext to create a #PangoLayout
+and render text using cogl_pango_render_layout() to reuse the
+glyphs cache also used by Clutter.
+The returned #PangoContext is owned by the actor and should not be
+unreferenced by the application code</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the #PangoContext for a #ClutterActor.</doc>
+          <type name="Pango.Context" c:type="PangoContext*"/>
+        </return-value>
+      </method>
+      <method name="get_parent" c:identifier="clutter_actor_get_parent">
+        <doc xml:whitespace="preserve">Retrieves the parent of @self.
+if no parent is set</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">The #ClutterActor parent, or %NULL</doc>
+          <type name="Actor" c:type="ClutterActor*"/>
+        </return-value>
+      </method>
+      <method name="get_position"
+              c:identifier="clutter_actor_get_position"
+              version="0.6">
+        <doc xml:whitespace="preserve">This function tries to "do what you mean" and tell you where the
+actor is, prior to any transformations. Retrieves the fixed
+position of an actor in pixels, if one has been set; otherwise, if
+the allocation is valid, returns the actor's allocated position;
+otherwise, returns 0,0.
+The returned position is in pixels.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="x"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full"
+                     allow-none="1">
+            <doc xml:whitespace="preserve">return location for the X coordinate, or %NULL</doc>
+            <type name="gfloat" c:type="gfloat*"/>
+          </parameter>
+          <parameter name="y"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full"
+                     allow-none="1">
+            <doc xml:whitespace="preserve">return location for the Y coordinate, or %NULL</doc>
+            <type name="gfloat" c:type="gfloat*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_preferred_height"
+              c:identifier="clutter_actor_get_preferred_height"
+              version="0.8">
+        <doc xml:whitespace="preserve">Computes the requested minimum and natural heights for an actor,
+or if they are already computed, returns the cached values.
+An actor may not get its request - depending on the layout
+manager that's in effect.
+A request should not incorporate the actor's scale or anchor point;
+those transformations do not affect layout, only rendering.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="for_width" transfer-ownership="none">
+            <doc xml:whitespace="preserve">available width to assume in computing desired height, or a negative value to indicate that no width is defined</doc>
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+          <parameter name="min_height_p"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full"
+                     allow-none="1">
+            <doc xml:whitespace="preserve">return location for minimum height, or %NULL</doc>
+            <type name="gfloat" c:type="gfloat*"/>
+          </parameter>
+          <parameter name="natural_height_p"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full"
+                     allow-none="1">
+            <doc xml:whitespace="preserve">return location for natural height, or %NULL</doc>
+            <type name="gfloat" c:type="gfloat*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_preferred_size"
+              c:identifier="clutter_actor_get_preferred_size"
+              version="0.8">
+        <doc xml:whitespace="preserve">Computes the preferred minimum and natural size of an actor, taking into
+account the actor's geometry management (either height-for-width
+or width-for-height).
+The width and height used to compute the preferred height and preferred
+width are the actor's natural ones.
+If you need to control the height for the preferred width, or the width for
+the preferred height, you should use clutter_actor_get_preferred_width()
+and clutter_actor_get_preferred_height(), and check the actor's preferred
+geometry management using the #ClutterActor:request-mode property.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="min_width_p"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full"
+                     allow-none="1">
+            <doc xml:whitespace="preserve">return location for the minimum width, or %NULL</doc>
+            <type name="gfloat" c:type="gfloat*"/>
+          </parameter>
+          <parameter name="min_height_p"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full"
+                     allow-none="1">
+            <doc xml:whitespace="preserve">return location for the minimum height, or %NULL</doc>
+            <type name="gfloat" c:type="gfloat*"/>
+          </parameter>
+          <parameter name="natural_width_p"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full"
+                     allow-none="1">
+            <doc xml:whitespace="preserve">return location for the natural width, or %NULL</doc>
+            <type name="gfloat" c:type="gfloat*"/>
+          </parameter>
+          <parameter name="natural_height_p"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full"
+                     allow-none="1">
+            <doc xml:whitespace="preserve">return location for the natural height, or %NULL</doc>
+            <type name="gfloat" c:type="gfloat*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_preferred_width"
+              c:identifier="clutter_actor_get_preferred_width"
+              version="0.8">
+        <doc xml:whitespace="preserve">Computes the requested minimum and natural widths for an actor,
+optionally depending on the specified height, or if they are
+already computed, returns the cached values.
+An actor may not get its request - depending on the layout
+manager that's in effect.
+A request should not incorporate the actor's scale or anchor point;
+those transformations do not affect layout, only rendering.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="for_height" transfer-ownership="none">
+            <doc xml:whitespace="preserve">available height when computing the preferred width, or a negative value to indicate that no height is defined</doc>
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+          <parameter name="min_width_p"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full"
+                     allow-none="1">
+            <doc xml:whitespace="preserve">return location for minimum width, or %NULL</doc>
+            <type name="gfloat" c:type="gfloat*"/>
+          </parameter>
+          <parameter name="natural_width_p"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full"
+                     allow-none="1">
+            <doc xml:whitespace="preserve">return location for the natural width, or %NULL</doc>
+            <type name="gfloat" c:type="gfloat*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_reactive"
+              c:identifier="clutter_actor_get_reactive"
+              version="0.6">
+        <doc xml:whitespace="preserve">Checks whether @actor is marked as reactive.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if the actor is reactive</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+      </method>
+      <method name="get_request_mode"
+              c:identifier="clutter_actor_get_request_mode"
+              version="1.2">
+        <doc xml:whitespace="preserve">Retrieves the geometry request mode of @self</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the request mode for the actor</doc>
+          <type name="RequestMode" c:type="ClutterRequestMode"/>
+        </return-value>
+      </method>
+      <method name="get_rotation"
+              c:identifier="clutter_actor_get_rotation"
+              version="0.8">
+        <doc xml:whitespace="preserve">Retrieves the angle and center of rotation on the given axis,
+set using clutter_actor_set_rotation().</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the angle of rotation</doc>
+          <type name="gdouble" c:type="gdouble"/>
+        </return-value>
+        <parameters>
+          <parameter name="axis" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the axis of rotation</doc>
+            <type name="RotateAxis" c:type="ClutterRotateAxis"/>
+          </parameter>
+          <parameter name="x"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:whitespace="preserve">return value for the X coordinate of the center of rotation</doc>
+            <type name="gfloat" c:type="gfloat*"/>
+          </parameter>
+          <parameter name="y"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:whitespace="preserve">return value for the Y coordinate of the center of rotation</doc>
+            <type name="gfloat" c:type="gfloat*"/>
+          </parameter>
+          <parameter name="z"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:whitespace="preserve">return value for the Z coordinate of the center of rotation</doc>
+            <type name="gfloat" c:type="gfloat*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_scale"
+              c:identifier="clutter_actor_get_scale"
+              version="0.2">
+        <doc xml:whitespace="preserve">Retrieves an actors scale factors.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="scale_x"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full"
+                     allow-none="1">
+            <doc xml:whitespace="preserve">Location to store horizonal scale factor, or %NULL.</doc>
+            <type name="gdouble" c:type="gdouble*"/>
+          </parameter>
+          <parameter name="scale_y"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full"
+                     allow-none="1">
+            <doc xml:whitespace="preserve">Location to store vertical scale factor, or %NULL.</doc>
+            <type name="gdouble" c:type="gdouble*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_scale_center"
+              c:identifier="clutter_actor_get_scale_center"
+              version="1.0">
+        <doc xml:whitespace="preserve">Retrieves the scale center coordinate in pixels relative to the top
+left corner of the actor. If the scale center was specified using a
+#ClutterGravity this will calculate the pixel offset using the
+current size of the actor.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="center_x"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full"
+                     allow-none="1">
+            <doc xml:whitespace="preserve">Location to store the X position of the scale center, or %NULL.</doc>
+            <type name="gfloat" c:type="gfloat*"/>
+          </parameter>
+          <parameter name="center_y"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full"
+                     allow-none="1">
+            <doc xml:whitespace="preserve">Location to store the Y position of the scale center, or %NULL.</doc>
+            <type name="gfloat" c:type="gfloat*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_scale_gravity"
+              c:identifier="clutter_actor_get_scale_gravity"
+              version="1.0">
+        <doc xml:whitespace="preserve">Retrieves the scale center as a compass direction. If the scale
+center was specified in pixels or units this will return
+%CLUTTER_GRAVITY_NONE.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the scale gravity</doc>
+          <type name="Gravity" c:type="ClutterGravity"/>
+        </return-value>
+      </method>
+      <method name="get_shader"
+              c:identifier="clutter_actor_get_shader"
+              version="0.6">
+        <doc xml:whitespace="preserve">Queries the currently set #ClutterShader on @self.
+or %NULL if no shader is set.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">The currently set #ClutterShader</doc>
+          <type name="Shader" c:type="ClutterShader*"/>
+        </return-value>
+      </method>
+      <method name="get_size"
+              c:identifier="clutter_actor_get_size"
+              version="0.2">
+        <doc xml:whitespace="preserve">This function tries to "do what you mean" and return
+the size an actor will have. If the actor has a valid
+allocation, the allocation will be returned; otherwise,
+the actors natural size request will be returned.
+If you care whether you get the request vs. the allocation, you
+should probably call a different function like
+clutter_actor_get_allocation_box() or
+clutter_actor_get_preferred_width().</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="width"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full"
+                     allow-none="1">
+            <doc xml:whitespace="preserve">return location for the width, or %NULL.</doc>
+            <type name="gfloat" c:type="gfloat*"/>
+          </parameter>
+          <parameter name="height"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full"
+                     allow-none="1">
+            <doc xml:whitespace="preserve">return location for the height, or %NULL.</doc>
+            <type name="gfloat" c:type="gfloat*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_stage"
+              c:identifier="clutter_actor_get_stage"
+              version="0.8">
+        <doc xml:whitespace="preserve">Retrieves the #ClutterStage where @actor is contained.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the stage containing the actor, or %NULL</doc>
+          <type name="Actor" c:type="ClutterActor*"/>
+        </return-value>
+      </method>
+      <method name="get_text_direction"
+              c:identifier="clutter_actor_get_text_direction"
+              version="1.2">
+        <doc xml:whitespace="preserve">Retrieves the value set using clutter_actor_set_text_direction()
+If no text direction has been previously set, the default text
+direction, as returned by clutter_get_default_text_direction(), will
+be returned instead</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the #ClutterTextDirection for the actor</doc>
+          <type name="TextDirection" c:type="ClutterTextDirection"/>
+        </return-value>
+      </method>
+      <method name="get_transformation_matrix"
+              c:identifier="clutter_actor_get_transformation_matrix"
+              version="1.0">
+        <doc xml:whitespace="preserve">Retrieves the transformations applied to @self relative to its
+parent.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="matrix"
+                     direction="out"
+                     caller-allocates="1"
+                     transfer-ownership="none">
+            <doc xml:whitespace="preserve">the return location for a #CoglMatrix</doc>
+            <type name="Cogl.Matrix" c:type="CoglMatrix*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_transformed_position"
+              c:identifier="clutter_actor_get_transformed_position"
+              version="0.8">
+        <doc xml:whitespace="preserve">Gets the absolute position of an actor, in pixels relative to the stage.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="x"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full"
+                     allow-none="1">
+            <doc xml:whitespace="preserve">return location for the X coordinate, or %NULL</doc>
+            <type name="gfloat" c:type="gfloat*"/>
+          </parameter>
+          <parameter name="y"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full"
+                     allow-none="1">
+            <doc xml:whitespace="preserve">return location for the Y coordinate, or %NULL</doc>
+            <type name="gfloat" c:type="gfloat*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_transformed_size"
+              c:identifier="clutter_actor_get_transformed_size"
+              version="0.8">
+        <doc xml:whitespace="preserve">Gets the absolute size of an actor in pixels, taking into account the
+scaling factors.
+If the actor has a valid allocation, the allocated size will be used.
+If the actor has not a valid allocation then the preferred size will
+be transformed and returned.
+If you want the transformed allocation, see
+clutter_actor_get_abs_allocation_vertices() instead.
+&lt;note&gt;When the actor (or one of its ancestors) is rotated around the
+X or Y axis, it no longer appears as on the stage as a rectangle, but
+as a generic quadrangle; in that case this function returns the size
+of the smallest rectangle that encapsulates the entire quad. Please
+note that in this case no assumptions can be made about the relative
+position of this envelope to the absolute position of the actor, as
+returned by clutter_actor_get_transformed_position(); if you need this
+information, you need to use clutter_actor_get_abs_allocation_vertices()
+to get the coords of the actual quadrangle.&lt;/note&gt;</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="width"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full"
+                     allow-none="1">
+            <doc xml:whitespace="preserve">return location for the width, or %NULL</doc>
+            <type name="gfloat" c:type="gfloat*"/>
+          </parameter>
+          <parameter name="height"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full"
+                     allow-none="1">
+            <doc xml:whitespace="preserve">return location for the height, or %NULL</doc>
+            <type name="gfloat" c:type="gfloat*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_width" c:identifier="clutter_actor_get_width">
+        <doc xml:whitespace="preserve">Retrieves the width of a #ClutterActor.
+If the actor has a valid allocation, this function will return the
+width of the allocated area given to the actor.
+If the actor does not have a valid allocation, this function will
+return the actor's natural width, that is the preferred width of
+the actor.
+If you care whether you get the preferred width or the width that
+has been assigned to the actor, you should probably call a different
+function like clutter_actor_get_allocation_box() to retrieve the
+allocated size or clutter_actor_get_preferred_width() to retrieve the
+preferred width.
+If an actor has a fixed width, for instance a width that has been
+assigned using clutter_actor_set_width(), the width returned will
+be the same value.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the width of the actor, in pixels</doc>
+          <type name="gfloat" c:type="gfloat"/>
+        </return-value>
+      </method>
+      <method name="get_x" c:identifier="clutter_actor_get_x">
+        <return-value transfer-ownership="none">
+          <type name="gfloat" c:type="gfloat"/>
+        </return-value>
+      </method>
+      <method name="get_y" c:identifier="clutter_actor_get_y">
+        <return-value transfer-ownership="none">
+          <type name="gfloat" c:type="gfloat"/>
+        </return-value>
+      </method>
+      <method name="get_z_rotation_gravity"
+              c:identifier="clutter_actor_get_z_rotation_gravity"
+              version="1.0">
+        <doc xml:whitespace="preserve">Retrieves the center for the rotation around the Z axis as a
+compass direction. If the center was specified in pixels or units
+this will return %CLUTTER_GRAVITY_NONE.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the Z rotation center</doc>
+          <type name="Gravity" c:type="ClutterGravity"/>
+        </return-value>
+      </method>
+      <method name="grab_key_focus"
+              c:identifier="clutter_actor_grab_key_focus"
+              version="1.0">
+        <doc xml:whitespace="preserve">Sets the key focus of the #ClutterStage including @self
+to this #ClutterActor.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </method>
+      <method name="has_allocation"
+              c:identifier="clutter_actor_has_allocation"
+              version="1.4">
+        <doc xml:whitespace="preserve">Checks if the actor has an up-to-date allocation assigned to
+visible and has a parent. It also means that there is no
+outstanding relayout request in progress for the actor or its
+children (There might be other outstanding layout requests in
+progress that will cause the actor to get a new allocation
+when the stage is laid out, however).
+If this function returns %FALSE, then the actor will normally
+be allocated before it is next drawn on the screen.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if the actor has an up-to-date allocation</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+      </method>
+      <method name="has_clip"
+              c:identifier="clutter_actor_has_clip"
+              version="0.1.1">
+        <doc xml:whitespace="preserve">Determines whether the actor has a clip area set or not.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if the actor has a clip area set.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+      </method>
+      <method name="has_key_focus"
+              c:identifier="clutter_actor_has_key_focus"
+              version="1.4">
+        <doc xml:whitespace="preserve">Checks whether @self is the #ClutterActor that has key focus</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if the actor has key focus, and %FALSE otherwise</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+      </method>
+      <method name="has_pointer"
+              c:identifier="clutter_actor_has_pointer"
+              version="1.2">
+        <doc xml:whitespace="preserve">Checks whether an actor contains the the pointer of a
+#ClutterInputDevice
+%FALSE otherwise</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if the actor contains the pointer, and</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+      </method>
+      <method name="hide" c:identifier="clutter_actor_hide">
+        <doc xml:whitespace="preserve">Flags an actor to be hidden. A hidden actor will not be
+rendered on the stage.
+Actors are visible by default.
+If this function is called on an actor without a parent, the
+#ClutterActor:show-on-set-parent property will be set to %FALSE
+as a side-effect.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </method>
+      <method name="hide_all"
+              c:identifier="clutter_actor_hide_all"
+              version="0.2">
+        <doc xml:whitespace="preserve">Calls clutter_actor_hide() on all child actors (if any).</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </method>
+      <method name="is_in_clone_paint"
+              c:identifier="clutter_actor_is_in_clone_paint"
+              version="1.0">
+        <doc xml:whitespace="preserve">Checks whether @self is being currently painted by a #ClutterClone
+This function is useful only inside the ::paint virtual function
+implementations or within handlers for the #ClutterActor::paint
+signal
+This function should not be used by applications
+by a #ClutterClone, and %FALSE otherwise</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if the #ClutterActor is currently being painted</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+      </method>
+      <method name="is_rotated"
+              c:identifier="clutter_actor_is_rotated"
+              version="0.6">
+        <doc xml:whitespace="preserve">Checks whether any rotation is applied to the actor.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if the actor is rotated.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+      </method>
+      <method name="is_scaled"
+              c:identifier="clutter_actor_is_scaled"
+              version="0.6">
+        <doc xml:whitespace="preserve">Checks whether the actor is scaled in either dimension.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if the actor is scaled.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+      </method>
+      <method name="lower" c:identifier="clutter_actor_lower">
+        <doc xml:whitespace="preserve">Puts @self below @above.
+Both actors must have the same parent, and the parent must implement
+the #ClutterContainer interface.
+This function is the equivalent of clutter_container_lower_child().</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="above" transfer-ownership="none" allow-none="1">
+            <doc xml:whitespace="preserve">A #ClutterActor to lower below</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="lower_bottom" c:identifier="clutter_actor_lower_bottom">
+        <doc xml:whitespace="preserve">Lowers @self to the bottom.
+This function calls clutter_actor_lower() internally.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </method>
+      <method name="map" c:identifier="clutter_actor_map" version="1.0">
+        <doc xml:whitespace="preserve">Sets the %CLUTTER_ACTOR_MAPPED flag on the actor and possibly maps
+and realizes its children if they are visible. Does nothing if the
+actor is not visible.
+#ClutterActor &lt;function&gt;map()&lt;/function&gt; virtual function in an actor
+and you need to map the children of that actor. It is not necessary
+to call this if you implement #ClutterContainer because the default
+implementation will automatically map children of containers.
+When overriding map, it is mandatory to chain up to the parent
+implementation.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </method>
+      <method name="move_anchor_point"
+              c:identifier="clutter_actor_move_anchor_point"
+              version="0.6">
+        <doc xml:whitespace="preserve">Sets an anchor point for the actor, and adjusts the actor postion so that
+the relative position of the actor toward its parent remains the same.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="anchor_x" transfer-ownership="none">
+            <doc xml:whitespace="preserve">X coordinate of the anchor point</doc>
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+          <parameter name="anchor_y" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Y coordinate of the anchor point</doc>
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="move_anchor_point_from_gravity"
+              c:identifier="clutter_actor_move_anchor_point_from_gravity"
+              version="0.6">
+        <doc xml:whitespace="preserve">Sets an anchor point on the actor based on the given gravity, adjusting the
+actor postion so that its relative position within its parent remains
+unchanged.
+Since version 1.0 the anchor point will be stored as a gravity so
+that if the actor changes size then the anchor point will move. For
+example, if you set the anchor point to %CLUTTER_GRAVITY_SOUTH_EAST
+and later double the size of the actor, the anchor point will move
+to the bottom right.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="gravity" transfer-ownership="none">
+            <doc xml:whitespace="preserve">#ClutterGravity.</doc>
+            <type name="Gravity" c:type="ClutterGravity"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="move_by"
+              c:identifier="clutter_actor_move_by"
+              version="0.2">
+        <doc xml:whitespace="preserve">Moves an actor by the specified distance relative to its current
+position in pixels.
+This function modifies the fixed position of an actor and thus removes
+it from any layout management. Another way to move an actor is with an
+anchor point, see clutter_actor_set_anchor_point().</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="dx" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Distance to move Actor on X axis.</doc>
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+          <parameter name="dy" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Distance to move Actor on Y axis.</doc>
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="paint" c:identifier="clutter_actor_paint">
+        <doc xml:whitespace="preserve">Renders the actor to display.
+This function should not be called directly by applications.
+Call clutter_actor_queue_redraw() to queue paints, instead.
+This function is context-aware, and will either cause a
+regular paint or a pick paint.
+This function will emit the #ClutterActor::paint signal or
+the #ClutterActor::pick signal, depending on the context.
+This function does not paint the actor if the actor is set to 0,
+unless it is performing a pick paint.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </method>
+      <method name="pop_internal"
+              c:identifier="clutter_actor_pop_internal"
+              version="1.2">
+        <doc xml:whitespace="preserve">Disables the effects of clutter_actor_pop_internal()</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </method>
+      <method name="push_internal"
+              c:identifier="clutter_actor_push_internal"
+              version="1.2">
+        <doc xml:whitespace="preserve">Should be used by actors implementing the #ClutterContainer and with
+internal children added through clutter_actor_set_parent(), for instance:
+|[
+static void
+my_actor_init (MyActor *self)
+{
+self-&gt;priv = SELF_ACTOR_GET_PRIVATE (self);
+clutter_actor_push_internal (CLUTTER_ACTOR (self));
+/&amp;ast; calling clutter_actor_set_parent() now will result in
+&amp;ast; the internal flag being set on a child of MyActor
+&amp;ast;/
+/&amp;ast; internal child - a background texture &amp;ast;/
+self-&gt;priv-&gt;background_tex = clutter_texture_new ();
+clutter_actor_set_parent (self-&gt;priv-&gt;background_tex,
+CLUTTER_ACTOR (self));
+/&amp;ast; internal child - a label &amp;ast;/
+self-&gt;priv-&gt;label = clutter_text_new ();
+clutter_actor_set_parent (self-&gt;priv-&gt;label,
+CLUTTER_ACTOR (self));
+clutter_actor_pop_internal (CLUTTER_ACTOR (self));
+/&amp;ast; calling clutter_actor_set_parent() now will not result in
+&amp;ast; the internal flag being set on a child of MyActor
+&amp;ast;/
+}
+]|
+This function will be used by Clutter to toggle an "internal child"
+flag whenever clutter_actor_set_parent() is called; internal children
+are handled differently by Clutter, specifically when destroying their
+parent.
+Call clutter_actor_pop_internal() when you finished adding internal
+children.
+Nested calls to clutter_actor_push_internal() are allowed, but each
+one must by followed by a clutter_actor_pop_internal() call.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </method>
+      <method name="queue_redraw" c:identifier="clutter_actor_queue_redraw">
+        <doc xml:whitespace="preserve">Queues up a redraw of an actor and any children. The redraw occurs
+once the main loop becomes idle (after the current batch of events
+has been processed, roughly).
+Applications rarely need to call this, as redraws are handled
+automatically by modification functions.
+This function will not do anything if @self is not visible, or
+if the actor is inside an invisible part of the scenegraph.
+Also be aware that painting is a NOP for actors with an opacity of
+0
+When you are implementing a custom actor you must queue a redraw
+whenever some private state changes that will affect painting or
+picking of your actor.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </method>
+      <method name="queue_relayout"
+              c:identifier="clutter_actor_queue_relayout"
+              version="0.8">
+        <doc xml:whitespace="preserve">Indicates that the actor's size request or other layout-affecting
+properties may have changed. This function is used inside #ClutterActor
+subclass implementations, not by applications directly.
+Queueing a new layout automatically queues a redraw as well.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </method>
+      <method name="raise" c:identifier="clutter_actor_raise">
+        <doc xml:whitespace="preserve">Puts @self above @below.
+Both actors must have the same parent, and the parent must implement
+the #ClutterContainer interface
+This function is the equivalent of clutter_container_raise_child().</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="below" transfer-ownership="none" allow-none="1">
+            <doc xml:whitespace="preserve">A #ClutterActor to raise above.</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="raise_top" c:identifier="clutter_actor_raise_top">
+        <doc xml:whitespace="preserve">Raises @self to the top.
+This function calls clutter_actor_raise() internally.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </method>
+      <method name="realize" c:identifier="clutter_actor_realize">
+        <doc xml:whitespace="preserve">Realization informs the actor that it is attached to a stage. It
+can use this to allocate resources if it wanted to delay allocation
+until it would be rendered. However it is perfectly acceptable for
+an actor to create resources before being realized because Clutter
+only ever has a single rendering context so that actor is free to
+be moved from one stage to another.
+This function does nothing if the actor is already realized.
+Because a realized actor must have realized parent actors, calling
+clutter_actor_realize() will also realize all parents of the actor.
+This function does not realize child actors, except in the special
+case that realizing the stage, when the stage is visible, will
+suddenly map (and thus realize) the children of the stage.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </method>
+      <method name="remove_action"
+              c:identifier="clutter_actor_remove_action"
+              version="1.4">
+        <doc xml:whitespace="preserve">Removes @action from the list of actions applied to @self
+The reference held by @self on the #ClutterAction will be released</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="action" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #ClutterAction</doc>
+            <type name="Action" c:type="ClutterAction*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="remove_action_by_name"
+              c:identifier="clutter_actor_remove_action_by_name"
+              version="1.4">
+        <doc xml:whitespace="preserve">Removes the #ClutterAction with the given name from the list
+of actions applied to @self</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the name of the action to remove</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="remove_clip" c:identifier="clutter_actor_remove_clip">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </method>
+      <method name="remove_constraint"
+              c:identifier="clutter_actor_remove_constraint"
+              version="1.4">
+        <doc xml:whitespace="preserve">Removes @constraint from the list of constraints applied to @self
+The reference held by @self on the #ClutterConstraint will be released</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="constraint" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #ClutterConstraint</doc>
+            <type name="Constraint" c:type="ClutterConstraint*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="remove_constraint_by_name"
+              c:identifier="clutter_actor_remove_constraint_by_name"
+              version="1.4">
+        <doc xml:whitespace="preserve">Removes the #ClutterConstraint with the given name from the list
+of constraints applied to @self</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the name of the constraint to remove</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="remove_effect"
+              c:identifier="clutter_actor_remove_effect"
+              version="1.4">
+        <doc xml:whitespace="preserve">Removes @effect from the list of effects applied to @self
+The reference held by @self on the #ClutterEffect will be released</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="effect" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #ClutterEffect</doc>
+            <type name="Effect" c:type="ClutterEffect*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="remove_effect_by_name"
+              c:identifier="clutter_actor_remove_effect_by_name"
+              version="1.4">
+        <doc xml:whitespace="preserve">Removes the #ClutterEffect with the given name from the list
+of effects applied to @self</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the name of the effect to remove</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="reparent"
+              c:identifier="clutter_actor_reparent"
+              version="0.2">
+        <doc xml:whitespace="preserve">This function resets the parent actor of @self.  It is
+logically equivalent to calling clutter_actor_unparent()
+and clutter_actor_set_parent(), but more efficiently
+implemented, ensures the child is not finalized
+when unparented, and emits the parent-set signal only
+one time.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="new_parent" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the new #ClutterActor parent</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_anchor_point"
+              c:identifier="clutter_actor_set_anchor_point"
+              version="0.6">
+        <doc xml:whitespace="preserve">Sets an anchor point for @self. The anchor point is a point in the
+coordinate space of an actor to which the actor position within its
+parent is relative; the default is (0, 0), i.e. the top-left corner
+of the actor.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="anchor_x" transfer-ownership="none">
+            <doc xml:whitespace="preserve">X coordinate of the anchor point</doc>
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+          <parameter name="anchor_y" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Y coordinate of the anchor point</doc>
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_anchor_point_from_gravity"
+              c:identifier="clutter_actor_set_anchor_point_from_gravity"
+              version="0.6">
+        <doc xml:whitespace="preserve">Sets an anchor point on the actor, based on the given gravity (this is a
+convenience function wrapping clutter_actor_set_anchor_point()).
+Since version 1.0 the anchor point will be stored as a gravity so
+that if the actor changes size then the anchor point will move. For
+example, if you set the anchor point to %CLUTTER_GRAVITY_SOUTH_EAST
+and later double the size of the actor, the anchor point will move
+to the bottom right.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="gravity" transfer-ownership="none">
+            <doc xml:whitespace="preserve">#ClutterGravity.</doc>
+            <type name="Gravity" c:type="ClutterGravity"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_clip"
+              c:identifier="clutter_actor_set_clip"
+              version="0.6">
+        <doc xml:whitespace="preserve">Sets clip area for @self. The clip area is always computed from the
+upper left corner of the actor, even if the anchor point is set
+otherwise.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="xoff" transfer-ownership="none">
+            <doc xml:whitespace="preserve">X offset of the clip rectangle</doc>
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+          <parameter name="yoff" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Y offset of the clip rectangle</doc>
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+          <parameter name="width" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Width of the clip rectangle</doc>
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+          <parameter name="height" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Height of the clip rectangle</doc>
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_clip_to_allocation"
+              c:identifier="clutter_actor_set_clip_to_allocation"
+              version="1.4">
+        <doc xml:whitespace="preserve">Sets whether @self should be clipped to the same size as its
+allocation</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="clip_set" transfer-ownership="none">
+            <doc xml:whitespace="preserve">%TRUE to apply a clip tracking the allocation</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_depth" c:identifier="clutter_actor_set_depth">
+        <doc xml:whitespace="preserve">Sets the Z coordinate of @self to @depth.
+The unit used by @depth is dependant on the perspective setup. See
+also clutter_stage_set_perspective().</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="depth" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Z co-ord</doc>
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_fixed_position_set"
+              c:identifier="clutter_actor_set_fixed_position_set"
+              version="0.8">
+        <doc xml:whitespace="preserve">Sets whether an actor has a fixed position set (and will thus be
+unaffected by any layout manager).</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="is_set" transfer-ownership="none">
+            <doc xml:whitespace="preserve">whether to use fixed position</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_flags"
+              c:identifier="clutter_actor_set_flags"
+              version="1.0">
+        <doc xml:whitespace="preserve">Sets @flags on @self
+This function will emit notifications for the changed properties</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="flags" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the flags to set</doc>
+            <type name="ActorFlags" c:type="ClutterActorFlags"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_geometry" c:identifier="clutter_actor_set_geometry">
+        <doc xml:whitespace="preserve">Sets the actor's fixed position and forces its minimum and natural
+size, in pixels. This means the untransformed actor will have the
+given geometry. This is the same as calling clutter_actor_set_position()
+and clutter_actor_set_size().</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="geometry" transfer-ownership="none">
+            <doc xml:whitespace="preserve">A #ClutterGeometry</doc>
+            <type name="Geometry" c:type="ClutterGeometry*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_height" c:identifier="clutter_actor_set_height">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="height" transfer-ownership="none">
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_name" c:identifier="clutter_actor_set_name">
+        <doc xml:whitespace="preserve">Sets the given name to @self. The name can be used to identify
+a #ClutterActor.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Textual tag to apply to actor</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_opacity" c:identifier="clutter_actor_set_opacity">
+        <doc xml:whitespace="preserve">Sets the actor's opacity, with zero being completely transparent and
+255 (0xff) being fully opaque.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="opacity" transfer-ownership="none">
+            <doc xml:whitespace="preserve">New opacity value for the actor.</doc>
+            <type name="guint8" c:type="guint8"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_parent" c:identifier="clutter_actor_set_parent">
+        <doc xml:whitespace="preserve">Sets the parent of @self to @parent.  The opposite function is
+clutter_actor_unparent().
+This function should not be used by applications, but by custom
+container actor subclasses.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="parent" transfer-ownership="none">
+            <doc xml:whitespace="preserve">A new #ClutterActor parent</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_position" c:identifier="clutter_actor_set_position">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="x" transfer-ownership="none">
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+          <parameter name="y" transfer-ownership="none">
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_reactive"
+              c:identifier="clutter_actor_set_reactive"
+              version="0.6">
+        <doc xml:whitespace="preserve">Sets @actor as reactive. Reactive actors will receive events.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="reactive" transfer-ownership="none">
+            <doc xml:whitespace="preserve">whether the actor should be reactive to events</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_request_mode"
+              c:identifier="clutter_actor_set_request_mode"
+              version="1.2">
+        <doc xml:whitespace="preserve">Sets the geometry request mode of @self.
+The @mode determines the order for invoking
+clutter_actor_get_preferred_width() and
+clutter_actor_get_preferred_height()</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="mode" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the request mode</doc>
+            <type name="RequestMode" c:type="ClutterRequestMode"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_rotation"
+              c:identifier="clutter_actor_set_rotation"
+              version="0.8">
+        <doc xml:whitespace="preserve">Sets the rotation angle of @self around the given axis.
+The rotation center coordinates used depend on the value of @axis:
+&lt;itemizedlist&gt;
+&lt;listitem&gt;&lt;para&gt;%CLUTTER_X_AXIS requires @y and @z&lt;/para&gt;&lt;/listitem&gt;
+&lt;listitem&gt;&lt;para&gt;%CLUTTER_Y_AXIS requires @x and @z&lt;/para&gt;&lt;/listitem&gt;
+&lt;listitem&gt;&lt;para&gt;%CLUTTER_Z_AXIS requires @x and @y&lt;/para&gt;&lt;/listitem&gt;
+&lt;/itemizedlist&gt;
+The rotation coordinates are relative to the anchor point of the
+actor, set using clutter_actor_set_anchor_point(). If no anchor
+point is set, the upper left corner is assumed as the origin.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="axis" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the axis of rotation</doc>
+            <type name="RotateAxis" c:type="ClutterRotateAxis"/>
+          </parameter>
+          <parameter name="angle" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the angle of rotation</doc>
+            <type name="gdouble" c:type="gdouble"/>
+          </parameter>
+          <parameter name="x" transfer-ownership="none">
+            <doc xml:whitespace="preserve">X coordinate of the rotation center</doc>
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+          <parameter name="y" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Y coordinate of the rotation center</doc>
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+          <parameter name="z" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Z coordinate of the rotation center</doc>
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_scale"
+              c:identifier="clutter_actor_set_scale"
+              version="0.2">
+        <doc xml:whitespace="preserve">Scales an actor with the given factors. The scaling is relative to
+the scale center and the anchor point. The scale center is
+unchanged by this function and defaults to 0,0.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="scale_x" transfer-ownership="none">
+            <doc xml:whitespace="preserve">double factor to scale actor by horizontally.</doc>
+            <type name="gdouble" c:type="gdouble"/>
+          </parameter>
+          <parameter name="scale_y" transfer-ownership="none">
+            <doc xml:whitespace="preserve">double factor to scale actor by vertically.</doc>
+            <type name="gdouble" c:type="gdouble"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_scale_full"
+              c:identifier="clutter_actor_set_scale_full"
+              version="1.0">
+        <doc xml:whitespace="preserve">Scales an actor with the given factors around the given center
+point. The center point is specified in pixels relative to the
+anchor point (usually the top left corner of the actor).</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="scale_x" transfer-ownership="none">
+            <doc xml:whitespace="preserve">double factor to scale actor by horizontally.</doc>
+            <type name="gdouble" c:type="gdouble"/>
+          </parameter>
+          <parameter name="scale_y" transfer-ownership="none">
+            <doc xml:whitespace="preserve">double factor to scale actor by vertically.</doc>
+            <type name="gdouble" c:type="gdouble"/>
+          </parameter>
+          <parameter name="center_x" transfer-ownership="none">
+            <doc xml:whitespace="preserve">X coordinate of the center of the scale.</doc>
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+          <parameter name="center_y" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Y coordinate of the center of the scale</doc>
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_scale_with_gravity"
+              c:identifier="clutter_actor_set_scale_with_gravity"
+              version="1.0">
+        <doc xml:whitespace="preserve">Scales an actor with the given factors around the given
+center point. The center point is specified as one of the compass
+directions in #ClutterGravity. For example, setting it to north
+will cause the top of the actor to remain unchanged and the rest of
+the actor to expand left, right and downwards.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="scale_x" transfer-ownership="none">
+            <doc xml:whitespace="preserve">double factor to scale actor by horizontally.</doc>
+            <type name="gdouble" c:type="gdouble"/>
+          </parameter>
+          <parameter name="scale_y" transfer-ownership="none">
+            <doc xml:whitespace="preserve">double factor to scale actor by vertically.</doc>
+            <type name="gdouble" c:type="gdouble"/>
+          </parameter>
+          <parameter name="gravity" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the location of the scale center expressed as a compass direction.</doc>
+            <type name="Gravity" c:type="ClutterGravity"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_shader"
+              c:identifier="clutter_actor_set_shader"
+              version="0.6">
+        <doc xml:whitespace="preserve">Sets the #ClutterShader to be used when rendering @self.
+If @shader is %NULL it will unset any currently set shader
+for the actor.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if the shader was successfully applied</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="shader" transfer-ownership="none" allow-none="1">
+            <doc xml:whitespace="preserve">a #ClutterShader or %NULL to unset the shader.</doc>
+            <type name="Shader" c:type="ClutterShader*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_shader_param"
+              c:identifier="clutter_actor_set_shader_param"
+              version="1.0">
+        <doc xml:whitespace="preserve">Sets the value for a named parameter of the shader applied
+to @actor.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="param" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the name of the parameter</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="value" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the value of the parameter</doc>
+            <type name="GObject.Value" c:type="GValue*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_shader_param_float"
+              c:identifier="clutter_actor_set_shader_param_float"
+              version="0.8">
+        <doc xml:whitespace="preserve">Sets the value for a named float parameter of the shader applied
+to @actor.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="param" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the name of the parameter</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="value" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the value of the parameter</doc>
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_shader_param_int"
+              c:identifier="clutter_actor_set_shader_param_int"
+              version="0.8">
+        <doc xml:whitespace="preserve">Sets the value for a named int parameter of the shader applied to</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="param" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the name of the parameter</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="value" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the value of the parameter</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_size" c:identifier="clutter_actor_set_size">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="width" transfer-ownership="none">
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+          <parameter name="height" transfer-ownership="none">
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_text_direction"
+              c:identifier="clutter_actor_set_text_direction"
+              version="1.2">
+        <doc xml:whitespace="preserve">Sets the #ClutterTextDirection for an actor
+The passed text direction must not be %CLUTTER_TEXT_DIRECTION_DEFAULT
+If @self implements #ClutterContainer then this function will recurse
+inside all the children of @self (including the internal ones).
+Composite actors not implementing #ClutterContainer, or actors requiring
+special handling when the text direction changes, should connect to
+the #GObject::notify signal for the #ClutterActor:text-direction property</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="text_dir" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the text direction for @self</doc>
+            <type name="TextDirection" c:type="ClutterTextDirection"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_width" c:identifier="clutter_actor_set_width">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="width" transfer-ownership="none">
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_x" c:identifier="clutter_actor_set_x" version="0.6">
+        <doc xml:whitespace="preserve">Sets the actor's X coordinate, relative to its parent, in pixels.
+Overrides any layout manager and forces a fixed position for
+the actor.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="x" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the actor's position on the X axis</doc>
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_y" c:identifier="clutter_actor_set_y" version="0.6">
+        <doc xml:whitespace="preserve">Sets the actor's Y coordinate, relative to its parent, in pixels.#
+Overrides any layout manager and forces a fixed position for
+the actor.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="y" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the actor's position on the Y axis</doc>
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_z_rotation_from_gravity"
+              c:identifier="clutter_actor_set_z_rotation_from_gravity"
+              version="1.0">
+        <doc xml:whitespace="preserve">Sets the rotation angle of @self around the Z axis using the center
+point specified as a compass point. For example to rotate such that
+the center of the actor remains static you can use
+%CLUTTER_GRAVITY_CENTER. If the actor changes size the center point
+will move accordingly.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="angle" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the angle of rotation</doc>
+            <type name="gdouble" c:type="gdouble"/>
+          </parameter>
+          <parameter name="gravity" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the center point of the rotation</doc>
+            <type name="Gravity" c:type="ClutterGravity"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="should_pick_paint"
+              c:identifier="clutter_actor_should_pick_paint">
+        <doc xml:whitespace="preserve">Should be called inside the implementation of the
+#ClutterActor::pick virtual function in order to check whether
+the actor should paint itself in pick mode or not.
+This function should never be called directly by applications.
+%FALSE otherwise</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if the actor should paint its silhouette,</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+      </method>
+      <method name="show" c:identifier="clutter_actor_show">
+        <doc xml:whitespace="preserve">Flags an actor to be displayed. An actor that isn't shown will not
+be rendered on the stage.
+Actors are visible by default.
+If this function is called on an actor without a parent, the
+#ClutterActor:show-on-set-parent will be set to %TRUE as a side
+effect.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </method>
+      <method name="show_all"
+              c:identifier="clutter_actor_show_all"
+              version="0.2">
+        <doc xml:whitespace="preserve">Calls clutter_actor_show() on all children of an actor (if any).</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </method>
+      <method name="transform_stage_point"
+              c:identifier="clutter_actor_transform_stage_point"
+              version="0.6">
+        <doc xml:whitespace="preserve">This function translates screen coordinates (@x, @y) to
+coordinates relative to the actor. For example, it can be used to translate
+screen events from global screen coordinates into actor-local coordinates.
+The conversion can fail, notably if the transform stack results in the
+actor being projected on the screen as a mere line.
+The conversion should not be expected to be pixel-perfect due to the
+nature of the operation. In general the error grows when the skewing
+of the actor rectangle on screen increases.
+&lt;note&gt;&lt;para&gt;This function can be computationally intensive.&lt;/para&gt;&lt;/note&gt;
+&lt;note&gt;&lt;para&gt;This function only works when the allocation is up-to-date,
+i.e. inside of paint().&lt;/para&gt;&lt;/note&gt;</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if conversion was successful.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="x" transfer-ownership="none">
+            <doc xml:whitespace="preserve">x screen coordinate of the point to unproject</doc>
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+          <parameter name="y" transfer-ownership="none">
+            <doc xml:whitespace="preserve">y screen coordinate of the point to unproject</doc>
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+          <parameter name="x_out"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:whitespace="preserve">return location for the unprojected x coordinance</doc>
+            <type name="gfloat" c:type="gfloat*"/>
+          </parameter>
+          <parameter name="y_out"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:whitespace="preserve">return location for the unprojected y coordinance</doc>
+            <type name="gfloat" c:type="gfloat*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="unmap" c:identifier="clutter_actor_unmap" version="1.0">
+        <doc xml:whitespace="preserve">Unsets the %CLUTTER_ACTOR_MAPPED flag on the actor and possibly
+unmaps its children if they were mapped.
+#ClutterActor &lt;function&gt;unmap()&lt;/function&gt; virtual function in an actor
+and you need to unmap the children of that actor. It is not necessary
+to call this if you implement #ClutterContainer because the default
+implementation will automatically unmap children of containers.
+When overriding unmap, it is mandatory to chain up to the parent
+implementation.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </method>
+      <method name="unparent"
+              c:identifier="clutter_actor_unparent"
+              version="0.1.1">
+        <doc xml:whitespace="preserve">Removes the parent of @self.
+This function should not be used in applications.  It should be called by
+implementations of container actors, to dissociate a child from the
+container.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </method>
+      <method name="unrealize" c:identifier="clutter_actor_unrealize">
+        <doc xml:whitespace="preserve">Unrealization informs the actor that it may be being destroyed or
+moved to another stage. The actor may want to destroy any
+underlying graphics resources at this point. However it is
+perfectly acceptable for it to retain the resources until the actor
+is destroyed because Clutter only ever uses a single rendering
+context and all of the graphics resources are valid on any stage.
+Because mapped actors must be realized, actors may not be
+unrealized if they are mapped. This function hides the actor to be
+sure it isn't mapped, an application-visible side effect that you
+may not be expecting.
+This function should not be called by application code.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </method>
+      <method name="unset_flags"
+              c:identifier="clutter_actor_unset_flags"
+              version="1.0">
+        <doc xml:whitespace="preserve">Unsets @flags on @self
+This function will emit notifications for the changed properties</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="flags" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the flags to unset</doc>
+            <type name="ActorFlags" c:type="ClutterActorFlags"/>
+          </parameter>
+        </parameters>
+      </method>
+      <property name="actions"
+                version="1.4"
+                readable="0"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">Adds a #ClutterAction to the actor</doc>
+        <type name="Action"/>
+      </property>
+      <property name="allocation" version="0.8" transfer-ownership="none">
+        <doc xml:whitespace="preserve">The allocation for the actor, in pixels
+This is property is read-only, but you might monitor it to know when an
+actor moves or resizes</doc>
+        <type name="ActorBox"/>
+      </property>
+      <property name="anchor-gravity"
+                version="1.0"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">The anchor point expressed as a #ClutterGravity</doc>
+        <type name="Gravity"/>
+      </property>
+      <property name="anchor-x"
+                version="0.8"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">The X coordinate of an actor's anchor point, relative to
+the actor coordinate space, in pixels</doc>
+        <type name="gfloat"/>
+      </property>
+      <property name="anchor-y"
+                version="0.8"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">The Y coordinate of an actor's anchor point, relative to
+the actor coordinate space, in pixels</doc>
+        <type name="gfloat"/>
+      </property>
+      <property name="clip" writable="1" transfer-ownership="none">
+        <doc xml:whitespace="preserve">The clip region for the actor, in actor-relative coordinates
+Every part of the actor outside the clip region will not be
+painted</doc>
+        <type name="Geometry"/>
+      </property>
+      <property name="clip-to-allocation"
+                version="1.0"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">Whether the clip region should track the allocated area
+of the actor.
+This property is ignored if a clip area has been explicitly
+set using clutter_actor_set_clip().</doc>
+        <type name="gboolean"/>
+      </property>
+      <property name="constraints"
+                version="1.4"
+                readable="0"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">Adds a #ClutterConstraint to the actor</doc>
+        <type name="Constraint"/>
+      </property>
+      <property name="depth"
+                version="0.6"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">The position of the actor on the Z axis</doc>
+        <type name="gfloat"/>
+      </property>
+      <property name="effect"
+                version="1.4"
+                readable="0"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">Adds #ClutterEffect to the list of effects be applied on a #ClutterActor</doc>
+        <type name="Effect"/>
+      </property>
+      <property name="fixed-position-set"
+                version="0.8"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">This flag controls whether the #ClutterActor:fixed-x and
+#ClutterActor:fixed-y properties are used</doc>
+        <type name="gboolean"/>
+      </property>
+      <property name="fixed-x"
+                version="0.8"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">The fixed X position of the actor in pixels.
+Writing this property sets #ClutterActor:fixed-position-set
+property as well, as a side effect</doc>
+        <type name="gfloat"/>
+      </property>
+      <property name="fixed-y"
+                version="0.8"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">The fixed Y position of the actor in pixels.
+Writing this property sets the #ClutterActor:fixed-position-set
+property as well, as a side effect</doc>
+        <type name="gfloat"/>
+      </property>
+      <property name="has-clip" transfer-ownership="none">
+        <doc xml:whitespace="preserve">Whether the actor has the #ClutterActor:clip property set or not</doc>
+        <type name="gboolean"/>
+      </property>
+      <property name="has-pointer" version="1.2" transfer-ownership="none">
+        <doc xml:whitespace="preserve">Whether the actor contains the pointer of a #ClutterInputDevice
+or not.</doc>
+        <type name="gboolean"/>
+      </property>
+      <property name="height" writable="1" transfer-ownership="none">
+        <doc xml:whitespace="preserve">Height of the actor (in pixels).  If written, forces the minimum and
+natural size request of the actor to the given height. If read, returns
+the allocated height if available, otherwise the height request.</doc>
+        <type name="gfloat"/>
+      </property>
+      <property name="mapped" version="1.0" transfer-ownership="none">
+        <doc xml:whitespace="preserve">Whether the actor is mapped (will be painted when the stage
+to which it belongs is mapped)</doc>
+        <type name="gboolean"/>
+      </property>
+      <property name="min-height"
+                version="0.8"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">A forced minimum height request for the actor, in pixels
+Writing this property sets the #ClutterActor:min-height-set property
+as well, as a side effect. This property overrides the usual height
+request of the actor.</doc>
+        <type name="gfloat"/>
+      </property>
+      <property name="min-height-set"
+                version="0.8"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">This flag controls whether the #ClutterActor:min-height property
+is used</doc>
+        <type name="gboolean"/>
+      </property>
+      <property name="min-width"
+                version="0.8"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">A forced minimum width request for the actor, in pixels
+Writing this property sets the #ClutterActor:min-width-set property
+as well, as a side effect.
+This property overrides the usual width request of the actor.</doc>
+        <type name="gfloat"/>
+      </property>
+      <property name="min-width-set"
+                version="0.8"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">This flag controls whether the #ClutterActor:min-width property
+is used</doc>
+        <type name="gboolean"/>
+      </property>
+      <property name="name"
+                version="0.2"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">The name of the actor</doc>
+        <type name="utf8"/>
+      </property>
+      <property name="natural-height"
+                version="0.8"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">A forced natural height request for the actor, in pixels
+Writing this property sets the #ClutterActor:natural-height-set
+property as well, as a side effect. This property overrides the
+usual height request of the actor</doc>
+        <type name="gfloat"/>
+      </property>
+      <property name="natural-height-set"
+                version="0.8"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">This flag controls whether the #ClutterActor:natural-height property
+is used</doc>
+        <type name="gboolean"/>
+      </property>
+      <property name="natural-width"
+                version="0.8"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">A forced natural width request for the actor, in pixels
+Writing this property sets the #ClutterActor:natural-width-set
+property as well, as a side effect. This property overrides the
+usual width request of the actor</doc>
+        <type name="gfloat"/>
+      </property>
+      <property name="natural-width-set"
+                version="0.8"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">This flag controls whether the #ClutterActor:natural-width property
+is used</doc>
+        <type name="gboolean"/>
+      </property>
+      <property name="opacity" writable="1" transfer-ownership="none">
+        <doc xml:whitespace="preserve">Opacity of an actor, between 0 (fully transparent) and
+255 (fully opaque)</doc>
+        <type name="guint"/>
+      </property>
+      <property name="reactive"
+                version="0.6"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">Whether the actor is reactive to events or not
+Only reactive actors will emit event-related signals</doc>
+        <type name="gboolean"/>
+      </property>
+      <property name="realized" version="1.0" transfer-ownership="none">
+        <doc xml:whitespace="preserve">Whether the actor has been realized</doc>
+        <type name="gboolean"/>
+      </property>
+      <property name="request-mode"
+                version="0.8"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">Request mode for the #ClutterActor. The request mode determines the
+type of geometry management used by the actor, either height for width
+(the default) or width for height.
+For actors implementing height for width, the parent container should get
+the preferred width first, and then the preferred height for that width.
+For actors implementing width for height, the parent container should get
+the preferred height first, and then the preferred width for that height.
+For instance:
+|[
+ClutterRequestMode mode;
+gfloat natural_width, min_width;
+gfloat natural_height, min_height;
+mode = clutter_actor_get_request_mode (child);
+if (mode == CLUTTER_REQUEST_HEIGHT_FOR_WIDTH)
+{
+clutter_actor_get_preferred_width (child, -1,
+&amp;amp;min_width,
+&amp;amp;natural_width);
+clutter_actor_get_preferred_height (child, natural_width,
+&amp;amp;min_height,
+&amp;amp;natural_height);
+}
+else
+{
+clutter_actor_get_preferred_height (child, -1,
+&amp;amp;min_height,
+&amp;amp;natural_height);
+clutter_actor_get_preferred_width (child, natural_height,
+&amp;amp;min_width,
+&amp;amp;natural_width);
+}
+]|
+will retrieve the minimum and natural width and height depending on the
+preferred request mode of the #ClutterActor "child".
+The clutter_actor_get_preferred_size() function will implement this
+check for you.</doc>
+        <type name="RequestMode"/>
+      </property>
+      <property name="rotation-angle-x"
+                version="0.6"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">The rotation angle on the X axis</doc>
+        <type name="gdouble"/>
+      </property>
+      <property name="rotation-angle-y"
+                version="0.6"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">The rotation angle on the Y axis</doc>
+        <type name="gdouble"/>
+      </property>
+      <property name="rotation-angle-z"
+                version="0.6"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">The rotation angle on the Z axis</doc>
+        <type name="gdouble"/>
+      </property>
+      <property name="rotation-center-x"
+                version="0.6"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">The rotation center on the X axis.</doc>
+        <type name="Vertex"/>
+      </property>
+      <property name="rotation-center-y"
+                version="0.6"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">The rotation center on the Y axis.</doc>
+        <type name="Vertex"/>
+      </property>
+      <property name="rotation-center-z"
+                version="0.6"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">The rotation center on the Z axis.</doc>
+        <type name="Vertex"/>
+      </property>
+      <property name="rotation-center-z-gravity"
+                version="1.0"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">The rotation center on the Z axis expressed as a #ClutterGravity.</doc>
+        <type name="Gravity"/>
+      </property>
+      <property name="scale-center-x"
+                version="1.0"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">The horizontal center point for scaling</doc>
+        <type name="gfloat"/>
+      </property>
+      <property name="scale-center-y"
+                version="1.0"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">The vertical center point for scaling</doc>
+        <type name="gfloat"/>
+      </property>
+      <property name="scale-gravity"
+                version="1.0"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">The center point for scaling expressed as a #ClutterGravity</doc>
+        <type name="Gravity"/>
+      </property>
+      <property name="scale-x"
+                version="0.6"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">The horizontal scale of the actor</doc>
+        <type name="gdouble"/>
+      </property>
+      <property name="scale-y"
+                version="0.6"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">The vertical scale of the actor</doc>
+        <type name="gdouble"/>
+      </property>
+      <property name="show-on-set-parent"
+                version="0.8"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">If %TRUE, the actor is automatically shown when parented.
+Calling clutter_actor_hide() on an actor which has not been
+parented will set this property to %FALSE as a side effect.</doc>
+        <type name="gboolean"/>
+      </property>
+      <property name="text-direction" writable="1" transfer-ownership="none">
+        <type name="TextDirection"/>
+      </property>
+      <property name="visible" writable="1" transfer-ownership="none">
+        <doc xml:whitespace="preserve">Whether the actor is set to be visible or not
+See also #ClutterActor:mapped</doc>
+        <type name="gboolean"/>
+      </property>
+      <property name="width" writable="1" transfer-ownership="none">
+        <doc xml:whitespace="preserve">Width of the actor (in pixels). If written, forces the minimum and
+natural size request of the actor to the given width. If read, returns
+the allocated width if available, otherwise the width request.</doc>
+        <type name="gfloat"/>
+      </property>
+      <property name="x" writable="1" transfer-ownership="none">
+        <doc xml:whitespace="preserve">X coordinate of the actor in pixels. If written, forces a fixed
+position for the actor. If read, returns the fixed position if any,
+otherwise the allocation if available, otherwise 0.</doc>
+        <type name="gfloat"/>
+      </property>
+      <property name="y" writable="1" transfer-ownership="none">
+        <doc xml:whitespace="preserve">Y coordinate of the actor in pixels. If written, forces a fixed
+position for the actor.  If read, returns the fixed position if
+any, otherwise the allocation if available, otherwise 0.</doc>
+        <type name="gfloat"/>
+      </property>
+      <field name="parent_instance">
+        <type name="GObject.InitiallyUnowned" c:type="GInitiallyUnowned"/>
+      </field>
+      <field name="flags">
+        <type name="guint32" c:type="guint32"/>
+      </field>
+      <field name="private_flags">
+        <type name="guint32" c:type="guint32"/>
+      </field>
+      <field name="priv">
+        <type name="ActorPrivate" c:type="ClutterActorPrivate*"/>
+      </field>
+      <glib:signal name="allocation-changed" version="1.0">
+        <doc xml:whitespace="preserve">The ::allocation-changed signal is emitted when the
+#ClutterActor:allocation property changes. Usually, application
+code should just use the notifications for the :allocation property
+but if you want to track the allocation flags as well, for instance
+to know whether the absolute origin of @actor changed, then you might
+want use this signal instead.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none"/>
+        </return-value>
+        <parameters>
+          <parameter name="object" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #ClutterActorBox with the new allocation</doc>
+            <type name="ActorBox"/>
+          </parameter>
+          <parameter name="p0" transfer-ownership="none">
+            <doc xml:whitespace="preserve">#ClutterAllocationFlags for the allocation</doc>
+            <type name="AllocationFlags"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="button-press-event" version="0.6">
+        <doc xml:whitespace="preserve">The ::button-press-event signal is emitted each time a mouse button
+is pressed on @actor.
+or %FALSE to continue the emission.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if the event has been handled by the actor,</doc>
+          <type name="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="object" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #ClutterButtonEvent</doc>
+            <type name="Event"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="button-release-event" version="0.6">
+        <doc xml:whitespace="preserve">The ::button-release-event signal is emitted each time a mouse button
+is released on @actor.
+or %FALSE to continue the emission.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if the event has been handled by the actor,</doc>
+          <type name="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="object" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #ClutterButtonEvent</doc>
+            <type name="Event"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="captured-event" version="0.6">
+        <doc xml:whitespace="preserve">The ::captured-event signal is emitted when an event is captured
+by Clutter. This signal will be emitted starting from the top-level
+container (the #ClutterStage) to the actor which received the event
+going down the hierarchy. This signal can be used to intercept every
+event before the specialized events (like
+ClutterActor::button-press-event or ::key-released-event) are
+emitted.
+or %FALSE to continue the emission.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if the event has been handled by the actor,</doc>
+          <type name="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="object" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #ClutterEvent</doc>
+            <type name="Event"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="destroy" version="0.2">
+        <doc xml:whitespace="preserve">The ::destroy signal is emitted when an actor is destroyed,
+either by direct invocation of clutter_actor_destroy() or
+when the #ClutterGroup that contains the actor is destroyed.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none"/>
+        </return-value>
+      </glib:signal>
+      <glib:signal name="enter-event" version="0.6">
+        <doc xml:whitespace="preserve">The ::enter-event signal is emitted when the pointer enters the @actor
+or %FALSE to continue the emission.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if the event has been handled by the actor,</doc>
+          <type name="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="object" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #ClutterCrossingEvent</doc>
+            <type name="Event"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="event" version="0.6">
+        <doc xml:whitespace="preserve">The ::event signal is emitted each time an event is received
+by the @actor. This signal will be emitted on every actor,
+following the hierarchy chain, until it reaches the top-level
+container (the #ClutterStage).
+or %FALSE to continue the emission.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if the event has been handled by the actor,</doc>
+          <type name="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="object" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #ClutterEvent</doc>
+            <type name="Event"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="hide" version="0.2">
+        <doc xml:whitespace="preserve">The ::hide signal is emitted when an actor is no longer rendered
+on the stage.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none"/>
+        </return-value>
+      </glib:signal>
+      <glib:signal name="key-focus-in" version="0.6">
+        <doc xml:whitespace="preserve">The ::key-focus-in signal is emitted when @actor receives key focus.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none"/>
+        </return-value>
+      </glib:signal>
+      <glib:signal name="key-focus-out" version="0.6">
+        <doc xml:whitespace="preserve">The ::key-focus-out signal is emitted when @actor loses key focus.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none"/>
+        </return-value>
+      </glib:signal>
+      <glib:signal name="key-press-event" version="0.6">
+        <doc xml:whitespace="preserve">The ::key-press-event signal is emitted each time a keyboard button
+is pressed while @actor has key focus (see clutter_stage_set_key_focus()).
+or %FALSE to continue the emission.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if the event has been handled by the actor,</doc>
+          <type name="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="object" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #ClutterKeyEvent</doc>
+            <type name="Event"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="key-release-event" version="0.6">
+        <doc xml:whitespace="preserve">The ::key-release-event signal is emitted each time a keyboard button
+is released while @actor has key focus (see
+clutter_stage_set_key_focus()).
+or %FALSE to continue the emission.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if the event has been handled by the actor,</doc>
+          <type name="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="object" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #ClutterKeyEvent</doc>
+            <type name="Event"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="leave-event" version="0.6">
+        <doc xml:whitespace="preserve">The ::leave-event signal is emitted when the pointer leaves the @actor.
+or %FALSE to continue the emission.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if the event has been handled by the actor,</doc>
+          <type name="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="object" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #ClutterCrossingEvent</doc>
+            <type name="Event"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="motion-event" version="0.6">
+        <doc xml:whitespace="preserve">The ::motion-event signal is emitted each time the mouse pointer is
+moved over @actor.
+or %FALSE to continue the emission.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if the event has been handled by the actor,</doc>
+          <type name="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="object" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #ClutterMotionEvent</doc>
+            <type name="Event"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="paint" version="0.8">
+        <doc xml:whitespace="preserve">The ::paint signal is emitted each time an actor is being painted.
+Subclasses of #ClutterActor should override the class signal handler
+and paint themselves in that function.
+It is possible to connect a handler to the ::paint signal in order
+to set up some custom aspect of a paint.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none"/>
+        </return-value>
+      </glib:signal>
+      <glib:signal name="parent-set" version="0.2">
+        <doc xml:whitespace="preserve">This signal is emitted when the parent of the actor changes.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none"/>
+        </return-value>
+        <parameters>
+          <parameter name="object" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the previous parent of the actor, or %NULL</doc>
+            <type name="Actor"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="pick" version="1.0">
+        <doc xml:whitespace="preserve">The ::pick signal is emitted each time an actor is being painted
+in "pick mode". The pick mode is used to identify the actor during
+the event handling phase, or by clutter_stage_get_actor_at_pos().
+The actor should paint its shape using the passed @pick_color.
+Subclasses of #ClutterActor should override the class signal handler
+and paint themselves in that function.
+It is possible to connect a handler to the ::pick signal in order
+to set up some custom aspect of a paint in pick mode.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none"/>
+        </return-value>
+        <parameters>
+          <parameter name="object" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the #ClutterColor to be used when picking</doc>
+            <type name="Color"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="queue-redraw" version="1.0">
+        <doc xml:whitespace="preserve">The ::queue_redraw signal is emitted when clutter_actor_queue_redraw()
+is called on @origin.
+The default implementation for #ClutterActor chains up to the
+parent actor and queues a redraw on the parent, thus "bubbling"
+the redraw queue up through the actor graph. The default
+implementation for #ClutterStage queues a clutter_redraw() in a
+main loop idle handler.
+Note that the @origin actor may be the stage, or a container; it
+does not have to be a leaf node in the actor graph.
+Toolkits embedding a #ClutterStage which require a redraw and
+relayout cycle can stop the emission of this signal using the
+GSignal API, redraw the UI and then call clutter_redraw()
+themselves, like:
+|[
+static void
+on_redraw_complete (void)
+{
+/&amp;ast; execute the Clutter drawing pipeline &amp;ast;/
+clutter_redraw ();
+}
+static void
+on_stage_queue_redraw (ClutterStage *stage)
+{
+/&amp;ast; this prevents the default handler to run &amp;ast;/
+g_signal_stop_emission_by_name (stage, "queue-redraw");
+/&amp;ast; queue a redraw with the host toolkit and call
+&amp;ast; a function when the redraw has been completed
+&amp;ast;/
+queue_a_redraw (G_CALLBACK (on_redraw_complete));
+}
+]|
+&lt;note&gt;&lt;para&gt;This signal is emitted before the Clutter paint
+pipeline is executed. If you want to know when the pipeline has
+been completed you should connect to the ::paint signal on the
+Stage with g_signal_connect_after().&lt;/para&gt;&lt;/note&gt;</doc>
+        <return-value transfer-ownership="none">
+          <type name="none"/>
+        </return-value>
+        <parameters>
+          <parameter name="object" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the actor which initiated the redraw request</doc>
+            <type name="Actor"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="queue-relayout">
+        <return-value transfer-ownership="none">
+          <type name="none"/>
+        </return-value>
+      </glib:signal>
+      <glib:signal name="realize" version="0.8">
+        <doc xml:whitespace="preserve">The ::realize signal is emitted each time an actor is being
+realized.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none"/>
+        </return-value>
+      </glib:signal>
+      <glib:signal name="scroll-event" version="0.6">
+        <doc xml:whitespace="preserve">The ::scroll-event signal is emitted each time the mouse is
+scrolled on @actor
+or %FALSE to continue the emission.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if the event has been handled by the actor,</doc>
+          <type name="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="object" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #ClutterScrollEvent</doc>
+            <type name="Event"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="show" version="0.2">
+        <doc xml:whitespace="preserve">The ::show signal is emitted when an actor is visible and
+rendered on the stage.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none"/>
+        </return-value>
+      </glib:signal>
+      <glib:signal name="unrealize" version="0.8">
+        <doc xml:whitespace="preserve">The ::unrealize signal is emitted each time an actor is being
+unrealized.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none"/>
+        </return-value>
+      </glib:signal>
+    </class>
+    <record name="ActorBox"
+            c:type="ClutterActorBox"
+            glib:type-name="ClutterActorBox"
+            glib:get-type="clutter_actor_box_get_type"
+            c:symbol-prefix="actor_box">
+      <doc xml:whitespace="preserve">Bounding box of an actor. The coordinates of the top left and right bottom
+corners of an actor. The coordinates of the two points are expressed in
+pixels with sub-pixel precision</doc>
+      <field name="x1" writable="1">
+        <type name="gfloat" c:type="gfloat"/>
+      </field>
+      <field name="y1" writable="1">
+        <type name="gfloat" c:type="gfloat"/>
+      </field>
+      <field name="x2" writable="1">
+        <type name="gfloat" c:type="gfloat"/>
+      </field>
+      <field name="y2" writable="1">
+        <type name="gfloat" c:type="gfloat"/>
+      </field>
+      <constructor name="new"
+                   c:identifier="clutter_actor_box_new"
+                   version="1.0">
+        <doc xml:whitespace="preserve">Allocates a new #ClutterActorBox using the passed coordinates
+for the top left and bottom right points
+clutter_actor_box_free() to free the resources</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">the newly allocated #ClutterActorBox. Use</doc>
+          <type name="ActorBox" c:type="ClutterActorBox*"/>
+        </return-value>
+        <parameters>
+          <parameter name="x_1" transfer-ownership="none">
+            <doc xml:whitespace="preserve">X coordinate of the top left point</doc>
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+          <parameter name="y_1" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Y coordinate of the top left point</doc>
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+          <parameter name="x_2" transfer-ownership="none">
+            <doc xml:whitespace="preserve">X coordinate of the bottom right point</doc>
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+          <parameter name="y_2" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Y coordinate of the bottom right point</doc>
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <method name="clamp_to_pixel"
+              c:identifier="clutter_actor_box_clamp_to_pixel"
+              version="1.2">
+        <doc xml:whitespace="preserve">Clamps the components of @box to the nearest integer</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </method>
+      <method name="contains"
+              c:identifier="clutter_actor_box_contains"
+              version="1.0">
+        <doc xml:whitespace="preserve">Checks whether a point with @x, @y coordinates is contained
+withing @box</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if the point is contained by the #ClutterActorBox</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="x" transfer-ownership="none">
+            <doc xml:whitespace="preserve">X coordinate of the point</doc>
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+          <parameter name="y" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Y coordinate of the point</doc>
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="copy" c:identifier="clutter_actor_box_copy" version="1.0">
+        <doc xml:whitespace="preserve">Copies @box
+clutter_actor_box_free() to free the allocated resources</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">a newly allocated copy of #ClutterActorBox. Use</doc>
+          <type name="ActorBox" c:type="ClutterActorBox*"/>
+        </return-value>
+      </method>
+      <method name="equal"
+              c:identifier="clutter_actor_box_equal"
+              version="1.0">
+        <doc xml:whitespace="preserve">Checks @box_a and @box_b for equality</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if the passed #ClutterActorBox are equal</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="box_b" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #ClutterActorBox</doc>
+            <type name="ActorBox" c:type="ClutterActorBox*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="free" c:identifier="clutter_actor_box_free" version="1.0">
+        <doc xml:whitespace="preserve">Frees a #ClutterActorBox allocated using clutter_actor_box_new()
+or clutter_actor_box_copy()</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </method>
+      <method name="from_vertices"
+              c:identifier="clutter_actor_box_from_vertices"
+              version="1.0">
+        <doc xml:whitespace="preserve">Calculates the bounding box represented by the four vertices; for details
+of the vertex array see clutter_actor_get_abs_allocation_vertices().</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="verts" transfer-ownership="none">
+            <doc xml:whitespace="preserve">array of four #ClutterVertex</doc>
+            <array c:type="ClutterVertex" fixed-size="4">
+              <type name="Vertex"/>
+            </array>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_area"
+              c:identifier="clutter_actor_box_get_area"
+              version="1.0">
+        <doc xml:whitespace="preserve">Retrieves the area of @box</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the area of a #ClutterActorBox, in pixels</doc>
+          <type name="gfloat" c:type="gfloat"/>
+        </return-value>
+      </method>
+      <method name="get_height"
+              c:identifier="clutter_actor_box_get_height"
+              version="1.0">
+        <doc xml:whitespace="preserve">Retrieves the height of the @box</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the height of the box</doc>
+          <type name="gfloat" c:type="gfloat"/>
+        </return-value>
+      </method>
+      <method name="get_origin"
+              c:identifier="clutter_actor_box_get_origin"
+              version="1.0">
+        <doc xml:whitespace="preserve">Retrieves the origin of @box</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="x"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full"
+                     allow-none="1">
+            <doc xml:whitespace="preserve">return location for the X coordinate, or %NULL</doc>
+            <type name="gfloat" c:type="gfloat*"/>
+          </parameter>
+          <parameter name="y"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full"
+                     allow-none="1">
+            <doc xml:whitespace="preserve">return location for the Y coordinate, or %NULL</doc>
+            <type name="gfloat" c:type="gfloat*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_size"
+              c:identifier="clutter_actor_box_get_size"
+              version="1.0">
+        <doc xml:whitespace="preserve">Retrieves the size of @box</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="width"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full"
+                     allow-none="1">
+            <doc xml:whitespace="preserve">return location for the width, or %NULL</doc>
+            <type name="gfloat" c:type="gfloat*"/>
+          </parameter>
+          <parameter name="height"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full"
+                     allow-none="1">
+            <doc xml:whitespace="preserve">return location for the height, or %NULL</doc>
+            <type name="gfloat" c:type="gfloat*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_width"
+              c:identifier="clutter_actor_box_get_width"
+              version="1.0">
+        <doc xml:whitespace="preserve">Retrieves the width of the @box</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the width of the box</doc>
+          <type name="gfloat" c:type="gfloat"/>
+        </return-value>
+      </method>
+      <method name="get_x"
+              c:identifier="clutter_actor_box_get_x"
+              version="1.0">
+        <doc xml:whitespace="preserve">Retrieves the X coordinate of the origin of @box</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the X coordinate of the origin</doc>
+          <type name="gfloat" c:type="gfloat"/>
+        </return-value>
+      </method>
+      <method name="get_y"
+              c:identifier="clutter_actor_box_get_y"
+              version="1.0">
+        <doc xml:whitespace="preserve">Retrieves the Y coordinate of the origin of @box</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the Y coordinate of the origin</doc>
+          <type name="gfloat" c:type="gfloat"/>
+        </return-value>
+      </method>
+      <method name="interpolate"
+              c:identifier="clutter_actor_box_interpolate"
+              version="1.2">
+        <doc xml:whitespace="preserve">Interpolates between @initial and @final #ClutterActorBox&lt;!-- --&gt;es
+using @progress</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="final" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the final #ClutterActorBox</doc>
+            <type name="ActorBox" c:type="ClutterActorBox*"/>
+          </parameter>
+          <parameter name="progress" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the interpolation progress</doc>
+            <type name="gdouble" c:type="gdouble"/>
+          </parameter>
+          <parameter name="result"
+                     direction="out"
+                     caller-allocates="1"
+                     transfer-ownership="none">
+            <doc xml:whitespace="preserve">return location for the interpolation</doc>
+            <type name="ActorBox" c:type="ClutterActorBox*"/>
+          </parameter>
+        </parameters>
+      </method>
+    </record>
+    <record name="ActorClass"
+            c:type="ClutterActorClass"
+            glib:is-gtype-struct-for="Actor">
+      <doc xml:whitespace="preserve">Base class for actors.</doc>
+      <field name="parent_class">
+        <type name="GObject.InitiallyUnownedClass"
+              c:type="GInitiallyUnownedClass"/>
+      </field>
+      <field name="show">
+        <callback name="show">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="actor" transfer-ownership="none">
+              <type name="Actor" c:type="ClutterActor*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="show_all">
+        <callback name="show_all">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="actor" transfer-ownership="none">
+              <type name="Actor" c:type="ClutterActor*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="hide">
+        <callback name="hide">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="actor" transfer-ownership="none">
+              <type name="Actor" c:type="ClutterActor*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="hide_all">
+        <callback name="hide_all">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="actor" transfer-ownership="none">
+              <type name="Actor" c:type="ClutterActor*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="realize">
+        <callback name="realize">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="actor" transfer-ownership="none">
+              <type name="Actor" c:type="ClutterActor*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="unrealize">
+        <callback name="unrealize">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="actor" transfer-ownership="none">
+              <type name="Actor" c:type="ClutterActor*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="map">
+        <callback name="map">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="actor" transfer-ownership="none">
+              <type name="Actor" c:type="ClutterActor*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="unmap">
+        <callback name="unmap">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="actor" transfer-ownership="none">
+              <type name="Actor" c:type="ClutterActor*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="paint">
+        <callback name="paint">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="actor" transfer-ownership="none">
+              <type name="Actor" c:type="ClutterActor*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="parent_set">
+        <callback name="parent_set">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="actor" transfer-ownership="none">
+              <type name="Actor" c:type="ClutterActor*"/>
+            </parameter>
+            <parameter name="old_parent" transfer-ownership="none">
+              <type name="Actor" c:type="ClutterActor*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="destroy">
+        <callback name="destroy">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="actor" transfer-ownership="none">
+              <type name="Actor" c:type="ClutterActor*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="pick">
+        <callback name="pick">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="actor" transfer-ownership="none">
+              <type name="Actor" c:type="ClutterActor*"/>
+            </parameter>
+            <parameter name="color" transfer-ownership="none">
+              <type name="Color" c:type="ClutterColor*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="queue_redraw">
+        <callback name="queue_redraw">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="actor" transfer-ownership="none">
+              <type name="Actor" c:type="ClutterActor*"/>
+            </parameter>
+            <parameter name="leaf_that_queued" transfer-ownership="none">
+              <type name="Actor" c:type="ClutterActor*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="get_preferred_width">
+        <callback name="get_preferred_width">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="actor" transfer-ownership="none">
+              <type name="Actor" c:type="ClutterActor*"/>
+            </parameter>
+            <parameter name="for_height" transfer-ownership="none">
+              <doc xml:whitespace="preserve">available height when computing the preferred width, or a negative value to indicate that no height is defined</doc>
+              <type name="gfloat" c:type="gfloat"/>
+            </parameter>
+            <parameter name="min_width_p"
+                       direction="out"
+                       caller-allocates="0"
+                       transfer-ownership="full"
+                       allow-none="1">
+              <doc xml:whitespace="preserve">return location for minimum width, or %NULL</doc>
+              <type name="gfloat" c:type="gfloat*"/>
+            </parameter>
+            <parameter name="natural_width_p"
+                       direction="out"
+                       caller-allocates="0"
+                       transfer-ownership="full"
+                       allow-none="1">
+              <doc xml:whitespace="preserve">return location for the natural width, or %NULL</doc>
+              <type name="gfloat" c:type="gfloat*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="get_preferred_height">
+        <callback name="get_preferred_height">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="actor" transfer-ownership="none">
+              <type name="Actor" c:type="ClutterActor*"/>
+            </parameter>
+            <parameter name="for_width" transfer-ownership="none">
+              <doc xml:whitespace="preserve">available width to assume in computing desired height, or a negative value to indicate that no width is defined</doc>
+              <type name="gfloat" c:type="gfloat"/>
+            </parameter>
+            <parameter name="min_height_p"
+                       direction="out"
+                       caller-allocates="0"
+                       transfer-ownership="full"
+                       allow-none="1">
+              <doc xml:whitespace="preserve">return location for minimum height, or %NULL</doc>
+              <type name="gfloat" c:type="gfloat*"/>
+            </parameter>
+            <parameter name="natural_height_p"
+                       direction="out"
+                       caller-allocates="0"
+                       transfer-ownership="full"
+                       allow-none="1">
+              <doc xml:whitespace="preserve">return location for natural height, or %NULL</doc>
+              <type name="gfloat" c:type="gfloat*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="allocate">
+        <callback name="allocate">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="actor" transfer-ownership="none">
+              <type name="Actor" c:type="ClutterActor*"/>
+            </parameter>
+            <parameter name="box" transfer-ownership="none">
+              <doc xml:whitespace="preserve">new allocation of the actor, in parent-relative coordinates</doc>
+              <type name="ActorBox" c:type="ClutterActorBox*"/>
+            </parameter>
+            <parameter name="flags" transfer-ownership="none">
+              <doc xml:whitespace="preserve">flags that control the allocation</doc>
+              <type name="AllocationFlags" c:type="ClutterAllocationFlags"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="apply_transform">
+        <callback name="apply_transform">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="actor" transfer-ownership="none">
+              <type name="Actor" c:type="ClutterActor*"/>
+            </parameter>
+            <parameter name="matrix" transfer-ownership="none">
+              <type name="Cogl.Matrix" c:type="CoglMatrix*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="event">
+        <callback name="event">
+          <return-value transfer-ownership="none">
+            <type name="gboolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="actor" transfer-ownership="none">
+              <type name="Actor" c:type="ClutterActor*"/>
+            </parameter>
+            <parameter name="event" transfer-ownership="none">
+              <type name="Event" c:type="ClutterEvent*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="button_press_event">
+        <callback name="button_press_event">
+          <return-value transfer-ownership="none">
+            <type name="gboolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="actor" transfer-ownership="none">
+              <type name="Actor" c:type="ClutterActor*"/>
+            </parameter>
+            <parameter name="event" transfer-ownership="none">
+              <type name="ButtonEvent" c:type="ClutterButtonEvent*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="button_release_event">
+        <callback name="button_release_event">
+          <return-value transfer-ownership="none">
+            <type name="gboolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="actor" transfer-ownership="none">
+              <type name="Actor" c:type="ClutterActor*"/>
+            </parameter>
+            <parameter name="event" transfer-ownership="none">
+              <type name="ButtonEvent" c:type="ClutterButtonEvent*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="scroll_event">
+        <callback name="scroll_event">
+          <return-value transfer-ownership="none">
+            <type name="gboolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="actor" transfer-ownership="none">
+              <type name="Actor" c:type="ClutterActor*"/>
+            </parameter>
+            <parameter name="event" transfer-ownership="none">
+              <type name="ScrollEvent" c:type="ClutterScrollEvent*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="key_press_event">
+        <callback name="key_press_event">
+          <return-value transfer-ownership="none">
+            <type name="gboolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="actor" transfer-ownership="none">
+              <type name="Actor" c:type="ClutterActor*"/>
+            </parameter>
+            <parameter name="event" transfer-ownership="none">
+              <type name="KeyEvent" c:type="ClutterKeyEvent*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="key_release_event">
+        <callback name="key_release_event">
+          <return-value transfer-ownership="none">
+            <type name="gboolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="actor" transfer-ownership="none">
+              <type name="Actor" c:type="ClutterActor*"/>
+            </parameter>
+            <parameter name="event" transfer-ownership="none">
+              <type name="KeyEvent" c:type="ClutterKeyEvent*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="motion_event">
+        <callback name="motion_event">
+          <return-value transfer-ownership="none">
+            <type name="gboolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="actor" transfer-ownership="none">
+              <type name="Actor" c:type="ClutterActor*"/>
+            </parameter>
+            <parameter name="event" transfer-ownership="none">
+              <type name="MotionEvent" c:type="ClutterMotionEvent*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="enter_event">
+        <callback name="enter_event">
+          <return-value transfer-ownership="none">
+            <type name="gboolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="actor" transfer-ownership="none">
+              <type name="Actor" c:type="ClutterActor*"/>
+            </parameter>
+            <parameter name="event" transfer-ownership="none">
+              <type name="CrossingEvent" c:type="ClutterCrossingEvent*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="leave_event">
+        <callback name="leave_event">
+          <return-value transfer-ownership="none">
+            <type name="gboolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="actor" transfer-ownership="none">
+              <type name="Actor" c:type="ClutterActor*"/>
+            </parameter>
+            <parameter name="event" transfer-ownership="none">
+              <type name="CrossingEvent" c:type="ClutterCrossingEvent*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="captured_event">
+        <callback name="captured_event">
+          <return-value transfer-ownership="none">
+            <type name="gboolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="actor" transfer-ownership="none">
+              <type name="Actor" c:type="ClutterActor*"/>
+            </parameter>
+            <parameter name="event" transfer-ownership="none">
+              <type name="Event" c:type="ClutterEvent*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="key_focus_in">
+        <callback name="key_focus_in">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="actor" transfer-ownership="none">
+              <type name="Actor" c:type="ClutterActor*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="key_focus_out">
+        <callback name="key_focus_out">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="actor" transfer-ownership="none">
+              <type name="Actor" c:type="ClutterActor*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="queue_relayout">
+        <callback name="queue_relayout">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="actor" transfer-ownership="none">
+              <type name="Actor" c:type="ClutterActor*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="get_accessible">
+        <callback name="get_accessible">
+          <return-value transfer-ownership="none">
+            <doc xml:whitespace="preserve">the #AtkObject associated with @actor</doc>
+            <type name="Atk.Object" c:type="AtkObject*"/>
+          </return-value>
+          <parameters>
+            <parameter name="actor" transfer-ownership="none">
+              <type name="Actor" c:type="ClutterActor*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="_padding_dummy">
+        <array zero-terminated="0" c:type="gpointer" fixed-size="30">
+          <type name="gpointer" c:type="gpointer"/>
+        </array>
+      </field>
+    </record>
+    <bitfield name="ActorFlags"
+              glib:type-name="ClutterActorFlags"
+              glib:get-type="clutter_actor_flags_get_type"
+              c:type="ClutterActorFlags">
+      <doc xml:whitespace="preserve">Flags used to signal the state of an actor.</doc>
+      <member name="mapped"
+              value="2"
+              c:identifier="CLUTTER_ACTOR_MAPPED"
+              glib:nick="mapped"/>
+      <member name="realized"
+              value="4"
+              c:identifier="CLUTTER_ACTOR_REALIZED"
+              glib:nick="realized"/>
+      <member name="reactive"
+              value="8"
+              c:identifier="CLUTTER_ACTOR_REACTIVE"
+              glib:nick="reactive"/>
+      <member name="visible"
+              value="16"
+              c:identifier="CLUTTER_ACTOR_VISIBLE"
+              glib:nick="visible"/>
+      <member name="no_layout"
+              value="32"
+              c:identifier="CLUTTER_ACTOR_NO_LAYOUT"
+              glib:nick="no-layout"/>
+    </bitfield>
+    <class name="ActorMeta"
+           c:symbol-prefix="actor_meta"
+           c:type="ClutterActorMeta"
+           version="1.4"
+           parent="GObject.InitiallyUnowned"
+           abstract="1"
+           glib:type-name="ClutterActorMeta"
+           glib:get-type="clutter_actor_meta_get_type"
+           glib:type-struct="ActorMetaClass">
+      <doc xml:whitespace="preserve">The &lt;structname&gt;ClutterActorMeta&lt;/structname&gt; structure contains only
+private data and should be accessed using the provided API</doc>
+      <virtual-method name="set_actor">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="actor" transfer-ownership="none">
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <method name="get_actor"
+              c:identifier="clutter_actor_meta_get_actor"
+              version="1.4">
+        <doc xml:whitespace="preserve">Retrieves a pointer to the #ClutterActor that owns @meta</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">a pointer to a #ClutterActor or %NULL</doc>
+          <type name="Actor" c:type="ClutterActor*"/>
+        </return-value>
+      </method>
+      <method name="get_enabled"
+              c:identifier="clutter_actor_meta_get_enabled"
+              version="1.4">
+        <doc xml:whitespace="preserve">Retrieves whether @meta is enabled</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if the #ClutterActorMeta instance is enabled</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+      </method>
+      <method name="get_name"
+              c:identifier="clutter_actor_meta_get_name"
+              version="1.4">
+        <doc xml:whitespace="preserve">Retrieves the name set using clutter_actor_meta_set_name()
+instance, or %NULL if none was set. The returned string is owned
+by the #ClutterActorMeta instance and it should not be modified
+or freed</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the name of the #ClutterActorMeta</doc>
+          <type name="utf8" c:type="gchar*"/>
+        </return-value>
+      </method>
+      <method name="set_enabled"
+              c:identifier="clutter_actor_meta_set_enabled"
+              version="1.4">
+        <doc xml:whitespace="preserve">Sets whether @meta should be enabled or not</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="is_enabled" transfer-ownership="none">
+            <doc xml:whitespace="preserve">whether @meta is enabled</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_name"
+              c:identifier="clutter_actor_meta_set_name"
+              version="1.4">
+        <doc xml:whitespace="preserve">Sets the name of @meta
+The name can be used to identify the #ClutterActorMeta instance</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the name of @meta</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <property name="actor" version="1.4" transfer-ownership="none">
+        <doc xml:whitespace="preserve">The #ClutterActor attached to the #ClutterActorMeta instance</doc>
+        <type name="Actor"/>
+      </property>
+      <property name="enabled"
+                version="1.4"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">Whether or not the #ClutterActorMeta is enabled</doc>
+        <type name="gboolean"/>
+      </property>
+      <property name="name"
+                version="1.4"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">The unique name to access the #ClutterActorMeta</doc>
+        <type name="utf8"/>
+      </property>
+      <field name="parent_instance">
+        <type name="GObject.InitiallyUnowned" c:type="GInitiallyUnowned"/>
+      </field>
+      <field name="priv">
+        <type name="ActorMetaPrivate" c:type="ClutterActorMetaPrivate*"/>
+      </field>
+    </class>
+    <record name="ActorMetaClass"
+            c:type="ClutterActorMetaClass"
+            glib:is-gtype-struct-for="ActorMeta"
+            version="1.4">
+      <doc xml:whitespace="preserve">The &lt;structname&gt;ClutterActorMetaClass&lt;/structname&gt; structure contains
+only private data</doc>
+      <field name="parent_class">
+        <type name="GObject.InitiallyUnownedClass"
+              c:type="GInitiallyUnownedClass"/>
+      </field>
+      <field name="set_actor">
+        <callback name="set_actor">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="meta" transfer-ownership="none">
+              <type name="ActorMeta" c:type="ClutterActorMeta*"/>
+            </parameter>
+            <parameter name="actor" transfer-ownership="none">
+              <type name="Actor" c:type="ClutterActor*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="_clutter_meta1" introspectable="0">
+        <callback name="_clutter_meta1">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_meta2" introspectable="0">
+        <callback name="_clutter_meta2">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_meta3" introspectable="0">
+        <callback name="_clutter_meta3">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_meta4" introspectable="0">
+        <callback name="_clutter_meta4">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_meta5" introspectable="0">
+        <callback name="_clutter_meta5">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_meta6" introspectable="0">
+        <callback name="_clutter_meta6">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_meta7" introspectable="0">
+        <callback name="_clutter_meta7">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+    </record>
+    <record name="ActorMetaPrivate"
+            c:type="ClutterActorMetaPrivate"
+            disguised="1">
+    </record>
+    <record name="ActorPrivate" c:type="ClutterActorPrivate" disguised="1">
+    </record>
+    <constant name="AddFavorite" value="269025081">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Adiaeresis" value="196">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Agrave" value="192">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Ahook" value="16785058">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <enumeration name="AlignAxis"
+                 version="1.4"
+                 glib:type-name="ClutterAlignAxis"
+                 glib:get-type="clutter_align_axis_get_type"
+                 c:type="ClutterAlignAxis">
+      <doc xml:whitespace="preserve">Specifies the axis on which #ClutterAlignConstraint should maintain
+the alignment</doc>
+      <member name="x_axis"
+              value="0"
+              c:identifier="CLUTTER_ALIGN_X_AXIS"
+              glib:nick="x-axis"/>
+      <member name="y_axis"
+              value="1"
+              c:identifier="CLUTTER_ALIGN_Y_AXIS"
+              glib:nick="y-axis"/>
+    </enumeration>
+    <class name="AlignConstraint"
+           c:symbol-prefix="align_constraint"
+           c:type="ClutterAlignConstraint"
+           version="1.4"
+           parent="Constraint"
+           glib:type-name="ClutterAlignConstraint"
+           glib:get-type="clutter_align_constraint_get_type">
+      <doc xml:whitespace="preserve">&lt;structname&gt;ClutterAlignConstraint&lt;/structname&gt; is an opaque structure
+whose members cannot be directly accesses</doc>
+      <constructor name="new"
+                   c:identifier="clutter_align_constraint_new"
+                   version="1.4">
+        <doc xml:whitespace="preserve">Creates a new constraint, aligning a #ClutterActor's position with
+regards of the size of the actor to @source, with the given
+alignment @factor</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the newly created #ClutterAlignConstraint</doc>
+          <type name="Constraint" c:type="ClutterConstraint*"/>
+        </return-value>
+        <parameters>
+          <parameter name="source" transfer-ownership="none" allow-none="1">
+            <doc xml:whitespace="preserve">the #ClutterActor to use as the source of the alignment, or %NULL</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+          <parameter name="axis" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the axis to be used to compute the alignment</doc>
+            <type name="AlignAxis" c:type="ClutterAlignAxis"/>
+          </parameter>
+          <parameter name="factor" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the alignment factor, between 0.0 and 1.0</doc>
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <method name="get_align_axis"
+              c:identifier="clutter_align_constraint_get_align_axis"
+              version="1.4">
+        <doc xml:whitespace="preserve">Retrieves the value set using clutter_align_constraint_set_align_axis()</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the alignment axis</doc>
+          <type name="AlignAxis" c:type="ClutterAlignAxis"/>
+        </return-value>
+      </method>
+      <method name="get_factor"
+              c:identifier="clutter_align_constraint_get_factor"
+              version="1.4">
+        <doc xml:whitespace="preserve">Retrieves the factor set using clutter_align_constraint_set_factor()</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the alignment factor</doc>
+          <type name="gfloat" c:type="gfloat"/>
+        </return-value>
+      </method>
+      <method name="get_source"
+              c:identifier="clutter_align_constraint_get_source"
+              version="1.4">
+        <doc xml:whitespace="preserve">Retrieves the source of the alignment
+of the alignment</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the #ClutterActor used as the source</doc>
+          <type name="Actor" c:type="ClutterActor*"/>
+        </return-value>
+      </method>
+      <method name="set_align_axis"
+              c:identifier="clutter_align_constraint_set_align_axis"
+              version="1.4">
+        <doc xml:whitespace="preserve">Sets the axis to which the alignment refers to</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="axis" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the axis to which the alignment refers to</doc>
+            <type name="AlignAxis" c:type="ClutterAlignAxis"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_factor"
+              c:identifier="clutter_align_constraint_set_factor"
+              version="1.4">
+        <doc xml:whitespace="preserve">Sets the alignment factor of the constraint
+The factor depends on the #ClutterAlignConstraint:align-axis property
+and it is a value between 0.0 (meaning left, when
+#ClutterAlignConstraint:align-axis is set to %CLUTTER_ALIGN_X_AXIS; or
+meaning top, when #ClutterAlignConstraint:align-axis is set to
+%CLUTTER_ALIGN_Y_AXIS) and 1.0 (meaning right, when
+#ClutterAlignConstraint:align-axis is set to %CLUTTER_ALIGN_X_AXIS; or
+meaning bottom, when #ClutterAlignConstraint:align-axis is set to
+%CLUTTER_ALIGN_Y_AXIS). A value of 0.5 aligns in the middle in either
+cases</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="factor" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the alignment factor, between 0.0 and 1.0</doc>
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_source"
+              c:identifier="clutter_align_constraint_set_source"
+              version="1.4">
+        <doc xml:whitespace="preserve">Sets the source of the alignment constraint</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="source" transfer-ownership="none" allow-none="1">
+            <doc xml:whitespace="preserve">a #ClutterActor, or %NULL to unset the source</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <property name="align-axis"
+                version="1.4"
+                writable="1"
+                construct="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">The axis to be used to compute the alignment</doc>
+        <type name="AlignAxis"/>
+      </property>
+      <property name="factor"
+                version="1.4"
+                writable="1"
+                construct="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">The alignment factor, as a normalized value between 0.0 and 1.0
+The factor depends on the #ClutterAlignConstraint:align-axis property:
+with an align-axis value of %CLUTTER_ALIGN_X_AXIS, 0.0 means left and
+1.0 means right; with a value of %CLUTTER_ALIGN_Y_AXIS, 0.0 means top
+and 1.0 means bottom.</doc>
+        <type name="gfloat"/>
+      </property>
+      <property name="source"
+                version="1.4"
+                writable="1"
+                construct="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">The #ClutterActor used as the source for the alignment</doc>
+        <type name="Actor"/>
+      </property>
+    </class>
+    <bitfield name="AllocationFlags"
+              version="1.0"
+              glib:type-name="ClutterAllocationFlags"
+              glib:get-type="clutter_allocation_flags_get_type"
+              c:type="ClutterAllocationFlags">
+      <doc xml:whitespace="preserve">Flags passed to the #ClutterActor::allocate() virtual function and
+to the clutter_actor_allocate() function</doc>
+      <member name="allocation_none"
+              value="0"
+              c:identifier="CLUTTER_ALLOCATION_NONE"
+              glib:nick="allocation-none"/>
+      <member name="absolute_origin_changed"
+              value="2"
+              c:identifier="CLUTTER_ABSOLUTE_ORIGIN_CHANGED"
+              glib:nick="absolute-origin-changed"/>
+    </bitfield>
+    <class name="Alpha"
+           c:symbol-prefix="alpha"
+           c:type="ClutterAlpha"
+           version="0.2"
+           parent="GObject.InitiallyUnowned"
+           glib:type-name="ClutterAlpha"
+           glib:get-type="clutter_alpha_get_type"
+           glib:type-struct="AlphaClass">
+      <doc xml:whitespace="preserve">#ClutterAlpha combines a #ClutterTimeline and a function.
+The contents of the #ClutterAlpha structure are private and should
+only be accessed using the provided API.</doc>
+      <implements name="Scriptable"/>
+      <constructor name="new" c:identifier="clutter_alpha_new" version="0.2">
+        <doc xml:whitespace="preserve">Creates a new #ClutterAlpha instance.  You must set a function
+to compute the alpha value using clutter_alpha_set_func() and
+bind a #ClutterTimeline object to the #ClutterAlpha instance
+using clutter_alpha_set_timeline().
+You should use the newly created #ClutterAlpha instance inside
+a #ClutterBehaviour object.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the newly created empty #ClutterAlpha instance.</doc>
+          <type name="Alpha" c:type="ClutterAlpha*"/>
+        </return-value>
+      </constructor>
+      <constructor name="new_full"
+                   c:identifier="clutter_alpha_new_full"
+                   version="1.0">
+        <doc xml:whitespace="preserve">Creates a new #ClutterAlpha instance and sets the timeline
+and animation mode.
+See also clutter_alpha_set_timeline() and clutter_alpha_set_mode().</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the newly created #ClutterAlpha</doc>
+          <type name="Alpha" c:type="ClutterAlpha*"/>
+        </return-value>
+        <parameters>
+          <parameter name="timeline" transfer-ownership="none">
+            <doc xml:whitespace="preserve">#ClutterTimeline timeline</doc>
+            <type name="Timeline" c:type="ClutterTimeline*"/>
+          </parameter>
+          <parameter name="mode" transfer-ownership="none">
+            <doc xml:whitespace="preserve">animation mode</doc>
+            <type name="gulong" c:type="gulong"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <constructor name="new_with_func"
+                   c:identifier="clutter_alpha_new_with_func"
+                   version="1.0">
+        <doc xml:whitespace="preserve">Creates a new #ClutterAlpha instances and sets the timeline
+and the alpha function.
+This function will not register @func as a global alpha function.
+See also clutter_alpha_set_timeline() and clutter_alpha_set_func().</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the newly created #ClutterAlpha</doc>
+          <type name="Alpha" c:type="ClutterAlpha*"/>
+        </return-value>
+        <parameters>
+          <parameter name="timeline" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #ClutterTimeline</doc>
+            <type name="Timeline" c:type="ClutterTimeline*"/>
+          </parameter>
+          <parameter name="func"
+                     transfer-ownership="none"
+                     scope="notified"
+                     closure="2"
+                     destroy="3">
+            <doc xml:whitespace="preserve">a #ClutterAlphaFunc</doc>
+            <type name="AlphaFunc" c:type="ClutterAlphaFunc"/>
+          </parameter>
+          <parameter name="data" transfer-ownership="none">
+            <doc xml:whitespace="preserve">data to pass to the function, or %NULL</doc>
+            <type name="gpointer" c:type="gpointer"/>
+          </parameter>
+          <parameter name="destroy" transfer-ownership="none" scope="async">
+            <doc xml:whitespace="preserve">function to call when removing the alpha function, or %NULL</doc>
+            <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <function name="register_closure"
+                c:identifier="clutter_alpha_register_closure"
+                shadows="register_func"
+                version="1.0">
+        <doc xml:whitespace="preserve">#GClosure variant of clutter_alpha_register_func().
+Registers a global alpha function and returns its logical id
+to be used by clutter_alpha_set_mode() or by #ClutterAnimation.
+The logical id is always greater than %CLUTTER_ANIMATION_LAST.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the logical id of the alpha function</doc>
+          <type name="gulong" c:type="gulong"/>
+        </return-value>
+        <parameters>
+          <parameter name="closure" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GClosure</doc>
+            <type name="GObject.Closure" c:type="GClosure*"/>
+          </parameter>
+        </parameters>
+      </function>
+      <function name="register_func"
+                c:identifier="clutter_alpha_register_func"
+                shadowed-by="register_closure"
+                version="1.0"
+                introspectable="0">
+        <doc xml:whitespace="preserve">Registers a global alpha function and returns its logical id
+to be used by clutter_alpha_set_mode() or by #ClutterAnimation.
+The logical id is always greater than %CLUTTER_ANIMATION_LAST.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the logical id of the alpha function</doc>
+          <type name="gulong" c:type="gulong"/>
+        </return-value>
+        <parameters>
+          <parameter name="func" transfer-ownership="none" closure="1">
+            <doc xml:whitespace="preserve">a #ClutterAlphaFunc</doc>
+            <type name="AlphaFunc" c:type="ClutterAlphaFunc"/>
+          </parameter>
+          <parameter name="data" transfer-ownership="none">
+            <doc xml:whitespace="preserve">user data to pass to @func, or %NULL</doc>
+            <type name="gpointer" c:type="gpointer"/>
+          </parameter>
+        </parameters>
+      </function>
+      <method name="get_alpha"
+              c:identifier="clutter_alpha_get_alpha"
+              version="0.2">
+        <doc xml:whitespace="preserve">Query the current alpha value.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">The current alpha value for the alpha</doc>
+          <type name="gdouble" c:type="gdouble"/>
+        </return-value>
+      </method>
+      <method name="get_mode"
+              c:identifier="clutter_alpha_get_mode"
+              version="1.0">
+        <doc xml:whitespace="preserve">Retrieves the #ClutterAnimationMode used by @alpha.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the animation mode</doc>
+          <type name="gulong" c:type="gulong"/>
+        </return-value>
+      </method>
+      <method name="get_timeline"
+              c:identifier="clutter_alpha_get_timeline"
+              version="0.2">
+        <doc xml:whitespace="preserve">Gets the #ClutterTimeline bound to @alpha.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #ClutterTimeline instance</doc>
+          <type name="Timeline" c:type="ClutterTimeline*"/>
+        </return-value>
+      </method>
+      <method name="set_closure"
+              c:identifier="clutter_alpha_set_closure"
+              version="0.8">
+        <doc xml:whitespace="preserve">Sets the #GClosure used to compute the alpha value at each
+frame of the #ClutterTimeline bound to @alpha.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="closure" transfer-ownership="none">
+            <doc xml:whitespace="preserve">A #GClosure</doc>
+            <type name="GObject.Closure" c:type="GClosure*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_func"
+              c:identifier="clutter_alpha_set_func"
+              version="0.2">
+        <doc xml:whitespace="preserve">Sets the #ClutterAlphaFunc function used to compute
+the alpha value at each frame of the #ClutterTimeline
+bound to @alpha.
+This function will not register @func as a global alpha function.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="func"
+                     transfer-ownership="none"
+                     scope="notified"
+                     closure="1"
+                     destroy="2">
+            <doc xml:whitespace="preserve">A #ClutterAlphaFunc</doc>
+            <type name="AlphaFunc" c:type="ClutterAlphaFunc"/>
+          </parameter>
+          <parameter name="data" transfer-ownership="none">
+            <doc xml:whitespace="preserve">user data to be passed to the alpha function, or %NULL</doc>
+            <type name="gpointer" c:type="gpointer"/>
+          </parameter>
+          <parameter name="destroy" transfer-ownership="none" scope="async">
+            <doc xml:whitespace="preserve">notify function used when disposing the alpha function</doc>
+            <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_mode"
+              c:identifier="clutter_alpha_set_mode"
+              version="1.0">
+        <doc xml:whitespace="preserve">Sets the progress function of @alpha using the symbolic value
+of @mode, as taken by the #ClutterAnimationMode enumeration or
+using the value returned by clutter_alpha_register_func().</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="mode" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #ClutterAnimationMode</doc>
+            <type name="gulong" c:type="gulong"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_timeline"
+              c:identifier="clutter_alpha_set_timeline"
+              version="0.2">
+        <doc xml:whitespace="preserve">Binds @alpha to @timeline.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="timeline" transfer-ownership="none">
+            <doc xml:whitespace="preserve">A #ClutterTimeline</doc>
+            <type name="Timeline" c:type="ClutterTimeline*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <property name="alpha" version="0.2" transfer-ownership="none">
+        <doc xml:whitespace="preserve">The alpha value as computed by the alpha function. The linear
+interval is 0.0 to 1.0, but the Alpha allows overshooting by
+one unit in each direction, so the valid interval is -1.0 to 2.0.</doc>
+        <type name="gdouble"/>
+      </property>
+      <property name="mode"
+                version="1.0"
+                writable="1"
+                construct="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">The progress function logical id - either a value from the
+#ClutterAnimationMode enumeration or a value returned by
+clutter_alpha_register_func().
+If %CLUTTER_CUSTOM_MODE is used then the function set using
+clutter_alpha_set_closure() or clutter_alpha_set_func()
+will be used.</doc>
+        <type name="gulong"/>
+      </property>
+      <property name="timeline"
+                version="0.2"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">A #ClutterTimeline instance used to drive the alpha function.</doc>
+        <type name="Timeline"/>
+      </property>
+      <field name="parent">
+        <type name="GObject.InitiallyUnowned" c:type="GInitiallyUnowned"/>
+      </field>
+      <field name="priv">
+        <type name="AlphaPrivate" c:type="ClutterAlphaPrivate*"/>
+      </field>
+    </class>
+    <record name="AlphaClass"
+            c:type="ClutterAlphaClass"
+            glib:is-gtype-struct-for="Alpha"
+            version="0.2">
+      <doc xml:whitespace="preserve">Base class for #ClutterAlpha</doc>
+      <field name="parent_class">
+        <type name="GObject.InitiallyUnownedClass"
+              c:type="GInitiallyUnownedClass"/>
+      </field>
+      <field name="_clutter_alpha_1" introspectable="0">
+        <callback name="_clutter_alpha_1">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_alpha_2" introspectable="0">
+        <callback name="_clutter_alpha_2">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_alpha_3" introspectable="0">
+        <callback name="_clutter_alpha_3">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_alpha_4" introspectable="0">
+        <callback name="_clutter_alpha_4">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_alpha_5" introspectable="0">
+        <callback name="_clutter_alpha_5">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+    </record>
+    <callback name="AlphaFunc" c:type="ClutterAlphaFunc" version="0.2">
+      <doc xml:whitespace="preserve">A function returning a value depending on the position of
+the #ClutterTimeline bound to @alpha.</doc>
+      <return-value transfer-ownership="none">
+        <doc xml:whitespace="preserve">a floating point value</doc>
+        <type name="gdouble" c:type="gdouble"/>
+      </return-value>
+      <parameters>
+        <parameter name="alpha" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #ClutterAlpha</doc>
+          <type name="Alpha" c:type="ClutterAlpha*"/>
+        </parameter>
+        <parameter name="user_data" transfer-ownership="none" closure="1">
+          <doc xml:whitespace="preserve">user data passed to the function</doc>
+          <type name="gpointer" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <record name="AlphaPrivate" c:type="ClutterAlphaPrivate" disguised="1">
+    </record>
+    <constant name="Alt_L" value="65513">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Alt_R" value="65514">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Amacron" value="960">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <interface name="Animatable"
+               c:symbol-prefix="animatable"
+               c:type="ClutterAnimatable"
+               version="1.0"
+               glib:type-name="ClutterAnimatable"
+               glib:get-type="clutter_animatable_get_type"
+               glib:type-struct="AnimatableIface">
+      <doc xml:whitespace="preserve">#ClutterAnimatable is an opaque structure whose members cannot be directly
+accessed</doc>
+      <virtual-method name="animate_property"
+                      invoker="animate_property"
+                      version="1.0">
+        <doc xml:whitespace="preserve">Calls the animate_property() virtual function for @animatable.
+The @initial_value and @final_value #GValue&lt;!-- --&gt;s must contain
+the same type; @value must have been initialized to the same
+type of @initial_value and @final_value.
+All implementation of the #ClutterAnimatable interface must
+implement this function.
+be applied to the #ClutterAnimatable, and %FALSE otherwise</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if the value has been validated and can</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="animation" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #ClutterAnimation</doc>
+            <type name="Animation" c:type="ClutterAnimation*"/>
+          </parameter>
+          <parameter name="property_name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the name of the animated property</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="initial_value" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the initial value of the animation interval</doc>
+            <type name="GObject.Value" c:type="GValue*"/>
+          </parameter>
+          <parameter name="final_value" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the final value of the animation interval</doc>
+            <type name="GObject.Value" c:type="GValue*"/>
+          </parameter>
+          <parameter name="progress" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the progress factor</doc>
+            <type name="gdouble" c:type="gdouble"/>
+          </parameter>
+          <parameter name="value" transfer-ownership="none">
+            <doc xml:whitespace="preserve">return location for the animation value</doc>
+            <type name="GObject.Value" c:type="GValue*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="find_property"
+                      invoker="find_property"
+                      version="1.4">
+        <doc xml:whitespace="preserve">Finds the #GParamSpec for @property_name
+or %NULL</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">The #GParamSpec for the given property</doc>
+          <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
+        </return-value>
+        <parameters>
+          <parameter name="property_name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the name of the animatable property to find</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="get_initial_state"
+                      invoker="get_initial_state"
+                      version="1.4">
+        <doc xml:whitespace="preserve">Retrieves the current state of @property_name and sets @value with it</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="property_name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the name of the animatable property to retrieve</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="value" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GValue initialized to the type of the property to retrieve</doc>
+            <type name="GObject.Value" c:type="GValue*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="set_final_state"
+                      invoker="set_final_state"
+                      version="1.4">
+        <doc xml:whitespace="preserve">Sets the current state of @property_name to @value</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="property_name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the name of the animatable property to set</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="value" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the value of the animatable property to set</doc>
+            <type name="GObject.Value" c:type="GValue*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <method name="animate_property"
+              c:identifier="clutter_animatable_animate_property"
+              version="1.0">
+        <doc xml:whitespace="preserve">Calls the animate_property() virtual function for @animatable.
+The @initial_value and @final_value #GValue&lt;!-- --&gt;s must contain
+the same type; @value must have been initialized to the same
+type of @initial_value and @final_value.
+All implementation of the #ClutterAnimatable interface must
+implement this function.
+be applied to the #ClutterAnimatable, and %FALSE otherwise</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if the value has been validated and can</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="animation" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #ClutterAnimation</doc>
+            <type name="Animation" c:type="ClutterAnimation*"/>
+          </parameter>
+          <parameter name="property_name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the name of the animated property</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="initial_value" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the initial value of the animation interval</doc>
+            <type name="GObject.Value" c:type="GValue*"/>
+          </parameter>
+          <parameter name="final_value" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the final value of the animation interval</doc>
+            <type name="GObject.Value" c:type="GValue*"/>
+          </parameter>
+          <parameter name="progress" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the progress factor</doc>
+            <type name="gdouble" c:type="gdouble"/>
+          </parameter>
+          <parameter name="value" transfer-ownership="none">
+            <doc xml:whitespace="preserve">return location for the animation value</doc>
+            <type name="GObject.Value" c:type="GValue*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="find_property"
+              c:identifier="clutter_animatable_find_property"
+              version="1.4">
+        <doc xml:whitespace="preserve">Finds the #GParamSpec for @property_name
+or %NULL</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">The #GParamSpec for the given property</doc>
+          <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
+        </return-value>
+        <parameters>
+          <parameter name="property_name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the name of the animatable property to find</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_initial_state"
+              c:identifier="clutter_animatable_get_initial_state"
+              version="1.4">
+        <doc xml:whitespace="preserve">Retrieves the current state of @property_name and sets @value with it</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="property_name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the name of the animatable property to retrieve</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="value" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GValue initialized to the type of the property to retrieve</doc>
+            <type name="GObject.Value" c:type="GValue*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_final_state"
+              c:identifier="clutter_animatable_set_final_state"
+              version="1.4">
+        <doc xml:whitespace="preserve">Sets the current state of @property_name to @value</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="property_name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the name of the animatable property to set</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="value" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the value of the animatable property to set</doc>
+            <type name="GObject.Value" c:type="GValue*"/>
+          </parameter>
+        </parameters>
+      </method>
+    </interface>
+    <record name="AnimatableIface"
+            c:type="ClutterAnimatableIface"
+            glib:is-gtype-struct-for="Animatable"
+            version="1.0">
+      <doc xml:whitespace="preserve">Base interface for #GObject&lt;!-- --&gt;s that can be animated by a
+a #ClutterAnimation.</doc>
+      <field name="parent_iface">
+        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
+      </field>
+      <field name="animate_property">
+        <callback name="animate_property">
+          <return-value transfer-ownership="none">
+            <doc xml:whitespace="preserve">%TRUE if the value has been validated and can</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="animatable" transfer-ownership="none">
+              <type name="Animatable" c:type="ClutterAnimatable*"/>
+            </parameter>
+            <parameter name="animation" transfer-ownership="none">
+              <doc xml:whitespace="preserve">a #ClutterAnimation</doc>
+              <type name="Animation" c:type="ClutterAnimation*"/>
+            </parameter>
+            <parameter name="property_name" transfer-ownership="none">
+              <doc xml:whitespace="preserve">the name of the animated property</doc>
+              <type name="utf8" c:type="gchar*"/>
+            </parameter>
+            <parameter name="initial_value" transfer-ownership="none">
+              <doc xml:whitespace="preserve">the initial value of the animation interval</doc>
+              <type name="GObject.Value" c:type="GValue*"/>
+            </parameter>
+            <parameter name="final_value" transfer-ownership="none">
+              <doc xml:whitespace="preserve">the final value of the animation interval</doc>
+              <type name="GObject.Value" c:type="GValue*"/>
+            </parameter>
+            <parameter name="progress" transfer-ownership="none">
+              <doc xml:whitespace="preserve">the progress factor</doc>
+              <type name="gdouble" c:type="gdouble"/>
+            </parameter>
+            <parameter name="value" transfer-ownership="none">
+              <doc xml:whitespace="preserve">return location for the animation value</doc>
+              <type name="GObject.Value" c:type="GValue*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="find_property">
+        <callback name="find_property">
+          <return-value transfer-ownership="none">
+            <doc xml:whitespace="preserve">The #GParamSpec for the given property</doc>
+            <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
+          </return-value>
+          <parameters>
+            <parameter name="animatable" transfer-ownership="none">
+              <type name="Animatable" c:type="ClutterAnimatable*"/>
+            </parameter>
+            <parameter name="property_name" transfer-ownership="none">
+              <doc xml:whitespace="preserve">the name of the animatable property to find</doc>
+              <type name="utf8" c:type="gchar*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="get_initial_state">
+        <callback name="get_initial_state">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="animatable" transfer-ownership="none">
+              <type name="Animatable" c:type="ClutterAnimatable*"/>
+            </parameter>
+            <parameter name="property_name" transfer-ownership="none">
+              <doc xml:whitespace="preserve">the name of the animatable property to retrieve</doc>
+              <type name="utf8" c:type="gchar*"/>
+            </parameter>
+            <parameter name="value" transfer-ownership="none">
+              <doc xml:whitespace="preserve">a #GValue initialized to the type of the property to retrieve</doc>
+              <type name="GObject.Value" c:type="GValue*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="set_final_state">
+        <callback name="set_final_state">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="animatable" transfer-ownership="none">
+              <type name="Animatable" c:type="ClutterAnimatable*"/>
+            </parameter>
+            <parameter name="property_name" transfer-ownership="none">
+              <doc xml:whitespace="preserve">the name of the animatable property to set</doc>
+              <type name="utf8" c:type="gchar*"/>
+            </parameter>
+            <parameter name="value" transfer-ownership="none">
+              <doc xml:whitespace="preserve">the value of the animatable property to set</doc>
+              <type name="GObject.Value" c:type="GValue*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+    </record>
+    <class name="Animation"
+           c:symbol-prefix="animation"
+           c:type="ClutterAnimation"
+           version="1.0"
+           parent="GObject.Object"
+           glib:type-name="ClutterAnimation"
+           glib:get-type="clutter_animation_get_type"
+           glib:type-struct="AnimationClass">
+      <doc xml:whitespace="preserve">The #ClutterAnimation structure contains only private data and should
+be accessed using the provided functions.</doc>
+      <implements name="Scriptable"/>
+      <constructor name="new"
+                   c:identifier="clutter_animation_new"
+                   version="1.0">
+        <doc xml:whitespace="preserve">Creates a new #ClutterAnimation instance. You should set the
+#GObject to be animated using clutter_animation_set_object(),
+set the duration with clutter_animation_set_duration() and the
+easing mode using clutter_animation_set_mode().
+Use clutter_animation_bind() or clutter_animation_bind_interval()
+to define the properties to be animated. The interval and the
+animated properties can be updated at runtime.
+The clutter_actor_animate() and relative family of functions provide
+an easy way to animate a #ClutterActor and automatically manage the
+lifetime of a #ClutterAnimation instance, so you should consider using
+those functions instead of manually creating an animation.
+to release the associated resources</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">the newly created #ClutterAnimation. Use g_object_unref()</doc>
+          <type name="Animation" c:type="ClutterAnimation*"/>
+        </return-value>
+      </constructor>
+      <method name="bind" c:identifier="clutter_animation_bind" version="1.0">
+        <doc xml:whitespace="preserve">Adds a single property with name @property_name to the
+animation @animation.  For more information about animations,
+see clutter_actor_animate().
+This method returns the animation primarily to make chained
+calls convenient in language bindings.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">The animation itself.</doc>
+          <type name="Animation" c:type="ClutterAnimation*"/>
+        </return-value>
+        <parameters>
+          <parameter name="property_name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the property to control</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="final" transfer-ownership="none">
+            <doc xml:whitespace="preserve">The final value of the property</doc>
+            <type name="GObject.Value" c:type="GValue*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="bind_interval"
+              c:identifier="clutter_animation_bind_interval"
+              version="1.0">
+        <doc xml:whitespace="preserve">Binds @interval to the @property_name of the #GObject
+attached to @animation. The #ClutterAnimation will take
+ownership of the passed #ClutterInterval.  For more information
+about animations, see clutter_actor_animate().
+If you need to update the interval instance use
+clutter_animation_update_property() instead.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">The animation itself.</doc>
+          <type name="Animation" c:type="ClutterAnimation*"/>
+        </return-value>
+        <parameters>
+          <parameter name="property_name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the property to control</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="interval" transfer-ownership="full">
+            <doc xml:whitespace="preserve">a #ClutterInterval</doc>
+            <type name="Interval" c:type="ClutterInterval*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="completed"
+              c:identifier="clutter_animation_completed"
+              version="1.0">
+        <doc xml:whitespace="preserve">Emits the ::completed signal on @animation
+When using this function with a #ClutterAnimation created
+by the clutter_actor_animate() family of functions, @animation
+will be unreferenced and it will not be valid anymore,
+unless g_object_ref() was called before calling this function
+or unless a reference was taken inside a handler for the
+#ClutterAnimation::completed signal</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </method>
+      <method name="get_alpha"
+              c:identifier="clutter_animation_get_alpha"
+              version="1.0">
+        <doc xml:whitespace="preserve">Retrieves the #ClutterAlpha used by @animation.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the alpha object used by the animation</doc>
+          <type name="Alpha" c:type="ClutterAlpha*"/>
+        </return-value>
+      </method>
+      <method name="get_duration"
+              c:identifier="clutter_animation_get_duration"
+              version="1.0">
+        <doc xml:whitespace="preserve">Retrieves the duration of @animation, in milliseconds.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the duration of the animation</doc>
+          <type name="guint" c:type="guint"/>
+        </return-value>
+      </method>
+      <method name="get_interval"
+              c:identifier="clutter_animation_get_interval"
+              version="1.0">
+        <doc xml:whitespace="preserve">Retrieves the #ClutterInterval associated to @property_name
+inside @animation.
+property with the same name was found. The returned interval is
+owned by the #ClutterAnimation and should not be unreferenced</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #ClutterInterval or %NULL if no</doc>
+          <type name="Interval" c:type="ClutterInterval*"/>
+        </return-value>
+        <parameters>
+          <parameter name="property_name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">name of the property</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_loop"
+              c:identifier="clutter_animation_get_loop"
+              version="1.0">
+        <doc xml:whitespace="preserve">Retrieves whether @animation is looping.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if the animation is looping</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+      </method>
+      <method name="get_mode"
+              c:identifier="clutter_animation_get_mode"
+              version="1.0">
+        <doc xml:whitespace="preserve">Retrieves the animation mode of @animation, as set by
+clutter_animation_set_mode().</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the mode for the animation</doc>
+          <type name="gulong" c:type="gulong"/>
+        </return-value>
+      </method>
+      <method name="get_object"
+              c:identifier="clutter_animation_get_object"
+              version="1.0">
+        <doc xml:whitespace="preserve">Retrieves the #GObject attached to @animation.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #GObject</doc>
+          <type name="GObject.Object" c:type="GObject*"/>
+        </return-value>
+      </method>
+      <method name="get_timeline"
+              c:identifier="clutter_animation_get_timeline"
+              version="1.0">
+        <doc xml:whitespace="preserve">Retrieves the #ClutterTimeline used by @animation</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the timeline used by the animation</doc>
+          <type name="Timeline" c:type="ClutterTimeline*"/>
+        </return-value>
+      </method>
+      <method name="has_property"
+              c:identifier="clutter_animation_has_property"
+              version="1.0">
+        <doc xml:whitespace="preserve">Checks whether @animation is controlling @property_name.
+#ClutterAnimation, %FALSE otherwise</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if the property is animated by the</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="property_name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">name of the property</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_alpha"
+              c:identifier="clutter_animation_set_alpha"
+              version="1.0">
+        <doc xml:whitespace="preserve">Sets @alpha as the #ClutterAlpha used by @animation.
+If @alpha is not %NULL, the #ClutterAnimation will take ownership
+of the #ClutterAlpha instance.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="alpha" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #ClutterAlpha, or %NULL to unset the current #ClutterAlpha</doc>
+            <type name="Alpha" c:type="ClutterAlpha*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_duration"
+              c:identifier="clutter_animation_set_duration"
+              version="1.0">
+        <doc xml:whitespace="preserve">Sets the duration of @animation in milliseconds.
+This function will set #ClutterAnimation:alpha and
+#ClutterAnimation:timeline if needed.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="msecs" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the duration in milliseconds</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_loop"
+              c:identifier="clutter_animation_set_loop"
+              version="1.0">
+        <doc xml:whitespace="preserve">Sets whether @animation should loop over itself once finished.
+A looping #ClutterAnimation will not emit the #ClutterAnimation::completed
+signal when finished.
+This function will set #ClutterAnimation:alpha and
+#ClutterAnimation:timeline if needed.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="loop" transfer-ownership="none">
+            <doc xml:whitespace="preserve">%TRUE if the animation should loop</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_mode"
+              c:identifier="clutter_animation_set_mode"
+              version="1.0">
+        <doc xml:whitespace="preserve">Sets the animation @mode of @animation. The animation @mode is
+a logical id, either coming from the #ClutterAnimationMode enumeration
+or the return value of clutter_alpha_register_func().
+This function will also set #ClutterAnimation:alpha if needed.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="mode" transfer-ownership="none">
+            <doc xml:whitespace="preserve">an animation mode logical id</doc>
+            <type name="gulong" c:type="gulong"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_object"
+              c:identifier="clutter_animation_set_object"
+              version="1.0">
+        <doc xml:whitespace="preserve">Attaches @animation to @object. The #ClutterAnimation will take a
+reference on @object.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="object" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GObject</doc>
+            <type name="GObject.Object" c:type="GObject*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_timeline"
+              c:identifier="clutter_animation_set_timeline"
+              version="1.0">
+        <doc xml:whitespace="preserve">Sets the #ClutterTimeline used by @animation.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="timeline" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #ClutterTimeline, or %NULL to unset the current #ClutterTimeline</doc>
+            <type name="Timeline" c:type="ClutterTimeline*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="unbind_property"
+              c:identifier="clutter_animation_unbind_property"
+              version="1.0">
+        <doc xml:whitespace="preserve">Removes @property_name from the list of animated properties.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="property_name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">name of the property</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="update"
+              c:identifier="clutter_animation_update"
+              version="1.0">
+        <doc xml:whitespace="preserve">Updates the @final value of the interval for @property_name</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">The animation itself.</doc>
+          <type name="Animation" c:type="ClutterAnimation*"/>
+        </return-value>
+        <parameters>
+          <parameter name="property_name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">name of the property</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="final" transfer-ownership="none">
+            <doc xml:whitespace="preserve">The final value of the property</doc>
+            <type name="GObject.Value" c:type="GValue*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="update_interval"
+              c:identifier="clutter_animation_update_interval"
+              version="1.0">
+        <doc xml:whitespace="preserve">Changes the @interval for @property_name. The #ClutterAnimation
+will take ownership of the passed #ClutterInterval.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="property_name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">name of the property</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="interval" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #ClutterInterval</doc>
+            <type name="Interval" c:type="ClutterInterval*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <property name="alpha"
+                version="1.0"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">The #ClutterAlpha used by the animation.</doc>
+        <type name="Alpha"/>
+      </property>
+      <property name="duration"
+                version="1.0"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">The duration of the animation, expressed in milliseconds.</doc>
+        <type name="guint"/>
+      </property>
+      <property name="loop"
+                version="1.0"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">Whether the animation should loop.</doc>
+        <type name="gboolean"/>
+      </property>
+      <property name="mode"
+                version="1.0"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">The animation mode, either a value from #ClutterAnimationMode
+or a value returned by clutter_alpha_register_func(). The
+default value is %CLUTTER_LINEAR.</doc>
+        <type name="gulong"/>
+      </property>
+      <property name="object"
+                version="1.0"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">The #GObject to which the animation applies.</doc>
+        <type name="GObject.Object"/>
+      </property>
+      <property name="timeline"
+                version="1.0"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">The #ClutterTimeline used by the animation.</doc>
+        <type name="Timeline"/>
+      </property>
+      <field name="parent_instance">
+        <type name="GObject.Object" c:type="GObject"/>
+      </field>
+      <field name="priv">
+        <type name="AnimationPrivate" c:type="ClutterAnimationPrivate*"/>
+      </field>
+      <glib:signal name="completed" version="1.0">
+        <doc xml:whitespace="preserve">The ::completed signal is emitted once the animation has
+been completed.
+The @animation instance is guaranteed to be valid for the entire
+duration of the signal emission chain.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none"/>
+        </return-value>
+      </glib:signal>
+      <glib:signal name="started" version="1.0">
+        <doc xml:whitespace="preserve">The ::started signal is emitted once the animation has been
+started</doc>
+        <return-value transfer-ownership="none">
+          <type name="none"/>
+        </return-value>
+      </glib:signal>
+    </class>
+    <record name="AnimationClass"
+            c:type="ClutterAnimationClass"
+            glib:is-gtype-struct-for="Animation"
+            version="1.0">
+      <doc xml:whitespace="preserve">The #ClutterAnimationClass structure contains only private data and
+should be accessed using the provided functions.</doc>
+      <field name="parent_class">
+        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
+      </field>
+      <field name="started">
+        <callback name="started">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="animation" transfer-ownership="none">
+              <type name="Animation" c:type="ClutterAnimation*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="completed">
+        <callback name="completed">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="animation" transfer-ownership="none">
+              <type name="Animation" c:type="ClutterAnimation*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="_clutter_reserved1" introspectable="0">
+        <callback name="_clutter_reserved1">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_reserved2" introspectable="0">
+        <callback name="_clutter_reserved2">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_reserved3" introspectable="0">
+        <callback name="_clutter_reserved3">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_reserved4" introspectable="0">
+        <callback name="_clutter_reserved4">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_reserved5" introspectable="0">
+        <callback name="_clutter_reserved5">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_reserved6" introspectable="0">
+        <callback name="_clutter_reserved6">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_reserved7" introspectable="0">
+        <callback name="_clutter_reserved7">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_reserved8" introspectable="0">
+        <callback name="_clutter_reserved8">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+    </record>
+    <enumeration name="AnimationMode"
+                 version="1.0"
+                 glib:type-name="ClutterAnimationMode"
+                 glib:get-type="clutter_animation_mode_get_type"
+                 c:type="ClutterAnimationMode">
+      <doc xml:whitespace="preserve">The animation modes used by #ClutterAlpha and #ClutterAnimation. This
+enumeration can be expanded in later versions of Clutter. See the
+#ClutterAlpha documentation for a graph of all the animation modes.
+Every global alpha function registered using clutter_alpha_register_func()
+or clutter_alpha_register_closure() will have a logical id greater than
+%CLUTTER_ANIMATION_LAST.</doc>
+      <member name="custom_mode"
+              value="0"
+              c:identifier="CLUTTER_CUSTOM_MODE"
+              glib:nick="custom-mode"/>
+      <member name="linear"
+              value="1"
+              c:identifier="CLUTTER_LINEAR"
+              glib:nick="linear"/>
+      <member name="ease_in_quad"
+              value="2"
+              c:identifier="CLUTTER_EASE_IN_QUAD"
+              glib:nick="ease-in-quad"/>
+      <member name="ease_out_quad"
+              value="3"
+              c:identifier="CLUTTER_EASE_OUT_QUAD"
+              glib:nick="ease-out-quad"/>
+      <member name="ease_in_out_quad"
+              value="4"
+              c:identifier="CLUTTER_EASE_IN_OUT_QUAD"
+              glib:nick="ease-in-out-quad"/>
+      <member name="ease_in_cubic"
+              value="5"
+              c:identifier="CLUTTER_EASE_IN_CUBIC"
+              glib:nick="ease-in-cubic"/>
+      <member name="ease_out_cubic"
+              value="6"
+              c:identifier="CLUTTER_EASE_OUT_CUBIC"
+              glib:nick="ease-out-cubic"/>
+      <member name="ease_in_out_cubic"
+              value="7"
+              c:identifier="CLUTTER_EASE_IN_OUT_CUBIC"
+              glib:nick="ease-in-out-cubic"/>
+      <member name="ease_in_quart"
+              value="8"
+              c:identifier="CLUTTER_EASE_IN_QUART"
+              glib:nick="ease-in-quart"/>
+      <member name="ease_out_quart"
+              value="9"
+              c:identifier="CLUTTER_EASE_OUT_QUART"
+              glib:nick="ease-out-quart"/>
+      <member name="ease_in_out_quart"
+              value="10"
+              c:identifier="CLUTTER_EASE_IN_OUT_QUART"
+              glib:nick="ease-in-out-quart"/>
+      <member name="ease_in_quint"
+              value="11"
+              c:identifier="CLUTTER_EASE_IN_QUINT"
+              glib:nick="ease-in-quint"/>
+      <member name="ease_out_quint"
+              value="12"
+              c:identifier="CLUTTER_EASE_OUT_QUINT"
+              glib:nick="ease-out-quint"/>
+      <member name="ease_in_out_quint"
+              value="13"
+              c:identifier="CLUTTER_EASE_IN_OUT_QUINT"
+              glib:nick="ease-in-out-quint"/>
+      <member name="ease_in_sine"
+              value="14"
+              c:identifier="CLUTTER_EASE_IN_SINE"
+              glib:nick="ease-in-sine"/>
+      <member name="ease_out_sine"
+              value="15"
+              c:identifier="CLUTTER_EASE_OUT_SINE"
+              glib:nick="ease-out-sine"/>
+      <member name="ease_in_out_sine"
+              value="16"
+              c:identifier="CLUTTER_EASE_IN_OUT_SINE"
+              glib:nick="ease-in-out-sine"/>
+      <member name="ease_in_expo"
+              value="17"
+              c:identifier="CLUTTER_EASE_IN_EXPO"
+              glib:nick="ease-in-expo"/>
+      <member name="ease_out_expo"
+              value="18"
+              c:identifier="CLUTTER_EASE_OUT_EXPO"
+              glib:nick="ease-out-expo"/>
+      <member name="ease_in_out_expo"
+              value="19"
+              c:identifier="CLUTTER_EASE_IN_OUT_EXPO"
+              glib:nick="ease-in-out-expo"/>
+      <member name="ease_in_circ"
+              value="20"
+              c:identifier="CLUTTER_EASE_IN_CIRC"
+              glib:nick="ease-in-circ"/>
+      <member name="ease_out_circ"
+              value="21"
+              c:identifier="CLUTTER_EASE_OUT_CIRC"
+              glib:nick="ease-out-circ"/>
+      <member name="ease_in_out_circ"
+              value="22"
+              c:identifier="CLUTTER_EASE_IN_OUT_CIRC"
+              glib:nick="ease-in-out-circ"/>
+      <member name="ease_in_elastic"
+              value="23"
+              c:identifier="CLUTTER_EASE_IN_ELASTIC"
+              glib:nick="ease-in-elastic"/>
+      <member name="ease_out_elastic"
+              value="24"
+              c:identifier="CLUTTER_EASE_OUT_ELASTIC"
+              glib:nick="ease-out-elastic"/>
+      <member name="ease_in_out_elastic"
+              value="25"
+              c:identifier="CLUTTER_EASE_IN_OUT_ELASTIC"
+              glib:nick="ease-in-out-elastic"/>
+      <member name="ease_in_back"
+              value="26"
+              c:identifier="CLUTTER_EASE_IN_BACK"
+              glib:nick="ease-in-back"/>
+      <member name="ease_out_back"
+              value="27"
+              c:identifier="CLUTTER_EASE_OUT_BACK"
+              glib:nick="ease-out-back"/>
+      <member name="ease_in_out_back"
+              value="28"
+              c:identifier="CLUTTER_EASE_IN_OUT_BACK"
+              glib:nick="ease-in-out-back"/>
+      <member name="ease_in_bounce"
+              value="29"
+              c:identifier="CLUTTER_EASE_IN_BOUNCE"
+              glib:nick="ease-in-bounce"/>
+      <member name="ease_out_bounce"
+              value="30"
+              c:identifier="CLUTTER_EASE_OUT_BOUNCE"
+              glib:nick="ease-out-bounce"/>
+      <member name="ease_in_out_bounce"
+              value="31"
+              c:identifier="CLUTTER_EASE_IN_OUT_BOUNCE"
+              glib:nick="ease-in-out-bounce"/>
+      <member name="animation_last"
+              value="32"
+              c:identifier="CLUTTER_ANIMATION_LAST"
+              glib:nick="animation-last"/>
+    </enumeration>
+    <record name="AnimationPrivate"
+            c:type="ClutterAnimationPrivate"
+            disguised="1">
+    </record>
+    <class name="Animator"
+           c:symbol-prefix="animator"
+           c:type="ClutterAnimator"
+           version="1.2"
+           parent="GObject.Object"
+           glib:type-name="ClutterAnimator"
+           glib:get-type="clutter_animator_get_type"
+           glib:type-struct="AnimatorClass">
+      <doc xml:whitespace="preserve">The #ClutterAnimator structure contains only private data and
+should be accessed using the provided API</doc>
+      <implements name="Scriptable"/>
+      <constructor name="new"
+                   c:identifier="clutter_animator_new"
+                   version="1.2">
+        <doc xml:whitespace="preserve">Creates a new #ClutterAnimator instance</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">a new #ClutterAnimator.</doc>
+          <type name="Animator" c:type="ClutterAnimator*"/>
+        </return-value>
+      </constructor>
+      <method name="compute_value"
+              c:identifier="clutter_animator_compute_value"
+              version="1.2">
+        <doc xml:whitespace="preserve">Compute the value for a managed property at a given progress.
+If the property is an ease-in property, the current value of the property
+on the object will be used as the starting point for computation.
+an error occurs or the progress is before any of the keys) %FALSE is
+returned and the #GValue is left untouched</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if the computation yields has a value, otherwise (when</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="object" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GObject</doc>
+            <type name="GObject.Object" c:type="GObject*"/>
+          </parameter>
+          <parameter name="property_name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the name of the property on object to check</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="progress" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a value between 0.0 and 1.0</doc>
+            <type name="gdouble" c:type="gdouble"/>
+          </parameter>
+          <parameter name="value" transfer-ownership="none">
+            <doc xml:whitespace="preserve">an initialized value to store the computed result</doc>
+            <type name="GObject.Value" c:type="GValue*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_duration"
+              c:identifier="clutter_animator_get_duration"
+              version="1.2">
+        <doc xml:whitespace="preserve">Retrieves the current duration of an animator</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the duration of the animation, in milliseconds</doc>
+          <type name="guint" c:type="guint"/>
+        </return-value>
+      </method>
+      <method name="get_keys"
+              c:identifier="clutter_animator_get_keys"
+              version="1.2">
+        <doc xml:whitespace="preserve">Returns a list of pointers to opaque structures with accessor functions
+that describe the keys added to an animator.
+list of #ClutterAnimatorKey&lt;!-- --&gt;s; the contents of the list are owned
+by the #ClutterAnimator, but you should free the returned list when done,
+using g_list_free()</doc>
+        <return-value transfer-ownership="container">
+          <doc xml:whitespace="preserve">a</doc>
+          <type name="GLib.List" c:type="GList*">
+            <type name="AnimatorKey"/>
+          </type>
+        </return-value>
+        <parameters>
+          <parameter name="object" transfer-ownership="none" allow-none="1">
+            <doc xml:whitespace="preserve">a #GObject to search for, or %NULL for all objects</doc>
+            <type name="GObject.Object" c:type="GObject*"/>
+          </parameter>
+          <parameter name="property_name"
+                     transfer-ownership="none"
+                     allow-none="1">
+            <doc xml:whitespace="preserve">a specific property name to query for, or %NULL for all properties</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="progress" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a specific progress to search for, or a negative value for all progresses</doc>
+            <type name="gdouble" c:type="gdouble"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_timeline"
+              c:identifier="clutter_animator_get_timeline"
+              version="1.2">
+        <doc xml:whitespace="preserve">Get the timeline hooked up for driving the #ClutterAnimator</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the #ClutterTimeline that drives the animator</doc>
+          <type name="Timeline" c:type="ClutterTimeline*"/>
+        </return-value>
+      </method>
+      <method name="property_get_ease_in"
+              c:identifier="clutter_animator_property_get_ease_in"
+              version="1.2">
+        <doc xml:whitespace="preserve">Checks if a property value is to be eased into the animation.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if the property is eased in</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="object" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GObject</doc>
+            <type name="GObject.Object" c:type="GObject*"/>
+          </parameter>
+          <parameter name="property_name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the name of a property on object</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="property_get_interpolation"
+              c:identifier="clutter_animator_property_get_interpolation"
+              version="1.2">
+        <doc xml:whitespace="preserve">Get the interpolation used by animator for a property on a particular
+object.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">a ClutterInterpolation value.</doc>
+          <type name="Interpolation" c:type="ClutterInterpolation"/>
+        </return-value>
+        <parameters>
+          <parameter name="object" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GObject</doc>
+            <type name="GObject.Object" c:type="GObject*"/>
+          </parameter>
+          <parameter name="property_name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the name of a property on object</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="property_set_ease_in"
+              c:identifier="clutter_animator_property_set_ease_in"
+              version="1.2">
+        <doc xml:whitespace="preserve">Sets whether a property value is to be eased into the animation.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="object" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GObject</doc>
+            <type name="GObject.Object" c:type="GObject*"/>
+          </parameter>
+          <parameter name="property_name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the name of a property on object</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="ease_in" transfer-ownership="none">
+            <doc xml:whitespace="preserve">we are going to be easing in this property</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="property_set_interpolation"
+              c:identifier="clutter_animator_property_set_interpolation"
+              version="1.2">
+        <doc xml:whitespace="preserve">Set the interpolation method to use, %CLUTTER_INTERPOLATION_LINEAR causes
+the values to linearly change between the values, and
+%CLUTTER_INTERPOLATION_CUBIC causes the values to smoothly change between
+the values.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="object" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GObject</doc>
+            <type name="GObject.Object" c:type="GObject*"/>
+          </parameter>
+          <parameter name="property_name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the name of a property on object</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="interpolation" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the #ClutterInterpolation to use</doc>
+            <type name="Interpolation" c:type="ClutterInterpolation"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="remove_key"
+              c:identifier="clutter_animator_remove_key"
+              version="1.2">
+        <doc xml:whitespace="preserve">Removes all keys matching the conditions specificed in the arguments.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="object" transfer-ownership="none" allow-none="1">
+            <doc xml:whitespace="preserve">a #GObject to search for, or %NULL for all</doc>
+            <type name="GObject.Object" c:type="GObject*"/>
+          </parameter>
+          <parameter name="property_name"
+                     transfer-ownership="none"
+                     allow-none="1">
+            <doc xml:whitespace="preserve">a specific property name to query for, or %NULL for all</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="progress" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a specific progress to search for or a negative value for all</doc>
+            <type name="gdouble" c:type="gdouble"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set"
+              c:identifier="clutter_animator_set"
+              version="1.2"
+              introspectable="0">
+        <doc xml:whitespace="preserve">Adds multiple keys to a #ClutterAnimator, specifying the value a given
+property should have at a given progress of the animation. The mode
+specified is the mode used when going to this key from the previous key of
+the @property_name
+If a given (object, property, progress) tuple already exist the mode and
+value will be replaced with the new values.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="first_object" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GObject</doc>
+            <type name="gpointer" c:type="gpointer"/>
+          </parameter>
+          <parameter name="first_property_name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the property to specify a key for</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="first_mode" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the id of the alpha function to use</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+          <parameter name="first_progress" transfer-ownership="none">
+            <doc xml:whitespace="preserve">at which stage of the animation this value applies; the range is a normalized floating point value between 0 and 1</doc>
+            <type name="gdouble" c:type="gdouble"/>
+          </parameter>
+          <parameter transfer-ownership="none">
+            <varargs>
+            </varargs>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_duration"
+              c:identifier="clutter_animator_set_duration"
+              version="1.2">
+        <doc xml:whitespace="preserve">Runs the timeline of the #ClutterAnimator with a duration in msecs
+as specified.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="duration" transfer-ownership="none">
+            <doc xml:whitespace="preserve">milliseconds a run of the animator should last.</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_key"
+              c:identifier="clutter_animator_set_key"
+              version="1.2">
+        <doc xml:whitespace="preserve">Sets a single key in the #ClutterAnimator for the @property_name of</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">The animator instance</doc>
+          <type name="Animator" c:type="ClutterAnimator*"/>
+        </return-value>
+        <parameters>
+          <parameter name="object" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GObject</doc>
+            <type name="GObject.Object" c:type="GObject*"/>
+          </parameter>
+          <parameter name="property_name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the property to specify a key for</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="mode" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the id of the alpha function to use</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+          <parameter name="progress" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the normalized range at which stage of the animation this value applies</doc>
+            <type name="gdouble" c:type="gdouble"/>
+          </parameter>
+          <parameter name="value" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the value property_name should have at progress.</doc>
+            <type name="GObject.Value" c:type="GValue*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_timeline"
+              c:identifier="clutter_animator_set_timeline"
+              version="1.2">
+        <doc xml:whitespace="preserve">Sets an external timeline that will be used for driving the animation</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="timeline" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #ClutterTimeline</doc>
+            <type name="Timeline" c:type="ClutterTimeline*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="start" c:identifier="clutter_animator_start" version="1.2">
+        <doc xml:whitespace="preserve">Start the ClutterAnimator, this is a thin wrapper that rewinds
+and starts the animators current timeline.
+the animator. The returned timeline is owned by the #ClutterAnimator
+and it should not be unreferenced</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the #ClutterTimeline that drives</doc>
+          <type name="Timeline" c:type="ClutterTimeline*"/>
+        </return-value>
+      </method>
+      <property name="duration"
+                version="1.2"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">The duration of the #ClutterTimeline used by the #ClutterAnimator
+to drive the animation</doc>
+        <type name="guint"/>
+      </property>
+      <property name="timeline"
+                version="1.2"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">The #ClutterTimeline used by the #ClutterAnimator to drive the
+animation</doc>
+        <type name="Timeline"/>
+      </property>
+      <field name="parent_instance">
+        <type name="GObject.Object" c:type="GObject"/>
+      </field>
+      <field name="priv">
+        <type name="AnimatorPrivate" c:type="ClutterAnimatorPrivate*"/>
+      </field>
+    </class>
+    <record name="AnimatorClass"
+            c:type="ClutterAnimatorClass"
+            glib:is-gtype-struct-for="Animator"
+            version="1.2">
+      <doc xml:whitespace="preserve">The #ClutterAnimatorClass structure contains only private data</doc>
+      <field name="parent_class">
+        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
+      </field>
+      <field name="_padding_dummy">
+        <array zero-terminated="0" c:type="gpointer" fixed-size="16">
+          <type name="gpointer" c:type="gpointer"/>
+        </array>
+      </field>
+    </record>
+    <record name="AnimatorKey"
+            c:type="ClutterAnimatorKey"
+            version="1.2"
+            glib:type-name="ClutterAnimatorKey"
+            glib:get-type="clutter_animator_key_get_type"
+            c:symbol-prefix="animator_key">
+      <doc xml:whitespace="preserve">A key frame inside a #ClutterAnimator</doc>
+      <method name="get_mode"
+              c:identifier="clutter_animator_key_get_mode"
+              version="1.2">
+        <doc xml:whitespace="preserve">Retrieves the mode of a #ClutterAnimator key, for the first key of a
+property for an object this represents the whether the animation is
+open ended and or curved for the remainding keys for the property it
+represents the easing mode.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the mode of a #ClutterAnimatorKey</doc>
+          <type name="gulong" c:type="gulong"/>
+        </return-value>
+      </method>
+      <method name="get_object"
+              c:identifier="clutter_animator_key_get_object"
+              version="1.2">
+        <doc xml:whitespace="preserve">Retrieves the object a key applies to.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the object an animator_key exist for.</doc>
+          <type name="GObject.Object" c:type="GObject*"/>
+        </return-value>
+      </method>
+      <method name="get_progress"
+              c:identifier="clutter_animator_key_get_progress"
+              version="1.2">
+        <doc xml:whitespace="preserve">Retrieves the progress of an clutter_animator_key</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the progress defined for a #ClutterAnimator key.</doc>
+          <type name="gdouble" c:type="gdouble"/>
+        </return-value>
+      </method>
+      <method name="get_property_name"
+              c:identifier="clutter_animator_key_get_property_name"
+              version="1.2">
+        <doc xml:whitespace="preserve">Retrieves the name of the property a key applies to.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the name of the property an animator_key exist for.</doc>
+          <type name="utf8" c:type="gchar*"/>
+        </return-value>
+      </method>
+      <method name="get_property_type"
+              c:identifier="clutter_animator_key_get_property_type"
+              version="1.2">
+        <doc xml:whitespace="preserve">Retrieves the #GType of the property a key applies to
+You can use this type to initialize the #GValue to pass to
+clutter_animator_key_get_value()</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the #GType of the property</doc>
+          <type name="GType" c:type="GType"/>
+        </return-value>
+      </method>
+      <method name="get_value"
+              c:identifier="clutter_animator_key_get_value"
+              version="1.2">
+        <doc xml:whitespace="preserve">Retrieves a copy of the value for a #ClutterAnimatorKey.
+The passed in #GValue needs to be already initialized for the value
+type of the key or to a type that allow transformation from the value
+type of the key.
+Use g_value_unset() when done.
+%FALSE otherwise</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if the passed #GValue was successfully set, and</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="value" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GValue initialized with the correct type for the animator key</doc>
+            <type name="GObject.Value" c:type="GValue*"/>
+          </parameter>
+        </parameters>
+      </method>
+    </record>
+    <record name="AnimatorPrivate"
+            c:type="ClutterAnimatorPrivate"
+            disguised="1">
+    </record>
+    <record name="AnyEvent" c:type="ClutterAnyEvent" version="0.2">
+      <doc xml:whitespace="preserve">Common members for a #ClutterEvent</doc>
+      <field name="type" writable="1">
+        <type name="EventType" c:type="ClutterEventType"/>
+      </field>
+      <field name="time" writable="1">
+        <type name="guint32" c:type="guint32"/>
+      </field>
+      <field name="flags" writable="1">
+        <type name="EventFlags" c:type="ClutterEventFlags"/>
+      </field>
+      <field name="stage" writable="1">
+        <type name="Stage" c:type="ClutterStage*"/>
+      </field>
+      <field name="source" writable="1">
+        <type name="Actor" c:type="ClutterActor*"/>
+      </field>
+    </record>
+    <constant name="Aogonek" value="417">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ApplicationLeft" value="269025104">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ApplicationRight" value="269025105">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Arabic_0" value="16778848">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Arabic_1" value="16778849">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Arabic_2" value="16778850">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Arabic_3" value="16778851">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Arabic_4" value="16778852">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Arabic_5" value="16778853">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Arabic_6" value="16778854">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Arabic_7" value="16778855">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Arabic_8" value="16778856">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Arabic_9" value="16778857">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Arabic_ain" value="1497">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Arabic_alef" value="1479">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Arabic_alefmaksura" value="1513">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Arabic_beh" value="1480">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Arabic_comma" value="1452">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Arabic_dad" value="1494">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Arabic_dal" value="1487">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Arabic_damma" value="1519">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Arabic_dammatan" value="1516">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Arabic_ddal" value="16778888">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Arabic_farsi_yeh" value="16778956">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Arabic_fatha" value="1518">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Arabic_fathatan" value="1515">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Arabic_feh" value="1505">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Arabic_fullstop" value="16778964">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Arabic_gaf" value="16778927">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Arabic_ghain" value="1498">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Arabic_ha" value="1511">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Arabic_hah" value="1485">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Arabic_hamza" value="1473">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Arabic_hamza_above" value="16778836">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Arabic_hamza_below" value="16778837">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Arabic_hamzaonalef" value="1475">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Arabic_hamzaonwaw" value="1476">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Arabic_hamzaonyeh" value="1478">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Arabic_hamzaunderalef" value="1477">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Arabic_heh" value="1511">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Arabic_heh_doachashmee" value="16778942">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Arabic_heh_goal" value="16778945">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Arabic_jeem" value="1484">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Arabic_jeh" value="16778904">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Arabic_kaf" value="1507">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Arabic_kasra" value="1520">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Arabic_kasratan" value="1517">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Arabic_keheh" value="16778921">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Arabic_khah" value="1486">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Arabic_lam" value="1508">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Arabic_madda_above" value="16778835">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Arabic_maddaonalef" value="1474">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Arabic_meem" value="1509">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Arabic_noon" value="1510">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Arabic_noon_ghunna" value="16778938">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Arabic_peh" value="16778878">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Arabic_percent" value="16778858">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Arabic_qaf" value="1506">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Arabic_question_mark" value="1471">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Arabic_ra" value="1489">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Arabic_rreh" value="16778897">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Arabic_sad" value="1493">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Arabic_seen" value="1491">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Arabic_semicolon" value="1467">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Arabic_shadda" value="1521">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Arabic_sheen" value="1492">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Arabic_sukun" value="1522">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Arabic_superscript_alef" value="16778864">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Arabic_switch" value="65406">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Arabic_tah" value="1495">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Arabic_tatweel" value="1504">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Arabic_tcheh" value="16778886">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Arabic_teh" value="1482">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Arabic_tehmarbuta" value="1481">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Arabic_thal" value="1488">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Arabic_theh" value="1483">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Arabic_tteh" value="16778873">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Arabic_veh" value="16778916">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Arabic_waw" value="1512">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Arabic_yeh" value="1514">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Arabic_yeh_baree" value="16778962">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Arabic_zah" value="1496">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Arabic_zain" value="1490">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Aring" value="197">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_AT" value="16778552">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_AYB" value="16778545">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_BEN" value="16778546">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_CHA" value="16778569">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_DA" value="16778548">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_DZA" value="16778561">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_E" value="16778551">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_FE" value="16778582">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_GHAT" value="16778562">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_GIM" value="16778547">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_HI" value="16778565">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_HO" value="16778560">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_INI" value="16778555">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_JE" value="16778571">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_KE" value="16778580">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_KEN" value="16778559">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_KHE" value="16778557">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_LYUN" value="16778556">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_MEN" value="16778564">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_NU" value="16778566">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_O" value="16778581">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_PE" value="16778570">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_PYUR" value="16778579">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_RA" value="16778572">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_RE" value="16778576">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_SE" value="16778573">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_SHA" value="16778567">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_TCHE" value="16778563">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_TO" value="16778553">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_TSA" value="16778558">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_TSO" value="16778577">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_TYUN" value="16778575">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_VEV" value="16778574">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_VO" value="16778568">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_VYUN" value="16778578">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_YECH" value="16778549">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_ZA" value="16778550">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_ZHE" value="16778554">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_accent" value="16778587">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_amanak" value="16778588">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_apostrophe" value="16778586">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_at" value="16778600">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_ayb" value="16778593">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_ben" value="16778594">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_but" value="16778589">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_cha" value="16778617">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_da" value="16778596">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_dza" value="16778609">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_e" value="16778599">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_exclam" value="16778588">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_fe" value="16778630">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_full_stop" value="16778633">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_ghat" value="16778610">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_gim" value="16778595">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_hi" value="16778613">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_ho" value="16778608">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_hyphen" value="16778634">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_ini" value="16778603">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_je" value="16778619">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_ke" value="16778628">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_ken" value="16778607">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_khe" value="16778605">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_ligature_ew" value="16778631">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_lyun" value="16778604">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_men" value="16778612">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_nu" value="16778614">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_o" value="16778629">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_paruyk" value="16778590">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_pe" value="16778618">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_pyur" value="16778627">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_question" value="16778590">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_ra" value="16778620">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_re" value="16778624">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_se" value="16778621">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_separation_mark" value="16778589">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_sha" value="16778615">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_shesht" value="16778587">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_tche" value="16778611">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_to" value="16778601">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_tsa" value="16778606">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_tso" value="16778625">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_tyun" value="16778623">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_verjaket" value="16778633">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_vev" value="16778622">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_vo" value="16778616">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_vyun" value="16778626">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_yech" value="16778597">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_yentamna" value="16778634">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_za" value="16778598">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_zhe" value="16778602">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Atilde" value="195">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="AudibleBell_Enable" value="65146">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="AudioCycleTrack" value="269025179">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="AudioForward" value="269025175">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="AudioLowerVolume" value="269025041">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="AudioMedia" value="269025074">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="AudioMute" value="269025042">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="AudioNext" value="269025047">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="AudioPause" value="269025073">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="AudioPlay" value="269025044">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="AudioPrev" value="269025046">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="AudioRaiseVolume" value="269025043">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="AudioRandomPlay" value="269025177">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="AudioRecord" value="269025052">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="AudioRepeat" value="269025176">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="AudioRewind" value="269025086">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="AudioStop" value="269025045">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Away" value="269025165">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="B" value="66">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Babovedot" value="16784898">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Back" value="269025062">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="BackForward" value="269025087">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="BackSpace" value="65288">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <class name="Backend"
+           c:symbol-prefix="backend"
+           c:type="ClutterBackend"
+           parent="GObject.Object"
+           abstract="1"
+           glib:type-name="ClutterBackend"
+           glib:get-type="clutter_backend_get_type"
+           glib:type-struct="BackendClass">
+      <virtual-method name="add_options">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="group" transfer-ownership="none">
+            <type name="GLib.OptionGroup" c:type="GOptionGroup*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="copy_event_data">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="src" transfer-ownership="none">
+            <type name="Event" c:type="ClutterEvent*"/>
+          </parameter>
+          <parameter name="dest" transfer-ownership="none">
+            <type name="Event" c:type="ClutterEvent*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="create_context" throws="1">
+        <return-value transfer-ownership="none">
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+      </virtual-method>
+      <virtual-method name="create_stage" introspectable="0" throws="1">
+        <return-value>
+          <type name="StageWindow" c:type="ClutterStageWindow*"/>
+        </return-value>
+        <parameters>
+          <parameter name="wrapper" transfer-ownership="none">
+            <type name="Stage" c:type="ClutterStage*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="ensure_context">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="stage" transfer-ownership="none">
+            <type name="Stage" c:type="ClutterStage*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="free_event_data">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="event" transfer-ownership="none">
+            <type name="Event" c:type="ClutterEvent*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="get_device_manager" introspectable="0">
+        <return-value>
+          <type name="DeviceManager" c:type="ClutterDeviceManager*"/>
+        </return-value>
+      </virtual-method>
+      <virtual-method name="get_features">
+        <return-value transfer-ownership="none">
+          <type name="FeatureFlags" c:type="ClutterFeatureFlags"/>
+        </return-value>
+      </virtual-method>
+      <virtual-method name="init_events">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </virtual-method>
+      <virtual-method name="init_features">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </virtual-method>
+      <virtual-method name="post_parse" throws="1">
+        <return-value transfer-ownership="none">
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+      </virtual-method>
+      <virtual-method name="pre_parse" throws="1">
+        <return-value transfer-ownership="none">
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+      </virtual-method>
+      <virtual-method name="redraw">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="stage" transfer-ownership="none">
+            <type name="Stage" c:type="ClutterStage*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <method name="get_double_click_distance"
+              c:identifier="clutter_backend_get_double_click_distance"
+              version="0.4"
+              deprecated="Use #ClutterSettings:double-click-distance instead"
+              deprecated-version="1.4">
+        <doc xml:whitespace="preserve">Retrieves the distance used to verify a double click event</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">a distance, in pixels.</doc>
+          <type name="guint" c:type="guint"/>
+        </return-value>
+      </method>
+      <method name="get_double_click_time"
+              c:identifier="clutter_backend_get_double_click_time"
+              version="0.4"
+              deprecated="Use #ClutterSettings:double-click-time instead"
+              deprecated-version="1.4">
+        <doc xml:whitespace="preserve">Gets the maximum time between two button press events, as set
+by clutter_backend_set_double_click_time().</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">a time in milliseconds</doc>
+          <type name="guint" c:type="guint"/>
+        </return-value>
+      </method>
+      <method name="get_font_name"
+              c:identifier="clutter_backend_get_font_name"
+              version="1.0"
+              deprecated="Use #ClutterSettings:font-name instead"
+              deprecated-version="1.4">
+        <doc xml:whitespace="preserve">Retrieves the default font name as set by
+clutter_backend_set_font_name().
+owned by the #ClutterBackend and should never be modified or freed</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the font name for the backend. The returned string is</doc>
+          <type name="utf8" c:type="gchar*"/>
+        </return-value>
+      </method>
+      <method name="get_font_options"
+              c:identifier="clutter_backend_get_font_options"
+              version="0.8">
+        <doc xml:whitespace="preserve">Retrieves the font options for @backend.
+The returned #cairo_font_options_t is owned by the backend and should
+not be modified or freed</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the font options of the #ClutterBackend.</doc>
+          <type name="cairo.FontOptions" c:type="cairo_font_options_t*"/>
+        </return-value>
+      </method>
+      <method name="get_resolution"
+              c:identifier="clutter_backend_get_resolution"
+              version="0.4">
+        <doc xml:whitespace="preserve">Gets the resolution for font handling on the screen.
+The resolution is a scale factor between points specified in a
+#PangoFontDescription and cairo units. The default value is 96.0,
+meaning that a 10 point font will be 13 units
+high (10 * 96. / 72. = 13.3).
+Clutter will set the resolution using the current backend when
+initializing; the resolution is also stored in the
+#ClutterSettings:font-dpi property.
+has been set.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the current resolution, or -1 if no resolution</doc>
+          <type name="gdouble" c:type="gdouble"/>
+        </return-value>
+      </method>
+      <method name="set_double_click_distance"
+              c:identifier="clutter_backend_set_double_click_distance"
+              version="0.4"
+              deprecated="Use #ClutterSettings:double-click-distance instead"
+              deprecated-version="1.4">
+        <doc xml:whitespace="preserve">Sets the maximum distance used to verify a double click event.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="distance" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a distance, in pixels</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_double_click_time"
+              c:identifier="clutter_backend_set_double_click_time"
+              version="0.4"
+              deprecated="Use #ClutterSettings:double-click-time instead"
+              deprecated-version="1.4">
+        <doc xml:whitespace="preserve">Sets the maximum time between two button press events, used to
+verify whether it's a double click event or not.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="msec" transfer-ownership="none">
+            <doc xml:whitespace="preserve">milliseconds between two button press events</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_font_name"
+              c:identifier="clutter_backend_set_font_name"
+              version="1.0"
+              deprecated="Use #ClutterSettings:font-name instead"
+              deprecated-version="1.4">
+        <doc xml:whitespace="preserve">Sets the default font to be used by Clutter. The @font_name string
+must either be %NULL, which means that the font name from the
+default #ClutterBackend will be used; or be something that can
+be parsed by the pango_font_description_from_string() function.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="font_name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the name of the font</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_font_options"
+              c:identifier="clutter_backend_set_font_options"
+              version="0.8">
+        <doc xml:whitespace="preserve">Sets the new font options for @backend. The #ClutterBackend will
+copy the #cairo_font_options_t.
+If @options is %NULL, the first following call to
+clutter_backend_get_font_options() will return the default font
+options for @backend.
+This function is intended for actors creating a Pango layout
+using the PangoCairo API.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="options" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Cairo font options for the backend, or %NULL</doc>
+            <type name="cairo.FontOptions" c:type="cairo_font_options_t*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_resolution"
+              c:identifier="clutter_backend_set_resolution"
+              version="0.4"
+              deprecated="Use #ClutterSettings:font-dpi instead">
+        <doc xml:whitespace="preserve">Sets the resolution for font handling on the screen. This is a
+scale factor between points specified in a #PangoFontDescription
+and cairo units. The default value is 96, meaning that a 10 point
+font will be 13 units high. (10 * 96. / 72. = 13.3).
+Applications should never need to call this function.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="dpi" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the resolution in "dots per inch" (Physical inches aren't actually involved; the terminology is conventional).</doc>
+            <type name="gdouble" c:type="gdouble"/>
+          </parameter>
+        </parameters>
+      </method>
+      <field name="parent_instance">
+        <type name="GObject.Object" c:type="GObject"/>
+      </field>
+      <field name="priv">
+        <type name="BackendPrivate" c:type="ClutterBackendPrivate*"/>
+      </field>
+      <glib:signal name="font-changed">
+        <return-value transfer-ownership="none">
+          <type name="none"/>
+        </return-value>
+      </glib:signal>
+      <glib:signal name="resolution-changed">
+        <return-value transfer-ownership="none">
+          <type name="none"/>
+        </return-value>
+      </glib:signal>
+      <glib:signal name="settings-changed">
+        <return-value transfer-ownership="none">
+          <type name="none"/>
+        </return-value>
+      </glib:signal>
+    </class>
+    <record name="BackendClass"
+            c:type="ClutterBackendClass"
+            glib:is-gtype-struct-for="Backend">
+      <field name="parent_class">
+        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
+      </field>
+      <field name="pre_parse">
+        <callback name="pre_parse" throws="1">
+          <return-value transfer-ownership="none">
+            <type name="gboolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="backend" transfer-ownership="none">
+              <type name="Backend" c:type="ClutterBackend*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="post_parse">
+        <callback name="post_parse" throws="1">
+          <return-value transfer-ownership="none">
+            <type name="gboolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="backend" transfer-ownership="none">
+              <type name="Backend" c:type="ClutterBackend*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="create_stage" introspectable="0">
+        <callback name="create_stage" introspectable="0" throws="1">
+          <return-value>
+            <type name="StageWindow" c:type="ClutterStageWindow*"/>
+          </return-value>
+          <parameters>
+            <parameter name="backend" transfer-ownership="none">
+              <type name="Backend" c:type="ClutterBackend*"/>
+            </parameter>
+            <parameter name="wrapper" transfer-ownership="none">
+              <type name="Stage" c:type="ClutterStage*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="init_events">
+        <callback name="init_events">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="backend" transfer-ownership="none">
+              <type name="Backend" c:type="ClutterBackend*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="init_features">
+        <callback name="init_features">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="backend" transfer-ownership="none">
+              <type name="Backend" c:type="ClutterBackend*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="add_options">
+        <callback name="add_options">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="backend" transfer-ownership="none">
+              <type name="Backend" c:type="ClutterBackend*"/>
+            </parameter>
+            <parameter name="group" transfer-ownership="none">
+              <type name="GLib.OptionGroup" c:type="GOptionGroup*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="get_features">
+        <callback name="get_features">
+          <return-value transfer-ownership="none">
+            <type name="FeatureFlags" c:type="ClutterFeatureFlags"/>
+          </return-value>
+          <parameters>
+            <parameter name="backend" transfer-ownership="none">
+              <type name="Backend" c:type="ClutterBackend*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="redraw">
+        <callback name="redraw">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="backend" transfer-ownership="none">
+              <type name="Backend" c:type="ClutterBackend*"/>
+            </parameter>
+            <parameter name="stage" transfer-ownership="none">
+              <type name="Stage" c:type="ClutterStage*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="create_context">
+        <callback name="create_context" throws="1">
+          <return-value transfer-ownership="none">
+            <type name="gboolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="backend" transfer-ownership="none">
+              <type name="Backend" c:type="ClutterBackend*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="ensure_context">
+        <callback name="ensure_context">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="backend" transfer-ownership="none">
+              <type name="Backend" c:type="ClutterBackend*"/>
+            </parameter>
+            <parameter name="stage" transfer-ownership="none">
+              <type name="Stage" c:type="ClutterStage*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="get_device_manager" introspectable="0">
+        <callback name="get_device_manager" introspectable="0">
+          <return-value>
+            <type name="DeviceManager" c:type="ClutterDeviceManager*"/>
+          </return-value>
+          <parameters>
+            <parameter name="backend" transfer-ownership="none">
+              <type name="Backend" c:type="ClutterBackend*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="copy_event_data">
+        <callback name="copy_event_data">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="backend" transfer-ownership="none">
+              <type name="Backend" c:type="ClutterBackend*"/>
+            </parameter>
+            <parameter name="src" transfer-ownership="none">
+              <type name="Event" c:type="ClutterEvent*"/>
+            </parameter>
+            <parameter name="dest" transfer-ownership="none">
+              <type name="Event" c:type="ClutterEvent*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="free_event_data">
+        <callback name="free_event_data">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="backend" transfer-ownership="none">
+              <type name="Backend" c:type="ClutterBackend*"/>
+            </parameter>
+            <parameter name="event" transfer-ownership="none">
+              <type name="Event" c:type="ClutterEvent*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="resolution_changed">
+        <callback name="resolution_changed">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="backend" transfer-ownership="none">
+              <type name="Backend" c:type="ClutterBackend*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="font_changed">
+        <callback name="font_changed">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="backend" transfer-ownership="none">
+              <type name="Backend" c:type="ClutterBackend*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="settings_changed">
+        <callback name="settings_changed">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="backend" transfer-ownership="none">
+              <type name="Backend" c:type="ClutterBackend*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+    </record>
+    <record name="BackendPrivate" c:type="ClutterBackendPrivate" disguised="1">
+    </record>
+    <constant name="Battery" value="269025171">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Begin" value="65368">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <class name="Behaviour"
+           c:symbol-prefix="behaviour"
+           c:type="ClutterBehaviour"
+           version="0.2"
+           parent="GObject.Object"
+           abstract="1"
+           glib:type-name="ClutterBehaviour"
+           glib:get-type="clutter_behaviour_get_type"
+           glib:type-struct="BehaviourClass">
+      <doc xml:whitespace="preserve">#ClutterBehaviour-struct contains only private data and should
+be accessed with the functions below.</doc>
+      <implements name="Scriptable"/>
+      <virtual-method name="alpha_notify">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="alpha_value" transfer-ownership="none">
+            <type name="gdouble" c:type="gdouble"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <method name="actors_foreach"
+              c:identifier="clutter_behaviour_actors_foreach"
+              version="0.2">
+        <doc xml:whitespace="preserve">Calls @func for every actor driven by @behave.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="func"
+                     transfer-ownership="none"
+                     scope="call"
+                     closure="1">
+            <doc xml:whitespace="preserve">a function called for each actor</doc>
+            <type name="BehaviourForeachFunc"
+                  c:type="ClutterBehaviourForeachFunc"/>
+          </parameter>
+          <parameter name="data" transfer-ownership="none">
+            <doc xml:whitespace="preserve">optional data to be passed to the function, or %NULL</doc>
+            <type name="gpointer" c:type="gpointer"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="apply"
+              c:identifier="clutter_behaviour_apply"
+              version="0.2">
+        <doc xml:whitespace="preserve">Applies @behave to @actor.  This function adds a reference on
+the actor.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="actor" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_actors"
+              c:identifier="clutter_behaviour_get_actors"
+              version="0.2">
+        <doc xml:whitespace="preserve">Retrieves all the actors to which @behave applies. It is not recommended
+for derived classes to use this in there alpha notify method but use 
+#clutter_behaviour_actors_foreach as it avoids alot of needless allocations.
+actors. You should free the returned list with g_slist_free() when
+finished using it.</doc>
+        <return-value transfer-ownership="container">
+          <doc xml:whitespace="preserve">a list of</doc>
+          <type name="GLib.SList" c:type="GSList*">
+            <type name="Actor"/>
+          </type>
+        </return-value>
+      </method>
+      <method name="get_alpha"
+              c:identifier="clutter_behaviour_get_alpha"
+              version="0.2">
+        <doc xml:whitespace="preserve">Retrieves the #ClutterAlpha object bound to @behave.
+object has been bound to this behaviour.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #ClutterAlpha object, or %NULL if no alpha</doc>
+          <type name="Alpha" c:type="ClutterAlpha*"/>
+        </return-value>
+      </method>
+      <method name="get_n_actors"
+              c:identifier="clutter_behaviour_get_n_actors"
+              version="0.2">
+        <doc xml:whitespace="preserve">Gets the number of actors this behaviour is applied too.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">The number of applied actors</doc>
+          <type name="gint" c:type="gint"/>
+        </return-value>
+      </method>
+      <method name="get_nth_actor"
+              c:identifier="clutter_behaviour_get_nth_actor"
+              version="0.2">
+        <doc xml:whitespace="preserve">Gets an actor the behaviour was applied to referenced by index num.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">A Clutter actor or NULL if @index_ is invalid.</doc>
+          <type name="Actor" c:type="ClutterActor*"/>
+        </return-value>
+        <parameters>
+          <parameter name="index_" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the index of an actor this behaviour is applied too.</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="is_applied"
+              c:identifier="clutter_behaviour_is_applied"
+              version="0.4">
+        <doc xml:whitespace="preserve">Check if @behave applied to  @actor.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">TRUE if actor has behaviour. FALSE otherwise.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="actor" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="remove"
+              c:identifier="clutter_behaviour_remove"
+              version="0.2">
+        <doc xml:whitespace="preserve">Removes @actor from the list of #ClutterActor&lt;!-- --&gt;s to which</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="actor" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="remove_all"
+              c:identifier="clutter_behaviour_remove_all"
+              version="0.4">
+        <doc xml:whitespace="preserve">Removes every actor from the list that @behave holds.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </method>
+      <method name="set_alpha"
+              c:identifier="clutter_behaviour_set_alpha"
+              version="0.2">
+        <doc xml:whitespace="preserve">Binds @alpha to a #ClutterBehaviour. The #ClutterAlpha object
+used by #ClutterAlpha a new value of the alpha parameter is
+computed by the alpha function; the value should be used by
+the #ClutterBehaviour to update one or more properties of the
+actors to which the behaviour applies.
+If @alpha is not %NULL, the #ClutterBehaviour will take ownership
+of the #ClutterAlpha instance.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="alpha" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #ClutterAlpha or %NULL to unset a previously set alpha</doc>
+            <type name="Alpha" c:type="ClutterAlpha*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <property name="alpha"
+                version="0.2"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">The #ClutterAlpha object used to drive this behaviour. A #ClutterAlpha
+object binds a #ClutterTimeline and a function which computes a value
+(the "alpha") depending on the time. Each time the alpha value changes
+the alpha-notify virtual function is called.</doc>
+        <type name="Alpha"/>
+      </property>
+      <field name="parent">
+        <type name="GObject.Object" c:type="GObject"/>
+      </field>
+      <field name="priv">
+        <type name="BehaviourPrivate" c:type="ClutterBehaviourPrivate*"/>
+      </field>
+      <glib:signal name="applied" version="0.4">
+        <doc xml:whitespace="preserve">The ::apply signal is emitted each time the behaviour is applied
+to an actor.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none"/>
+        </return-value>
+        <parameters>
+          <parameter name="object" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the actor the behaviour was applied to.</doc>
+            <type name="Actor"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="removed" version="0.4">
+        <doc xml:whitespace="preserve">The ::removed signal is emitted each time a behaviour is not applied
+to an actor anymore.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none"/>
+        </return-value>
+        <parameters>
+          <parameter name="object" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the removed actor</doc>
+            <type name="Actor"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+    </class>
+    <record name="BehaviourClass"
+            c:type="ClutterBehaviourClass"
+            glib:is-gtype-struct-for="Behaviour">
+      <field name="parent_class">
+        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
+      </field>
+      <field name="alpha_notify">
+        <callback name="alpha_notify">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="behave" transfer-ownership="none">
+              <type name="Behaviour" c:type="ClutterBehaviour*"/>
+            </parameter>
+            <parameter name="alpha_value" transfer-ownership="none">
+              <type name="gdouble" c:type="gdouble"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="applied">
+        <callback name="applied">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="behave" transfer-ownership="none">
+              <type name="Behaviour" c:type="ClutterBehaviour*"/>
+            </parameter>
+            <parameter name="actor" transfer-ownership="none">
+              <type name="Actor" c:type="ClutterActor*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="removed">
+        <callback name="removed">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="behave" transfer-ownership="none">
+              <type name="Behaviour" c:type="ClutterBehaviour*"/>
+            </parameter>
+            <parameter name="actor" transfer-ownership="none">
+              <type name="Actor" c:type="ClutterActor*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="_clutter_behaviour1" introspectable="0">
+        <callback name="_clutter_behaviour1">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_behaviour2" introspectable="0">
+        <callback name="_clutter_behaviour2">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_behaviour3" introspectable="0">
+        <callback name="_clutter_behaviour3">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_behaviour4" introspectable="0">
+        <callback name="_clutter_behaviour4">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_behaviour5" introspectable="0">
+        <callback name="_clutter_behaviour5">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_behaviour6" introspectable="0">
+        <callback name="_clutter_behaviour6">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+    </record>
+    <class name="BehaviourDepth"
+           c:symbol-prefix="behaviour_depth"
+           c:type="ClutterBehaviourDepth"
+           version="0.2"
+           parent="Behaviour"
+           glib:type-name="ClutterBehaviourDepth"
+           glib:get-type="clutter_behaviour_depth_get_type"
+           glib:type-struct="BehaviourDepthClass">
+      <doc xml:whitespace="preserve">The #ClutterBehaviourDepth structure contains only private data
+and should be accessed using the provided API</doc>
+      <implements name="Scriptable"/>
+      <constructor name="new"
+                   c:identifier="clutter_behaviour_depth_new"
+                   version="0.4">
+        <doc xml:whitespace="preserve">Creates a new #ClutterBehaviourDepth which can be used to control
+the ClutterActor:depth property of a set of #ClutterActor&lt;!-- --&gt;s.
+If @alpha is not %NULL, the #ClutterBehaviour will take ownership
+of the #ClutterAlpha instance. In the case when @alpha is %NULL,
+it can be set later with clutter_behaviour_set_alpha().</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">the newly created behaviour</doc>
+          <type name="Behaviour" c:type="ClutterBehaviour*"/>
+        </return-value>
+        <parameters>
+          <parameter name="alpha" transfer-ownership="none" allow-none="1">
+            <doc xml:whitespace="preserve">a #ClutterAlpha instance, or %NULL</doc>
+            <type name="Alpha" c:type="ClutterAlpha*"/>
+          </parameter>
+          <parameter name="depth_start" transfer-ownership="none">
+            <doc xml:whitespace="preserve">initial value of the depth</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="depth_end" transfer-ownership="none">
+            <doc xml:whitespace="preserve">final value of the depth</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <method name="get_bounds"
+              c:identifier="clutter_behaviour_depth_get_bounds"
+              version="0.6">
+        <doc xml:whitespace="preserve">Gets the boundaries of the @behaviour</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="depth_start"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:whitespace="preserve">return location for the initial depth value, or %NULL</doc>
+            <type name="gint" c:type="gint*"/>
+          </parameter>
+          <parameter name="depth_end"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:whitespace="preserve">return location for the final depth value, or %NULL</doc>
+            <type name="gint" c:type="gint*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_bounds"
+              c:identifier="clutter_behaviour_depth_set_bounds"
+              version="0.6">
+        <doc xml:whitespace="preserve">Sets the boundaries of the @behaviour.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="depth_start" transfer-ownership="none">
+            <doc xml:whitespace="preserve">initial value of the depth</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="depth_end" transfer-ownership="none">
+            <doc xml:whitespace="preserve">final value of the depth</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <property name="depth-end"
+                version="0.4"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">End depth level to apply to the actors.</doc>
+        <type name="gint"/>
+      </property>
+      <property name="depth-start"
+                version="0.4"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">Start depth level to apply to the actors.</doc>
+        <type name="gint"/>
+      </property>
+      <field name="parent_instance">
+        <type name="Behaviour" c:type="ClutterBehaviour"/>
+      </field>
+      <field name="priv">
+        <type name="BehaviourDepthPrivate"
+              c:type="ClutterBehaviourDepthPrivate*"/>
+      </field>
+    </class>
+    <record name="BehaviourDepthClass"
+            c:type="ClutterBehaviourDepthClass"
+            glib:is-gtype-struct-for="BehaviourDepth"
+            version="0.2">
+      <doc xml:whitespace="preserve">The #ClutterBehaviourDepthClass structure contains only private data</doc>
+      <field name="parent_class">
+        <type name="BehaviourClass" c:type="ClutterBehaviourClass"/>
+      </field>
+    </record>
+    <record name="BehaviourDepthPrivate"
+            c:type="ClutterBehaviourDepthPrivate"
+            disguised="1">
+    </record>
+    <class name="BehaviourEllipse"
+           c:symbol-prefix="behaviour_ellipse"
+           c:type="ClutterBehaviourEllipse"
+           version="0.4"
+           parent="Behaviour"
+           glib:type-name="ClutterBehaviourEllipse"
+           glib:get-type="clutter_behaviour_ellipse_get_type"
+           glib:type-struct="BehaviourEllipseClass">
+      <doc xml:whitespace="preserve">The #ClutterBehaviourEllipse struct contains only private data
+and should be accessed using the provided API</doc>
+      <implements name="Scriptable"/>
+      <constructor name="new"
+                   c:identifier="clutter_behaviour_ellipse_new"
+                   version="0.4">
+        <doc xml:whitespace="preserve">Creates a behaviour that drives actors along an elliptical path with
+given center, width and height; the movement starts at @start
+degrees (with 0 corresponding to 12 o'clock) and ends at @end
+degrees. Angles greated than 360 degrees get clamped to the canonical
+interval &lt;0, 360); if @start is equal to @end, the behaviour will
+rotate by exacly 360 degrees.
+If @alpha is not %NULL, the #ClutterBehaviour will take ownership
+of the #ClutterAlpha instance. In the case when @alpha is %NULL,
+it can be set later with clutter_behaviour_set_alpha().</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">the newly created #ClutterBehaviourEllipse</doc>
+          <type name="Behaviour" c:type="ClutterBehaviour*"/>
+        </return-value>
+        <parameters>
+          <parameter name="alpha" transfer-ownership="none" allow-none="1">
+            <doc xml:whitespace="preserve">a #ClutterAlpha instance, or %NULL</doc>
+            <type name="Alpha" c:type="ClutterAlpha*"/>
+          </parameter>
+          <parameter name="x" transfer-ownership="none">
+            <doc xml:whitespace="preserve">x coordinace of the center</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="y" transfer-ownership="none">
+            <doc xml:whitespace="preserve">y coordiance of the center</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="width" transfer-ownership="none">
+            <doc xml:whitespace="preserve">width of the ellipse</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="height" transfer-ownership="none">
+            <doc xml:whitespace="preserve">height of the ellipse</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="direction" transfer-ownership="none">
+            <doc xml:whitespace="preserve">#ClutterRotateDirection of rotation</doc>
+            <type name="RotateDirection" c:type="ClutterRotateDirection"/>
+          </parameter>
+          <parameter name="start" transfer-ownership="none">
+            <doc xml:whitespace="preserve">angle in degrees at which movement starts, between 0 and 360</doc>
+            <type name="gdouble" c:type="gdouble"/>
+          </parameter>
+          <parameter name="end" transfer-ownership="none">
+            <doc xml:whitespace="preserve">angle in degrees at which movement ends, between 0 and 360</doc>
+            <type name="gdouble" c:type="gdouble"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <method name="get_angle_end"
+              c:identifier="clutter_behaviour_ellipse_get_angle_end"
+              version="0.4">
+        <doc xml:whitespace="preserve">Gets the at which movements ends.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">angle in degrees</doc>
+          <type name="gdouble" c:type="gdouble"/>
+        </return-value>
+      </method>
+      <method name="get_angle_start"
+              c:identifier="clutter_behaviour_ellipse_get_angle_start"
+              version="0.6">
+        <doc xml:whitespace="preserve">Gets the angle at which movements starts.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">angle in degrees</doc>
+          <type name="gdouble" c:type="gdouble"/>
+        </return-value>
+      </method>
+      <method name="get_angle_tilt"
+              c:identifier="clutter_behaviour_ellipse_get_angle_tilt"
+              version="0.4">
+        <doc xml:whitespace="preserve">Gets the tilt of the ellipse around the center in the given axis.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">angle in degrees.</doc>
+          <type name="gdouble" c:type="gdouble"/>
+        </return-value>
+        <parameters>
+          <parameter name="axis" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #ClutterRotateAxis</doc>
+            <type name="RotateAxis" c:type="ClutterRotateAxis"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_center"
+              c:identifier="clutter_behaviour_ellipse_get_center"
+              version="0.4">
+        <doc xml:whitespace="preserve">Gets the center of the elliptical path path.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="x"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:whitespace="preserve">return location for the X coordinate of the center, or %NULL</doc>
+            <type name="gint" c:type="gint*"/>
+          </parameter>
+          <parameter name="y"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:whitespace="preserve">return location for the Y coordinate of the center, or %NULL</doc>
+            <type name="gint" c:type="gint*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_direction"
+              c:identifier="clutter_behaviour_ellipse_get_direction"
+              version="0.4">
+        <doc xml:whitespace="preserve">Retrieves the #ClutterRotateDirection used by the ellipse behaviour.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the rotation direction</doc>
+          <type name="RotateDirection" c:type="ClutterRotateDirection"/>
+        </return-value>
+      </method>
+      <method name="get_height"
+              c:identifier="clutter_behaviour_ellipse_get_height"
+              version="0.4">
+        <doc xml:whitespace="preserve">Gets the height of the elliptical path.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the height of the path</doc>
+          <type name="gint" c:type="gint"/>
+        </return-value>
+      </method>
+      <method name="get_tilt"
+              c:identifier="clutter_behaviour_ellipse_get_tilt"
+              version="0.4">
+        <doc xml:whitespace="preserve">Gets the tilt of the ellipse around the center in Y axis.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="angle_tilt_x"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:whitespace="preserve">return location for tilt angle on the X axis, or %NULL.</doc>
+            <type name="gdouble" c:type="gdouble*"/>
+          </parameter>
+          <parameter name="angle_tilt_y"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:whitespace="preserve">return location for tilt angle on the Y axis, or %NULL.</doc>
+            <type name="gdouble" c:type="gdouble*"/>
+          </parameter>
+          <parameter name="angle_tilt_z"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:whitespace="preserve">return location for tilt angle on the Z axis, or %NULL.</doc>
+            <type name="gdouble" c:type="gdouble*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_width"
+              c:identifier="clutter_behaviour_ellipse_get_width"
+              version="0.4">
+        <doc xml:whitespace="preserve">Gets the width of the elliptical path.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the width of the path</doc>
+          <type name="gint" c:type="gint"/>
+        </return-value>
+      </method>
+      <method name="set_angle_end"
+              c:identifier="clutter_behaviour_ellipse_set_angle_end"
+              version="0.4">
+        <doc xml:whitespace="preserve">Sets the angle at which movement ends; angles &gt;= 360 degress get clamped
+to the canonical interval &lt;0, 360).</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="angle_end" transfer-ownership="none">
+            <doc xml:whitespace="preserve">angle at which movement ends in degrees, between 0 and 360.</doc>
+            <type name="gdouble" c:type="gdouble"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_angle_start"
+              c:identifier="clutter_behaviour_ellipse_set_angle_start"
+              version="0.6">
+        <doc xml:whitespace="preserve">Sets the angle at which movement starts; angles &gt;= 360 degress get clamped
+to the canonical interval &lt;0, 360).</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="angle_start" transfer-ownership="none">
+            <doc xml:whitespace="preserve">angle at which movement starts in degrees, between 0 and 360.</doc>
+            <type name="gdouble" c:type="gdouble"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_angle_tilt"
+              c:identifier="clutter_behaviour_ellipse_set_angle_tilt"
+              version="0.4">
+        <doc xml:whitespace="preserve">Sets the angle at which the ellipse should be tilted around it's center.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="axis" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #ClutterRotateAxis</doc>
+            <type name="RotateAxis" c:type="ClutterRotateAxis"/>
+          </parameter>
+          <parameter name="angle_tilt" transfer-ownership="none">
+            <doc xml:whitespace="preserve">tilt of the elipse around the center in the given axis in degrees.</doc>
+            <type name="gdouble" c:type="gdouble"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_center"
+              c:identifier="clutter_behaviour_ellipse_set_center"
+              version="0.4">
+        <doc xml:whitespace="preserve">Sets the center of the elliptical path to the point represented by knot.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="x" transfer-ownership="none">
+            <doc xml:whitespace="preserve">x coordinace of centre</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="y" transfer-ownership="none">
+            <doc xml:whitespace="preserve">y coordinace of centre</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_direction"
+              c:identifier="clutter_behaviour_ellipse_set_direction"
+              version="0.4">
+        <doc xml:whitespace="preserve">Sets the rotation direction used by the ellipse behaviour.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="direction" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the rotation direction</doc>
+            <type name="RotateDirection" c:type="ClutterRotateDirection"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_height"
+              c:identifier="clutter_behaviour_ellipse_set_height"
+              version="0.4">
+        <doc xml:whitespace="preserve">Sets the height of the elliptical path.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="height" transfer-ownership="none">
+            <doc xml:whitespace="preserve">height of the ellipse</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_tilt"
+              c:identifier="clutter_behaviour_ellipse_set_tilt"
+              version="0.4">
+        <doc xml:whitespace="preserve">Sets the angles at which the ellipse should be tilted around it's center.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="angle_tilt_x" transfer-ownership="none">
+            <doc xml:whitespace="preserve">tilt of the elipse around the center in X axis in degrees.</doc>
+            <type name="gdouble" c:type="gdouble"/>
+          </parameter>
+          <parameter name="angle_tilt_y" transfer-ownership="none">
+            <doc xml:whitespace="preserve">tilt of the elipse around the center in Y axis in degrees.</doc>
+            <type name="gdouble" c:type="gdouble"/>
+          </parameter>
+          <parameter name="angle_tilt_z" transfer-ownership="none">
+            <doc xml:whitespace="preserve">tilt of the elipse around the center in Z axis in degrees.</doc>
+            <type name="gdouble" c:type="gdouble"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_width"
+              c:identifier="clutter_behaviour_ellipse_set_width"
+              version="0.4">
+        <doc xml:whitespace="preserve">Sets the width of the elliptical path.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="width" transfer-ownership="none">
+            <doc xml:whitespace="preserve">width of the ellipse</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <property name="angle-end"
+                version="0.4"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">The final angle to where the rotation should end.</doc>
+        <type name="gdouble"/>
+      </property>
+      <property name="angle-start"
+                version="0.4"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">The initial angle from where the rotation should start.</doc>
+        <type name="gdouble"/>
+      </property>
+      <property name="angle-tilt-x"
+                version="0.4"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">The tilt angle for the rotation around center in X axis</doc>
+        <type name="gdouble"/>
+      </property>
+      <property name="angle-tilt-y"
+                version="0.4"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">The tilt angle for the rotation around center in Y axis</doc>
+        <type name="gdouble"/>
+      </property>
+      <property name="angle-tilt-z"
+                version="0.4"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">The tilt angle for the rotation on the Z axis</doc>
+        <type name="gdouble"/>
+      </property>
+      <property name="center"
+                version="0.4"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">The center of the ellipse.</doc>
+        <type name="Knot"/>
+      </property>
+      <property name="direction"
+                version="0.4"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">The direction of the rotation.</doc>
+        <type name="RotateDirection"/>
+      </property>
+      <property name="height"
+                version="0.4"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">Height of the ellipse, in pixels</doc>
+        <type name="gint"/>
+      </property>
+      <property name="width"
+                version="0.4"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">Width of the ellipse, in pixels</doc>
+        <type name="gint"/>
+      </property>
+      <field name="parent_instance">
+        <type name="Behaviour" c:type="ClutterBehaviour"/>
+      </field>
+      <field name="priv">
+        <type name="BehaviourEllipsePrivate"
+              c:type="ClutterBehaviourEllipsePrivate*"/>
+      </field>
+    </class>
+    <record name="BehaviourEllipseClass"
+            c:type="ClutterBehaviourEllipseClass"
+            glib:is-gtype-struct-for="BehaviourEllipse"
+            version="0.4">
+      <doc xml:whitespace="preserve">The #ClutterBehaviourEllipseClass struct contains only private data</doc>
+      <field name="parent_class">
+        <type name="BehaviourClass" c:type="ClutterBehaviourClass"/>
+      </field>
+    </record>
+    <record name="BehaviourEllipsePrivate"
+            c:type="ClutterBehaviourEllipsePrivate"
+            disguised="1">
+    </record>
+    <callback name="BehaviourForeachFunc"
+              c:type="ClutterBehaviourForeachFunc"
+              version="0.2">
+      <doc xml:whitespace="preserve">This function is passed to clutter_behaviour_foreach_actor() and
+will be called for each actor driven by @behaviour.</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="behaviour" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the #ClutterBehaviour</doc>
+          <type name="Behaviour" c:type="ClutterBehaviour*"/>
+        </parameter>
+        <parameter name="actor" transfer-ownership="none">
+          <doc xml:whitespace="preserve">an actor driven by @behaviour</doc>
+          <type name="Actor" c:type="ClutterActor*"/>
+        </parameter>
+        <parameter name="data" transfer-ownership="none">
+          <doc xml:whitespace="preserve">optional data passed to the function</doc>
+          <type name="gpointer" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <class name="BehaviourOpacity"
+           c:symbol-prefix="behaviour_opacity"
+           c:type="ClutterBehaviourOpacity"
+           version="0.2"
+           parent="Behaviour"
+           glib:type-name="ClutterBehaviourOpacity"
+           glib:get-type="clutter_behaviour_opacity_get_type"
+           glib:type-struct="BehaviourOpacityClass">
+      <doc xml:whitespace="preserve">The #ClutterBehaviourOpacity structure contains only private data and
+should be accessed using the provided API</doc>
+      <implements name="Scriptable"/>
+      <constructor name="new"
+                   c:identifier="clutter_behaviour_opacity_new"
+                   version="0.2">
+        <doc xml:whitespace="preserve">Creates a new #ClutterBehaviourOpacity object, driven by @alpha
+which controls the opacity property of every actor, making it
+change in the interval between @opacity_start and @opacity_end.
+If @alpha is not %NULL, the #ClutterBehaviour will take ownership
+of the #ClutterAlpha instance. In the case when @alpha is %NULL,
+it can be set later with clutter_behaviour_set_alpha().</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">the newly created #ClutterBehaviourOpacity</doc>
+          <type name="Behaviour" c:type="ClutterBehaviour*"/>
+        </return-value>
+        <parameters>
+          <parameter name="alpha" transfer-ownership="none" allow-none="1">
+            <doc xml:whitespace="preserve">a #ClutterAlpha instance, or %NULL</doc>
+            <type name="Alpha" c:type="ClutterAlpha*"/>
+          </parameter>
+          <parameter name="opacity_start" transfer-ownership="none">
+            <doc xml:whitespace="preserve">minimum level of opacity</doc>
+            <type name="guint8" c:type="guint8"/>
+          </parameter>
+          <parameter name="opacity_end" transfer-ownership="none">
+            <doc xml:whitespace="preserve">maximum level of opacity</doc>
+            <type name="guint8" c:type="guint8"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <method name="get_bounds"
+              c:identifier="clutter_behaviour_opacity_get_bounds"
+              version="0.6">
+        <doc xml:whitespace="preserve">Gets the initial and final levels of the opacity applied by @behaviour
+on each actor it controls.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="opacity_start"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:whitespace="preserve">return location for the minimum level of opacity, or %NULL</doc>
+            <type name="guint8" c:type="guint8*"/>
+          </parameter>
+          <parameter name="opacity_end"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:whitespace="preserve">return location for the maximum level of opacity, or %NULL</doc>
+            <type name="guint8" c:type="guint8*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_bounds"
+              c:identifier="clutter_behaviour_opacity_set_bounds"
+              version="0.6">
+        <doc xml:whitespace="preserve">Sets the initial and final levels of the opacity applied by @behaviour
+on each actor it controls.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="opacity_start" transfer-ownership="none">
+            <doc xml:whitespace="preserve">minimum level of opacity</doc>
+            <type name="guint8" c:type="guint8"/>
+          </parameter>
+          <parameter name="opacity_end" transfer-ownership="none">
+            <doc xml:whitespace="preserve">maximum level of opacity</doc>
+            <type name="guint8" c:type="guint8"/>
+          </parameter>
+        </parameters>
+      </method>
+      <property name="opacity-end"
+                version="0.2"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">Final opacity level of the behaviour.</doc>
+        <type name="guint"/>
+      </property>
+      <property name="opacity-start"
+                version="0.2"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">Initial opacity level of the behaviour.</doc>
+        <type name="guint"/>
+      </property>
+      <field name="parent">
+        <type name="Behaviour" c:type="ClutterBehaviour"/>
+      </field>
+      <field name="priv">
+        <type name="BehaviourOpacityPrivate"
+              c:type="ClutterBehaviourOpacityPrivate*"/>
+      </field>
+    </class>
+    <record name="BehaviourOpacityClass"
+            c:type="ClutterBehaviourOpacityClass"
+            glib:is-gtype-struct-for="BehaviourOpacity"
+            version="0.2">
+      <doc xml:whitespace="preserve">The #ClutterBehaviourOpacityClass structure contains only private data</doc>
+      <field name="parent_class">
+        <type name="BehaviourClass" c:type="ClutterBehaviourClass"/>
+      </field>
+    </record>
+    <record name="BehaviourOpacityPrivate"
+            c:type="ClutterBehaviourOpacityPrivate"
+            disguised="1">
+    </record>
+    <class name="BehaviourPath"
+           c:symbol-prefix="behaviour_path"
+           c:type="ClutterBehaviourPath"
+           version="0.2"
+           parent="Behaviour"
+           glib:type-name="ClutterBehaviourPath"
+           glib:get-type="clutter_behaviour_path_get_type"
+           glib:type-struct="BehaviourPathClass">
+      <doc xml:whitespace="preserve">The #ClutterBehaviourPath structure contains only private data
+and should be accessed using the provided API</doc>
+      <implements name="Scriptable"/>
+      <constructor name="new"
+                   c:identifier="clutter_behaviour_path_new"
+                   version="0.2">
+        <doc xml:whitespace="preserve">Creates a new path behaviour. You can use this behaviour to drive
+actors along the nodes of a path, described by @path.
+This will claim the floating reference on the #ClutterPath so you
+do not need to unref if it.
+If @alpha is not %NULL, the #ClutterBehaviour will take ownership
+of the #ClutterAlpha instance. In the case when @alpha is %NULL,
+it can be set later with clutter_behaviour_set_alpha().</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">a #ClutterBehaviour</doc>
+          <type name="Behaviour" c:type="ClutterBehaviour*"/>
+        </return-value>
+        <parameters>
+          <parameter name="alpha" transfer-ownership="none" allow-none="1">
+            <doc xml:whitespace="preserve">a #ClutterAlpha instance, or %NULL</doc>
+            <type name="Alpha" c:type="ClutterAlpha*"/>
+          </parameter>
+          <parameter name="path" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #ClutterPath or %NULL for an empty path</doc>
+            <type name="Path" c:type="ClutterPath*"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <constructor name="new_with_description"
+                   c:identifier="clutter_behaviour_path_new_with_description"
+                   version="1.0">
+        <doc xml:whitespace="preserve">Creates a new path behaviour using the path described by @desc. See
+clutter_path_add_string() for a description of the format.
+If @alpha is not %NULL, the #ClutterBehaviour will take ownership
+of the #ClutterAlpha instance. In the case when @alpha is %NULL,
+it can be set later with clutter_behaviour_set_alpha().</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">a #ClutterBehaviour</doc>
+          <type name="Behaviour" c:type="ClutterBehaviour*"/>
+        </return-value>
+        <parameters>
+          <parameter name="alpha" transfer-ownership="none" allow-none="1">
+            <doc xml:whitespace="preserve">a #ClutterAlpha instance, or %NULL</doc>
+            <type name="Alpha" c:type="ClutterAlpha*"/>
+          </parameter>
+          <parameter name="desc" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a string description of the path</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <constructor name="new_with_knots"
+                   c:identifier="clutter_behaviour_path_new_with_knots"
+                   version="1.0">
+        <doc xml:whitespace="preserve">Creates a new path behaviour that will make the actors visit all of
+the given knots in order with straight lines in between.
+A path will be created where the first knot is used in a
+%CLUTTER_PATH_MOVE_TO and the subsequent knots are used in
+%CLUTTER_PATH_LINE_TO&lt;!-- --&gt;s.
+If @alpha is not %NULL, the #ClutterBehaviour will take ownership
+of the #ClutterAlpha instance. In the case when @alpha is %NULL,
+it can be set later with clutter_behaviour_set_alpha().</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">a #ClutterBehaviour</doc>
+          <type name="Behaviour" c:type="ClutterBehaviour*"/>
+        </return-value>
+        <parameters>
+          <parameter name="alpha" transfer-ownership="none" allow-none="1">
+            <doc xml:whitespace="preserve">a #ClutterAlpha instance, or %NULL</doc>
+            <type name="Alpha" c:type="ClutterAlpha*"/>
+          </parameter>
+          <parameter name="knots" transfer-ownership="none">
+            <doc xml:whitespace="preserve">an array of #ClutterKnot&lt;!-- --&gt;s</doc>
+            <type name="Knot" c:type="ClutterKnot*"/>
+          </parameter>
+          <parameter name="n_knots" transfer-ownership="none">
+            <doc xml:whitespace="preserve">number of entries in @knots</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <method name="get_path"
+              c:identifier="clutter_behaviour_path_get_path"
+              version="1.0">
+        <doc xml:whitespace="preserve">Get the current path of the behaviour</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the path</doc>
+          <type name="Path" c:type="ClutterPath*"/>
+        </return-value>
+      </method>
+      <method name="set_path"
+              c:identifier="clutter_behaviour_path_set_path"
+              version="1.0">
+        <doc xml:whitespace="preserve">Change the path that the actors will follow. This will take the
+floating reference on the #ClutterPath so you do not need to unref
+it.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="path" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the new path to follow</doc>
+            <type name="Path" c:type="ClutterPath*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <property name="path" writable="1" transfer-ownership="none">
+        <type name="Path"/>
+      </property>
+      <field name="parent">
+        <type name="Behaviour" c:type="ClutterBehaviour"/>
+      </field>
+      <field name="priv">
+        <type name="BehaviourPathPrivate"
+              c:type="ClutterBehaviourPathPrivate*"/>
+      </field>
+      <glib:signal name="knot-reached" version="0.2">
+        <doc xml:whitespace="preserve">This signal is emitted each time a node defined inside the path
+is reached.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none"/>
+        </return-value>
+        <parameters>
+          <parameter name="object" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the index of the #ClutterKnot reached</doc>
+            <type name="guint"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+    </class>
+    <record name="BehaviourPathClass"
+            c:type="ClutterBehaviourPathClass"
+            glib:is-gtype-struct-for="BehaviourPath">
+      <field name="parent_class">
+        <type name="BehaviourClass" c:type="ClutterBehaviourClass"/>
+      </field>
+      <field name="knot_reached">
+        <callback name="knot_reached">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="pathb" transfer-ownership="none">
+              <type name="BehaviourPath" c:type="ClutterBehaviourPath*"/>
+            </parameter>
+            <parameter name="knot_num" transfer-ownership="none">
+              <type name="guint" c:type="guint"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="_clutter_path_1" introspectable="0">
+        <callback name="_clutter_path_1">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_path_2" introspectable="0">
+        <callback name="_clutter_path_2">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_path_3" introspectable="0">
+        <callback name="_clutter_path_3">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_path_4" introspectable="0">
+        <callback name="_clutter_path_4">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+    </record>
+    <record name="BehaviourPathPrivate"
+            c:type="ClutterBehaviourPathPrivate"
+            disguised="1">
+    </record>
+    <record name="BehaviourPrivate"
+            c:type="ClutterBehaviourPrivate"
+            disguised="1">
+    </record>
+    <class name="BehaviourRotate"
+           c:symbol-prefix="behaviour_rotate"
+           c:type="ClutterBehaviourRotate"
+           version="0.4"
+           parent="Behaviour"
+           glib:type-name="ClutterBehaviourRotate"
+           glib:get-type="clutter_behaviour_rotate_get_type"
+           glib:type-struct="BehaviourRotateClass">
+      <doc xml:whitespace="preserve">The #ClutterBehaviourRotate struct contains only private data and
+should be accessed using the provided API</doc>
+      <implements name="Scriptable"/>
+      <constructor name="new"
+                   c:identifier="clutter_behaviour_rotate_new"
+                   version="0.4">
+        <doc xml:whitespace="preserve">Creates a new #ClutterBehaviourRotate. This behaviour will rotate actors
+bound to it on @axis, following @direction, between @angle_start and
+&lt;0, 360), if angle_start == angle_end, the behaviour will carry out a
+single rotation of 360 degrees.
+If @alpha is not %NULL, the #ClutterBehaviour will take ownership
+of the #ClutterAlpha instance. In the case when @alpha is %NULL,
+it can be set later with clutter_behaviour_set_alpha().</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">the newly created #ClutterBehaviourRotate.</doc>
+          <type name="Behaviour" c:type="ClutterBehaviour*"/>
+        </return-value>
+        <parameters>
+          <parameter name="alpha" transfer-ownership="none" allow-none="1">
+            <doc xml:whitespace="preserve">a #ClutterAlpha instance, or %NULL</doc>
+            <type name="Alpha" c:type="ClutterAlpha*"/>
+          </parameter>
+          <parameter name="axis" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the rotation axis</doc>
+            <type name="RotateAxis" c:type="ClutterRotateAxis"/>
+          </parameter>
+          <parameter name="direction" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the rotation direction</doc>
+            <type name="RotateDirection" c:type="ClutterRotateDirection"/>
+          </parameter>
+          <parameter name="angle_start" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the starting angle in degrees, between 0 and 360.</doc>
+            <type name="gdouble" c:type="gdouble"/>
+          </parameter>
+          <parameter name="angle_end" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the final angle in degrees, between 0 and 360.</doc>
+            <type name="gdouble" c:type="gdouble"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <method name="get_axis"
+              c:identifier="clutter_behaviour_rotate_get_axis"
+              version="0.4">
+        <doc xml:whitespace="preserve">Retrieves the #ClutterRotateAxis used by the rotate behaviour.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the rotation axis</doc>
+          <type name="RotateAxis" c:type="ClutterRotateAxis"/>
+        </return-value>
+      </method>
+      <method name="get_bounds"
+              c:identifier="clutter_behaviour_rotate_get_bounds"
+              version="0.4">
+        <doc xml:whitespace="preserve">Retrieves the rotation boundaries of the rotate behaviour.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="angle_start" transfer-ownership="none">
+            <doc xml:whitespace="preserve">return value for the initial angle</doc>
+            <type name="gdouble" c:type="gdouble*"/>
+          </parameter>
+          <parameter name="angle_end" transfer-ownership="none">
+            <doc xml:whitespace="preserve">return value for the final angle</doc>
+            <type name="gdouble" c:type="gdouble*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_center"
+              c:identifier="clutter_behaviour_rotate_get_center"
+              version="0.4">
+        <doc xml:whitespace="preserve">Retrieves the center of rotation set using
+clutter_behaviour_rotate_set_center().</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="x"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:whitespace="preserve">return location for the X center of rotation</doc>
+            <type name="gint" c:type="gint*"/>
+          </parameter>
+          <parameter name="y"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:whitespace="preserve">return location for the Y center of rotation</doc>
+            <type name="gint" c:type="gint*"/>
+          </parameter>
+          <parameter name="z"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:whitespace="preserve">return location for the Z center of rotation</doc>
+            <type name="gint" c:type="gint*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_direction"
+              c:identifier="clutter_behaviour_rotate_get_direction"
+              version="0.4">
+        <doc xml:whitespace="preserve">Retrieves the #ClutterRotateDirection used by the rotate behaviour.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the rotation direction</doc>
+          <type name="RotateDirection" c:type="ClutterRotateDirection"/>
+        </return-value>
+      </method>
+      <method name="set_axis"
+              c:identifier="clutter_behaviour_rotate_set_axis"
+              version="0.4">
+        <doc xml:whitespace="preserve">Sets the axis used by the rotate behaviour.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="axis" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #ClutterRotateAxis</doc>
+            <type name="RotateAxis" c:type="ClutterRotateAxis"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_bounds"
+              c:identifier="clutter_behaviour_rotate_set_bounds"
+              version="0.4">
+        <doc xml:whitespace="preserve">Sets the initial and final angles of a rotation behaviour; angles &gt;= 360
+degrees get clamped to the canonical interval &lt;0, 360).</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="angle_start" transfer-ownership="none">
+            <doc xml:whitespace="preserve">initial angle in degrees, between 0 and 360.</doc>
+            <type name="gdouble" c:type="gdouble"/>
+          </parameter>
+          <parameter name="angle_end" transfer-ownership="none">
+            <doc xml:whitespace="preserve">final angle in degrees, between 0 and 360.</doc>
+            <type name="gdouble" c:type="gdouble"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_center"
+              c:identifier="clutter_behaviour_rotate_set_center"
+              version="0.4">
+        <doc xml:whitespace="preserve">Sets the center of rotation. The coordinates are relative to the plane
+normal to the rotation axis set with clutter_behaviour_rotate_set_axis().</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="x" transfer-ownership="none">
+            <doc xml:whitespace="preserve">X axis center of rotation</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="y" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Y axis center of rotation</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="z" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Z axis center of rotation</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_direction"
+              c:identifier="clutter_behaviour_rotate_set_direction"
+              version="0.4">
+        <doc xml:whitespace="preserve">Sets the rotation direction used by the rotate behaviour.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="direction" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the rotation direction</doc>
+            <type name="RotateDirection" c:type="ClutterRotateDirection"/>
+          </parameter>
+        </parameters>
+      </method>
+      <property name="angle-end"
+                version="0.4"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">The final angle to where the rotation should end.</doc>
+        <type name="gdouble"/>
+      </property>
+      <property name="angle-start"
+                version="0.4"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">The initial angle from whence the rotation should start.</doc>
+        <type name="gdouble"/>
+      </property>
+      <property name="axis"
+                version="0.4"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">The axis of rotation.</doc>
+        <type name="RotateAxis"/>
+      </property>
+      <property name="center-x"
+                version="0.4"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">The x center of rotation.</doc>
+        <type name="gint"/>
+      </property>
+      <property name="center-y"
+                version="0.4"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">The y center of rotation.</doc>
+        <type name="gint"/>
+      </property>
+      <property name="center-z"
+                version="0.4"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">The z center of rotation.</doc>
+        <type name="gint"/>
+      </property>
+      <property name="direction"
+                version="0.4"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">The direction of the rotation.</doc>
+        <type name="RotateDirection"/>
+      </property>
+      <field name="parent_instance">
+        <type name="Behaviour" c:type="ClutterBehaviour"/>
+      </field>
+      <field name="priv">
+        <type name="BehaviourRotatePrivate"
+              c:type="ClutterBehaviourRotatePrivate*"/>
+      </field>
+    </class>
+    <record name="BehaviourRotateClass"
+            c:type="ClutterBehaviourRotateClass"
+            glib:is-gtype-struct-for="BehaviourRotate"
+            version="0.4">
+      <doc xml:whitespace="preserve">The #ClutterBehaviourRotateClass struct contains only private data</doc>
+      <field name="parent_class">
+        <type name="BehaviourClass" c:type="ClutterBehaviourClass"/>
+      </field>
+    </record>
+    <record name="BehaviourRotatePrivate"
+            c:type="ClutterBehaviourRotatePrivate"
+            disguised="1">
+    </record>
+    <class name="BehaviourScale"
+           c:symbol-prefix="behaviour_scale"
+           c:type="ClutterBehaviourScale"
+           version="0.2"
+           parent="Behaviour"
+           glib:type-name="ClutterBehaviourScale"
+           glib:get-type="clutter_behaviour_scale_get_type"
+           glib:type-struct="BehaviourScaleClass">
+      <doc xml:whitespace="preserve">The #ClutterBehaviourScale struct contains only private data and
+should be accessed using the provided API</doc>
+      <implements name="Scriptable"/>
+      <constructor name="new"
+                   c:identifier="clutter_behaviour_scale_new"
+                   version="0.2">
+        <doc xml:whitespace="preserve">Creates a new  #ClutterBehaviourScale instance.
+If @alpha is not %NULL, the #ClutterBehaviour will take ownership
+of the #ClutterAlpha instance. In the case when @alpha is %NULL,
+it can be set later with clutter_behaviour_set_alpha().</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">the newly created #ClutterBehaviourScale</doc>
+          <type name="Behaviour" c:type="ClutterBehaviour*"/>
+        </return-value>
+        <parameters>
+          <parameter name="alpha" transfer-ownership="none" allow-none="1">
+            <doc xml:whitespace="preserve">a #ClutterAlpha instance, or %NULL</doc>
+            <type name="Alpha" c:type="ClutterAlpha*"/>
+          </parameter>
+          <parameter name="x_scale_start" transfer-ownership="none">
+            <doc xml:whitespace="preserve">initial scale factor on the X axis</doc>
+            <type name="gdouble" c:type="gdouble"/>
+          </parameter>
+          <parameter name="y_scale_start" transfer-ownership="none">
+            <doc xml:whitespace="preserve">initial scale factor on the Y axis</doc>
+            <type name="gdouble" c:type="gdouble"/>
+          </parameter>
+          <parameter name="x_scale_end" transfer-ownership="none">
+            <doc xml:whitespace="preserve">final scale factor on the X axis</doc>
+            <type name="gdouble" c:type="gdouble"/>
+          </parameter>
+          <parameter name="y_scale_end" transfer-ownership="none">
+            <doc xml:whitespace="preserve">final scale factor on the Y axis</doc>
+            <type name="gdouble" c:type="gdouble"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <method name="get_bounds"
+              c:identifier="clutter_behaviour_scale_get_bounds"
+              version="0.4">
+        <doc xml:whitespace="preserve">Retrieves the bounds used by scale behaviour.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="x_scale_start"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:whitespace="preserve">return location for the initial scale factor on the X axis, or %NULL</doc>
+            <type name="gdouble" c:type="gdouble*"/>
+          </parameter>
+          <parameter name="y_scale_start"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:whitespace="preserve">return location for the initial scale factor on the Y axis, or %NULL</doc>
+            <type name="gdouble" c:type="gdouble*"/>
+          </parameter>
+          <parameter name="x_scale_end"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:whitespace="preserve">return location for the final scale factor on the X axis, or %NULL</doc>
+            <type name="gdouble" c:type="gdouble*"/>
+          </parameter>
+          <parameter name="y_scale_end"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:whitespace="preserve">return location for the final scale factor on the Y axis, or %NULL</doc>
+            <type name="gdouble" c:type="gdouble*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_bounds"
+              c:identifier="clutter_behaviour_scale_set_bounds"
+              version="0.6">
+        <doc xml:whitespace="preserve">Sets the bounds used by scale behaviour.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="x_scale_start" transfer-ownership="none">
+            <doc xml:whitespace="preserve">initial scale factor on the X axis</doc>
+            <type name="gdouble" c:type="gdouble"/>
+          </parameter>
+          <parameter name="y_scale_start" transfer-ownership="none">
+            <doc xml:whitespace="preserve">initial scale factor on the Y axis</doc>
+            <type name="gdouble" c:type="gdouble"/>
+          </parameter>
+          <parameter name="x_scale_end" transfer-ownership="none">
+            <doc xml:whitespace="preserve">final scale factor on the X axis</doc>
+            <type name="gdouble" c:type="gdouble"/>
+          </parameter>
+          <parameter name="y_scale_end" transfer-ownership="none">
+            <doc xml:whitespace="preserve">final scale factor on the Y axis</doc>
+            <type name="gdouble" c:type="gdouble"/>
+          </parameter>
+        </parameters>
+      </method>
+      <property name="x-scale-end"
+                version="0.6"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">The final scaling factor on the X axis for the actors.</doc>
+        <type name="gdouble"/>
+      </property>
+      <property name="x-scale-start"
+                version="0.6"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">The initial scaling factor on the X axis for the actors.</doc>
+        <type name="gdouble"/>
+      </property>
+      <property name="y-scale-end"
+                version="0.6"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">The final scaling factor on the Y axis for the actors.</doc>
+        <type name="gdouble"/>
+      </property>
+      <property name="y-scale-start"
+                version="0.6"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">The initial scaling factor on the Y axis for the actors.</doc>
+        <type name="gdouble"/>
+      </property>
+      <field name="parent_instance">
+        <type name="Behaviour" c:type="ClutterBehaviour"/>
+      </field>
+      <field name="priv">
+        <type name="BehaviourScalePrivate"
+              c:type="ClutterBehaviourScalePrivate*"/>
+      </field>
+    </class>
+    <record name="BehaviourScaleClass"
+            c:type="ClutterBehaviourScaleClass"
+            glib:is-gtype-struct-for="BehaviourScale"
+            version="0.2">
+      <doc xml:whitespace="preserve">The #ClutterBehaviourScaleClass struct contains only private data</doc>
+      <field name="parent_class">
+        <type name="BehaviourClass" c:type="ClutterBehaviourClass"/>
+      </field>
+    </record>
+    <record name="BehaviourScalePrivate"
+            c:type="ClutterBehaviourScalePrivate"
+            disguised="1">
+    </record>
+    <enumeration name="BinAlignment"
+                 version="1.2"
+                 glib:type-name="ClutterBinAlignment"
+                 glib:get-type="clutter_bin_alignment_get_type"
+                 c:type="ClutterBinAlignment">
+      <doc xml:whitespace="preserve">The alignment policies available on each axis for #ClutterBinLayout</doc>
+      <member name="fixed"
+              value="0"
+              c:identifier="CLUTTER_BIN_ALIGNMENT_FIXED"
+              glib:nick="fixed"/>
+      <member name="fill"
+              value="1"
+              c:identifier="CLUTTER_BIN_ALIGNMENT_FILL"
+              glib:nick="fill"/>
+      <member name="start"
+              value="2"
+              c:identifier="CLUTTER_BIN_ALIGNMENT_START"
+              glib:nick="start"/>
+      <member name="end"
+              value="3"
+              c:identifier="CLUTTER_BIN_ALIGNMENT_END"
+              glib:nick="end"/>
+      <member name="center"
+              value="4"
+              c:identifier="CLUTTER_BIN_ALIGNMENT_CENTER"
+              glib:nick="center"/>
+    </enumeration>
+    <class name="BinLayout"
+           c:symbol-prefix="bin_layout"
+           c:type="ClutterBinLayout"
+           version="1.2"
+           parent="LayoutManager"
+           glib:type-name="ClutterBinLayout"
+           glib:get-type="clutter_bin_layout_get_type"
+           glib:type-struct="BinLayoutClass">
+      <doc xml:whitespace="preserve">The #ClutterBinLayout structure contains only private data
+and should be accessed using the provided API</doc>
+      <constructor name="new"
+                   c:identifier="clutter_bin_layout_new"
+                   version="1.2">
+        <doc xml:whitespace="preserve">Creates a new #ClutterBinLayout layout manager</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the newly created layout manager</doc>
+          <type name="LayoutManager" c:type="ClutterLayoutManager*"/>
+        </return-value>
+        <parameters>
+          <parameter name="x_align" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the default alignment policy to be used on the horizontal axis</doc>
+            <type name="BinAlignment" c:type="ClutterBinAlignment"/>
+          </parameter>
+          <parameter name="y_align" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the default alignment policy to be used on the vertical axis</doc>
+            <type name="BinAlignment" c:type="ClutterBinAlignment"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <method name="add" c:identifier="clutter_bin_layout_add" version="1.2">
+        <doc xml:whitespace="preserve">Adds a #ClutterActor to the container using @self and
+sets the alignment policies for it
+This function is equivalent to clutter_container_add_actor()
+and clutter_layout_manager_child_set_property() but it does not
+require a pointer to the #ClutterContainer associated to the
+#ClutterBinLayout</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="child" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+          <parameter name="x_align" transfer-ownership="none">
+            <doc xml:whitespace="preserve">horizontal alignment policy for @child</doc>
+            <type name="BinAlignment" c:type="ClutterBinAlignment"/>
+          </parameter>
+          <parameter name="y_align" transfer-ownership="none">
+            <doc xml:whitespace="preserve">vertical alignment policy for @child</doc>
+            <type name="BinAlignment" c:type="ClutterBinAlignment"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_alignment"
+              c:identifier="clutter_bin_layout_get_alignment"
+              version="1.2">
+        <doc xml:whitespace="preserve">Retrieves the horizontal and vertical alignment policies for
+a child of @self
+If @child is %NULL the default alignment policies will be returned
+instead</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="child" transfer-ownership="none" allow-none="1">
+            <doc xml:whitespace="preserve">a child of @container</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+          <parameter name="x_align"
+                     direction="out"
+                     caller-allocates="1"
+                     transfer-ownership="none"
+                     allow-none="1">
+            <doc xml:whitespace="preserve">return location for the horizontal alignment policy</doc>
+            <type name="BinAlignment" c:type="ClutterBinAlignment*"/>
+          </parameter>
+          <parameter name="y_align"
+                     direction="out"
+                     caller-allocates="1"
+                     transfer-ownership="none"
+                     allow-none="1">
+            <doc xml:whitespace="preserve">return location for the vertical alignment policy</doc>
+            <type name="BinAlignment" c:type="ClutterBinAlignment*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_alignment"
+              c:identifier="clutter_bin_layout_set_alignment"
+              version="1.2">
+        <doc xml:whitespace="preserve">Sets the horizontal and vertical alignment policies to be applied
+to a @child of @self
+If @child is %NULL then the @x_align and @y_align values will
+be set as the default alignment policies</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="child" transfer-ownership="none" allow-none="1">
+            <doc xml:whitespace="preserve">a child of @container</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+          <parameter name="x_align" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the horizontal alignment policy to be used for the @child inside @container</doc>
+            <type name="BinAlignment" c:type="ClutterBinAlignment"/>
+          </parameter>
+          <parameter name="y_align" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the vertical aligment policy to be used on the @child inside @container</doc>
+            <type name="BinAlignment" c:type="ClutterBinAlignment"/>
+          </parameter>
+        </parameters>
+      </method>
+      <property name="x-align"
+                version="1.2"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">The default horizontal alignment policy for actors managed
+by the #ClutterBinLayout</doc>
+        <type name="BinAlignment"/>
+      </property>
+      <property name="y-align"
+                version="1.2"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">The default vertical alignment policy for actors managed
+by the #ClutterBinLayout</doc>
+        <type name="BinAlignment"/>
+      </property>
+      <field name="parent_instance">
+        <type name="LayoutManager" c:type="ClutterLayoutManager"/>
+      </field>
+      <field name="priv">
+        <type name="BinLayoutPrivate" c:type="ClutterBinLayoutPrivate*"/>
+      </field>
+    </class>
+    <record name="BinLayoutClass"
+            c:type="ClutterBinLayoutClass"
+            glib:is-gtype-struct-for="BinLayout"
+            version="1.2">
+      <doc xml:whitespace="preserve">The #ClutterBinLayoutClass structure contains only private
+data and should be accessed using the provided API</doc>
+      <field name="parent_class">
+        <type name="LayoutManagerClass" c:type="ClutterLayoutManagerClass"/>
+      </field>
+    </record>
+    <record name="BinLayoutPrivate"
+            c:type="ClutterBinLayoutPrivate"
+            disguised="1">
+    </record>
+    <class name="BindConstraint"
+           c:symbol-prefix="bind_constraint"
+           c:type="ClutterBindConstraint"
+           version="1.4"
+           parent="Constraint"
+           glib:type-name="ClutterBindConstraint"
+           glib:get-type="clutter_bind_constraint_get_type">
+      <doc xml:whitespace="preserve">&lt;structname&gt;ClutterBindConstraint&lt;/structname&gt; is an opaque structure
+whose members cannot be directly accessed</doc>
+      <constructor name="new"
+                   c:identifier="clutter_bind_constraint_new"
+                   version="1.4">
+        <doc xml:whitespace="preserve">Creates a new constraint, binding a #ClutterActor's position to
+the given @coordinate of the position of @source</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the newly created #ClutterBindConstraint</doc>
+          <type name="Constraint" c:type="ClutterConstraint*"/>
+        </return-value>
+        <parameters>
+          <parameter name="source" transfer-ownership="none" allow-none="1">
+            <doc xml:whitespace="preserve">the #ClutterActor to use as the source of the binding, or %NULL</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+          <parameter name="coordinate" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the coordinate to bind</doc>
+            <type name="BindCoordinate" c:type="ClutterBindCoordinate"/>
+          </parameter>
+          <parameter name="offset" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the offset to apply to the binding, in pixels</doc>
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <method name="get_coordinate"
+              c:identifier="clutter_bind_constraint_get_coordinate"
+              version="1.4">
+        <doc xml:whitespace="preserve">Retrieves the bound coordinate of the constraint</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the bound coordinate</doc>
+          <type name="BindCoordinate" c:type="ClutterBindCoordinate"/>
+        </return-value>
+      </method>
+      <method name="get_offset"
+              c:identifier="clutter_bind_constraint_get_offset"
+              version="1.4">
+        <doc xml:whitespace="preserve">Retrieves the offset set using clutter_bind_constraint_set_offset()</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the offset, in pixels</doc>
+          <type name="gfloat" c:type="gfloat"/>
+        </return-value>
+      </method>
+      <method name="get_source"
+              c:identifier="clutter_bind_constraint_get_source"
+              version="1.4">
+        <doc xml:whitespace="preserve">Retrieves the #ClutterActor set using clutter_bind_constraint_set_source()</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">a pointer to the source actor</doc>
+          <type name="Actor" c:type="ClutterActor*"/>
+        </return-value>
+      </method>
+      <method name="set_coordinate"
+              c:identifier="clutter_bind_constraint_set_coordinate"
+              version="1.4">
+        <doc xml:whitespace="preserve">Sets the coordinate to bind in the constraint</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="coordinate" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the coordinate to bind</doc>
+            <type name="BindCoordinate" c:type="ClutterBindCoordinate"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_offset"
+              c:identifier="clutter_bind_constraint_set_offset"
+              version="1.4">
+        <doc xml:whitespace="preserve">Sets the offset to be applied to the constraint</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="offset" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the offset to apply, in pixels</doc>
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_source"
+              c:identifier="clutter_bind_constraint_set_source"
+              version="1.4">
+        <doc xml:whitespace="preserve">Sets the source #ClutterActor for the constraint</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="source" transfer-ownership="none" allow-none="1">
+            <doc xml:whitespace="preserve">a #ClutterActor, or %NULL to unset the source</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <property name="coordinate"
+                version="1.4"
+                writable="1"
+                construct="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">The coordinate to be bound</doc>
+        <type name="BindCoordinate"/>
+      </property>
+      <property name="offset"
+                version="1.4"
+                writable="1"
+                construct="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">The offset, in pixels, to be applied to the binding</doc>
+        <type name="gfloat"/>
+      </property>
+      <property name="source"
+                version="1.4"
+                writable="1"
+                construct="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">The #ClutterActor used as the source for the binding</doc>
+        <type name="Actor"/>
+      </property>
+    </class>
+    <enumeration name="BindCoordinate"
+                 version="1.4"
+                 glib:type-name="ClutterBindCoordinate"
+                 glib:get-type="clutter_bind_coordinate_get_type"
+                 c:type="ClutterBindCoordinate">
+      <doc xml:whitespace="preserve">Specifies which property should be used in a binding</doc>
+      <member name="x" value="0" c:identifier="CLUTTER_BIND_X" glib:nick="x"/>
+      <member name="y" value="1" c:identifier="CLUTTER_BIND_Y" glib:nick="y"/>
+      <member name="width"
+              value="2"
+              c:identifier="CLUTTER_BIND_WIDTH"
+              glib:nick="width"/>
+      <member name="height"
+              value="3"
+              c:identifier="CLUTTER_BIND_HEIGHT"
+              glib:nick="height"/>
+    </enumeration>
+    <callback name="BindingActionFunc"
+              c:type="ClutterBindingActionFunc"
+              version="1.0">
+      <doc xml:whitespace="preserve">The prototype for the callback function registered with
+clutter_binding_pool_install_action() and invoked by
+clutter_binding_pool_activate().
+binding has been handled, and return %FALSE otherwise</doc>
+      <return-value transfer-ownership="none">
+        <doc xml:whitespace="preserve">the function should return %TRUE if the key</doc>
+        <type name="gboolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="gobject" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #GObject</doc>
+          <type name="GObject.Object" c:type="GObject*"/>
+        </parameter>
+        <parameter name="action_name" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the name of the action</doc>
+          <type name="utf8" c:type="gchar*"/>
+        </parameter>
+        <parameter name="key_val" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the key symbol</doc>
+          <type name="guint" c:type="guint"/>
+        </parameter>
+        <parameter name="modifiers" transfer-ownership="none">
+          <doc xml:whitespace="preserve">bitmask of the modifier flags</doc>
+          <type name="ModifierType" c:type="ClutterModifierType"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <class name="BindingPool"
+           c:symbol-prefix="binding_pool"
+           c:type="ClutterBindingPool"
+           version="1.0"
+           parent="GObject.Object"
+           glib:type-name="ClutterBindingPool"
+           glib:get-type="clutter_binding_pool_get_type">
+      <doc xml:whitespace="preserve">Container of key bindings. The #ClutterBindingPool struct is
+private.</doc>
+      <constructor name="new"
+                   c:identifier="clutter_binding_pool_new"
+                   version="1.0">
+        <doc xml:whitespace="preserve">Creates a new #ClutterBindingPool that can be used to store
+key bindings for an actor. The @name must be a unique identifier
+for the binding pool, so that clutter_binding_pool_find() will
+be able to return the correct binding pool.
+name. Use g_object_unref() when done.</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">the newly created binding pool with the given</doc>
+          <type name="BindingPool" c:type="ClutterBindingPool*"/>
+        </return-value>
+        <parameters>
+          <parameter name="name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the name of the binding pool</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <function name="find"
+                c:identifier="clutter_binding_pool_find"
+                version="1.0">
+        <doc xml:whitespace="preserve">Finds the #ClutterBindingPool with @name.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">a pointer to the #ClutterBindingPool, or %NULL</doc>
+          <type name="BindingPool" c:type="ClutterBindingPool*"/>
+        </return-value>
+        <parameters>
+          <parameter name="name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the name of the binding pool to find</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </function>
+      <function name="get_for_class"
+                c:identifier="clutter_binding_pool_get_for_class"
+                version="1.0">
+        <doc xml:whitespace="preserve">Retrieves the #ClutterBindingPool for the given #GObject class
+and, eventually, creates it. This function is a wrapper around
+clutter_binding_pool_new() and uses the class type name as the
+unique name for the binding pool.
+Calling this function multiple times will return the same
+#ClutterBindingPool.
+A binding pool for a class can also be retrieved using
+clutter_binding_pool_find() with the class type name:
+|[
+pool = clutter_binding_pool_find (G_OBJECT_TYPE_NAME (instance));
+]|
+The returned #ClutterBindingPool is owned by Clutter and should not
+be freed directly</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the binding pool for the given class.</doc>
+          <type name="BindingPool" c:type="ClutterBindingPool*"/>
+        </return-value>
+        <parameters>
+          <parameter name="klass" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GObjectClass pointer</doc>
+            <type name="gpointer" c:type="gpointer"/>
+          </parameter>
+        </parameters>
+      </function>
+      <method name="activate"
+              c:identifier="clutter_binding_pool_activate"
+              version="1.0">
+        <doc xml:whitespace="preserve">Activates the callback associated to the action that is
+bound to the @key_val and @modifiers pair.
+The callback has the following signature:
+|[
+void (* callback) (GObject             *gobject,
+const gchar         *action_name,
+guint                key_val,
+ClutterModifierType  modifiers,
+gpointer             user_data);
+]|
+Where the #GObject instance is @gobject and the user data
+is the one passed when installing the action with
+clutter_binding_pool_install_action().
+If the action bound to the @key_val, @modifiers pair has been
+blocked using clutter_binding_pool_block_action(), the callback
+will not be invoked, and this function will return %FALSE.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if an action was found and was activated</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="key_val" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the key symbol</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+          <parameter name="modifiers" transfer-ownership="none">
+            <doc xml:whitespace="preserve">bitmask for the modifiers</doc>
+            <type name="ModifierType" c:type="ClutterModifierType"/>
+          </parameter>
+          <parameter name="gobject" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GObject</doc>
+            <type name="GObject.Object" c:type="GObject*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="block_action"
+              c:identifier="clutter_binding_pool_block_action"
+              version="1.0">
+        <doc xml:whitespace="preserve">Blocks all the actions with name @action_name inside @pool.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="action_name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">an action name</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="find_action"
+              c:identifier="clutter_binding_pool_find_action"
+              version="1.0">
+        <doc xml:whitespace="preserve">Retrieves the name of the action matching the given key symbol
+and modifiers bitmask.
+returned string is owned by the binding pool and should never
+be modified or freed</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the name of the action, if found, or %NULL. The</doc>
+          <type name="utf8" c:type="gchar*"/>
+        </return-value>
+        <parameters>
+          <parameter name="key_val" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a key symbol</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+          <parameter name="modifiers" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a bitmask for the modifiers</doc>
+            <type name="ModifierType" c:type="ClutterModifierType"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="install_action"
+              c:identifier="clutter_binding_pool_install_action"
+              version="1.0">
+        <doc xml:whitespace="preserve">Installs a new action inside a #ClutterBindingPool. The action
+is bound to @key_val and @modifiers.
+The same action name can be used for multiple @key_val, @modifiers
+pairs.
+When an action has been activated using clutter_binding_pool_activate()
+the passed @callback will be invoked (with @data).
+Actions can be blocked with clutter_binding_pool_block_action()
+and then unblocked using clutter_binding_pool_unblock_action().</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="action_name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the name of the action</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="key_val" transfer-ownership="none">
+            <doc xml:whitespace="preserve">key symbol</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+          <parameter name="modifiers" transfer-ownership="none">
+            <doc xml:whitespace="preserve">bitmask of modifiers</doc>
+            <type name="ModifierType" c:type="ClutterModifierType"/>
+          </parameter>
+          <parameter name="callback"
+                     transfer-ownership="none"
+                     scope="notified"
+                     closure="4"
+                     destroy="5">
+            <doc xml:whitespace="preserve">function to be called when the action is activated</doc>
+            <type name="GObject.Callback" c:type="GCallback"/>
+          </parameter>
+          <parameter name="data" transfer-ownership="none">
+            <doc xml:whitespace="preserve">data to be passed to @callback</doc>
+            <type name="gpointer" c:type="gpointer"/>
+          </parameter>
+          <parameter name="notify" transfer-ownership="none" scope="async">
+            <doc xml:whitespace="preserve">function to be called when the action is removed from the pool</doc>
+            <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="install_closure"
+              c:identifier="clutter_binding_pool_install_closure"
+              version="1.0">
+        <doc xml:whitespace="preserve">A #GClosure variant of clutter_binding_pool_install_action().
+Installs a new action inside a #ClutterBindingPool. The action
+is bound to @key_val and @modifiers.
+The same action name can be used for multiple @key_val, @modifiers
+pairs.
+When an action has been activated using clutter_binding_pool_activate()
+the passed @closure will be invoked.
+Actions can be blocked with clutter_binding_pool_block_action()
+and then unblocked using clutter_binding_pool_unblock_action().</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="action_name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the name of the action</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="key_val" transfer-ownership="none">
+            <doc xml:whitespace="preserve">key symbol</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+          <parameter name="modifiers" transfer-ownership="none">
+            <doc xml:whitespace="preserve">bitmask of modifiers</doc>
+            <type name="ModifierType" c:type="ClutterModifierType"/>
+          </parameter>
+          <parameter name="closure" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GClosure</doc>
+            <type name="GObject.Closure" c:type="GClosure*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="override_action"
+              c:identifier="clutter_binding_pool_override_action"
+              version="1.0">
+        <doc xml:whitespace="preserve">Allows overriding the action for @key_val and @modifiers inside a
+#ClutterBindingPool. See clutter_binding_pool_install_action().
+When an action has been activated using clutter_binding_pool_activate()
+the passed @callback will be invoked (with @data).
+Actions can be blocked with clutter_binding_pool_block_action()
+and then unblocked using clutter_binding_pool_unblock_action().</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="key_val" transfer-ownership="none">
+            <doc xml:whitespace="preserve">key symbol</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+          <parameter name="modifiers" transfer-ownership="none">
+            <doc xml:whitespace="preserve">bitmask of modifiers</doc>
+            <type name="ModifierType" c:type="ClutterModifierType"/>
+          </parameter>
+          <parameter name="callback"
+                     transfer-ownership="none"
+                     scope="notified"
+                     closure="3"
+                     destroy="4">
+            <doc xml:whitespace="preserve">function to be called when the action is activated</doc>
+            <type name="GObject.Callback" c:type="GCallback"/>
+          </parameter>
+          <parameter name="data" transfer-ownership="none">
+            <doc xml:whitespace="preserve">data to be passed to @callback</doc>
+            <type name="gpointer" c:type="gpointer"/>
+          </parameter>
+          <parameter name="notify" transfer-ownership="none" scope="async">
+            <doc xml:whitespace="preserve">function to be called when the action is removed from the pool</doc>
+            <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="override_closure"
+              c:identifier="clutter_binding_pool_override_closure"
+              version="1.0">
+        <doc xml:whitespace="preserve">A #GClosure variant of clutter_binding_pool_override_action().
+Allows overriding the action for @key_val and @modifiers inside a
+#ClutterBindingPool. See clutter_binding_pool_install_closure().
+When an action has been activated using clutter_binding_pool_activate()
+the passed @callback will be invoked (with @data).
+Actions can be blocked with clutter_binding_pool_block_action()
+and then unblocked using clutter_binding_pool_unblock_action().</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="key_val" transfer-ownership="none">
+            <doc xml:whitespace="preserve">key symbol</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+          <parameter name="modifiers" transfer-ownership="none">
+            <doc xml:whitespace="preserve">bitmask of modifiers</doc>
+            <type name="ModifierType" c:type="ClutterModifierType"/>
+          </parameter>
+          <parameter name="closure" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GClosure</doc>
+            <type name="GObject.Closure" c:type="GClosure*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="remove_action"
+              c:identifier="clutter_binding_pool_remove_action"
+              version="1.0">
+        <doc xml:whitespace="preserve">Removes the action matching the given @key_val, @modifiers pair,
+if any exists.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="key_val" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a key symbol</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+          <parameter name="modifiers" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a bitmask for the modifiers</doc>
+            <type name="ModifierType" c:type="ClutterModifierType"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="unblock_action"
+              c:identifier="clutter_binding_pool_unblock_action"
+              version="1.0">
+        <doc xml:whitespace="preserve">Unblockes all the actions with name @action_name inside @pool.
+Unblocking an action does not cause the callback bound to it to
+be invoked in case clutter_binding_pool_activate() was called on
+an action previously blocked with clutter_binding_pool_block_action().</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="action_name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">an action name</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <property name="name"
+                version="1.0"
+                writable="1"
+                construct-only="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">The unique name of the #ClutterBindingPool.</doc>
+        <type name="utf8"/>
+      </property>
+    </class>
+    <constant name="Blue" value="269025190">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Bluetooth" value="269025172">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <class name="BlurEffect"
+           c:symbol-prefix="blur_effect"
+           c:type="ClutterBlurEffect"
+           version="1.4"
+           parent="OffscreenEffect"
+           glib:type-name="ClutterBlurEffect"
+           glib:get-type="clutter_blur_effect_get_type">
+      <doc xml:whitespace="preserve">&lt;structname&gt;ClutterBlurEffect&lt;/structname&gt; is an opaque structure
+whose members cannot be accessed directly</doc>
+      <constructor name="new"
+                   c:identifier="clutter_blur_effect_new"
+                   version="1.4">
+        <doc xml:whitespace="preserve">Creates a new #ClutterBlurEffect to be used with
+clutter_actor_add_effect()</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the newly created #ClutterBlurEffect or %NULL</doc>
+          <type name="Effect" c:type="ClutterEffect*"/>
+        </return-value>
+      </constructor>
+    </class>
+    <constant name="Book" value="269025106">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="BounceKeys_Enable" value="65140">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <class name="Box"
+           c:symbol-prefix="box"
+           c:type="ClutterBox"
+           version="1.2"
+           parent="Actor"
+           glib:type-name="ClutterBox"
+           glib:get-type="clutter_box_get_type"
+           glib:type-struct="BoxClass">
+      <doc xml:whitespace="preserve">The #ClutterBox structure contains only private data and should
+be accessed using the provided API</doc>
+      <implements name="Atk.ImplementorIface"/>
+      <implements name="Animatable"/>
+      <implements name="Container"/>
+      <implements name="Scriptable"/>
+      <constructor name="new" c:identifier="clutter_box_new" version="1.0">
+        <doc xml:whitespace="preserve">Creates a new #ClutterBox. The children of the box will be layed
+out by the passed @manager</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the newly created #ClutterBox actor</doc>
+          <type name="Actor" c:type="ClutterActor*"/>
+        </return-value>
+        <parameters>
+          <parameter name="manager" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #ClutterLayoutManager</doc>
+            <type name="LayoutManager" c:type="ClutterLayoutManager*"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <method name="get_color"
+              c:identifier="clutter_box_get_color"
+              version="1.2">
+        <doc xml:whitespace="preserve">Retrieves the background color of @box
+If the #ClutterBox:color-set property is set to %FALSE the
+returned #ClutterColor is undefined</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="color"
+                     direction="out"
+                     caller-allocates="1"
+                     transfer-ownership="none">
+            <doc xml:whitespace="preserve">return location for a #ClutterColor</doc>
+            <type name="Color" c:type="ClutterColor*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_layout_manager"
+              c:identifier="clutter_box_get_layout_manager"
+              version="1.2">
+        <doc xml:whitespace="preserve">Retrieves the #ClutterLayoutManager instance used by @box
+#ClutterLayoutManager is owned by the #ClutterBox and it should not
+be unreferenced</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #ClutterLayoutManager. The returned</doc>
+          <type name="LayoutManager" c:type="ClutterLayoutManager*"/>
+        </return-value>
+      </method>
+      <method name="pack"
+              c:identifier="clutter_box_pack"
+              version="1.2"
+              introspectable="0">
+        <doc xml:whitespace="preserve">Adds @actor to @box and sets layout properties at the same time,
+if the #ClutterLayoutManager used by @box has them
+This function is a wrapper around clutter_container_add_actor()
+and clutter_layout_manager_child_set()
+Language bindings should use the vector-based clutter_box_addv()
+variant instead</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="actor" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+          <parameter name="first_property" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the name of the first property to set, or %NULL</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter transfer-ownership="none">
+            <varargs>
+            </varargs>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="pack_after"
+              c:identifier="clutter_box_pack_after"
+              version="1.2"
+              introspectable="0">
+        <doc xml:whitespace="preserve">Adds @actor to @box, placing it after @sibling, and sets layout
+properties at the same time, if the #ClutterLayoutManager used by
+If @sibling is %NULL then @actor is placed at the end of the
+list of children, to be allocated and painted after every other child
+This function is a wrapper around clutter_container_add_actor(),
+clutter_container_raise_child() and clutter_layout_manager_child_set()</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="actor" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+          <parameter name="sibling" transfer-ownership="none" allow-none="1">
+            <doc xml:whitespace="preserve">a #ClutterActor or %NULL</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+          <parameter name="first_property" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the name of the first property to set, or %NULL</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter transfer-ownership="none">
+            <varargs>
+            </varargs>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="pack_at"
+              c:identifier="clutter_box_pack_at"
+              version="1.2"
+              introspectable="0">
+        <doc xml:whitespace="preserve">Adds @actor to @box, placing it at @position, and sets layout
+properties at the same time, if the #ClutterLayoutManager used by
+If @position is a negative number, or is larger than the number of
+children of @box, the new child is added at the end of the list of
+children</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="actor" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+          <parameter name="position" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the position to insert the @actor at</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="first_property" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the name of the first property to set, or %NULL</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter transfer-ownership="none">
+            <varargs>
+            </varargs>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="pack_before"
+              c:identifier="clutter_box_pack_before"
+              version="1.2"
+              introspectable="0">
+        <doc xml:whitespace="preserve">Adds @actor to @box, placing it before @sibling, and sets layout
+properties at the same time, if the #ClutterLayoutManager used by
+If @sibling is %NULL then @actor is placed at the beginning of the
+list of children, to be allocated and painted below every other child
+This function is a wrapper around clutter_container_add_actor(),
+clutter_container_lower_child() and clutter_layout_manager_child_set()</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="actor" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+          <parameter name="sibling" transfer-ownership="none" allow-none="1">
+            <doc xml:whitespace="preserve">a #ClutterActor or %NULL</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+          <parameter name="first_property" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the name of the first property to set, or %NULL</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter transfer-ownership="none">
+            <varargs>
+            </varargs>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="packv" c:identifier="clutter_box_packv" version="1.2">
+        <doc xml:whitespace="preserve">Vector-based variant of clutter_box_pack(), intended for language
+bindings to use</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="actor" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+          <parameter name="n_properties" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the number of properties to set</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+          <parameter name="properties" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a vector containing the property names to set</doc>
+            <array length="1" c:type="gchar*">
+              <type name="utf8"/>
+            </array>
+          </parameter>
+          <parameter name="values" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a vector containing the property values to set</doc>
+            <array length="1" c:type="GValue*">
+              <type name="GObject.Value"/>
+            </array>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_color"
+              c:identifier="clutter_box_set_color"
+              version="1.2">
+        <doc xml:whitespace="preserve">Sets (or unsets) the background color for @box</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="color" transfer-ownership="none" allow-none="1">
+            <doc xml:whitespace="preserve">the background color, or %NULL to unset</doc>
+            <type name="Color" c:type="ClutterColor*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_layout_manager"
+              c:identifier="clutter_box_set_layout_manager"
+              version="1.2">
+        <doc xml:whitespace="preserve">Sets the #ClutterLayoutManager for @box
+A #ClutterLayoutManager is a delegate object that controls the
+layout of the children of @box</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="manager" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #ClutterLayoutManager</doc>
+            <type name="LayoutManager" c:type="ClutterLayoutManager*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <property name="color"
+                version="1.2"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">The color to be used to paint the background of the
+#ClutterBox. Setting this property will set the
+#ClutterBox:color-set property as a side effect</doc>
+        <type name="Color"/>
+      </property>
+      <property name="color-set"
+                version="1.2"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">Whether the #ClutterBox:color property has been set</doc>
+        <type name="gboolean"/>
+      </property>
+      <property name="layout-manager"
+                version="1.2"
+                writable="1"
+                construct="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">The #ClutterLayoutManager used by the #ClutterBox</doc>
+        <type name="LayoutManager"/>
+      </property>
+      <field name="parent_instance">
+        <type name="Actor" c:type="ClutterActor"/>
+      </field>
+      <field name="priv">
+        <type name="BoxPrivate" c:type="ClutterBoxPrivate*"/>
+      </field>
+    </class>
+    <enumeration name="BoxAlignment"
+                 version="1.2"
+                 glib:type-name="ClutterBoxAlignment"
+                 glib:get-type="clutter_box_alignment_get_type"
+                 c:type="ClutterBoxAlignment">
+      <doc xml:whitespace="preserve">The alignment policies available on each axis of the #ClutterBoxLayout</doc>
+      <member name="start"
+              value="0"
+              c:identifier="CLUTTER_BOX_ALIGNMENT_START"
+              glib:nick="start"/>
+      <member name="end"
+              value="1"
+              c:identifier="CLUTTER_BOX_ALIGNMENT_END"
+              glib:nick="end"/>
+      <member name="center"
+              value="2"
+              c:identifier="CLUTTER_BOX_ALIGNMENT_CENTER"
+              glib:nick="center"/>
+    </enumeration>
+    <record name="BoxClass"
+            c:type="ClutterBoxClass"
+            glib:is-gtype-struct-for="Box"
+            version="1.2">
+      <doc xml:whitespace="preserve">The #ClutterBoxClass structure contains only private data</doc>
+      <field name="parent_class">
+        <type name="ActorClass" c:type="ClutterActorClass"/>
+      </field>
+      <field name="clutter_padding_1">
+        <callback name="clutter_padding_1">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="clutter_padding_2">
+        <callback name="clutter_padding_2">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="clutter_padding_3">
+        <callback name="clutter_padding_3">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="clutter_padding_4">
+        <callback name="clutter_padding_4">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="clutter_padding_5">
+        <callback name="clutter_padding_5">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="clutter_padding_6">
+        <callback name="clutter_padding_6">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+    </record>
+    <class name="BoxLayout"
+           c:symbol-prefix="box_layout"
+           c:type="ClutterBoxLayout"
+           version="1.2"
+           parent="LayoutManager"
+           glib:type-name="ClutterBoxLayout"
+           glib:get-type="clutter_box_layout_get_type"
+           glib:type-struct="BoxLayoutClass">
+      <doc xml:whitespace="preserve">The #ClutterBoxLayout structure contains only private data
+and should be accessed using the provided API</doc>
+      <constructor name="new"
+                   c:identifier="clutter_box_layout_new"
+                   version="1.2">
+        <doc xml:whitespace="preserve">Creates a new #ClutterBoxLayout layout manager</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the newly created #ClutterBoxLayout</doc>
+          <type name="LayoutManager" c:type="ClutterLayoutManager*"/>
+        </return-value>
+      </constructor>
+      <method name="get_alignment"
+              c:identifier="clutter_box_layout_get_alignment"
+              version="1.2">
+        <doc xml:whitespace="preserve">Retrieves the horizontal and vertical alignment policies for @actor
+as set using clutter_box_layout_pack() or clutter_box_layout_set_alignment()</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="actor" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #ClutterActor child of @layout</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+          <parameter name="x_align"
+                     direction="out"
+                     caller-allocates="1"
+                     transfer-ownership="none">
+            <doc xml:whitespace="preserve">return location for the horizontal alignment policy</doc>
+            <type name="BoxAlignment" c:type="ClutterBoxAlignment*"/>
+          </parameter>
+          <parameter name="y_align"
+                     direction="out"
+                     caller-allocates="1"
+                     transfer-ownership="none">
+            <doc xml:whitespace="preserve">return location for the vertical alignment policy</doc>
+            <type name="BoxAlignment" c:type="ClutterBoxAlignment*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_easing_duration"
+              c:identifier="clutter_box_layout_get_easing_duration"
+              version="1.2">
+        <doc xml:whitespace="preserve">Retrieves the duration set using clutter_box_layout_set_easing_duration()</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the duration of the animations, in milliseconds</doc>
+          <type name="guint" c:type="guint"/>
+        </return-value>
+      </method>
+      <method name="get_easing_mode"
+              c:identifier="clutter_box_layout_get_easing_mode"
+              version="1.2">
+        <doc xml:whitespace="preserve">Retrieves the easing mode set using clutter_box_layout_set_easing_mode()</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">an easing mode</doc>
+          <type name="gulong" c:type="gulong"/>
+        </return-value>
+      </method>
+      <method name="get_expand"
+              c:identifier="clutter_box_layout_get_expand"
+              version="1.2">
+        <doc xml:whitespace="preserve">Retrieves whether @actor should expand inside @layout</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if the #ClutterActor should expand, %FALSE otherwise</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="actor" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #ClutterActor child of @layout</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_fill"
+              c:identifier="clutter_box_layout_get_fill"
+              version="1.2">
+        <doc xml:whitespace="preserve">Retrieves the horizontal and vertical fill policies for @actor
+as set using clutter_box_layout_pack() or clutter_box_layout_set_fill()</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="actor" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #ClutterActor child of @layout</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+          <parameter name="x_fill"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:whitespace="preserve">return location for the horizontal fill policy</doc>
+            <type name="gboolean" c:type="gboolean*"/>
+          </parameter>
+          <parameter name="y_fill"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:whitespace="preserve">return location for the vertical fill policy</doc>
+            <type name="gboolean" c:type="gboolean*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_homogeneous"
+              c:identifier="clutter_box_layout_get_homogeneous"
+              version="1.4">
+        <doc xml:whitespace="preserve">Retrieves if the children sizes are allocated homogeneously.
+homogeneously, and %FALSE otherwise</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if the #ClutterBoxLayout is arranging its children</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+      </method>
+      <method name="get_pack_start"
+              c:identifier="clutter_box_layout_get_pack_start"
+              version="1.2">
+        <doc xml:whitespace="preserve">Retrieves the value set using clutter_box_layout_set_pack_start()
+at the beginning of the layout, and %FALSE otherwise</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if the #ClutterBoxLayout should pack children</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+      </method>
+      <method name="get_spacing"
+              c:identifier="clutter_box_layout_get_spacing"
+              version="1.2">
+        <doc xml:whitespace="preserve">Retrieves the spacing set using clutter_box_layout_set_spacing()</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the spacing between children of the #ClutterBoxLayout</doc>
+          <type name="guint" c:type="guint"/>
+        </return-value>
+      </method>
+      <method name="get_use_animations"
+              c:identifier="clutter_box_layout_get_use_animations"
+              version="1.2">
+        <doc xml:whitespace="preserve">Retrieves whether @layout should animate changes in the layout properties
+Since clutter_box_layout_set_use_animations()</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if the animations should be used, %FALSE otherwise</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+      </method>
+      <method name="get_vertical"
+              c:identifier="clutter_box_layout_get_vertical"
+              version="1.2">
+        <doc xml:whitespace="preserve">Retrieves the orientation of the @layout as set using the
+clutter_box_layout_set_vertical() function
+vertically, and %FALSE otherwise</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if the #ClutterBoxLayout is arranging its children</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+      </method>
+      <method name="pack" c:identifier="clutter_box_layout_pack" version="1.2">
+        <doc xml:whitespace="preserve">Packs @actor inside the #ClutterContainer associated to @layout
+and sets the layout properties</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="actor" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+          <parameter name="expand" transfer-ownership="none">
+            <doc xml:whitespace="preserve">whether the @actor should expand</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+          <parameter name="x_fill" transfer-ownership="none">
+            <doc xml:whitespace="preserve">whether the @actor should fill horizontally</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+          <parameter name="y_fill" transfer-ownership="none">
+            <doc xml:whitespace="preserve">whether the @actor should fill vertically</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+          <parameter name="x_align" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the horizontal alignment policy for @actor</doc>
+            <type name="BoxAlignment" c:type="ClutterBoxAlignment"/>
+          </parameter>
+          <parameter name="y_align" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the vertical alignment policy for @actor</doc>
+            <type name="BoxAlignment" c:type="ClutterBoxAlignment"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_alignment"
+              c:identifier="clutter_box_layout_set_alignment"
+              version="1.2">
+        <doc xml:whitespace="preserve">Sets the horizontal and vertical alignment policies for @actor
+inside @layout</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="actor" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #ClutterActor child of @layout</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+          <parameter name="x_align" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Horizontal alignment policy for @actor</doc>
+            <type name="BoxAlignment" c:type="ClutterBoxAlignment"/>
+          </parameter>
+          <parameter name="y_align" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Vertical alignment policy for @actor</doc>
+            <type name="BoxAlignment" c:type="ClutterBoxAlignment"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_easing_duration"
+              c:identifier="clutter_box_layout_set_easing_duration"
+              version="1.2">
+        <doc xml:whitespace="preserve">Sets the duration of the animations used by @layout when animating changes
+in the layout properties
+Use clutter_box_layout_set_use_animations() to enable and disable the
+animations</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="msecs" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the duration of the animations, in milliseconds</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_easing_mode"
+              c:identifier="clutter_box_layout_set_easing_mode"
+              version="1.2">
+        <doc xml:whitespace="preserve">Sets the easing mode to be used by @layout when animating changes in layout
+properties
+Use clutter_box_layout_set_use_animations() to enable and disable the
+animations</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="mode" transfer-ownership="none">
+            <doc xml:whitespace="preserve">an easing mode, either from #ClutterAnimationMode or a logical id from clutter_alpha_register_func()</doc>
+            <type name="gulong" c:type="gulong"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_expand"
+              c:identifier="clutter_box_layout_set_expand"
+              version="1.2">
+        <doc xml:whitespace="preserve">Sets whether @actor should expand inside @layout</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="actor" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #ClutterActor child of @layout</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+          <parameter name="expand" transfer-ownership="none">
+            <doc xml:whitespace="preserve">whether @actor should expand</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_fill"
+              c:identifier="clutter_box_layout_set_fill"
+              version="1.2">
+        <doc xml:whitespace="preserve">Sets the horizontal and vertical fill policies for @actor
+inside @layout</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="actor" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #ClutterActor child of @layout</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+          <parameter name="x_fill" transfer-ownership="none">
+            <doc xml:whitespace="preserve">whether @actor should fill horizontally the allocated space</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+          <parameter name="y_fill" transfer-ownership="none">
+            <doc xml:whitespace="preserve">whether @actor should fill vertically the allocated space</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_homogeneous"
+              c:identifier="clutter_box_layout_set_homogeneous"
+              version="1.4">
+        <doc xml:whitespace="preserve">Sets whether the size of @layout children should be
+homogeneous</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="homogeneous" transfer-ownership="none">
+            <doc xml:whitespace="preserve">%TRUE if the layout should be homogeneous</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_pack_start"
+              c:identifier="clutter_box_layout_set_pack_start"
+              version="1.2">
+        <doc xml:whitespace="preserve">Sets whether children of @layout should be layed out by appending
+them or by prepending them</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="pack_start" transfer-ownership="none">
+            <doc xml:whitespace="preserve">%TRUE if the @layout should pack children at the beginning of the layout</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_spacing"
+              c:identifier="clutter_box_layout_set_spacing"
+              version="1.2">
+        <doc xml:whitespace="preserve">Sets the spacing between children of @layout</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="spacing" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the spacing between children of the layout, in pixels</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_use_animations"
+              c:identifier="clutter_box_layout_set_use_animations"
+              version="1.2">
+        <doc xml:whitespace="preserve">Sets whether @layout should animate changes in the layout properties
+The duration of the animations is controlled by
+clutter_box_layout_set_easing_duration(); the easing mode to be used
+by the animations is controlled by clutter_box_layout_set_easing_mode()</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="animate" transfer-ownership="none">
+            <doc xml:whitespace="preserve">%TRUE if the @layout should use animations</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_vertical"
+              c:identifier="clutter_box_layout_set_vertical"
+              version="1.2">
+        <doc xml:whitespace="preserve">Sets whether @layout should arrange its children vertically alongside
+the Y axis, instead of horizontally alongside the X axis</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="vertical" transfer-ownership="none">
+            <doc xml:whitespace="preserve">%TRUE if the layout should be vertical</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <property name="easing-duration"
+                version="1.2"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">The duration of the animations, in case #ClutterBoxLayout:use-animations
+is set to %TRUE
+The duration is expressed in milliseconds</doc>
+        <type name="guint"/>
+      </property>
+      <property name="easing-mode"
+                version="1.2"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">The easing mode for the animations, in case
+#ClutterBoxLayout:use-animations is set to %TRUE
+either be a value from the #ClutterAnimationMode enumeration, like
+%CLUTTER_EASE_OUT_CUBIC, or a logical id as returned by
+clutter_alpha_register_func()
+The default value is %CLUTTER_EASE_OUT_CUBIC</doc>
+        <type name="gulong"/>
+      </property>
+      <property name="homogeneous"
+                version="1.4"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">Whether the #ClutterBoxLayout should arrange its children
+homogeneously, i.e. all childs get the same size</doc>
+        <type name="gboolean"/>
+      </property>
+      <property name="pack-start"
+                version="1.2"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">Whether the #ClutterBoxLayout should pack items at the start
+or append them at the end</doc>
+        <type name="gboolean"/>
+      </property>
+      <property name="spacing"
+                version="1.2"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">The spacing between children of the #ClutterBoxLayout, in pixels</doc>
+        <type name="guint"/>
+      </property>
+      <property name="use-animations"
+                version="1.2"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">Whether the #ClutterBoxLayout should animate changes in the
+layout properties</doc>
+        <type name="gboolean"/>
+      </property>
+      <property name="vertical"
+                version="1.2"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">Whether the #ClutterBoxLayout should arrange its children
+alongside the Y axis, instead of alongside the X axis</doc>
+        <type name="gboolean"/>
+      </property>
+      <field name="parent_instance">
+        <type name="LayoutManager" c:type="ClutterLayoutManager"/>
+      </field>
+      <field name="priv">
+        <type name="BoxLayoutPrivate" c:type="ClutterBoxLayoutPrivate*"/>
+      </field>
+    </class>
+    <record name="BoxLayoutClass"
+            c:type="ClutterBoxLayoutClass"
+            glib:is-gtype-struct-for="BoxLayout"
+            version="1.2">
+      <doc xml:whitespace="preserve">The #ClutterBoxLayoutClass structure contains only private
+data and should be accessed using the provided API</doc>
+      <field name="parent_class">
+        <type name="LayoutManagerClass" c:type="ClutterLayoutManagerClass"/>
+      </field>
+    </record>
+    <record name="BoxLayoutPrivate"
+            c:type="ClutterBoxLayoutPrivate"
+            disguised="1">
+    </record>
+    <record name="BoxPrivate" c:type="ClutterBoxPrivate" disguised="1">
+    </record>
+    <constant name="Break" value="65387">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="BrightnessAdjust" value="269025083">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <record name="ButtonEvent" c:type="ClutterButtonEvent" version="0.2">
+      <doc xml:whitespace="preserve">Button event.
+The event coordinates are relative to the stage that received the
+event, and can be transformed into actor-relative coordinates by
+using clutter_actor_transform_stage_point().</doc>
+      <field name="type" writable="1">
+        <type name="EventType" c:type="ClutterEventType"/>
+      </field>
+      <field name="time" writable="1">
+        <type name="guint32" c:type="guint32"/>
+      </field>
+      <field name="flags" writable="1">
+        <type name="EventFlags" c:type="ClutterEventFlags"/>
+      </field>
+      <field name="stage" writable="1">
+        <type name="Stage" c:type="ClutterStage*"/>
+      </field>
+      <field name="source" writable="1">
+        <type name="Actor" c:type="ClutterActor*"/>
+      </field>
+      <field name="x" writable="1">
+        <type name="gfloat" c:type="gfloat"/>
+      </field>
+      <field name="y" writable="1">
+        <type name="gfloat" c:type="gfloat"/>
+      </field>
+      <field name="modifier_state" writable="1">
+        <type name="ModifierType" c:type="ClutterModifierType"/>
+      </field>
+      <field name="button" writable="1">
+        <type name="guint32" c:type="guint32"/>
+      </field>
+      <field name="click_count" writable="1">
+        <type name="guint" c:type="guint"/>
+      </field>
+      <field name="axes" writable="1">
+        <type name="gdouble" c:type="gdouble*"/>
+      </field>
+      <field name="device" writable="1">
+        <type name="InputDevice" c:type="ClutterInputDevice*"/>
+      </field>
+    </record>
+    <constant name="Byelorussian_SHORTU" value="1726">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Byelorussian_shortu" value="1710">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="C" value="67">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="CD" value="269025107">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="COGL" value="gl">
+      <type name="utf8" c:type="gchar*"/>
+    </constant>
+    <constant name="CURRENT_TIME" value="0">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cabovedot" value="709">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cacute" value="454">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <class name="CairoTexture"
+           c:symbol-prefix="cairo_texture"
+           c:type="ClutterCairoTexture"
+           version="1.0"
+           parent="Texture"
+           glib:type-name="ClutterCairoTexture"
+           glib:get-type="clutter_cairo_texture_get_type"
+           glib:type-struct="CairoTextureClass">
+      <doc xml:whitespace="preserve">The #ClutterCairoTexture struct contains only private data.</doc>
+      <implements name="Atk.ImplementorIface"/>
+      <implements name="Animatable"/>
+      <implements name="Scriptable"/>
+      <constructor name="new"
+                   c:identifier="clutter_cairo_texture_new"
+                   version="1.0">
+        <doc xml:whitespace="preserve">Creates a new #ClutterCairoTexture actor, with a surface of @width by</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the newly created #ClutterCairoTexture actor</doc>
+          <type name="Actor" c:type="ClutterActor*"/>
+        </return-value>
+        <parameters>
+          <parameter name="width" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the width of the surface</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+          <parameter name="height" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the height of the surface</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <method name="clear"
+              c:identifier="clutter_cairo_texture_clear"
+              version="1.0">
+        <doc xml:whitespace="preserve">Clears @self's internal drawing surface, so that the next upload
+will replace the previous contents of the #ClutterCairoTexture
+rather than adding to it.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </method>
+      <method name="create"
+              c:identifier="clutter_cairo_texture_create"
+              version="1.0"
+              introspectable="0">
+        <doc xml:whitespace="preserve">Creates a new Cairo context for the @cairo texture. It is
+similar to using clutter_cairo_texture_create_region() with @x_offset
+and @y_offset of 0, @width equal to the @cairo texture surface width
+and @height equal to the @cairo texture surface height.
+&lt;warning&gt;&lt;para&gt;Do not call this function within the paint virtual
+function or from a callback to the #ClutterActor::paint
+signal.&lt;/para&gt;&lt;/warning&gt;
+to upload the contents of the context when done drawing</doc>
+        <return-value>
+          <doc xml:whitespace="preserve">a newly created Cairo context. Use cairo_destroy()</doc>
+          <type name="cairo.Context" c:type="cairo_t*"/>
+        </return-value>
+      </method>
+      <method name="create_region"
+              c:identifier="clutter_cairo_texture_create_region"
+              version="1.0"
+              introspectable="0">
+        <doc xml:whitespace="preserve">Creates a new Cairo context that will updat the region defined
+by @x_offset, @y_offset, @width and @height.
+&lt;warning&gt;&lt;para&gt;Do not call this function within the paint virtual
+function or from a callback to the #ClutterActor::paint
+signal.&lt;/para&gt;&lt;/warning&gt;
+to upload the contents of the context when done drawing</doc>
+        <return-value>
+          <doc xml:whitespace="preserve">a newly created Cairo context. Use cairo_destroy()</doc>
+          <type name="cairo.Context" c:type="cairo_t*"/>
+        </return-value>
+        <parameters>
+          <parameter name="x_offset" transfer-ownership="none">
+            <doc xml:whitespace="preserve">offset of the region on the X axis</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="y_offset" transfer-ownership="none">
+            <doc xml:whitespace="preserve">offset of the region on the Y axis</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="width" transfer-ownership="none">
+            <doc xml:whitespace="preserve">width of the region, or -1 for the full surface width</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="height" transfer-ownership="none">
+            <doc xml:whitespace="preserve">height of the region, or -1 for the full surface height</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_surface_size"
+              c:identifier="clutter_cairo_texture_get_surface_size"
+              version="1.0">
+        <doc xml:whitespace="preserve">Retrieves the surface width and height for @self.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="width"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:whitespace="preserve">return location for the surface width, or %NULL</doc>
+            <type name="guint" c:type="guint*"/>
+          </parameter>
+          <parameter name="height"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:whitespace="preserve">return location for the surface height, or %NULL</doc>
+            <type name="guint" c:type="guint*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_surface_size"
+              c:identifier="clutter_cairo_texture_set_surface_size"
+              version="1.0">
+        <doc xml:whitespace="preserve">Resizes the Cairo surface used by @self to @width and @height.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="width" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the new width of the surface</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+          <parameter name="height" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the new height of the surface</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <property name="surface-height"
+                version="1.0"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">The height of the Cairo surface used by the #ClutterCairoTexture
+actor, in pixels.</doc>
+        <type name="guint"/>
+      </property>
+      <property name="surface-width"
+                version="1.0"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">The width of the Cairo surface used by the #ClutterCairoTexture
+actor, in pixels.</doc>
+        <type name="guint"/>
+      </property>
+      <field name="parent_instance">
+        <type name="Texture" c:type="ClutterTexture"/>
+      </field>
+      <field name="priv">
+        <type name="CairoTexturePrivate" c:type="ClutterCairoTexturePrivate*"/>
+      </field>
+    </class>
+    <record name="CairoTextureClass"
+            c:type="ClutterCairoTextureClass"
+            glib:is-gtype-struct-for="CairoTexture"
+            version="1.0">
+      <doc xml:whitespace="preserve">The #ClutterCairoTextureClass struct contains only private data.</doc>
+      <field name="parent_class">
+        <type name="TextureClass" c:type="ClutterTextureClass"/>
+      </field>
+      <field name="_clutter_cairo_1" introspectable="0">
+        <callback name="_clutter_cairo_1">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_cairo_2" introspectable="0">
+        <callback name="_clutter_cairo_2">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_cairo_3" introspectable="0">
+        <callback name="_clutter_cairo_3">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_cairo_4" introspectable="0">
+        <callback name="_clutter_cairo_4">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+    </record>
+    <record name="CairoTexturePrivate"
+            c:type="ClutterCairoTexturePrivate"
+            disguised="1">
+    </record>
+    <constant name="Calculator" value="269025053">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Calendar" value="269025056">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <callback name="Callback" c:type="ClutterCallback">
+      <doc xml:whitespace="preserve">Generic callback</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="actor" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #ClutterActor</doc>
+          <type name="Actor" c:type="ClutterActor*"/>
+        </parameter>
+        <parameter name="data" transfer-ownership="none">
+          <doc xml:whitespace="preserve">user data</doc>
+          <type name="gpointer" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <constant name="Cancel" value="65385">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Caps_Lock" value="65509">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Ccaron" value="456">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Ccedilla" value="199">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Ccircumflex" value="710">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <class name="ChildMeta"
+           c:symbol-prefix="child_meta"
+           c:type="ClutterChildMeta"
+           version="0.8"
+           parent="GObject.Object"
+           abstract="1"
+           glib:type-name="ClutterChildMeta"
+           glib:get-type="clutter_child_meta_get_type"
+           glib:type-struct="ChildMetaClass">
+      <doc xml:whitespace="preserve">Base interface for container specific state for child actors. A child
+data is meant to be used when you need to keep track of information
+about each individual child added to a container.
+In order to use it you should create your own subclass of
+#ClutterChildMeta and set the #ClutterContainerIface::child_meta_type
+interface member to your subclass type, like:
+|[
+static void
+my_container_iface_init (ClutterContainerIface *iface)
+{
+/&amp;ast; set the rest of the #ClutterContainer vtable &amp;ast;/
+container_iface-&gt;child_meta_type  = MY_TYPE_CHILD_META;
+}
+]|
+This will automatically create a #ClutterChildMeta of type
+MY_TYPE_CHILD_META for every actor that is added to the container.
+The child data for an actor can be retrieved using the
+clutter_container_get_child_meta() function.
+The properties of the data and your subclass can be manipulated with
+clutter_container_child_set() and clutter_container_child_get() which
+act like g_object_set() and g_object_get().
+You can provide hooks for your own storage as well as control the
+instantiation by overriding #ClutterContainerIface::create_child_meta,
+#ClutterContainerIface::destroy_child_meta and
+#ClutterContainerIface::get_child_meta.</doc>
+      <method name="get_actor"
+              c:identifier="clutter_child_meta_get_actor"
+              version="0.8">
+        <doc xml:whitespace="preserve">Retrieves the actor wrapped by @data</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #ClutterActor</doc>
+          <type name="Actor" c:type="ClutterActor*"/>
+        </return-value>
+      </method>
+      <method name="get_container"
+              c:identifier="clutter_child_meta_get_container"
+              version="0.8">
+        <doc xml:whitespace="preserve">Retrieves the container using @data</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #ClutterContainer</doc>
+          <type name="Container" c:type="ClutterContainer*"/>
+        </return-value>
+      </method>
+      <property name="actor"
+                version="0.8"
+                writable="1"
+                construct-only="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">The #ClutterActor being wrapped by this #ClutterChildMeta</doc>
+        <type name="Actor"/>
+      </property>
+      <property name="container"
+                version="0.8"
+                writable="1"
+                construct-only="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">The #ClutterContainer that created this #ClutterChildMeta.</doc>
+        <type name="Container"/>
+      </property>
+      <field name="parent_instance">
+        <type name="GObject.Object" c:type="GObject"/>
+      </field>
+      <field name="container">
+        <type name="Container" c:type="ClutterContainer*"/>
+      </field>
+      <field name="actor">
+        <type name="Actor" c:type="ClutterActor*"/>
+      </field>
+    </class>
+    <record name="ChildMetaClass"
+            c:type="ClutterChildMetaClass"
+            glib:is-gtype-struct-for="ChildMeta"
+            version="0.8">
+      <doc xml:whitespace="preserve">The #ClutterChildMetaClass contains only private data</doc>
+      <field name="parent_class">
+        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
+      </field>
+    </record>
+    <constant name="Clear" value="65291">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ClearGrab" value="269024801">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <class name="ClickAction"
+           c:symbol-prefix="click_action"
+           c:type="ClutterClickAction"
+           version="1.4"
+           parent="Action"
+           glib:type-name="ClutterClickAction"
+           glib:get-type="clutter_click_action_get_type"
+           glib:type-struct="ClickActionClass">
+      <doc xml:whitespace="preserve">The &lt;structname&gt;ClutterClickAction&lt;/structname&gt; structure contains
+only private data and should be accessed using the provided API</doc>
+      <constructor name="new"
+                   c:identifier="clutter_click_action_new"
+                   version="1.4">
+        <doc xml:whitespace="preserve">Creates a new #ClutterClickAction instance</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the newly created #ClutterClickAction</doc>
+          <type name="Action" c:type="ClutterAction*"/>
+        </return-value>
+      </constructor>
+      <method name="get_button"
+              c:identifier="clutter_click_action_get_button"
+              version="1.4">
+        <doc xml:whitespace="preserve">Retrieves the button that was pressed.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the button value</doc>
+          <type name="guint" c:type="guint"/>
+        </return-value>
+      </method>
+      <method name="release"
+              c:identifier="clutter_click_action_release"
+              version="1.4">
+        <doc xml:whitespace="preserve">Emulates a release of the pointer button, which ungrabs the pointer
+and unsets the #ClutterClickAction:pressed state.
+This function is useful to break a grab, for instance after a certain
+amount of time has passed.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </method>
+      <property name="held" version="1.4" transfer-ownership="none">
+        <doc xml:whitespace="preserve">Whether the clickable actor has the pointer grabbed</doc>
+        <type name="gboolean"/>
+      </property>
+      <property name="pressed" version="1.4" transfer-ownership="none">
+        <doc xml:whitespace="preserve">Whether the clickable actor should be in "pressed" state</doc>
+        <type name="gboolean"/>
+      </property>
+      <field name="parent_instance">
+        <type name="Action" c:type="ClutterAction"/>
+      </field>
+      <field name="priv">
+        <type name="ClickActionPrivate" c:type="ClutterClickActionPrivate*"/>
+      </field>
+      <glib:signal name="clicked" version="1.4">
+        <doc xml:whitespace="preserve">The ::clicked signal is emitted when the #ClutterActor to which
+a #ClutterClickAction has been applied should respond to a
+pointer button press and release events</doc>
+        <return-value transfer-ownership="none">
+          <type name="none"/>
+        </return-value>
+        <parameters>
+          <parameter name="object" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the #ClutterActor attached to the @action</doc>
+            <type name="Actor"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+    </class>
+    <record name="ClickActionClass"
+            c:type="ClutterClickActionClass"
+            glib:is-gtype-struct-for="ClickAction"
+            version="1.4">
+      <doc xml:whitespace="preserve">The &lt;structname&gt;ClutterClickActionClass&lt;/structname&gt; structure
+contains only private data</doc>
+      <field name="parent_class">
+        <type name="ActionClass" c:type="ClutterActionClass"/>
+      </field>
+      <field name="clicked">
+        <callback name="clicked">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="action" transfer-ownership="none">
+              <type name="ClickAction" c:type="ClutterClickAction*"/>
+            </parameter>
+            <parameter name="actor" transfer-ownership="none">
+              <type name="Actor" c:type="ClutterActor*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="_clutter_click_action1" introspectable="0">
+        <callback name="_clutter_click_action1">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_click_action2" introspectable="0">
+        <callback name="_clutter_click_action2">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_click_action3" introspectable="0">
+        <callback name="_clutter_click_action3">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_click_action4" introspectable="0">
+        <callback name="_clutter_click_action4">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_click_action5" introspectable="0">
+        <callback name="_clutter_click_action5">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_click_action6" introspectable="0">
+        <callback name="_clutter_click_action6">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_click_action7" introspectable="0">
+        <callback name="_clutter_click_action7">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+    </record>
+    <record name="ClickActionPrivate"
+            c:type="ClutterClickActionPrivate"
+            disguised="1">
+    </record>
+    <class name="Clone"
+           c:symbol-prefix="clone"
+           c:type="ClutterClone"
+           version="1.0"
+           parent="Actor"
+           glib:type-name="ClutterClone"
+           glib:get-type="clutter_clone_get_type"
+           glib:type-struct="CloneClass">
+      <doc xml:whitespace="preserve">The #ClutterClone structure contains only private data
+and should be accessed using the provided API</doc>
+      <implements name="Atk.ImplementorIface"/>
+      <implements name="Animatable"/>
+      <implements name="Scriptable"/>
+      <constructor name="new" c:identifier="clutter_clone_new" version="1.0">
+        <doc xml:whitespace="preserve">Creates a new #ClutterActor which clones @source/</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the newly created #ClutterClone</doc>
+          <type name="Actor" c:type="ClutterActor*"/>
+        </return-value>
+        <parameters>
+          <parameter name="source" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #ClutterActor, or %NULL</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <method name="get_source"
+              c:identifier="clutter_clone_get_source"
+              version="1.0">
+        <doc xml:whitespace="preserve">Retrieves the source #ClutterActor being cloned by @clone</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the actor source for the clone</doc>
+          <type name="Actor" c:type="ClutterActor*"/>
+        </return-value>
+      </method>
+      <method name="set_source"
+              c:identifier="clutter_clone_set_source"
+              version="1.0">
+        <doc xml:whitespace="preserve">Sets @source as the source actor to be cloned by @clone.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="source" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #ClutterActor, or %NULL</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <property name="source"
+                version="1.0"
+                writable="1"
+                construct="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">This property specifies the source actor being cloned.</doc>
+        <type name="Actor"/>
+      </property>
+      <field name="parent_instance">
+        <type name="Actor" c:type="ClutterActor"/>
+      </field>
+      <field name="priv">
+        <type name="ClonePrivate" c:type="ClutterClonePrivate*"/>
+      </field>
+    </class>
+    <record name="CloneClass"
+            c:type="ClutterCloneClass"
+            glib:is-gtype-struct-for="Clone"
+            version="1.0">
+      <doc xml:whitespace="preserve">The #ClutterCloneClass structure contains only private data</doc>
+      <field name="parent_class">
+        <type name="ActorClass" c:type="ClutterActorClass"/>
+      </field>
+      <field name="_clutter_actor_clone1" introspectable="0">
+        <callback name="_clutter_actor_clone1">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_actor_clone2" introspectable="0">
+        <callback name="_clutter_actor_clone2">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_actor_clone3" introspectable="0">
+        <callback name="_clutter_actor_clone3">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_actor_clone4" introspectable="0">
+        <callback name="_clutter_actor_clone4">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+    </record>
+    <record name="ClonePrivate" c:type="ClutterClonePrivate" disguised="1">
+    </record>
+    <constant name="Close" value="269025110">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Codeinput" value="65335">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ColonSign" value="16785569">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <record name="Color"
+            c:type="ClutterColor"
+            glib:type-name="ClutterColor"
+            glib:get-type="clutter_color_get_type"
+            c:symbol-prefix="color">
+      <doc xml:whitespace="preserve">Color representation.</doc>
+      <field name="red" writable="1">
+        <type name="guint8" c:type="guint8"/>
+      </field>
+      <field name="green" writable="1">
+        <type name="guint8" c:type="guint8"/>
+      </field>
+      <field name="blue" writable="1">
+        <type name="guint8" c:type="guint8"/>
+      </field>
+      <field name="alpha" writable="1">
+        <type name="guint8" c:type="guint8"/>
+      </field>
+      <constructor name="new" c:identifier="clutter_color_new" version="0.8.4">
+        <doc xml:whitespace="preserve">Creates a new #ClutterColor with the given values.
+Use clutter_color_free() when done</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">the newly allocated color.</doc>
+          <type name="Color" c:type="ClutterColor*"/>
+        </return-value>
+        <parameters>
+          <parameter name="red" transfer-ownership="none">
+            <doc xml:whitespace="preserve">red component of the color, between 0 and 255</doc>
+            <type name="guint8" c:type="guint8"/>
+          </parameter>
+          <parameter name="green" transfer-ownership="none">
+            <doc xml:whitespace="preserve">green component of the color, between 0 and 255</doc>
+            <type name="guint8" c:type="guint8"/>
+          </parameter>
+          <parameter name="blue" transfer-ownership="none">
+            <doc xml:whitespace="preserve">blue component of the color, between 0 and 255</doc>
+            <type name="guint8" c:type="guint8"/>
+          </parameter>
+          <parameter name="alpha" transfer-ownership="none">
+            <doc xml:whitespace="preserve">alpha component of the color, between 0 and 255</doc>
+            <type name="guint8" c:type="guint8"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <method name="add" c:identifier="clutter_color_add">
+        <doc xml:whitespace="preserve">Adds @a to @b and saves the resulting color inside @result.
+The alpha channel of @result is set as as the maximum value
+between the alpha channels of @a and @b.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="b" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #ClutterColor</doc>
+            <type name="Color" c:type="ClutterColor*"/>
+          </parameter>
+          <parameter name="result"
+                     direction="out"
+                     caller-allocates="1"
+                     transfer-ownership="none">
+            <doc xml:whitespace="preserve">return location for the result</doc>
+            <type name="Color" c:type="ClutterColor*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="copy" c:identifier="clutter_color_copy" version="0.2">
+        <doc xml:whitespace="preserve">Makes a copy of the color structure.  The result must be
+freed using clutter_color_free().</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">an allocated copy of @color.</doc>
+          <type name="Color" c:type="ClutterColor*"/>
+        </return-value>
+      </method>
+      <method name="darken" c:identifier="clutter_color_darken">
+        <doc xml:whitespace="preserve">Darkens @color by a fixed amount, and saves the changed color
+in @result.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="result"
+                     direction="out"
+                     caller-allocates="1"
+                     transfer-ownership="none">
+            <doc xml:whitespace="preserve">return location for the darker color</doc>
+            <type name="Color" c:type="ClutterColor*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="free" c:identifier="clutter_color_free" version="0.2">
+        <doc xml:whitespace="preserve">Frees a color structure created with clutter_color_copy().</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </method>
+      <method name="from_hls" c:identifier="clutter_color_from_hls">
+        <doc xml:whitespace="preserve">Converts a color expressed in HLS (hue, luminance and saturation)
+values into a #ClutterColor.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="hue" transfer-ownership="none">
+            <doc xml:whitespace="preserve">hue value, in the 0 .. 360 range</doc>
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+          <parameter name="luminance" transfer-ownership="none">
+            <doc xml:whitespace="preserve">luminance value, in the 0 .. 1 range</doc>
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+          <parameter name="saturation" transfer-ownership="none">
+            <doc xml:whitespace="preserve">saturation value, in the 0 .. 1 range</doc>
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="from_pixel" c:identifier="clutter_color_from_pixel">
+        <doc xml:whitespace="preserve">Converts @pixel from the packed representation of a four 8 bit channel
+color to a #ClutterColor.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="pixel" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a 32 bit packed integer containing a color</doc>
+            <type name="guint32" c:type="guint32"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="from_string"
+              c:identifier="clutter_color_from_string"
+              version="1.0">
+        <doc xml:whitespace="preserve">Parses a string definition of a color, filling the
+&lt;structfield&gt;red&lt;/structfield&gt;, &lt;structfield&gt;green&lt;/structfield&gt;, 
+&lt;structfield&gt;blue&lt;/structfield&gt; and &lt;structfield&gt;alpha&lt;/structfield&gt; 
+channels of @color. If alpha is not specified it will be set full opaque.
+The @color is not allocated.
+The color may be defined by any of the formats understood by
+pango_color_from_string(); these include literal color names, like
+&lt;literal&gt;Red&lt;/literal&gt; or &lt;literal&gt;DarkSlateGray&lt;/literal&gt;, or
+hexadecimal specifications like &lt;literal&gt;&amp;num;3050b2&lt;/literal&gt; or
+&lt;literal&gt;&amp;num;333&lt;/literal&gt;.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if parsing succeeded.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="str" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a string specifiying a color (named color or #RRGGBBAA)</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="lighten" c:identifier="clutter_color_lighten">
+        <doc xml:whitespace="preserve">Lightens @color by a fixed amount, and saves the changed color
+in @result.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="result"
+                     direction="out"
+                     caller-allocates="1"
+                     transfer-ownership="none">
+            <doc xml:whitespace="preserve">return location for the lighter color</doc>
+            <type name="Color" c:type="ClutterColor*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="shade" c:identifier="clutter_color_shade">
+        <doc xml:whitespace="preserve">Shades @color by @factor and saves the modified color into @result.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="factor" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the shade factor to apply</doc>
+            <type name="gdouble" c:type="gdouble"/>
+          </parameter>
+          <parameter name="result"
+                     direction="out"
+                     caller-allocates="1"
+                     transfer-ownership="none">
+            <doc xml:whitespace="preserve">return location for the shaded color</doc>
+            <type name="Color" c:type="ClutterColor*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="subtract" c:identifier="clutter_color_subtract">
+        <doc xml:whitespace="preserve">Subtracts @b from @a and saves the resulting color inside @result.
+This function assumes that the components of @a are greater than the
+components of @b; the result is, otherwise, undefined.
+The alpha channel of @result is set as the minimum value
+between the alpha channels of @a and @b.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="b" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #ClutterColor</doc>
+            <type name="Color" c:type="ClutterColor*"/>
+          </parameter>
+          <parameter name="result"
+                     direction="out"
+                     caller-allocates="1"
+                     transfer-ownership="none">
+            <doc xml:whitespace="preserve">return location for the result</doc>
+            <type name="Color" c:type="ClutterColor*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="to_hls" c:identifier="clutter_color_to_hls">
+        <doc xml:whitespace="preserve">Converts @color to the HLS format.
+The @hue value is in the 0 .. 360 range. The @luminance and</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="hue"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:whitespace="preserve">return location for the hue value or %NULL</doc>
+            <type name="gfloat" c:type="gfloat*"/>
+          </parameter>
+          <parameter name="luminance"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:whitespace="preserve">return location for the luminance value or %NULL</doc>
+            <type name="gfloat" c:type="gfloat*"/>
+          </parameter>
+          <parameter name="saturation"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:whitespace="preserve">return location for the saturation value or %NULL</doc>
+            <type name="gfloat" c:type="gfloat*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="to_pixel" c:identifier="clutter_color_to_pixel">
+        <doc xml:whitespace="preserve">Converts @color into a packed 32 bit integer, containing
+all the four 8 bit channels used by #ClutterColor.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">a packed color</doc>
+          <type name="guint32" c:type="guint32"/>
+        </return-value>
+      </method>
+      <method name="to_string"
+              c:identifier="clutter_color_to_string"
+              version="0.2">
+        <doc xml:whitespace="preserve">Returns a textual specification of @color in the hexadecimal form
+&lt;literal&gt;&amp;num;rrggbbaa&lt;/literal&gt;, where &lt;literal&gt;r&lt;/literal&gt;,
+&lt;literal&gt;g&lt;/literal&gt;, &lt;literal&gt;b&lt;/literal&gt; and &lt;literal&gt;a&lt;/literal&gt; are
+hex digits representing the red, green, blue and alpha components
+respectively.</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">a newly-allocated text string</doc>
+          <type name="utf8" c:type="gchar*"/>
+        </return-value>
+      </method>
+    </record>
+    <class name="ColorizeEffect"
+           c:symbol-prefix="colorize_effect"
+           c:type="ClutterColorizeEffect"
+           parent="OffscreenEffect"
+           glib:type-name="ClutterColorizeEffect"
+           glib:get-type="clutter_colorize_effect_get_type">
+      <doc xml:whitespace="preserve">&lt;structname&gt;ClutterColorizeEffect&lt;/structname&gt; is an opaque structure
+whose members cannot be directly accessed
+SinceL 1.4</doc>
+      <constructor name="new"
+                   c:identifier="clutter_colorize_effect_new"
+                   version="1.4">
+        <doc xml:whitespace="preserve">Creates a new #ClutterColorizeEffect to be used with
+clutter_actor_add_effect()</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the newly created #ClutterColorizeEffect or %NULL</doc>
+          <type name="Effect" c:type="ClutterEffect*"/>
+        </return-value>
+        <parameters>
+          <parameter name="tint" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the color to be used</doc>
+            <type name="Color" c:type="ClutterColor*"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <method name="get_tint"
+              c:identifier="clutter_colorize_effect_get_tint"
+              version="1.4">
+        <doc xml:whitespace="preserve">Retrieves the tint used by @effect</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="tint"
+                     direction="out"
+                     caller-allocates="1"
+                     transfer-ownership="none">
+            <doc xml:whitespace="preserve">return location for the color used</doc>
+            <type name="Color" c:type="ClutterColor*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_tint"
+              c:identifier="clutter_colorize_effect_set_tint"
+              version="1.4">
+        <doc xml:whitespace="preserve">Sets the tint to be used when colorizing</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="tint" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the color to be used</doc>
+            <type name="Color" c:type="ClutterColor*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <property name="tint"
+                version="1.4"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">The tint to apply to the actor</doc>
+        <type name="Color"/>
+      </property>
+    </class>
+    <constant name="Community" value="269025085">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <class name="Constraint"
+           c:symbol-prefix="constraint"
+           c:type="ClutterConstraint"
+           version="1.4"
+           parent="ActorMeta"
+           abstract="1"
+           glib:type-name="ClutterConstraint"
+           glib:get-type="clutter_constraint_get_type"
+           glib:type-struct="ConstraintClass">
+      <doc xml:whitespace="preserve">The &lt;structname&gt;ClutterConstraint&lt;/structname&gt; structure contains only
+private data and should be accessed using the provided API</doc>
+      <virtual-method name="update_allocation">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="actor" transfer-ownership="none">
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+          <parameter name="allocation" transfer-ownership="none">
+            <type name="ActorBox" c:type="ClutterActorBox*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <field name="parent_instance">
+        <type name="ActorMeta" c:type="ClutterActorMeta"/>
+      </field>
+    </class>
+    <record name="ConstraintClass"
+            c:type="ClutterConstraintClass"
+            glib:is-gtype-struct-for="Constraint"
+            version="1.4">
+      <doc xml:whitespace="preserve">The &lt;structname&gt;ClutterConstraintClass&lt;/structname&gt; structure contains
+only private data</doc>
+      <field name="parent_class">
+        <type name="ActorMetaClass" c:type="ClutterActorMetaClass"/>
+      </field>
+      <field name="update_allocation">
+        <callback name="update_allocation">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="constraint" transfer-ownership="none">
+              <type name="Constraint" c:type="ClutterConstraint*"/>
+            </parameter>
+            <parameter name="actor" transfer-ownership="none">
+              <type name="Actor" c:type="ClutterActor*"/>
+            </parameter>
+            <parameter name="allocation" transfer-ownership="none">
+              <type name="ActorBox" c:type="ClutterActorBox*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="_clutter_constraint1" introspectable="0">
+        <callback name="_clutter_constraint1">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_constraint2" introspectable="0">
+        <callback name="_clutter_constraint2">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_constraint3" introspectable="0">
+        <callback name="_clutter_constraint3">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_constraint4" introspectable="0">
+        <callback name="_clutter_constraint4">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_constraint5" introspectable="0">
+        <callback name="_clutter_constraint5">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_constraint6" introspectable="0">
+        <callback name="_clutter_constraint6">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_constraint7" introspectable="0">
+        <callback name="_clutter_constraint7">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_constraint8" introspectable="0">
+        <callback name="_clutter_constraint8">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+    </record>
+    <interface name="Container"
+               c:symbol-prefix="container"
+               c:type="ClutterContainer"
+               version="0.4"
+               glib:type-name="ClutterContainer"
+               glib:get-type="clutter_container_get_type"
+               glib:type-struct="ContainerIface">
+      <doc xml:whitespace="preserve">#ClutterContainer is an opaque structure whose members cannot be directly
+accessed</doc>
+      <virtual-method name="add">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="actor" transfer-ownership="none">
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="create_child_meta"
+                      invoker="create_child_meta"
+                      version="1.2">
+        <doc xml:whitespace="preserve">Creates the #ClutterChildMeta wrapping @actor inside the
+class member is not set to %G_TYPE_INVALID.
+This function is only useful when adding a #ClutterActor to
+a #ClutterContainer implementation outside of the
+#ClutterContainer::add() virtual function implementation.
+Applications should not call this function.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="actor" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="destroy_child_meta"
+                      invoker="destroy_child_meta"
+                      version="1.2">
+        <doc xml:whitespace="preserve">Destroys the #ClutterChildMeta wrapping @actor inside the
+This function is only useful when removing a #ClutterActor to
+a #ClutterContainer implementation outside of the
+#ClutterContainer::add() virtual function implementation.
+Applications should not call this function.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="actor" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="foreach" invoker="foreach" version="0.4">
+        <doc xml:whitespace="preserve">Calls @callback for each child of @container that was added
+by the application (with clutter_container_add_actor()). Does
+not iterate over "internal" children that are part of the
+container's own implementation, if any.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="callback"
+                     transfer-ownership="none"
+                     scope="call"
+                     closure="1">
+            <doc xml:whitespace="preserve">a function to be called for each child</doc>
+            <type name="Callback" c:type="ClutterCallback"/>
+          </parameter>
+          <parameter name="user_data" transfer-ownership="none" closure="1">
+            <doc xml:whitespace="preserve">data to be passed to the function, or %NULL</doc>
+            <type name="gpointer" c:type="gpointer"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="foreach_with_internals"
+                      invoker="foreach_with_internals"
+                      version="1.0">
+        <doc xml:whitespace="preserve">Calls @callback for each child of @container, including "internal"
+children built in to the container itself that were never added
+by the application.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="callback"
+                     transfer-ownership="none"
+                     scope="call"
+                     closure="1">
+            <doc xml:whitespace="preserve">a function to be called for each child</doc>
+            <type name="Callback" c:type="ClutterCallback"/>
+          </parameter>
+          <parameter name="user_data" transfer-ownership="none" closure="1">
+            <doc xml:whitespace="preserve">data to be passed to the function, or %NULL</doc>
+            <type name="gpointer" c:type="gpointer"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="get_child_meta"
+                      invoker="get_child_meta"
+                      version="0.8">
+        <doc xml:whitespace="preserve">Retrieves the #ClutterChildMeta which contains the data about the
+of @container or %NULL if the specifiec actor does not exist or the
+container is not configured to provide #ClutterChildMeta&lt;!-- --&gt;s</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the #ClutterChildMeta for the @actor child</doc>
+          <type name="ChildMeta" c:type="ClutterChildMeta*"/>
+        </return-value>
+        <parameters>
+          <parameter name="actor" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #ClutterActor that is a child of @container.</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="lower">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="actor" transfer-ownership="none">
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+          <parameter name="sibling" transfer-ownership="none">
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="raise">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="actor" transfer-ownership="none">
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+          <parameter name="sibling" transfer-ownership="none">
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="remove">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="actor" transfer-ownership="none">
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="sort_depth_order"
+                      invoker="sort_depth_order"
+                      version="0.6">
+        <doc xml:whitespace="preserve">Sorts a container's children using their depth. This function should not
+be normally used by applications.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </virtual-method>
+      <method name="add"
+              c:identifier="clutter_container_add"
+              version="0.4"
+              introspectable="0">
+        <doc xml:whitespace="preserve">Adds a list of #ClutterActor&lt;!-- --&gt;s to @container. Each time and
+actor is added, the "actor-added" signal is emitted. Each actor should
+be parented to @container, which takes a reference on the actor. You
+cannot add a #ClutterActor to more than one #ClutterContainer.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="first_actor" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the first #ClutterActor to add</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+          <parameter transfer-ownership="none">
+            <varargs>
+            </varargs>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="add_actor"
+              c:identifier="clutter_container_add_actor"
+              version="0.4">
+        <doc xml:whitespace="preserve">Adds a #ClutterActor to @container. This function will emit the
+"actor-added" signal. The actor should be parented to
+#ClutterContainer.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="actor" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the first #ClutterActor to add</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="add_valist"
+              c:identifier="clutter_container_add_valist"
+              version="0.4"
+              introspectable="0">
+        <doc xml:whitespace="preserve">Alternative va_list version of clutter_container_add().</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="first_actor" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the first #ClutterActor to add</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+          <parameter name="var_args" transfer-ownership="none">
+            <doc xml:whitespace="preserve">list of actors to add, followed by %NULL</doc>
+            <type name="va_list" c:type="va_list"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="child_get"
+              c:identifier="clutter_container_child_get"
+              version="0.8"
+              introspectable="0">
+        <doc xml:whitespace="preserve">Gets @container specific properties of an actor.
+In general, a copy is made of the property contents and the caller is
+responsible for freeing the memory in the appropriate manner for the type, for
+instance by calling g_free() or g_object_unref().</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="actor" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #ClutterActor that is a child of @container.</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+          <parameter name="first_prop" transfer-ownership="none">
+            <doc xml:whitespace="preserve">name of the first property to be set.</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter transfer-ownership="none">
+            <varargs>
+            </varargs>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="child_get_property"
+              c:identifier="clutter_container_child_get_property"
+              version="0.8">
+        <doc xml:whitespace="preserve">Gets a container specific property of a child of @container, In general,
+a copy is made of the property contents and the caller is responsible for
+freeing the memory by calling g_value_unset().
+Note that clutter_container_child_set_property() is really intended for
+language bindings, clutter_container_child_set() is much more convenient
+for C programming.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="child" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #ClutterActor that is a child of @container.</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+          <parameter name="property" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the name of the property to set.</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="value" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the value.</doc>
+            <type name="GObject.Value" c:type="GValue*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="child_set"
+              c:identifier="clutter_container_child_set"
+              version="0.8"
+              introspectable="0">
+        <doc xml:whitespace="preserve">Sets container specific properties on the child of a container.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="actor" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #ClutterActor that is a child of @container.</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+          <parameter name="first_prop" transfer-ownership="none">
+            <doc xml:whitespace="preserve">name of the first property to be set.</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter transfer-ownership="none">
+            <varargs>
+            </varargs>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="child_set_property"
+              c:identifier="clutter_container_child_set_property"
+              version="0.8">
+        <doc xml:whitespace="preserve">Sets a container-specific property on a child of @container.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="child" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #ClutterActor that is a child of @container.</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+          <parameter name="property" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the name of the property to set.</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="value" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the value.</doc>
+            <type name="GObject.Value" c:type="GValue*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="create_child_meta"
+              c:identifier="clutter_container_create_child_meta"
+              version="1.2">
+        <doc xml:whitespace="preserve">Creates the #ClutterChildMeta wrapping @actor inside the
+class member is not set to %G_TYPE_INVALID.
+This function is only useful when adding a #ClutterActor to
+a #ClutterContainer implementation outside of the
+#ClutterContainer::add() virtual function implementation.
+Applications should not call this function.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="actor" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="destroy_child_meta"
+              c:identifier="clutter_container_destroy_child_meta"
+              version="1.2">
+        <doc xml:whitespace="preserve">Destroys the #ClutterChildMeta wrapping @actor inside the
+This function is only useful when removing a #ClutterActor to
+a #ClutterContainer implementation outside of the
+#ClutterContainer::add() virtual function implementation.
+Applications should not call this function.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="actor" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="find_child_by_name"
+              c:identifier="clutter_container_find_child_by_name"
+              version="0.6">
+        <doc xml:whitespace="preserve">Finds a child actor of a container by its name. Search recurses
+into any child container.
+or %NULL if no actor with that name was found.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">The child actor with the requested name,</doc>
+          <type name="Actor" c:type="ClutterActor*"/>
+        </return-value>
+        <parameters>
+          <parameter name="child_name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the name of the requested child.</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="foreach"
+              c:identifier="clutter_container_foreach"
+              version="0.4">
+        <doc xml:whitespace="preserve">Calls @callback for each child of @container that was added
+by the application (with clutter_container_add_actor()). Does
+not iterate over "internal" children that are part of the
+container's own implementation, if any.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="callback"
+                     transfer-ownership="none"
+                     scope="call"
+                     closure="1">
+            <doc xml:whitespace="preserve">a function to be called for each child</doc>
+            <type name="Callback" c:type="ClutterCallback"/>
+          </parameter>
+          <parameter name="user_data" transfer-ownership="none">
+            <doc xml:whitespace="preserve">data to be passed to the function, or %NULL</doc>
+            <type name="gpointer" c:type="gpointer"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="foreach_with_internals"
+              c:identifier="clutter_container_foreach_with_internals"
+              version="1.0">
+        <doc xml:whitespace="preserve">Calls @callback for each child of @container, including "internal"
+children built in to the container itself that were never added
+by the application.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="callback"
+                     transfer-ownership="none"
+                     scope="call"
+                     closure="1">
+            <doc xml:whitespace="preserve">a function to be called for each child</doc>
+            <type name="Callback" c:type="ClutterCallback"/>
+          </parameter>
+          <parameter name="user_data" transfer-ownership="none">
+            <doc xml:whitespace="preserve">data to be passed to the function, or %NULL</doc>
+            <type name="gpointer" c:type="gpointer"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_child_meta"
+              c:identifier="clutter_container_get_child_meta"
+              version="0.8">
+        <doc xml:whitespace="preserve">Retrieves the #ClutterChildMeta which contains the data about the
+of @container or %NULL if the specifiec actor does not exist or the
+container is not configured to provide #ClutterChildMeta&lt;!-- --&gt;s</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the #ClutterChildMeta for the @actor child</doc>
+          <type name="ChildMeta" c:type="ClutterChildMeta*"/>
+        </return-value>
+        <parameters>
+          <parameter name="actor" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #ClutterActor that is a child of @container.</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_children"
+              c:identifier="clutter_container_get_children"
+              version="0.4">
+        <doc xml:whitespace="preserve">Retrieves all the children of @container.
+of #ClutterActor&lt;!-- --&gt;s. Use g_list_free() on the returned
+list when done.</doc>
+        <return-value transfer-ownership="container">
+          <doc xml:whitespace="preserve">a list</doc>
+          <type name="GLib.List" c:type="GList*">
+            <type name="Actor"/>
+          </type>
+        </return-value>
+      </method>
+      <method name="lower_child"
+              c:identifier="clutter_container_lower_child"
+              version="0.6">
+        <doc xml:whitespace="preserve">Lowers @actor to @sibling level, in the depth ordering.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="actor" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the actor to raise</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+          <parameter name="sibling" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the sibling to lower to, or %NULL to lower to the bottom</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="raise_child"
+              c:identifier="clutter_container_raise_child"
+              version="0.6">
+        <doc xml:whitespace="preserve">Raises @actor to @sibling level, in the depth ordering.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="actor" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the actor to raise</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+          <parameter name="sibling" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the sibling to raise to, or %NULL to raise to the top</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="remove"
+              c:identifier="clutter_container_remove"
+              version="0.4"
+              introspectable="0">
+        <doc xml:whitespace="preserve">Removes a %NULL terminated list of #ClutterActor&lt;!-- --&gt;s from
+around you must hold a reference to it yourself, using g_object_ref().
+Each time an actor is removed, the "actor-removed" signal is
+emitted by @container.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="first_actor" transfer-ownership="none">
+            <doc xml:whitespace="preserve">first #ClutterActor to remove</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+          <parameter transfer-ownership="none">
+            <varargs>
+            </varargs>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="remove_actor"
+              c:identifier="clutter_container_remove_actor"
+              version="0.4">
+        <doc xml:whitespace="preserve">Removes @actor from @container. The actor should be unparented, so
+if you want to keep it around you must hold a reference to it
+yourself, using g_object_ref(). When the actor has been removed,
+the "actor-removed" signal is emitted by @container.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="actor" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="remove_valist"
+              c:identifier="clutter_container_remove_valist"
+              version="0.4"
+              introspectable="0">
+        <doc xml:whitespace="preserve">Alternative va_list version of clutter_container_remove().</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="first_actor" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the first #ClutterActor to add</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+          <parameter name="var_args" transfer-ownership="none">
+            <doc xml:whitespace="preserve">list of actors to remove, followed by %NULL</doc>
+            <type name="va_list" c:type="va_list"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="sort_depth_order"
+              c:identifier="clutter_container_sort_depth_order"
+              version="0.6">
+        <doc xml:whitespace="preserve">Sorts a container's children using their depth. This function should not
+be normally used by applications.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </method>
+      <glib:signal name="actor-added" version="0.4">
+        <doc xml:whitespace="preserve">The ::actor-added signal is emitted each time an actor
+has been added to @container.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none"/>
+        </return-value>
+        <parameters>
+          <parameter name="object" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the new child that has been added to @container</doc>
+            <type name="Actor"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="actor-removed" version="0.4">
+        <doc xml:whitespace="preserve">The ::actor-removed signal is emitted each time an actor
+is removed from @container.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none"/>
+        </return-value>
+        <parameters>
+          <parameter name="object" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the child that has been removed from @container</doc>
+            <type name="Actor"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="child-notify" version="0.8" introspectable="0">
+        <doc xml:whitespace="preserve">The ::child-notify signal is emitted each time a property is
+being set through the clutter_container_child_set() and
+clutter_container_child_set_property() calls.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none"/>
+        </return-value>
+        <parameters>
+          <parameter name="object" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the child that has had a property set.</doc>
+            <type name="Actor"/>
+          </parameter>
+          <parameter name="p0" transfer-ownership="none">
+            <type/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+    </interface>
+    <record name="ContainerIface"
+            c:type="ClutterContainerIface"
+            glib:is-gtype-struct-for="Container"
+            version="0.4">
+      <doc xml:whitespace="preserve">Base interface for container actors. The @add, @remove and @foreach
+virtual functions must be provided by any implementation; the other
+virtual functions are optional.</doc>
+      <field name="g_iface">
+        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
+      </field>
+      <field name="add">
+        <callback name="add">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="container" transfer-ownership="none">
+              <type name="Container" c:type="ClutterContainer*"/>
+            </parameter>
+            <parameter name="actor" transfer-ownership="none">
+              <type name="Actor" c:type="ClutterActor*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="remove">
+        <callback name="remove">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="container" transfer-ownership="none">
+              <type name="Container" c:type="ClutterContainer*"/>
+            </parameter>
+            <parameter name="actor" transfer-ownership="none">
+              <type name="Actor" c:type="ClutterActor*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="foreach">
+        <callback name="foreach">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="container" transfer-ownership="none">
+              <type name="Container" c:type="ClutterContainer*"/>
+            </parameter>
+            <parameter name="callback"
+                       transfer-ownership="none"
+                       scope="call"
+                       closure="2">
+              <doc xml:whitespace="preserve">a function to be called for each child</doc>
+              <type name="Callback" c:type="ClutterCallback"/>
+            </parameter>
+            <parameter name="user_data" transfer-ownership="none" closure="2">
+              <doc xml:whitespace="preserve">data to be passed to the function, or %NULL</doc>
+              <type name="gpointer" c:type="gpointer"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="foreach_with_internals">
+        <callback name="foreach_with_internals">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="container" transfer-ownership="none">
+              <type name="Container" c:type="ClutterContainer*"/>
+            </parameter>
+            <parameter name="callback"
+                       transfer-ownership="none"
+                       scope="call"
+                       closure="2">
+              <doc xml:whitespace="preserve">a function to be called for each child</doc>
+              <type name="Callback" c:type="ClutterCallback"/>
+            </parameter>
+            <parameter name="user_data" transfer-ownership="none" closure="2">
+              <doc xml:whitespace="preserve">data to be passed to the function, or %NULL</doc>
+              <type name="gpointer" c:type="gpointer"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="raise">
+        <callback name="raise">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="container" transfer-ownership="none">
+              <type name="Container" c:type="ClutterContainer*"/>
+            </parameter>
+            <parameter name="actor" transfer-ownership="none">
+              <type name="Actor" c:type="ClutterActor*"/>
+            </parameter>
+            <parameter name="sibling" transfer-ownership="none">
+              <type name="Actor" c:type="ClutterActor*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="lower">
+        <callback name="lower">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="container" transfer-ownership="none">
+              <type name="Container" c:type="ClutterContainer*"/>
+            </parameter>
+            <parameter name="actor" transfer-ownership="none">
+              <type name="Actor" c:type="ClutterActor*"/>
+            </parameter>
+            <parameter name="sibling" transfer-ownership="none">
+              <type name="Actor" c:type="ClutterActor*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="sort_depth_order">
+        <callback name="sort_depth_order">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="container" transfer-ownership="none">
+              <type name="Container" c:type="ClutterContainer*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="child_meta_type">
+        <type name="GType" c:type="GType"/>
+      </field>
+      <field name="create_child_meta">
+        <callback name="create_child_meta">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="container" transfer-ownership="none">
+              <type name="Container" c:type="ClutterContainer*"/>
+            </parameter>
+            <parameter name="actor" transfer-ownership="none">
+              <doc xml:whitespace="preserve">a #ClutterActor</doc>
+              <type name="Actor" c:type="ClutterActor*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="destroy_child_meta">
+        <callback name="destroy_child_meta">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="container" transfer-ownership="none">
+              <type name="Container" c:type="ClutterContainer*"/>
+            </parameter>
+            <parameter name="actor" transfer-ownership="none">
+              <doc xml:whitespace="preserve">a #ClutterActor</doc>
+              <type name="Actor" c:type="ClutterActor*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="get_child_meta">
+        <callback name="get_child_meta">
+          <return-value transfer-ownership="none">
+            <doc xml:whitespace="preserve">the #ClutterChildMeta for the @actor child</doc>
+            <type name="ChildMeta" c:type="ClutterChildMeta*"/>
+          </return-value>
+          <parameters>
+            <parameter name="container" transfer-ownership="none">
+              <type name="Container" c:type="ClutterContainer*"/>
+            </parameter>
+            <parameter name="actor" transfer-ownership="none">
+              <doc xml:whitespace="preserve">a #ClutterActor that is a child of @container.</doc>
+              <type name="Actor" c:type="ClutterActor*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="actor_added">
+        <callback name="actor_added">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="container" transfer-ownership="none">
+              <type name="Container" c:type="ClutterContainer*"/>
+            </parameter>
+            <parameter name="actor" transfer-ownership="none">
+              <type name="Actor" c:type="ClutterActor*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="actor_removed">
+        <callback name="actor_removed">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="container" transfer-ownership="none">
+              <type name="Container" c:type="ClutterContainer*"/>
+            </parameter>
+            <parameter name="actor" transfer-ownership="none">
+              <type name="Actor" c:type="ClutterActor*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="child_notify">
+        <callback name="child_notify">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="container" transfer-ownership="none">
+              <type name="Container" c:type="ClutterContainer*"/>
+            </parameter>
+            <parameter name="actor" transfer-ownership="none">
+              <type name="Actor" c:type="ClutterActor*"/>
+            </parameter>
+            <parameter name="pspec" transfer-ownership="none">
+              <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+    </record>
+    <constant name="ContrastAdjust" value="269025058">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Control_L" value="65507">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Control_R" value="65508">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Copy" value="269025111">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <record name="CrossingEvent" c:type="ClutterCrossingEvent" version="0.2">
+      <doc xml:whitespace="preserve">Event for the movement of the pointer across different actors</doc>
+      <field name="type" writable="1">
+        <type name="EventType" c:type="ClutterEventType"/>
+      </field>
+      <field name="time" writable="1">
+        <type name="guint32" c:type="guint32"/>
+      </field>
+      <field name="flags" writable="1">
+        <type name="EventFlags" c:type="ClutterEventFlags"/>
+      </field>
+      <field name="stage" writable="1">
+        <type name="Stage" c:type="ClutterStage*"/>
+      </field>
+      <field name="source" writable="1">
+        <type name="Actor" c:type="ClutterActor*"/>
+      </field>
+      <field name="x" writable="1">
+        <type name="gfloat" c:type="gfloat"/>
+      </field>
+      <field name="y" writable="1">
+        <type name="gfloat" c:type="gfloat"/>
+      </field>
+      <field name="device" writable="1">
+        <type name="InputDevice" c:type="ClutterInputDevice*"/>
+      </field>
+      <field name="related" writable="1">
+        <type name="Actor" c:type="ClutterActor*"/>
+      </field>
+    </record>
+    <constant name="CruzeiroSign" value="16785570">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cut" value="269025112">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="CycleAngle" value="269025180">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_A" value="1761">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_BE" value="1762">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_CHE" value="1790">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_CHE_descender" value="16778422">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_CHE_vertstroke" value="16778424">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_DE" value="1764">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_DZHE" value="1727">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_E" value="1788">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_EF" value="1766">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_EL" value="1772">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_EM" value="1773">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_EN" value="1774">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_EN_descender" value="16778402">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_ER" value="1778">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_ES" value="1779">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_GHE" value="1767">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_GHE_bar" value="16778386">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_HA" value="1768">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_HARDSIGN" value="1791">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_HA_descender" value="16778418">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_I" value="1769">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_IE" value="1765">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_IO" value="1715">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_I_macron" value="16778466">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_JE" value="1720">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_KA" value="1771">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_KA_descender" value="16778394">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_KA_vertstroke" value="16778396">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_LJE" value="1721">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_NJE" value="1722">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_O" value="1775">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_O_bar" value="16778472">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_PE" value="1776">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_SCHWA" value="16778456">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_SHA" value="1787">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_SHCHA" value="1789">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_SHHA" value="16778426">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_SHORTI" value="1770">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_SOFTSIGN" value="1784">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_TE" value="1780">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_TSE" value="1763">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_U" value="1781">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_U_macron" value="16778478">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_U_straight" value="16778414">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_U_straight_bar" value="16778416">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_VE" value="1783">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_YA" value="1777">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_YERU" value="1785">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_YU" value="1760">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_ZE" value="1786">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_ZHE" value="1782">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_ZHE_descender" value="16778390">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_a" value="1729">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_be" value="1730">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_che" value="1758">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_che_descender" value="16778423">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_che_vertstroke" value="16778425">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_de" value="1732">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_dzhe" value="1711">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_e" value="1756">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_ef" value="1734">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_el" value="1740">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_em" value="1741">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_en" value="1742">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_en_descender" value="16778403">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_er" value="1746">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_es" value="1747">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_ghe" value="1735">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_ghe_bar" value="16778387">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_ha" value="1736">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_ha_descender" value="16778419">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_hardsign" value="1759">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_i" value="1737">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_i_macron" value="16778467">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_ie" value="1733">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_io" value="1699">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_je" value="1704">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_ka" value="1739">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_ka_descender" value="16778395">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_ka_vertstroke" value="16778397">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_lje" value="1705">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_nje" value="1706">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_o" value="1743">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_o_bar" value="16778473">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_pe" value="1744">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_schwa" value="16778457">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_sha" value="1755">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_shcha" value="1757">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_shha" value="16778427">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_shorti" value="1738">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_softsign" value="1752">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_te" value="1748">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_tse" value="1731">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_u" value="1749">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_u_macron" value="16778479">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_u_straight" value="16778415">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_u_straight_bar" value="16778417">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_ve" value="1751">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_ya" value="1745">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_yeru" value="1753">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_yu" value="1728">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_ze" value="1754">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_zhe" value="1750">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_zhe_descender" value="16778391">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="D" value="68">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="DOS" value="269025114">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Dabovedot" value="16784906">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Dcaron" value="463">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <class name="DeformEffect"
+           c:symbol-prefix="deform_effect"
+           c:type="ClutterDeformEffect"
+           version="1.4"
+           parent="OffscreenEffect"
+           abstract="1"
+           glib:type-name="ClutterDeformEffect"
+           glib:get-type="clutter_deform_effect_get_type"
+           glib:type-struct="DeformEffectClass">
+      <doc xml:whitespace="preserve">The &lt;structname&gt;ClutterDeformEffect&lt;/structname&gt; structure contains
+only private data and should be accessed using the provided API</doc>
+      <virtual-method name="deform_vertex">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="width" transfer-ownership="none">
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+          <parameter name="height" transfer-ownership="none">
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+          <parameter name="vertex" transfer-ownership="none">
+            <type name="Cogl.TextureVertex" c:type="CoglTextureVertex*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <method name="get_back_material"
+              c:identifier="clutter_deform_effect_get_back_material"
+              version="1.4">
+        <doc xml:whitespace="preserve">Retrieves the handle to the back face material used by @effect
+The returned material is owned by the #ClutterDeformEffect and it
+should not be freed directly</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">a handle for the material, or %NULL.</doc>
+          <type name="Cogl.Handle" c:type="CoglHandle"/>
+        </return-value>
+      </method>
+      <method name="get_n_tiles"
+              c:identifier="clutter_deform_effect_get_n_tiles"
+              version="1.4">
+        <doc xml:whitespace="preserve">Retrieves the number of horizontal and vertical tiles used to sub-divide
+the actor's geometry during the effect</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="x_tiles"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:whitespace="preserve">return location for the number of horizontal tiles, or %NULL</doc>
+            <type name="guint" c:type="guint*"/>
+          </parameter>
+          <parameter name="y_tiles"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:whitespace="preserve">return location for the number of vertical tiles, or %NULL</doc>
+            <type name="guint" c:type="guint*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="invalidate"
+              c:identifier="clutter_deform_effect_invalidate"
+              version="1.4">
+        <doc xml:whitespace="preserve">Invalidates the @effect&lt;!-- --&gt;'s vertices and, if it is associated
+to an actor, it will queue a redraw</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </method>
+      <method name="set_back_material"
+              c:identifier="clutter_deform_effect_set_back_material"
+              version="1.4">
+        <doc xml:whitespace="preserve">Sets the material that should be used when drawing the back face
+of the actor during a deformation
+The #ClutterDeformEffect will take a reference on the material's
+handle</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="material" transfer-ownership="none" allow-none="1">
+            <doc xml:whitespace="preserve">a handle to a Cogl material</doc>
+            <type name="Cogl.Handle" c:type="CoglHandle"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_n_tiles"
+              c:identifier="clutter_deform_effect_set_n_tiles"
+              version="1.4">
+        <doc xml:whitespace="preserve">Sets the number of horizontal and vertical tiles to be used
+when applying the effect
+More tiles allow a finer grained deformation at the expenses
+of computation</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="x_tiles" transfer-ownership="none">
+            <doc xml:whitespace="preserve">number of horizontal tiles</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+          <parameter name="y_tiles" transfer-ownership="none">
+            <doc xml:whitespace="preserve">number of vertical tiles</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <property name="back-material"
+                version="1.4"
+                introspectable="0"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">A material to be used when painting the back of the actor
+to which this effect has been applied
+By default, no material will be used</doc>
+        <type/>
+      </property>
+      <property name="x-tiles"
+                version="1.4"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">The number of horizontal tiles. The bigger the number, the
+smaller the tiles</doc>
+        <type name="guint"/>
+      </property>
+      <property name="y-tiles"
+                version="1.4"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">The number of vertical tiles. The bigger the number, the
+smaller the tiles</doc>
+        <type name="guint"/>
+      </property>
+      <field name="parent_instance">
+        <type name="OffscreenEffect" c:type="ClutterOffscreenEffect"/>
+      </field>
+      <field name="priv">
+        <type name="DeformEffectPrivate" c:type="ClutterDeformEffectPrivate*"/>
+      </field>
+    </class>
+    <record name="DeformEffectClass"
+            c:type="ClutterDeformEffectClass"
+            glib:is-gtype-struct-for="DeformEffect"
+            version="1.4">
+      <doc xml:whitespace="preserve">The &lt;structname&gt;ClutterDeformEffectClass&lt;/structname&gt; structure contains
+only private data</doc>
+      <field name="parent_class">
+        <type name="OffscreenEffectClass"
+              c:type="ClutterOffscreenEffectClass"/>
+      </field>
+      <field name="deform_vertex">
+        <callback name="deform_vertex">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="effect" transfer-ownership="none">
+              <type name="DeformEffect" c:type="ClutterDeformEffect*"/>
+            </parameter>
+            <parameter name="width" transfer-ownership="none">
+              <type name="gfloat" c:type="gfloat"/>
+            </parameter>
+            <parameter name="height" transfer-ownership="none">
+              <type name="gfloat" c:type="gfloat"/>
+            </parameter>
+            <parameter name="vertex" transfer-ownership="none">
+              <type name="Cogl.TextureVertex" c:type="CoglTextureVertex*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="_clutter_deform1" introspectable="0">
+        <callback name="_clutter_deform1">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_deform2" introspectable="0">
+        <callback name="_clutter_deform2">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_deform3" introspectable="0">
+        <callback name="_clutter_deform3">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_deform4" introspectable="0">
+        <callback name="_clutter_deform4">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_deform5" introspectable="0">
+        <callback name="_clutter_deform5">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_deform6" introspectable="0">
+        <callback name="_clutter_deform6">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_deform7" introspectable="0">
+        <callback name="_clutter_deform7">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+    </record>
+    <record name="DeformEffectPrivate"
+            c:type="ClutterDeformEffectPrivate"
+            disguised="1">
+    </record>
+    <constant name="Delete" value="65535">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <class name="DesaturateEffect"
+           c:symbol-prefix="desaturate_effect"
+           c:type="ClutterDesaturateEffect"
+           version="1.4"
+           parent="OffscreenEffect"
+           glib:type-name="ClutterDesaturateEffect"
+           glib:get-type="clutter_desaturate_effect_get_type">
+      <doc xml:whitespace="preserve">&lt;structname&gt;ClutterDesaturateEffect&lt;/structname&gt; is an opaque structure
+whose members cannot be directly accessed</doc>
+      <constructor name="new"
+                   c:identifier="clutter_desaturate_effect_new"
+                   version="1.4">
+        <doc xml:whitespace="preserve">Creates a new #ClutterDesaturateEffect to be used with
+clutter_actor_add_effect()</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the newly created #ClutterDesaturateEffect or %NULL</doc>
+          <type name="Effect" c:type="ClutterEffect*"/>
+        </return-value>
+        <parameters>
+          <parameter name="factor" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the desaturation factor, between 0.0 and 1.0</doc>
+            <type name="gdouble" c:type="gdouble"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <method name="get_factor"
+              c:identifier="clutter_desaturate_effect_get_factor"
+              version="1.4">
+        <doc xml:whitespace="preserve">Retrieves the desaturation factor of @effect</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the desaturation factor</doc>
+          <type name="gdouble" c:type="gdouble"/>
+        </return-value>
+      </method>
+      <method name="set_factor"
+              c:identifier="clutter_desaturate_effect_set_factor"
+              version="1.4">
+        <doc xml:whitespace="preserve">Sets the desaturation factor for @effect, with 0.0 being "do not desaturate"
+and 1.0 being "fully desaturate"</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="factor" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the desaturation factor, between 0.0 and 1.0</doc>
+            <type name="gdouble" c:type="gdouble"/>
+          </parameter>
+        </parameters>
+      </method>
+      <property name="factor"
+                version="1.4"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">The desaturation factor, between 0.0 (no desaturation) and 1.0 (full
+desaturation).</doc>
+        <type name="gdouble"/>
+      </property>
+    </class>
+    <class name="DeviceManager"
+           c:symbol-prefix="device_manager"
+           c:type="ClutterDeviceManager"
+           version="1.2"
+           parent="GObject.Object"
+           abstract="1"
+           glib:type-name="ClutterDeviceManager"
+           glib:get-type="clutter_device_manager_get_type"
+           glib:type-struct="DeviceManagerClass">
+      <doc xml:whitespace="preserve">The #ClutterDeviceManager structure contains only private data</doc>
+      <function name="get_default"
+                c:identifier="clutter_device_manager_get_default"
+                version="1.2">
+        <doc xml:whitespace="preserve">Retrieves the device manager singleton
+The returned instance is owned by Clutter and it should not be
+modified or freed</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the #ClutterDeviceManager singleton.</doc>
+          <type name="DeviceManager" c:type="ClutterDeviceManager*"/>
+        </return-value>
+      </function>
+      <virtual-method name="add_device">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="device" transfer-ownership="none">
+            <type name="InputDevice" c:type="ClutterInputDevice*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="get_core_device"
+                      invoker="get_core_device"
+                      version="1.2">
+        <doc xml:whitespace="preserve">Retrieves the core #ClutterInputDevice of type @device_type
+Core devices are devices created automatically by the default
+Clutter backend
+returned device is owned by the #ClutterDeviceManager and should
+not be modified or freed</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #ClutterInputDevice or %NULL. The</doc>
+          <type name="InputDevice" c:type="ClutterInputDevice*"/>
+        </return-value>
+        <parameters>
+          <parameter name="type" transfer-ownership="none">
+            <type name="InputDeviceType" c:type="ClutterInputDeviceType"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="get_device" invoker="get_device" version="1.2">
+        <doc xml:whitespace="preserve">Retrieves the #ClutterInputDevice with the given @device_id
+returned device is owned by the #ClutterDeviceManager and should
+never be modified or freed</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #ClutterInputDevice or %NULL. The</doc>
+          <type name="InputDevice" c:type="ClutterInputDevice*"/>
+        </return-value>
+        <parameters>
+          <parameter name="id" transfer-ownership="none">
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="get_devices">
+        <return-value transfer-ownership="none">
+          <type name="GLib.SList" c:type="GSList*">
+            <type name="gpointer" c:type="gpointer"/>
+          </type>
+        </return-value>
+      </virtual-method>
+      <virtual-method name="remove_device">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="device" transfer-ownership="none">
+            <type name="InputDevice" c:type="ClutterInputDevice*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <method name="get_core_device"
+              c:identifier="clutter_device_manager_get_core_device"
+              version="1.2">
+        <doc xml:whitespace="preserve">Retrieves the core #ClutterInputDevice of type @device_type
+Core devices are devices created automatically by the default
+Clutter backend
+returned device is owned by the #ClutterDeviceManager and should
+not be modified or freed</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #ClutterInputDevice or %NULL. The</doc>
+          <type name="InputDevice" c:type="ClutterInputDevice*"/>
+        </return-value>
+        <parameters>
+          <parameter name="device_type" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the type of the core device</doc>
+            <type name="InputDeviceType" c:type="ClutterInputDeviceType"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_device"
+              c:identifier="clutter_device_manager_get_device"
+              version="1.2">
+        <doc xml:whitespace="preserve">Retrieves the #ClutterInputDevice with the given @device_id
+returned device is owned by the #ClutterDeviceManager and should
+never be modified or freed</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #ClutterInputDevice or %NULL. The</doc>
+          <type name="InputDevice" c:type="ClutterInputDevice*"/>
+        </return-value>
+        <parameters>
+          <parameter name="device_id" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the integer id of a device</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="list_devices"
+              c:identifier="clutter_device_manager_list_devices"
+              version="1.2">
+        <doc xml:whitespace="preserve">Lists all currently registered input devices
+a newly allocated list of #ClutterInputDevice objects. Use
+g_slist_free() to deallocate it when done</doc>
+        <return-value transfer-ownership="container">
+          <type name="GLib.SList" c:type="GSList*">
+            <type name="InputDevice"/>
+          </type>
+        </return-value>
+      </method>
+      <method name="peek_devices"
+              c:identifier="clutter_device_manager_peek_devices"
+              version="1.2">
+        <doc xml:whitespace="preserve">Lists all currently registered input devices
+a pointer to the internal list of #ClutterInputDevice objects. The
+returned list is owned by the #ClutterDeviceManager and should never
+be modified or freed</doc>
+        <return-value transfer-ownership="none">
+          <type name="GLib.SList" c:type="GSList*">
+            <type name="InputDevice"/>
+          </type>
+        </return-value>
+      </method>
+      <property name="backend"
+                writable="1"
+                construct-only="1"
+                transfer-ownership="none">
+        <type name="Backend"/>
+      </property>
+      <field name="parent_instance">
+        <type name="GObject.Object" c:type="GObject"/>
+      </field>
+      <field name="priv">
+        <type name="DeviceManagerPrivate"
+              c:type="ClutterDeviceManagerPrivate*"/>
+      </field>
+      <glib:signal name="device-added" version="1.2">
+        <doc xml:whitespace="preserve">The ::device-added signal is emitted each time a device has been
+added to the #ClutterDeviceManager</doc>
+        <return-value transfer-ownership="none">
+          <type name="none"/>
+        </return-value>
+        <parameters>
+          <parameter name="object" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the newly added #ClutterInputDevice</doc>
+            <type name="InputDevice"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="device-removed" version="1.2">
+        <doc xml:whitespace="preserve">The ::device-removed signal is emitted each time a device has been
+removed from the #ClutterDeviceManager</doc>
+        <return-value transfer-ownership="none">
+          <type name="none"/>
+        </return-value>
+        <parameters>
+          <parameter name="object" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the removed #ClutterInputDevice</doc>
+            <type name="InputDevice"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+    </class>
+    <record name="DeviceManagerClass"
+            c:type="ClutterDeviceManagerClass"
+            glib:is-gtype-struct-for="DeviceManager"
+            version="1.2">
+      <doc xml:whitespace="preserve">The #ClutterDeviceManagerClass structure contains only private data</doc>
+      <field name="parent_class">
+        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
+      </field>
+      <field name="get_devices">
+        <callback name="get_devices">
+          <return-value transfer-ownership="none">
+            <type name="GLib.SList" c:type="GSList*">
+              <type name="gpointer" c:type="gpointer"/>
+            </type>
+          </return-value>
+          <parameters>
+            <parameter name="manager" transfer-ownership="none">
+              <type name="DeviceManager" c:type="ClutterDeviceManager*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="get_core_device">
+        <callback name="get_core_device">
+          <return-value transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #ClutterInputDevice or %NULL. The</doc>
+            <type name="InputDevice" c:type="ClutterInputDevice*"/>
+          </return-value>
+          <parameters>
+            <parameter name="manager" transfer-ownership="none">
+              <type name="DeviceManager" c:type="ClutterDeviceManager*"/>
+            </parameter>
+            <parameter name="type" transfer-ownership="none">
+              <type name="InputDeviceType" c:type="ClutterInputDeviceType"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="get_device">
+        <callback name="get_device">
+          <return-value transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #ClutterInputDevice or %NULL. The</doc>
+            <type name="InputDevice" c:type="ClutterInputDevice*"/>
+          </return-value>
+          <parameters>
+            <parameter name="manager" transfer-ownership="none">
+              <type name="DeviceManager" c:type="ClutterDeviceManager*"/>
+            </parameter>
+            <parameter name="id" transfer-ownership="none">
+              <type name="gint" c:type="gint"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="add_device">
+        <callback name="add_device">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="manager" transfer-ownership="none">
+              <type name="DeviceManager" c:type="ClutterDeviceManager*"/>
+            </parameter>
+            <parameter name="device" transfer-ownership="none">
+              <type name="InputDevice" c:type="ClutterInputDevice*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="remove_device">
+        <callback name="remove_device">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="manager" transfer-ownership="none">
+              <type name="DeviceManager" c:type="ClutterDeviceManager*"/>
+            </parameter>
+            <parameter name="device" transfer-ownership="none">
+              <type name="InputDevice" c:type="ClutterInputDevice*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="_padding">
+        <array zero-terminated="0" c:type="gpointer" fixed-size="8">
+          <type name="gpointer" c:type="gpointer"/>
+        </array>
+      </field>
+    </record>
+    <record name="DeviceManagerPrivate"
+            c:type="ClutterDeviceManagerPrivate"
+            disguised="1">
+    </record>
+    <constant name="Display" value="269025113">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Documents" value="269025115">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="DongSign" value="16785579">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Down" value="65364">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <class name="DragAction"
+           c:symbol-prefix="drag_action"
+           c:type="ClutterDragAction"
+           version="1.4"
+           parent="Action"
+           glib:type-name="ClutterDragAction"
+           glib:get-type="clutter_drag_action_get_type"
+           glib:type-struct="DragActionClass">
+      <doc xml:whitespace="preserve">The &lt;structname&gt;ClutterDragAction&lt;/structname&gt; structure contains only
+private data and should be accessed using the provided API</doc>
+      <constructor name="new"
+                   c:identifier="clutter_drag_action_new"
+                   version="1.4">
+        <doc xml:whitespace="preserve">Creates a new #ClutterDragAction instance</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the newly created #ClutterDragAction</doc>
+          <type name="Action" c:type="ClutterAction*"/>
+        </return-value>
+      </constructor>
+      <method name="get_drag_axis"
+              c:identifier="clutter_drag_action_get_drag_axis"
+              version="1.4">
+        <doc xml:whitespace="preserve">Retrieves the axis constraint set by clutter_drag_action_set_drag_axis()</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the axis constraint</doc>
+          <type name="DragAxis" c:type="ClutterDragAxis"/>
+        </return-value>
+      </method>
+      <method name="get_drag_handle"
+              c:identifier="clutter_drag_action_get_drag_handle"
+              version="1.4">
+        <doc xml:whitespace="preserve">Retrieves the drag handle set by clutter_drag_action_set_drag_handle()
+handle, or %NULL if none was set</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #ClutterActor, used as the drag</doc>
+          <type name="Actor" c:type="ClutterActor*"/>
+        </return-value>
+      </method>
+      <method name="get_drag_threshold"
+              c:identifier="clutter_drag_action_get_drag_threshold"
+              version="1.4">
+        <doc xml:whitespace="preserve">Retrieves the values set by clutter_drag_action_set_drag_threshold()</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="x_threshold"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:whitespace="preserve">return location for the horizontal drag threshold value, in pixels</doc>
+            <type name="guint" c:type="guint*"/>
+          </parameter>
+          <parameter name="y_threshold"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:whitespace="preserve">return location for the vertical drag threshold value, in pixels</doc>
+            <type name="guint" c:type="guint*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_motion_coords"
+              c:identifier="clutter_drag_action_get_motion_coords"
+              version="1.4">
+        <doc xml:whitespace="preserve">Retrieves the coordinates, in stage space, of the latest motion
+event during the dragging</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="motion_x"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:whitespace="preserve">return location for the latest motion event's X coordinate</doc>
+            <type name="gfloat" c:type="gfloat*"/>
+          </parameter>
+          <parameter name="motion_y"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:whitespace="preserve">return location for the latest motion event's Y coordinate</doc>
+            <type name="gfloat" c:type="gfloat*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_press_coords"
+              c:identifier="clutter_drag_action_get_press_coords"
+              version="1.4">
+        <doc xml:whitespace="preserve">Retrieves the coordinates, in stage space, of the press event
+that started the dragging</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="press_x"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:whitespace="preserve">return location for the press event's X coordinate</doc>
+            <type name="gfloat" c:type="gfloat*"/>
+          </parameter>
+          <parameter name="press_y"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:whitespace="preserve">return location for the press event's Y coordinate</doc>
+            <type name="gfloat" c:type="gfloat*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_drag_axis"
+              c:identifier="clutter_drag_action_set_drag_axis"
+              version="1.4">
+        <doc xml:whitespace="preserve">Restricts the dragging action to a specific axis</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="axis" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the axis to constraint the dragging to</doc>
+            <type name="DragAxis" c:type="ClutterDragAxis"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_drag_handle"
+              c:identifier="clutter_drag_action_set_drag_handle"
+              version="1.4">
+        <doc xml:whitespace="preserve">Sets the actor to be used as the drag handle</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="handle" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_drag_threshold"
+              c:identifier="clutter_drag_action_set_drag_threshold"
+              version="1.4">
+        <doc xml:whitespace="preserve">Sets the horizontal and vertical drag thresholds that must be
+cleared by the pointer before @action can begin the dragging</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="x_threshold" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a distance on the horizontal axis, in pixels</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+          <parameter name="y_threshold" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a distance on the vertical axis, in pixels</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <property name="drag-axis"
+                version="1.4"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">Constraints the dragging action to the specified axis</doc>
+        <type name="DragAxis"/>
+      </property>
+      <property name="drag-handle"
+                version="1.4"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">The #ClutterActor that is effectively being dragged
+A #ClutterDragAction will, be default, use the #ClutterActor that
+has been attached to the action; it is possible to create a
+separate #ClutterActor and use it instead.
+Setting this property has no effect on the #ClutterActor argument
+passed to the #ClutterDragAction signals</doc>
+        <type name="Actor"/>
+      </property>
+      <property name="x-drag-threshold"
+                version="1.4"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">The horizontal threshold, in pixels, that begins a drag action
+When set to a non-zero value, #ClutterDragAction will only emit
+#ClutterDragAction::drag-begin if the pointer has moved
+horizontally at least of the given amount of pixels since
+the button press event</doc>
+        <type name="guint"/>
+      </property>
+      <property name="y-drag-threshold"
+                version="1.4"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">The vertical threshold, in pixels, that begins a drag action
+When set to a non-zero value, #ClutterDragAction will only emit
+#ClutterDragAction::drag-begin if the pointer has moved
+vertically at least of the given amount of pixels since
+the button press event</doc>
+        <type name="guint"/>
+      </property>
+      <field name="parent_instance">
+        <type name="Action" c:type="ClutterAction"/>
+      </field>
+      <field name="priv">
+        <type name="DragActionPrivate" c:type="ClutterDragActionPrivate*"/>
+      </field>
+      <glib:signal name="drag-begin" version="1.4">
+        <doc xml:whitespace="preserve">The ::drag-begin signal is emitted when the #ClutterDragAction
+starts the dragging
+The emission of this signal can be delayed by using the
+#ClutterDragAction:x-drag-threshold and
+#ClutterDragAction:y-drag-threshold properties</doc>
+        <return-value transfer-ownership="none">
+          <type name="none"/>
+        </return-value>
+        <parameters>
+          <parameter name="object" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the #ClutterActor attached to the action</doc>
+            <type name="Actor"/>
+          </parameter>
+          <parameter name="p0" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the X coordinate (in stage space) of the press event</doc>
+            <type name="gfloat"/>
+          </parameter>
+          <parameter name="p1" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the Y coordinate (in stage space) of the press event</doc>
+            <type name="gfloat"/>
+          </parameter>
+          <parameter name="p2" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the modifiers of the press event</doc>
+            <type name="ModifierType"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="drag-end" version="1.4">
+        <doc xml:whitespace="preserve">The ::drag-end signal is emitted at the end of the dragging,
+when the pointer button's is released
+This signal is emitted if and only if the #ClutterDragAction::drag-begin
+signal has been emitted first</doc>
+        <return-value transfer-ownership="none">
+          <type name="none"/>
+        </return-value>
+        <parameters>
+          <parameter name="object" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the #ClutterActor attached to the action</doc>
+            <type name="Actor"/>
+          </parameter>
+          <parameter name="p0" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the X coordinate (in stage space) of the release event</doc>
+            <type name="gfloat"/>
+          </parameter>
+          <parameter name="p1" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the Y coordinate (in stage space) of the release event</doc>
+            <type name="gfloat"/>
+          </parameter>
+          <parameter name="p2" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the modifiers of the release event</doc>
+            <type name="ModifierType"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="drag-motion">
+        <return-value transfer-ownership="none">
+          <type name="none"/>
+        </return-value>
+        <parameters>
+          <parameter name="object" transfer-ownership="none">
+            <type name="Actor"/>
+          </parameter>
+          <parameter name="p0" transfer-ownership="none">
+            <type name="gfloat"/>
+          </parameter>
+          <parameter name="p1" transfer-ownership="none">
+            <type name="gfloat"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+    </class>
+    <record name="DragActionClass"
+            c:type="ClutterDragActionClass"
+            glib:is-gtype-struct-for="DragAction"
+            version="1.4">
+      <doc xml:whitespace="preserve">The &lt;structname&gt;ClutterDragActionClass&lt;/structname&gt; structure contains
+only private data</doc>
+      <field name="parent_class">
+        <type name="ActionClass" c:type="ClutterActionClass"/>
+      </field>
+      <field name="drag_begin">
+        <callback name="drag_begin">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="action" transfer-ownership="none">
+              <type name="DragAction" c:type="ClutterDragAction*"/>
+            </parameter>
+            <parameter name="actor" transfer-ownership="none">
+              <type name="Actor" c:type="ClutterActor*"/>
+            </parameter>
+            <parameter name="event_x" transfer-ownership="none">
+              <type name="gfloat" c:type="gfloat"/>
+            </parameter>
+            <parameter name="event_y" transfer-ownership="none">
+              <type name="gfloat" c:type="gfloat"/>
+            </parameter>
+            <parameter name="modifiers" transfer-ownership="none">
+              <type name="ModifierType" c:type="ClutterModifierType"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="drag_motion">
+        <callback name="drag_motion">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="action" transfer-ownership="none">
+              <type name="DragAction" c:type="ClutterDragAction*"/>
+            </parameter>
+            <parameter name="actor" transfer-ownership="none">
+              <type name="Actor" c:type="ClutterActor*"/>
+            </parameter>
+            <parameter name="delta_x" transfer-ownership="none">
+              <type name="gfloat" c:type="gfloat"/>
+            </parameter>
+            <parameter name="delta_y" transfer-ownership="none">
+              <type name="gfloat" c:type="gfloat"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="drag_end">
+        <callback name="drag_end">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="action" transfer-ownership="none">
+              <type name="DragAction" c:type="ClutterDragAction*"/>
+            </parameter>
+            <parameter name="actor" transfer-ownership="none">
+              <type name="Actor" c:type="ClutterActor*"/>
+            </parameter>
+            <parameter name="event_x" transfer-ownership="none">
+              <type name="gfloat" c:type="gfloat"/>
+            </parameter>
+            <parameter name="event_y" transfer-ownership="none">
+              <type name="gfloat" c:type="gfloat"/>
+            </parameter>
+            <parameter name="modifiers" transfer-ownership="none">
+              <type name="ModifierType" c:type="ClutterModifierType"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="_clutter_drag_action1" introspectable="0">
+        <callback name="_clutter_drag_action1">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_drag_action2" introspectable="0">
+        <callback name="_clutter_drag_action2">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_drag_action3" introspectable="0">
+        <callback name="_clutter_drag_action3">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_drag_action4" introspectable="0">
+        <callback name="_clutter_drag_action4">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_drag_action5" introspectable="0">
+        <callback name="_clutter_drag_action5">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+    </record>
+    <record name="DragActionPrivate"
+            c:type="ClutterDragActionPrivate"
+            disguised="1">
+    </record>
+    <enumeration name="DragAxis"
+                 version="1.4"
+                 glib:type-name="ClutterDragAxis"
+                 glib:get-type="clutter_drag_axis_get_type"
+                 c:type="ClutterDragAxis">
+      <doc xml:whitespace="preserve">The axis of the constraint that should be applied on the
+dragging action</doc>
+      <member name="axis_none"
+              value="0"
+              c:identifier="CLUTTER_DRAG_AXIS_NONE"
+              glib:nick="axis-none"/>
+      <member name="x_axis"
+              value="1"
+              c:identifier="CLUTTER_DRAG_X_AXIS"
+              glib:nick="x-axis"/>
+      <member name="y_axis"
+              value="2"
+              c:identifier="CLUTTER_DRAG_Y_AXIS"
+              glib:nick="y-axis"/>
+    </enumeration>
+    <constant name="Dstroke" value="464">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="E" value="69">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ENG" value="957">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ETH" value="208">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Eabovedot" value="972">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Eacute" value="201">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Ebelowdot" value="16785080">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Ecaron" value="460">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Ecircumflex" value="202">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Ecircumflexacute" value="16785086">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Ecircumflexbelowdot" value="16785094">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Ecircumflexgrave" value="16785088">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Ecircumflexhook" value="16785090">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Ecircumflextilde" value="16785092">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="EcuSign" value="16785568">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Ediaeresis" value="203">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <class name="Effect"
+           c:symbol-prefix="effect"
+           c:type="ClutterEffect"
+           version="1.4"
+           parent="ActorMeta"
+           abstract="1"
+           glib:type-name="ClutterEffect"
+           glib:get-type="clutter_effect_get_type"
+           glib:type-struct="EffectClass">
+      <doc xml:whitespace="preserve">The #ClutterEffect structure contains only private data and should
+be accessed using the provided API</doc>
+      <virtual-method name="post_paint">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </virtual-method>
+      <virtual-method name="pre_paint">
+        <return-value transfer-ownership="none">
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+      </virtual-method>
+      <field name="parent_instance">
+        <type name="ActorMeta" c:type="ClutterActorMeta"/>
+      </field>
+    </class>
+    <record name="EffectClass"
+            c:type="ClutterEffectClass"
+            glib:is-gtype-struct-for="Effect"
+            version="1.4">
+      <doc xml:whitespace="preserve">The #ClutterEffectClass structure contains only private data</doc>
+      <field name="parent_class">
+        <type name="ActorMetaClass" c:type="ClutterActorMetaClass"/>
+      </field>
+      <field name="pre_paint">
+        <callback name="pre_paint">
+          <return-value transfer-ownership="none">
+            <type name="gboolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="effect" transfer-ownership="none">
+              <type name="Effect" c:type="ClutterEffect*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="post_paint">
+        <callback name="post_paint">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="effect" transfer-ownership="none">
+              <type name="Effect" c:type="ClutterEffect*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="_clutter_effect1" introspectable="0">
+        <callback name="_clutter_effect1">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_effect2" introspectable="0">
+        <callback name="_clutter_effect2">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_effect3" introspectable="0">
+        <callback name="_clutter_effect3">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_effect4" introspectable="0">
+        <callback name="_clutter_effect4">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_effect5" introspectable="0">
+        <callback name="_clutter_effect5">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_effect6" introspectable="0">
+        <callback name="_clutter_effect6">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+    </record>
+    <constant name="Egrave" value="200">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Ehook" value="16785082">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Eisu_Shift" value="65327">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Eisu_toggle" value="65328">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Eject" value="269025068">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Emacron" value="938">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="End" value="65367">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Eogonek" value="458">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Escape" value="65307">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Eth" value="208">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Etilde" value="16785084">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="EuroSign" value="8364">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <union name="Event"
+           c:type="ClutterEvent"
+           version="0.2"
+           glib:type-name="ClutterEvent"
+           glib:get-type="clutter_event_get_type"
+           c:symbol-prefix="event">
+      <doc xml:whitespace="preserve">Generic event wrapper.</doc>
+      <field name="type" writable="1">
+        <type name="EventType" c:type="ClutterEventType"/>
+      </field>
+      <field name="any" writable="1">
+        <type name="AnyEvent" c:type="ClutterAnyEvent"/>
+      </field>
+      <field name="button" writable="1">
+        <type name="ButtonEvent" c:type="ClutterButtonEvent"/>
+      </field>
+      <field name="key" writable="1">
+        <type name="KeyEvent" c:type="ClutterKeyEvent"/>
+      </field>
+      <field name="motion" writable="1">
+        <type name="MotionEvent" c:type="ClutterMotionEvent"/>
+      </field>
+      <field name="scroll" writable="1">
+        <type name="ScrollEvent" c:type="ClutterScrollEvent"/>
+      </field>
+      <field name="stage_state" writable="1">
+        <type name="StageStateEvent" c:type="ClutterStageStateEvent"/>
+      </field>
+      <field name="crossing" writable="1">
+        <type name="CrossingEvent" c:type="ClutterCrossingEvent"/>
+      </field>
+      <constructor name="new" c:identifier="clutter_event_new">
+        <doc xml:whitespace="preserve">Creates a new #ClutterEvent of the specified type.</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">A newly allocated #ClutterEvent.</doc>
+          <type name="Event" c:type="ClutterEvent*"/>
+        </return-value>
+        <parameters>
+          <parameter name="type" transfer-ownership="none">
+            <doc xml:whitespace="preserve">The type of event.</doc>
+            <type name="EventType" c:type="ClutterEventType"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <method name="copy" c:identifier="clutter_event_copy">
+        <doc xml:whitespace="preserve">Copies @event.</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">A newly allocated #ClutterEvent</doc>
+          <type name="Event" c:type="ClutterEvent*"/>
+        </return-value>
+      </method>
+      <method name="free" c:identifier="clutter_event_free">
+        <doc xml:whitespace="preserve">Frees all resources used by @event.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </method>
+      <method name="get_button"
+              c:identifier="clutter_event_get_button"
+              version="1.0">
+        <doc xml:whitespace="preserve">Retrieves the button number of @event</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the button number</doc>
+          <type name="guint32" c:type="guint32"/>
+        </return-value>
+      </method>
+      <method name="get_click_count"
+              c:identifier="clutter_event_get_click_count"
+              version="1.0">
+        <doc xml:whitespace="preserve">Retrieves the number of clicks of @event</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the click count</doc>
+          <type name="guint" c:type="guint"/>
+        </return-value>
+      </method>
+      <method name="get_coords"
+              c:identifier="clutter_event_get_coords"
+              version="0.4">
+        <doc xml:whitespace="preserve">Retrieves the coordinates of @event and puts them into @x and @y.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="x"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:whitespace="preserve">return location for the X coordinate, or %NULL</doc>
+            <type name="gfloat" c:type="gfloat*"/>
+          </parameter>
+          <parameter name="y"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:whitespace="preserve">return location for the Y coordinate, or %NULL</doc>
+            <type name="gfloat" c:type="gfloat*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_device"
+              c:identifier="clutter_event_get_device"
+              version="1.0">
+        <doc xml:whitespace="preserve">Retrieves the #ClutterInputDevice for the event.
+The #ClutterInputDevice structure is completely opaque and should
+be cast to the platform-specific implementation.
+returned device is owned by the #ClutterEvent and it should not
+be unreferenced</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the #ClutterInputDevice or %NULL. The</doc>
+          <type name="InputDevice" c:type="ClutterInputDevice*"/>
+        </return-value>
+      </method>
+      <method name="get_device_id" c:identifier="clutter_event_get_device_id">
+        <doc xml:whitespace="preserve">Retrieves the events device id if set.
+no specific device set.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">A unique identifier for the device or -1 if the event has</doc>
+          <type name="gint" c:type="gint"/>
+        </return-value>
+      </method>
+      <method name="get_device_type"
+              c:identifier="clutter_event_get_device_type"
+              version="1.0">
+        <doc xml:whitespace="preserve">Retrieves the type of the device for @event
+any is set</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the #ClutterInputDeviceType for the device, if</doc>
+          <type name="InputDeviceType" c:type="ClutterInputDeviceType"/>
+        </return-value>
+      </method>
+      <method name="get_flags"
+              c:identifier="clutter_event_get_flags"
+              version="1.0">
+        <doc xml:whitespace="preserve">Retrieves the #ClutterEventFlags of @event</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the event flags</doc>
+          <type name="EventFlags" c:type="ClutterEventFlags"/>
+        </return-value>
+      </method>
+      <method name="get_key_code"
+              c:identifier="clutter_event_get_key_code"
+              version="1.0">
+        <doc xml:whitespace="preserve">Retrieves the keycode of the key that caused @event</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">The keycode representing the key</doc>
+          <type name="guint16" c:type="guint16"/>
+        </return-value>
+      </method>
+      <method name="get_key_symbol"
+              c:identifier="clutter_event_get_key_symbol"
+              version="1.0">
+        <doc xml:whitespace="preserve">Retrieves the key symbol of @event</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the key symbol representing the key</doc>
+          <type name="guint" c:type="guint"/>
+        </return-value>
+      </method>
+      <method name="get_key_unicode"
+              c:identifier="clutter_event_get_key_unicode">
+        <doc xml:whitespace="preserve">Retrieves the unicode value for the key that caused @keyev.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">The unicode value representing the key</doc>
+          <type name="guint32" c:type="guint32"/>
+        </return-value>
+      </method>
+      <method name="get_related"
+              c:identifier="clutter_event_get_related"
+              version="1.0">
+        <doc xml:whitespace="preserve">Retrieves the related actor of a crossing event.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the related #ClutterActor, or %NULL</doc>
+          <type name="Actor" c:type="ClutterActor*"/>
+        </return-value>
+      </method>
+      <method name="get_scroll_direction"
+              c:identifier="clutter_event_get_scroll_direction"
+              version="1.0">
+        <doc xml:whitespace="preserve">Retrieves the direction of the scrolling of @event</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the scrolling direction</doc>
+          <type name="ScrollDirection" c:type="ClutterScrollDirection"/>
+        </return-value>
+      </method>
+      <method name="get_source"
+              c:identifier="clutter_event_get_source"
+              version="0.6">
+        <doc xml:whitespace="preserve">Retrieves the source #ClutterActor the event originated from, or
+NULL if the event has no source.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #ClutterActor</doc>
+          <type name="Actor" c:type="ClutterActor*"/>
+        </return-value>
+      </method>
+      <method name="get_stage"
+              c:identifier="clutter_event_get_stage"
+              version="0.8">
+        <doc xml:whitespace="preserve">Retrieves the source #ClutterStage the event originated for, or
+%NULL if the event has no stage.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #ClutterStage</doc>
+          <type name="Stage" c:type="ClutterStage*"/>
+        </return-value>
+      </method>
+      <method name="get_state"
+              c:identifier="clutter_event_get_state"
+              version="0.4">
+        <doc xml:whitespace="preserve">Retrieves the modifier state of the event.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the modifier state parameter, or 0</doc>
+          <type name="ModifierType" c:type="ClutterModifierType"/>
+        </return-value>
+      </method>
+      <method name="get_time"
+              c:identifier="clutter_event_get_time"
+              version="0.4">
+        <doc xml:whitespace="preserve">Retrieves the time of the event.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the time of the event, or %CLUTTER_CURRENT_TIME</doc>
+          <type name="guint32" c:type="guint32"/>
+        </return-value>
+      </method>
+      <method name="put" c:identifier="clutter_event_put" version="0.6">
+        <doc xml:whitespace="preserve">Puts a copy of the event on the back of the event queue. The event will
+have the %CLUTTER_EVENT_FLAG_SYNTHETIC flag set. If the source is set
+event signals will be emitted for this source and capture/bubbling for
+its ancestors. If the source is not set it will be generated by picking
+or use the actor that currently has keyboard focus</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </method>
+      <method name="type" c:identifier="clutter_event_type">
+        <doc xml:whitespace="preserve">Retrieves the type of the event.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #ClutterEventType</doc>
+          <type name="EventType" c:type="ClutterEventType"/>
+        </return-value>
+      </method>
+    </union>
+    <bitfield name="EventFlags"
+              version="0.6"
+              glib:type-name="ClutterEventFlags"
+              glib:get-type="clutter_event_flags_get_type"
+              c:type="ClutterEventFlags">
+      <doc xml:whitespace="preserve">Flags for the #ClutterEvent</doc>
+      <member name="none"
+              value="0"
+              c:identifier="CLUTTER_EVENT_NONE"
+              glib:nick="none"/>
+      <member name="flag_synthetic"
+              value="1"
+              c:identifier="CLUTTER_EVENT_FLAG_SYNTHETIC"
+              glib:nick="flag-synthetic"/>
+    </bitfield>
+    <enumeration name="EventType"
+                 version="0.4"
+                 glib:type-name="ClutterEventType"
+                 glib:get-type="clutter_event_type_get_type"
+                 c:type="ClutterEventType">
+      <doc xml:whitespace="preserve">Types of events.</doc>
+      <member name="nothing"
+              value="0"
+              c:identifier="CLUTTER_NOTHING"
+              glib:nick="nothing"/>
+      <member name="key_press"
+              value="1"
+              c:identifier="CLUTTER_KEY_PRESS"
+              glib:nick="key-press"/>
+      <member name="key_release"
+              value="2"
+              c:identifier="CLUTTER_KEY_RELEASE"
+              glib:nick="key-release"/>
+      <member name="motion"
+              value="3"
+              c:identifier="CLUTTER_MOTION"
+              glib:nick="motion"/>
+      <member name="enter"
+              value="4"
+              c:identifier="CLUTTER_ENTER"
+              glib:nick="enter"/>
+      <member name="leave"
+              value="5"
+              c:identifier="CLUTTER_LEAVE"
+              glib:nick="leave"/>
+      <member name="button_press"
+              value="6"
+              c:identifier="CLUTTER_BUTTON_PRESS"
+              glib:nick="button-press"/>
+      <member name="button_release"
+              value="7"
+              c:identifier="CLUTTER_BUTTON_RELEASE"
+              glib:nick="button-release"/>
+      <member name="scroll"
+              value="8"
+              c:identifier="CLUTTER_SCROLL"
+              glib:nick="scroll"/>
+      <member name="stage_state"
+              value="9"
+              c:identifier="CLUTTER_STAGE_STATE"
+              glib:nick="stage-state"/>
+      <member name="destroy_notify"
+              value="10"
+              c:identifier="CLUTTER_DESTROY_NOTIFY"
+              glib:nick="destroy-notify"/>
+      <member name="client_message"
+              value="11"
+              c:identifier="CLUTTER_CLIENT_MESSAGE"
+              glib:nick="client-message"/>
+      <member name="delete"
+              value="12"
+              c:identifier="CLUTTER_DELETE"
+              glib:nick="delete"/>
+    </enumeration>
+    <constant name="Excel" value="269025116">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Execute" value="65378">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Explorer" value="269025117">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="F" value="70">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="F1" value="65470">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="F10" value="65479">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="F11" value="65480">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="F12" value="65481">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="F13" value="65482">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="F14" value="65483">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="F15" value="65484">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="F16" value="65485">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="F17" value="65486">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="F18" value="65487">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="F19" value="65488">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="F2" value="65471">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="F20" value="65489">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="F21" value="65490">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="F22" value="65491">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="F23" value="65492">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="F24" value="65493">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="F25" value="65494">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="F26" value="65495">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="F27" value="65496">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="F28" value="65497">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="F29" value="65498">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="F3" value="65472">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="F30" value="65499">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="F31" value="65500">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="F32" value="65501">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="F33" value="65502">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="F34" value="65503">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="F35" value="65504">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="F4" value="65473">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="F5" value="65474">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="F6" value="65475">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="F7" value="65476">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="F8" value="65477">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="F9" value="65478">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="FFrancSign" value="16785571">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="FLAVOUR" value="glx">
+      <type name="utf8" c:type="gchar*"/>
+    </constant>
+    <constant name="Fabovedot" value="16784926">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Farsi_0" value="16778992">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Farsi_1" value="16778993">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Farsi_2" value="16778994">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Farsi_3" value="16778995">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Farsi_4" value="16778996">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Farsi_5" value="16778997">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Farsi_6" value="16778998">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Farsi_7" value="16778999">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Farsi_8" value="16779000">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Farsi_9" value="16779001">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Farsi_yeh" value="16778956">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Favorites" value="269025072">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <bitfield name="FeatureFlags"
+              version="0.4"
+              glib:type-name="ClutterFeatureFlags"
+              glib:get-type="clutter_feature_flags_get_type"
+              c:type="ClutterFeatureFlags">
+      <doc xml:whitespace="preserve">Runtime flags indicating specific features available via Clutter window
+sysytem and graphics backend.</doc>
+      <member name="texture_npot"
+              value="4"
+              c:identifier="CLUTTER_FEATURE_TEXTURE_NPOT"
+              glib:nick="texture-npot"/>
+      <member name="sync_to_vblank"
+              value="8"
+              c:identifier="CLUTTER_FEATURE_SYNC_TO_VBLANK"
+              glib:nick="sync-to-vblank"/>
+      <member name="texture_yuv"
+              value="16"
+              c:identifier="CLUTTER_FEATURE_TEXTURE_YUV"
+              glib:nick="texture-yuv"/>
+      <member name="texture_read_pixels"
+              value="32"
+              c:identifier="CLUTTER_FEATURE_TEXTURE_READ_PIXELS"
+              glib:nick="texture-read-pixels"/>
+      <member name="stage_static"
+              value="64"
+              c:identifier="CLUTTER_FEATURE_STAGE_STATIC"
+              glib:nick="stage-static"/>
+      <member name="stage_user_resize"
+              value="128"
+              c:identifier="CLUTTER_FEATURE_STAGE_USER_RESIZE"
+              glib:nick="stage-user-resize"/>
+      <member name="stage_cursor"
+              value="256"
+              c:identifier="CLUTTER_FEATURE_STAGE_CURSOR"
+              glib:nick="stage-cursor"/>
+      <member name="shaders_glsl"
+              value="512"
+              c:identifier="CLUTTER_FEATURE_SHADERS_GLSL"
+              glib:nick="shaders-glsl"/>
+      <member name="offscreen"
+              value="1024"
+              c:identifier="CLUTTER_FEATURE_OFFSCREEN"
+              glib:nick="offscreen"/>
+      <member name="stage_multiple"
+              value="2048"
+              c:identifier="CLUTTER_FEATURE_STAGE_MULTIPLE"
+              glib:nick="stage-multiple"/>
+      <member name="swap_events"
+              value="4096"
+              c:identifier="CLUTTER_FEATURE_SWAP_EVENTS"
+              glib:nick="swap-events"/>
+    </bitfield>
+    <constant name="Finance" value="269025084">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Find" value="65384">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="First_Virtual_Screen" value="65232">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <class name="FixedLayout"
+           c:symbol-prefix="fixed_layout"
+           c:type="ClutterFixedLayout"
+           version="1.2"
+           parent="LayoutManager"
+           glib:type-name="ClutterFixedLayout"
+           glib:get-type="clutter_fixed_layout_get_type"
+           glib:type-struct="FixedLayoutClass">
+      <doc xml:whitespace="preserve">The #ClutterFixedLayout structure contains only private data and
+it should be accessed using the provided API</doc>
+      <constructor name="new"
+                   c:identifier="clutter_fixed_layout_new"
+                   version="1.2">
+        <doc xml:whitespace="preserve">Creates a new #ClutterFixedLayout</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the newly created #ClutterFixedLayout</doc>
+          <type name="LayoutManager" c:type="ClutterLayoutManager*"/>
+        </return-value>
+      </constructor>
+      <field name="parent_instance">
+        <type name="LayoutManager" c:type="ClutterLayoutManager"/>
+      </field>
+    </class>
+    <record name="FixedLayoutClass"
+            c:type="ClutterFixedLayoutClass"
+            glib:is-gtype-struct-for="FixedLayout"
+            version="1.2">
+      <doc xml:whitespace="preserve">The #ClutterFixedLayoutClass structure contains only private data
+and it should be accessed using the provided API</doc>
+      <field name="parent_class">
+        <type name="LayoutManagerClass" c:type="ClutterLayoutManagerClass"/>
+      </field>
+    </record>
+    <class name="FlowLayout"
+           c:symbol-prefix="flow_layout"
+           c:type="ClutterFlowLayout"
+           version="1.2"
+           parent="LayoutManager"
+           glib:type-name="ClutterFlowLayout"
+           glib:get-type="clutter_flow_layout_get_type"
+           glib:type-struct="FlowLayoutClass">
+      <doc xml:whitespace="preserve">The #ClutterFlowLayout structure contains only private data
+and should be accessed using the provided API</doc>
+      <constructor name="new"
+                   c:identifier="clutter_flow_layout_new"
+                   version="1.2">
+        <doc xml:whitespace="preserve">Creates a new #ClutterFlowLayout with the given @orientation</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the newly created #ClutterFlowLayout</doc>
+          <type name="LayoutManager" c:type="ClutterLayoutManager*"/>
+        </return-value>
+        <parameters>
+          <parameter name="orientation" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the orientation of the flow layout</doc>
+            <type name="FlowOrientation" c:type="ClutterFlowOrientation"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <method name="get_column_spacing"
+              c:identifier="clutter_flow_layout_get_column_spacing"
+              version="1.2">
+        <doc xml:whitespace="preserve">Retrieves the spacing between columns
+in pixels</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the spacing between columns of the #ClutterFlowLayout,</doc>
+          <type name="gfloat" c:type="gfloat"/>
+        </return-value>
+      </method>
+      <method name="get_column_width"
+              c:identifier="clutter_flow_layout_get_column_width"
+              version="1.2">
+        <doc xml:whitespace="preserve">Retrieves the minimum and maximum column widths</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="min_width"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:whitespace="preserve">return location for the minimum column width, or %NULL</doc>
+            <type name="gfloat" c:type="gfloat*"/>
+          </parameter>
+          <parameter name="max_width"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:whitespace="preserve">return location for the maximum column width, or %NULL</doc>
+            <type name="gfloat" c:type="gfloat*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_homogeneous"
+              c:identifier="clutter_flow_layout_get_homogeneous"
+              version="1.2">
+        <doc xml:whitespace="preserve">Retrieves whether the @layout is homogeneous</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if the #ClutterFlowLayout is homogeneous</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+      </method>
+      <method name="get_orientation"
+              c:identifier="clutter_flow_layout_get_orientation"
+              version="1.2">
+        <doc xml:whitespace="preserve">Retrieves the orientation of the @layout</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the orientation of the #ClutterFlowLayout</doc>
+          <type name="FlowOrientation" c:type="ClutterFlowOrientation"/>
+        </return-value>
+      </method>
+      <method name="get_row_height"
+              c:identifier="clutter_flow_layout_get_row_height"
+              version="1.2">
+        <doc xml:whitespace="preserve">Retrieves the minimum and maximum row heights</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="min_height"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:whitespace="preserve">return location for the minimum row height, or %NULL</doc>
+            <type name="gfloat" c:type="gfloat*"/>
+          </parameter>
+          <parameter name="max_height"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:whitespace="preserve">return location for the maximum row height, or %NULL</doc>
+            <type name="gfloat" c:type="gfloat*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_row_spacing"
+              c:identifier="clutter_flow_layout_get_row_spacing"
+              version="1.2">
+        <doc xml:whitespace="preserve">Retrieves the spacing between rows
+in pixels</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the spacing between rows of the #ClutterFlowLayout,</doc>
+          <type name="gfloat" c:type="gfloat"/>
+        </return-value>
+      </method>
+      <method name="set_column_spacing"
+              c:identifier="clutter_flow_layout_set_column_spacing"
+              version="1.2">
+        <doc xml:whitespace="preserve">Sets the space between columns, in pixels</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="spacing" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the space between columns</doc>
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_column_width"
+              c:identifier="clutter_flow_layout_set_column_width"
+              version="1.2">
+        <doc xml:whitespace="preserve">Sets the minimum and maximum widths that a column can have</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="min_width" transfer-ownership="none">
+            <doc xml:whitespace="preserve">minimum width of a column</doc>
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+          <parameter name="max_width" transfer-ownership="none">
+            <doc xml:whitespace="preserve">maximum width of a column</doc>
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_homogeneous"
+              c:identifier="clutter_flow_layout_set_homogeneous"
+              version="1.2">
+        <doc xml:whitespace="preserve">Sets whether the @layout should allocate the same space for
+each child</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="homogeneous" transfer-ownership="none">
+            <doc xml:whitespace="preserve">whether the layout should be homogeneous or not</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_orientation"
+              c:identifier="clutter_flow_layout_set_orientation"
+              version="1.2">
+        <doc xml:whitespace="preserve">Sets the orientation of the flow layout
+The orientation controls the direction used to allocate
+orientation also controls the direction of the overflowing</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="orientation" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the orientation of the layout</doc>
+            <type name="FlowOrientation" c:type="ClutterFlowOrientation"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_row_height"
+              c:identifier="clutter_flow_layout_set_row_height"
+              version="1.2">
+        <doc xml:whitespace="preserve">Sets the minimum and maximum heights that a row can have</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="min_height" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the minimum height of a row</doc>
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+          <parameter name="max_height" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the maximum height of a row</doc>
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_row_spacing"
+              c:identifier="clutter_flow_layout_set_row_spacing"
+              version="1.2">
+        <doc xml:whitespace="preserve">Sets the spacing between rows, in pixels</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="spacing" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the space between rows</doc>
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+        </parameters>
+      </method>
+      <property name="column-spacing"
+                version="1.2"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">The spacing between columns, in pixels; the value of this
+property is honoured by horizontal non-overflowing layouts
+and by vertical overflowing layouts</doc>
+        <type name="gfloat"/>
+      </property>
+      <property name="homogeneous"
+                version="1.2"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">Whether each child inside the #ClutterFlowLayout should receive
+the same allocation</doc>
+        <type name="gboolean"/>
+      </property>
+      <property name="max-column-width"
+                version="1.2"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">Maximum width for each column in the layout, in pixels. If
+set to -1 the width will be the maximum child width</doc>
+        <type name="gfloat"/>
+      </property>
+      <property name="max-row-height"
+                version="1.2"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">Maximum height for each row in the layout, in pixels. If
+set to -1 the width will be the maximum child height</doc>
+        <type name="gfloat"/>
+      </property>
+      <property name="min-column-width"
+                version="1.2"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">Minimum width for each column in the layout, in pixels</doc>
+        <type name="gfloat"/>
+      </property>
+      <property name="min-row-height"
+                version="1.2"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">Minimum height for each row in the layout, in pixels</doc>
+        <type name="gfloat"/>
+      </property>
+      <property name="orientation"
+                version="1.2"
+                writable="1"
+                construct="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">The orientation of the #ClutterFlowLayout. The children
+of the layout will be layed out following the orientation.
+This property also controls the overflowing directions</doc>
+        <type name="FlowOrientation"/>
+      </property>
+      <property name="row-spacing"
+                version="1.2"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">The spacing between rows, in pixels; the value of this
+property is honoured by vertical non-overflowing layouts and
+by horizontal overflowing layouts</doc>
+        <type name="gfloat"/>
+      </property>
+      <field name="parent_instance">
+        <type name="LayoutManager" c:type="ClutterLayoutManager"/>
+      </field>
+      <field name="priv">
+        <type name="FlowLayoutPrivate" c:type="ClutterFlowLayoutPrivate*"/>
+      </field>
+    </class>
+    <record name="FlowLayoutClass"
+            c:type="ClutterFlowLayoutClass"
+            glib:is-gtype-struct-for="FlowLayout"
+            version="1.2">
+      <doc xml:whitespace="preserve">The #ClutterFlowLayoutClass structure contains only private data
+and should be accessed using the provided API</doc>
+      <field name="parent_class">
+        <type name="LayoutManagerClass" c:type="ClutterLayoutManagerClass"/>
+      </field>
+    </record>
+    <record name="FlowLayoutPrivate"
+            c:type="ClutterFlowLayoutPrivate"
+            disguised="1">
+    </record>
+    <enumeration name="FlowOrientation"
+                 version="1.2"
+                 glib:type-name="ClutterFlowOrientation"
+                 glib:get-type="clutter_flow_orientation_get_type"
+                 c:type="ClutterFlowOrientation">
+      <doc xml:whitespace="preserve">The direction of the arrangement of the children inside
+a #ClutterFlowLayout</doc>
+      <member name="horizontal"
+              value="0"
+              c:identifier="CLUTTER_FLOW_HORIZONTAL"
+              glib:nick="horizontal"/>
+      <member name="vertical"
+              value="1"
+              c:identifier="CLUTTER_FLOW_VERTICAL"
+              glib:nick="vertical"/>
+    </enumeration>
+    <record name="Fog"
+            c:type="ClutterFog"
+            version="0.6"
+            glib:type-name="ClutterFog"
+            glib:get-type="clutter_fog_get_type"
+            c:symbol-prefix="fog">
+      <doc xml:whitespace="preserve">Fog settings used to create the depth cueing effect.</doc>
+      <field name="z_near" writable="1">
+        <type name="gfloat" c:type="gfloat"/>
+      </field>
+      <field name="z_far" writable="1">
+        <type name="gfloat" c:type="gfloat"/>
+      </field>
+    </record>
+    <bitfield name="FontFlags"
+              version="1.0"
+              glib:type-name="ClutterFontFlags"
+              glib:get-type="clutter_font_flags_get_type"
+              c:type="ClutterFontFlags">
+      <doc xml:whitespace="preserve">Runtime flags to change the font quality. To be used with
+clutter_set_font_flags().</doc>
+      <member name="mipmapping"
+              value="1"
+              c:identifier="CLUTTER_FONT_MIPMAPPING"
+              glib:nick="mipmapping"/>
+      <member name="hinting"
+              value="2"
+              c:identifier="CLUTTER_FONT_HINTING"
+              glib:nick="hinting"/>
+    </bitfield>
+    <constant name="Forward" value="269025063">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="FrameBack" value="269025181">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="FrameForward" value="269025182">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="G" value="71">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Gabovedot" value="725">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Game" value="269025118">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Gbreve" value="683">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Gcaron" value="16777702">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Gcedilla" value="939">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Gcircumflex" value="728">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <record name="Geometry"
+            c:type="ClutterGeometry"
+            glib:type-name="ClutterGeometry"
+            glib:get-type="clutter_geometry_get_type"
+            c:symbol-prefix="geometry">
+      <doc xml:whitespace="preserve">The rectangle containing an actor's bounding box, measured in pixels.</doc>
+      <field name="x" writable="1">
+        <type name="gint" c:type="gint"/>
+      </field>
+      <field name="y" writable="1">
+        <type name="gint" c:type="gint"/>
+      </field>
+      <field name="width" writable="1">
+        <type name="guint" c:type="guint"/>
+      </field>
+      <field name="height" writable="1">
+        <type name="guint" c:type="guint"/>
+      </field>
+      <method name="intersects"
+              c:identifier="clutter_geometry_intersects"
+              version="1.4">
+        <doc xml:whitespace="preserve">Determines if @geometry0 and geometry1 intersect returning %TRUE if
+they do else %FALSE.
+%FALSE.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE of @geometry0 and geometry1 intersect else</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="geometry1" transfer-ownership="none">
+            <doc xml:whitespace="preserve">The second geometry to test</doc>
+            <type name="Geometry" c:type="ClutterGeometry*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="union" c:identifier="clutter_geometry_union" version="1.4">
+        <doc xml:whitespace="preserve">Find the union of two rectangles represented as #ClutterGeometry.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="geometry_b" transfer-ownership="none">
+            <doc xml:whitespace="preserve">another #ClutterGeometry</doc>
+            <type name="Geometry" c:type="ClutterGeometry*"/>
+          </parameter>
+          <parameter name="result"
+                     direction="out"
+                     caller-allocates="1"
+                     transfer-ownership="none">
+            <doc xml:whitespace="preserve">location to store the result</doc>
+            <type name="Geometry" c:type="ClutterGeometry*"/>
+          </parameter>
+        </parameters>
+      </method>
+    </record>
+    <constant name="Georgian_an" value="16781520">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Georgian_ban" value="16781521">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Georgian_can" value="16781546">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Georgian_char" value="16781549">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Georgian_chin" value="16781545">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Georgian_cil" value="16781548">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Georgian_don" value="16781523">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Georgian_en" value="16781524">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Georgian_fi" value="16781558">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Georgian_gan" value="16781522">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Georgian_ghan" value="16781542">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Georgian_hae" value="16781552">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Georgian_har" value="16781556">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Georgian_he" value="16781553">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Georgian_hie" value="16781554">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Georgian_hoe" value="16781557">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Georgian_in" value="16781528">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Georgian_jhan" value="16781551">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Georgian_jil" value="16781547">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Georgian_kan" value="16781529">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Georgian_khar" value="16781541">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Georgian_las" value="16781530">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Georgian_man" value="16781531">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Georgian_nar" value="16781532">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Georgian_on" value="16781533">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Georgian_par" value="16781534">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Georgian_phar" value="16781540">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Georgian_qar" value="16781543">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Georgian_rae" value="16781536">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Georgian_san" value="16781537">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Georgian_shin" value="16781544">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Georgian_tan" value="16781527">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Georgian_tar" value="16781538">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Georgian_un" value="16781539">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Georgian_vin" value="16781525">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Georgian_we" value="16781555">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Georgian_xan" value="16781550">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Georgian_zen" value="16781526">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Georgian_zhar" value="16781535">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Go" value="269025119">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <enumeration name="Gravity"
+                 version="0.2"
+                 glib:type-name="ClutterGravity"
+                 glib:get-type="clutter_gravity_get_type"
+                 c:type="ClutterGravity">
+      <doc xml:whitespace="preserve">Gravity of the scaling operations. When a gravity different than
+%CLUTTER_GRAVITY_NONE is used, an actor is scaled keeping the position
+of the specified portion at the same coordinates.</doc>
+      <member name="none"
+              value="0"
+              c:identifier="CLUTTER_GRAVITY_NONE"
+              glib:nick="none"/>
+      <member name="north"
+              value="1"
+              c:identifier="CLUTTER_GRAVITY_NORTH"
+              glib:nick="north"/>
+      <member name="north_east"
+              value="2"
+              c:identifier="CLUTTER_GRAVITY_NORTH_EAST"
+              glib:nick="north-east"/>
+      <member name="east"
+              value="3"
+              c:identifier="CLUTTER_GRAVITY_EAST"
+              glib:nick="east"/>
+      <member name="south_east"
+              value="4"
+              c:identifier="CLUTTER_GRAVITY_SOUTH_EAST"
+              glib:nick="south-east"/>
+      <member name="south"
+              value="5"
+              c:identifier="CLUTTER_GRAVITY_SOUTH"
+              glib:nick="south"/>
+      <member name="south_west"
+              value="6"
+              c:identifier="CLUTTER_GRAVITY_SOUTH_WEST"
+              glib:nick="south-west"/>
+      <member name="west"
+              value="7"
+              c:identifier="CLUTTER_GRAVITY_WEST"
+              glib:nick="west"/>
+      <member name="north_west"
+              value="8"
+              c:identifier="CLUTTER_GRAVITY_NORTH_WEST"
+              glib:nick="north-west"/>
+      <member name="center"
+              value="9"
+              c:identifier="CLUTTER_GRAVITY_CENTER"
+              glib:nick="center"/>
+    </enumeration>
+    <constant name="Greek_ALPHA" value="1985">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Greek_ALPHAaccent" value="1953">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Greek_BETA" value="1986">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Greek_CHI" value="2007">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Greek_DELTA" value="1988">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Greek_EPSILON" value="1989">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Greek_EPSILONaccent" value="1954">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Greek_ETA" value="1991">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Greek_ETAaccent" value="1955">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Greek_GAMMA" value="1987">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Greek_IOTA" value="1993">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Greek_IOTAaccent" value="1956">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Greek_IOTAdiaeresis" value="1957">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Greek_IOTAdieresis" value="1957">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Greek_KAPPA" value="1994">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Greek_LAMBDA" value="1995">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Greek_LAMDA" value="1995">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Greek_MU" value="1996">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Greek_NU" value="1997">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Greek_OMEGA" value="2009">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Greek_OMEGAaccent" value="1963">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Greek_OMICRON" value="1999">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Greek_OMICRONaccent" value="1959">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Greek_PHI" value="2006">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Greek_PI" value="2000">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Greek_PSI" value="2008">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Greek_RHO" value="2001">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Greek_SIGMA" value="2002">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Greek_TAU" value="2004">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Greek_THETA" value="1992">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Greek_UPSILON" value="2005">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Greek_UPSILONaccent" value="1960">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Greek_UPSILONdieresis" value="1961">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Greek_XI" value="1998">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Greek_ZETA" value="1990">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Greek_accentdieresis" value="1966">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Greek_alpha" value="2017">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Greek_alphaaccent" value="1969">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Greek_beta" value="2018">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Greek_chi" value="2039">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Greek_delta" value="2020">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Greek_epsilon" value="2021">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Greek_epsilonaccent" value="1970">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Greek_eta" value="2023">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Greek_etaaccent" value="1971">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Greek_finalsmallsigma" value="2035">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Greek_gamma" value="2019">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Greek_horizbar" value="1967">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Greek_iota" value="2025">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Greek_iotaaccent" value="1972">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Greek_iotaaccentdieresis" value="1974">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Greek_iotadieresis" value="1973">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Greek_kappa" value="2026">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Greek_lambda" value="2027">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Greek_lamda" value="2027">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Greek_mu" value="2028">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Greek_nu" value="2029">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Greek_omega" value="2041">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Greek_omegaaccent" value="1979">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Greek_omicron" value="2031">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Greek_omicronaccent" value="1975">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Greek_phi" value="2038">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Greek_pi" value="2032">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Greek_psi" value="2040">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Greek_rho" value="2033">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Greek_sigma" value="2034">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Greek_switch" value="65406">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Greek_tau" value="2036">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Greek_theta" value="2024">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Greek_upsilon" value="2037">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Greek_upsilonaccent" value="1976">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Greek_upsilonaccentdieresis" value="1978">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Greek_upsilondieresis" value="1977">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Greek_xi" value="2030">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Greek_zeta" value="2022">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Green" value="269025188">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <class name="Group"
+           c:symbol-prefix="group"
+           c:type="ClutterGroup"
+           version="0.1"
+           parent="Actor"
+           glib:type-name="ClutterGroup"
+           glib:get-type="clutter_group_get_type"
+           glib:type-struct="GroupClass">
+      <doc xml:whitespace="preserve">The #ClutterGroup structure contains only private data
+and should be accessed using the provided API</doc>
+      <implements name="Atk.ImplementorIface"/>
+      <implements name="Animatable"/>
+      <implements name="Container"/>
+      <implements name="Scriptable"/>
+      <constructor name="new" c:identifier="clutter_group_new">
+        <doc xml:whitespace="preserve">Create a new  #ClutterGroup.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the newly created #ClutterGroup actor</doc>
+          <type name="Actor" c:type="ClutterActor*"/>
+        </return-value>
+      </constructor>
+      <method name="get_n_children"
+              c:identifier="clutter_group_get_n_children"
+              version="0.2">
+        <doc xml:whitespace="preserve">Gets the number of actors held in the group.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">The number of child actors held in the group.</doc>
+          <type name="gint" c:type="gint"/>
+        </return-value>
+      </method>
+      <method name="get_nth_child"
+              c:identifier="clutter_group_get_nth_child"
+              version="0.2">
+        <doc xml:whitespace="preserve">Gets a groups child held at @index_ in stack.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">A Clutter actor, or %NULL if</doc>
+          <type name="Actor" c:type="ClutterActor*"/>
+        </return-value>
+        <parameters>
+          <parameter name="index_" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the position of the requested actor.</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="remove_all" c:identifier="clutter_group_remove_all">
+        <doc xml:whitespace="preserve">Removes all children actors from the #ClutterGroup.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </method>
+      <field name="parent_instance">
+        <type name="Actor" c:type="ClutterActor"/>
+      </field>
+      <field name="priv">
+        <type name="GroupPrivate" c:type="ClutterGroupPrivate*"/>
+      </field>
+    </class>
+    <record name="GroupClass"
+            c:type="ClutterGroupClass"
+            glib:is-gtype-struct-for="Group"
+            version="0.1">
+      <doc xml:whitespace="preserve">The #ClutterGroupClass structure contains only private data</doc>
+      <field name="parent_class">
+        <type name="ActorClass" c:type="ClutterActorClass"/>
+      </field>
+      <field name="_clutter_reserved1" introspectable="0">
+        <callback name="_clutter_reserved1">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_reserved2" introspectable="0">
+        <callback name="_clutter_reserved2">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_reserved3" introspectable="0">
+        <callback name="_clutter_reserved3">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_reserved4" introspectable="0">
+        <callback name="_clutter_reserved4">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_reserved5" introspectable="0">
+        <callback name="_clutter_reserved5">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_reserved6" introspectable="0">
+        <callback name="_clutter_reserved6">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+    </record>
+    <record name="GroupPrivate" c:type="ClutterGroupPrivate" disguised="1">
+    </record>
+    <constant name="H" value="72">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul" value="65329">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_A" value="3775">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_AE" value="3776">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_AraeA" value="3830">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_AraeAE" value="3831">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_Banja" value="65337">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_Cieuc" value="3770">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_Codeinput" value="65335">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_Dikeud" value="3751">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_E" value="3780">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_EO" value="3779">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_EU" value="3793">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_End" value="65331">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_Hanja" value="65332">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_Hieuh" value="3774">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_I" value="3795">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_Ieung" value="3767">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_J_Cieuc" value="3818">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_J_Dikeud" value="3802">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_J_Hieuh" value="3822">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_J_Ieung" value="3816">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_J_Jieuj" value="3817">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_J_Khieuq" value="3819">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_J_Kiyeog" value="3796">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_J_KiyeogSios" value="3798">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_J_KkogjiDalrinIeung" value="3833">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_J_Mieum" value="3811">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_J_Nieun" value="3799">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_J_NieunHieuh" value="3801">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_J_NieunJieuj" value="3800">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_J_PanSios" value="3832">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_J_Phieuf" value="3821">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_J_Pieub" value="3812">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_J_PieubSios" value="3813">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_J_Rieul" value="3803">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_J_RieulHieuh" value="3810">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_J_RieulKiyeog" value="3804">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_J_RieulMieum" value="3805">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_J_RieulPhieuf" value="3809">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_J_RieulPieub" value="3806">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_J_RieulSios" value="3807">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_J_RieulTieut" value="3808">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_J_Sios" value="3814">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_J_SsangKiyeog" value="3797">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_J_SsangSios" value="3815">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_J_Tieut" value="3820">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_J_YeorinHieuh" value="3834">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_Jamo" value="65333">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_Jeonja" value="65336">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_Jieuj" value="3768">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_Khieuq" value="3771">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_Kiyeog" value="3745">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_KiyeogSios" value="3747">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_KkogjiDalrinIeung" value="3827">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_Mieum" value="3761">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_MultipleCandidate" value="65341">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_Nieun" value="3748">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_NieunHieuh" value="3750">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_NieunJieuj" value="3749">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_O" value="3783">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_OE" value="3786">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_PanSios" value="3826">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_Phieuf" value="3773">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_Pieub" value="3762">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_PieubSios" value="3764">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_PostHanja" value="65339">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_PreHanja" value="65338">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_PreviousCandidate" value="65342">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_Rieul" value="3753">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_RieulHieuh" value="3760">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_RieulKiyeog" value="3754">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_RieulMieum" value="3755">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_RieulPhieuf" value="3759">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_RieulPieub" value="3756">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_RieulSios" value="3757">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_RieulTieut" value="3758">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_RieulYeorinHieuh" value="3823">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_Romaja" value="65334">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_SingleCandidate" value="65340">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_Sios" value="3765">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_Special" value="65343">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_SsangDikeud" value="3752">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_SsangJieuj" value="3769">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_SsangKiyeog" value="3746">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_SsangPieub" value="3763">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_SsangSios" value="3766">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_Start" value="65330">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_SunkyeongeumMieum" value="3824">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_SunkyeongeumPhieuf" value="3828">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_SunkyeongeumPieub" value="3825">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_Tieut" value="3772">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_U" value="3788">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_WA" value="3784">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_WAE" value="3785">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_WE" value="3790">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_WEO" value="3789">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_WI" value="3791">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_YA" value="3777">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_YAE" value="3778">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_YE" value="3782">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_YEO" value="3781">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_YI" value="3794">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_YO" value="3787">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_YU" value="3792">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_YeorinHieuh" value="3829">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_switch" value="65406">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hankaku" value="65321">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hcircumflex" value="678">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hebrew_switch" value="65406">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Help" value="65386">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Henkan" value="65315">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Henkan_Mode" value="65315">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hibernate" value="269025192">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hiragana" value="65317">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hiragana_Katakana" value="65319">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="History" value="269025079">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Home" value="65360">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="HomePage" value="269025048">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="HotLinks" value="269025082">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hstroke" value="673">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hyper_L" value="65517">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hyper_R" value="65518">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="I" value="73">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ISO_Center_Object" value="65075">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ISO_Continuous_Underline" value="65072">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ISO_Discontinuous_Underline" value="65073">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ISO_Emphasize" value="65074">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ISO_Enter" value="65076">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ISO_Fast_Cursor_Down" value="65071">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ISO_Fast_Cursor_Left" value="65068">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ISO_Fast_Cursor_Right" value="65069">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ISO_Fast_Cursor_Up" value="65070">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ISO_First_Group" value="65036">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ISO_First_Group_Lock" value="65037">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ISO_Group_Latch" value="65030">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ISO_Group_Lock" value="65031">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ISO_Group_Shift" value="65406">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ISO_Last_Group" value="65038">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ISO_Last_Group_Lock" value="65039">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ISO_Left_Tab" value="65056">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ISO_Level2_Latch" value="65026">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ISO_Level3_Latch" value="65028">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ISO_Level3_Lock" value="65029">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ISO_Level3_Shift" value="65027">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ISO_Level5_Latch" value="65042">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ISO_Level5_Lock" value="65043">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ISO_Level5_Shift" value="65041">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ISO_Lock" value="65025">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ISO_Move_Line_Down" value="65058">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ISO_Move_Line_Up" value="65057">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ISO_Next_Group" value="65032">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ISO_Next_Group_Lock" value="65033">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ISO_Partial_Line_Down" value="65060">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ISO_Partial_Line_Up" value="65059">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ISO_Partial_Space_Left" value="65061">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ISO_Partial_Space_Right" value="65062">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ISO_Prev_Group" value="65034">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ISO_Prev_Group_Lock" value="65035">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ISO_Release_Both_Margins" value="65067">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ISO_Release_Margin_Left" value="65065">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ISO_Release_Margin_Right" value="65066">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ISO_Set_Margin_Left" value="65063">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ISO_Set_Margin_Right" value="65064">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Iabovedot" value="681">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Iacute" value="205">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Ibelowdot" value="16785098">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Ibreve" value="16777516">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Icircumflex" value="206">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Idiaeresis" value="207">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Igrave" value="204">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Ihook" value="16785096">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Imacron" value="975">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <enumeration name="InitError"
+                 version="0.2"
+                 glib:type-name="ClutterInitError"
+                 glib:get-type="clutter_init_error_get_type"
+                 c:type="ClutterInitError"
+                 glib:error-quark="clutter_init_error_quark">
+      <doc xml:whitespace="preserve">Error conditions returned by clutter_init() and clutter_init_with_args().</doc>
+      <member name="success"
+              value="1"
+              c:identifier="CLUTTER_INIT_SUCCESS"
+              glib:nick="success"/>
+      <member name="error_unknown"
+              value="0"
+              c:identifier="CLUTTER_INIT_ERROR_UNKNOWN"
+              glib:nick="error-unknown"/>
+      <member name="error_threads"
+              value="-1"
+              c:identifier="CLUTTER_INIT_ERROR_THREADS"
+              glib:nick="error-threads"/>
+      <member name="error_backend"
+              value="-2"
+              c:identifier="CLUTTER_INIT_ERROR_BACKEND"
+              glib:nick="error-backend"/>
+      <member name="error_internal"
+              value="-3"
+              c:identifier="CLUTTER_INIT_ERROR_INTERNAL"
+              glib:nick="error-internal"/>
+    </enumeration>
+    <class name="InputDevice"
+           c:symbol-prefix="input_device"
+           c:type="ClutterInputDevice"
+           parent="GObject.Object"
+           glib:type-name="ClutterInputDevice"
+           glib:get-type="clutter_input_device_get_type"
+           glib:type-struct="InputDeviceClass">
+      <doc xml:whitespace="preserve">Generic representation of an input device. The actual contents of this
+structure depend on the backend used.</doc>
+      <method name="get_device_coords"
+              c:identifier="clutter_input_device_get_device_coords"
+              version="1.2">
+        <doc xml:whitespace="preserve">Retrieves the latest coordinates of the pointer of @device</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="x"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:whitespace="preserve">return location for the X coordinate</doc>
+            <type name="gint" c:type="gint*"/>
+          </parameter>
+          <parameter name="y"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:whitespace="preserve">return location for the Y coordinate</doc>
+            <type name="gint" c:type="gint*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_device_id"
+              c:identifier="clutter_input_device_get_device_id"
+              version="1.0">
+        <doc xml:whitespace="preserve">Retrieves the unique identifier of @device</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the identifier of the device</doc>
+          <type name="gint" c:type="gint"/>
+        </return-value>
+      </method>
+      <method name="get_device_name"
+              c:identifier="clutter_input_device_get_device_name"
+              version="1.2">
+        <doc xml:whitespace="preserve">Retrieves the name of the @device
+is owned by the #ClutterInputDevice and should never be modified
+or freed</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the name of the device, or %NULL. The returned string</doc>
+          <type name="utf8" c:type="gchar*"/>
+        </return-value>
+      </method>
+      <method name="get_device_type"
+              c:identifier="clutter_input_device_get_device_type"
+              version="1.0">
+        <doc xml:whitespace="preserve">Retrieves the type of @device</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the type of the device</doc>
+          <type name="InputDeviceType" c:type="ClutterInputDeviceType"/>
+        </return-value>
+      </method>
+      <method name="get_pointer_actor"
+              c:identifier="clutter_input_device_get_pointer_actor"
+              version="1.2">
+        <doc xml:whitespace="preserve">Retrieves the #ClutterActor underneath the pointer of @device</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">a pointer to the #ClutterActor or %NULL</doc>
+          <type name="Actor" c:type="ClutterActor*"/>
+        </return-value>
+      </method>
+      <method name="get_pointer_stage"
+              c:identifier="clutter_input_device_get_pointer_stage"
+              version="1.2">
+        <doc xml:whitespace="preserve">Retrieves the #ClutterStage underneath the pointer of @device</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">a pointer to the #ClutterStage or %NULL</doc>
+          <type name="Stage" c:type="ClutterStage*"/>
+        </return-value>
+      </method>
+      <method name="update_from_event"
+              c:identifier="clutter_input_device_update_from_event"
+              version="1.2">
+        <doc xml:whitespace="preserve">Forcibly updates the state of the @device using a #ClutterEvent
+for integration with embedding toolkits, like clutter-gtk
+Embedding toolkits that disable the event collection inside Clutter
+need to use this function to update the state of input devices depending
+on a #ClutterEvent that they are going to submit to the event handling code
+in Clutter though clutter_do_event(). Since the input devices hold the state
+that is going to be used to fill in fields like the #ClutterButtonEvent
+click count, or to emit synthesized events like %CLUTTER_ENTER and
+%CLUTTER_LEAVE, it is necessary for embedding toolkits to also be
+responsible of updating the input device state.
+For instance, this might be the code to translate an embedding toolkit
+native motion notification into a Clutter #ClutterMotionEvent and ask
+Clutter to process it:
+|[
+ClutterEvent c_event;
+translate_native_event_to_clutter (native_event, &amp;amp;c_event);
+clutter_do_event (&amp;amp;c_event);
+]|
+Before letting clutter_do_event() process the event, it is necessary to call
+clutter_input_device_update_from_event():
+|[
+ClutterEvent c_event;
+ClutterDeviceManager *manager;
+ClutterInputDevice *device;
+translate_native_event_to_clutter (native_event, &amp;amp;c_event);
+/&amp;ast; get the device manager &amp;ast;/
+manager = clutter_device_manager_get_default ();
+/&amp;ast; use the default Core Pointer that Clutter
+&amp;ast; backends register by default
+&amp;ast;/
+device = clutter_device_manager_get_core_device (manager, %CLUTTER_POINTER_DEVICE);
+/&amp;ast; update the state of the input device &amp;ast;/
+clutter_input_device_update_from_event (device, &amp;amp;c_event, FALSE);
+clutter_do_event (&amp;amp;c_event);
+]|
+The @update_stage boolean argument should be used when the input device
+enters and leaves a #ClutterStage; it will use the #ClutterStage field
+of the passed @event to update the stage associated to the input device.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="event" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #ClutterEvent</doc>
+            <type name="Event" c:type="ClutterEvent*"/>
+          </parameter>
+          <parameter name="update_stage" transfer-ownership="none">
+            <doc xml:whitespace="preserve">whether to update the #ClutterStage of the @device using the stage of the event</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <property name="device-type"
+                version="1.2"
+                writable="1"
+                construct-only="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">The type of the device</doc>
+        <type name="InputDeviceType"/>
+      </property>
+      <property name="id"
+                version="1.2"
+                writable="1"
+                construct-only="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">The unique identifier of the device</doc>
+        <type name="gint"/>
+      </property>
+      <property name="name"
+                version="1.2"
+                writable="1"
+                construct-only="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">The name of the device</doc>
+        <type name="utf8"/>
+      </property>
+    </class>
+    <record name="InputDeviceClass"
+            c:type="ClutterInputDeviceClass"
+            glib:is-gtype-struct-for="InputDevice"
+            version="1.2">
+      <doc xml:whitespace="preserve">The #ClutterInputDeviceClass structure contains only private
+data and should not be accessed directly</doc>
+      <field name="parent_class">
+        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
+      </field>
+    </record>
+    <enumeration name="InputDeviceType"
+                 version="1.0"
+                 glib:type-name="ClutterInputDeviceType"
+                 glib:get-type="clutter_input_device_type_get_type"
+                 c:type="ClutterInputDeviceType">
+      <doc xml:whitespace="preserve">The types of input devices available.
+The #ClutterInputDeviceType enumeration can be extended at later
+date; not every platform supports every input device type.</doc>
+      <member name="pointer_device"
+              value="0"
+              c:identifier="CLUTTER_POINTER_DEVICE"
+              glib:nick="pointer-device"/>
+      <member name="keyboard_device"
+              value="1"
+              c:identifier="CLUTTER_KEYBOARD_DEVICE"
+              glib:nick="keyboard-device"/>
+      <member name="extension_device"
+              value="2"
+              c:identifier="CLUTTER_EXTENSION_DEVICE"
+              glib:nick="extension-device"/>
+      <member name="n_device_types"
+              value="3"
+              c:identifier="CLUTTER_N_DEVICE_TYPES"
+              glib:nick="n-device-types"/>
+    </enumeration>
+    <constant name="Insert" value="65379">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <enumeration name="Interpolation"
+                 version="1.2"
+                 glib:type-name="ClutterInterpolation"
+                 glib:get-type="clutter_interpolation_get_type"
+                 c:type="ClutterInterpolation">
+      <doc xml:whitespace="preserve">The mode of interpolation between key frames</doc>
+      <member name="linear"
+              value="0"
+              c:identifier="CLUTTER_INTERPOLATION_LINEAR"
+              glib:nick="linear"/>
+      <member name="cubic"
+              value="1"
+              c:identifier="CLUTTER_INTERPOLATION_CUBIC"
+              glib:nick="cubic"/>
+    </enumeration>
+    <class name="Interval"
+           c:symbol-prefix="interval"
+           c:type="ClutterInterval"
+           version="1.0"
+           parent="GObject.InitiallyUnowned"
+           glib:type-name="ClutterInterval"
+           glib:get-type="clutter_interval_get_type"
+           glib:type-struct="IntervalClass">
+      <doc xml:whitespace="preserve">The #ClutterInterval structure contains only private data and should
+be accessed using the provided functions.</doc>
+      <constructor name="new"
+                   c:identifier="clutter_interval_new"
+                   version="1.0"
+                   introspectable="0">
+        <doc xml:whitespace="preserve">Creates a new #ClutterInterval holding values of type @gtype.
+This function avoids using a #GValue for the initial and final values
+of the interval:
+|[
+interval = clutter_interval_new (G_TYPE_FLOAT, 0.0, 1.0);
+interval = clutter_interval_new (G_TYPE_BOOLEAN, FALSE, TRUE);
+interval = clutter_interval_new (G_TYPE_INT, 0, 360);
+]|</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the newly created #ClutterInterval</doc>
+          <type name="Interval" c:type="ClutterInterval*"/>
+        </return-value>
+        <parameters>
+          <parameter name="gtype" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the type of the values in the interval</doc>
+            <type name="GType" c:type="GType"/>
+          </parameter>
+          <parameter transfer-ownership="none">
+            <varargs>
+            </varargs>
+          </parameter>
+        </parameters>
+      </constructor>
+      <constructor name="new_with_values"
+                   c:identifier="clutter_interval_new_with_values"
+                   version="1.0">
+        <doc xml:whitespace="preserve">Creates a new #ClutterInterval of type @gtype, between @initial
+and @final.
+This function is useful for language bindings.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the newly created #ClutterInterval</doc>
+          <type name="Interval" c:type="ClutterInterval*"/>
+        </return-value>
+        <parameters>
+          <parameter name="gtype" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the type of the values in the interval</doc>
+            <type name="GType" c:type="GType"/>
+          </parameter>
+          <parameter name="initial" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GValue holding the initial value of the interval</doc>
+            <type name="GObject.Value" c:type="GValue*"/>
+          </parameter>
+          <parameter name="final" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GValue holding the final value of the interval</doc>
+            <type name="GObject.Value" c:type="GValue*"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <function name="register_progress_func"
+                c:identifier="clutter_interval_register_progress_func"
+                version="1.0"
+                introspectable="0">
+        <doc xml:whitespace="preserve">Sets the progress function for a given @value_type, like:
+|[
+clutter_interval_register_progress_func (MY_TYPE_FOO,
+my_foo_progress);
+]|
+Whenever a #ClutterInterval instance using the default
+#ClutterInterval::compute_value implementation is set as an
+interval between two #GValue of type @value_type, it will call
+for instance:
+|[
+static gboolean
+my_int_progress (const GValue *a,
+const GValue *b,
+gdouble       progress,
+GValue       *retval)
+{
+gint ia = g_value_get_int (a);
+gint ib = g_value_get_int (b);
+gint res = factor * (ib - ia) + ia;
+g_value_set_int (retval, res);
+return TRUE;
+}
+clutter_interval_register_progress_func (G_TYPE_INT, my_int_progress);
+]|
+To unset a previously set progress function of a #GType, pass %NULL
+for @func.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="value_type" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GType</doc>
+            <type name="GType" c:type="GType"/>
+          </parameter>
+          <parameter name="func" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #ClutterProgressFunc, or %NULL to unset a previously set progress function</doc>
+            <type name="ProgressFunc" c:type="ClutterProgressFunc"/>
+          </parameter>
+        </parameters>
+      </function>
+      <virtual-method name="compute_value"
+                      invoker="compute_value"
+                      version="1.0">
+        <doc xml:whitespace="preserve">Computes the value between the @interval boundaries given the
+progress @factor and copies it into @value.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if the operation was successful</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="factor" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the progress factor, between 0 and 1</doc>
+            <type name="gdouble" c:type="gdouble"/>
+          </parameter>
+          <parameter name="value"
+                     direction="out"
+                     caller-allocates="1"
+                     transfer-ownership="none">
+            <doc xml:whitespace="preserve">return location for an initialized #GValue</doc>
+            <type name="GObject.Value" c:type="GValue*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="validate" invoker="validate" version="1.0">
+        <doc xml:whitespace="preserve">Validates the initial and final values of @interval against
+a #GParamSpec.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if the #ClutterInterval is valid, %FALSE otherwise</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="pspec" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GParamSpec</doc>
+            <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <method name="clone" c:identifier="clutter_interval_clone" version="1.0">
+        <doc xml:whitespace="preserve">Creates a copy of @interval.</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">the newly created #ClutterInterval</doc>
+          <type name="Interval" c:type="ClutterInterval*"/>
+        </return-value>
+      </method>
+      <method name="compute"
+              c:identifier="clutter_interval_compute"
+              version="1.4">
+        <doc xml:whitespace="preserve">Computes the value between the @interval boundaries given the
+progress @factor
+Unlike clutter_interval_compute_value(), this function will
+return a const pointer to the computed value
+You should use this function if you immediately pass the computed
+value to another function that makes a copy of it, like
+g_object_set_property()
+or %NULL if the computation was not successfull</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">a pointer to the computed value,</doc>
+          <type name="GObject.Value" c:type="GValue*"/>
+        </return-value>
+        <parameters>
+          <parameter name="factor" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the progress factor, between 0 and 1</doc>
+            <type name="gdouble" c:type="gdouble"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="compute_value"
+              c:identifier="clutter_interval_compute_value"
+              version="1.0">
+        <doc xml:whitespace="preserve">Computes the value between the @interval boundaries given the
+progress @factor and copies it into @value.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if the operation was successful</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="factor" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the progress factor, between 0 and 1</doc>
+            <type name="gdouble" c:type="gdouble"/>
+          </parameter>
+          <parameter name="value"
+                     direction="out"
+                     caller-allocates="1"
+                     transfer-ownership="none">
+            <doc xml:whitespace="preserve">return location for an initialized #GValue</doc>
+            <type name="GObject.Value" c:type="GValue*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_final_value"
+              c:identifier="clutter_interval_get_final_value"
+              version="1.0">
+        <doc xml:whitespace="preserve">Retrieves the final value of @interval and copies
+it into @value.
+The passed #GValue must be initialized to the value held by
+the #ClutterInterval.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="value"
+                     direction="out"
+                     caller-allocates="1"
+                     transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GValue</doc>
+            <type name="GObject.Value" c:type="GValue*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_initial_value"
+              c:identifier="clutter_interval_get_initial_value"
+              version="1.0">
+        <doc xml:whitespace="preserve">Retrieves the initial value of @interval and copies
+it into @value.
+The passed #GValue must be initialized to the value held by
+the #ClutterInterval.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="value"
+                     direction="out"
+                     caller-allocates="1"
+                     transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GValue</doc>
+            <type name="GObject.Value" c:type="GValue*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_interval"
+              c:identifier="clutter_interval_get_interval"
+              version="1.0"
+              introspectable="0">
+        <doc xml:whitespace="preserve">Variable arguments wrapper for clutter_interval_get_initial_value()
+and clutter_interval_get_final_value() that avoids using the
+#GValue arguments:
+|[
+gint a = 0, b = 0;
+clutter_interval_get_interval (interval, &amp;a, &amp;b);
+]|
+This function is meant for the convenience of the C API; bindings
+should reimplement this function using the #GValue-based API.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter transfer-ownership="none">
+            <varargs>
+            </varargs>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_value_type"
+              c:identifier="clutter_interval_get_value_type"
+              version="1.0">
+        <doc xml:whitespace="preserve">Retrieves the #GType of the values inside @interval.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the type of the value, or G_TYPE_INVALID</doc>
+          <type name="GType" c:type="GType"/>
+        </return-value>
+      </method>
+      <method name="peek_final_value"
+              c:identifier="clutter_interval_peek_final_value"
+              version="1.0">
+        <doc xml:whitespace="preserve">Gets the pointer to the final value of @interval
+The value is owned by the #ClutterInterval and it should not be
+modified or freed</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the final value of the interval.</doc>
+          <type name="GObject.Value" c:type="GValue*"/>
+        </return-value>
+      </method>
+      <method name="peek_initial_value"
+              c:identifier="clutter_interval_peek_initial_value"
+              version="1.0">
+        <doc xml:whitespace="preserve">Gets the pointer to the initial value of @interval
+The value is owned by the #ClutterInterval and it should not be
+modified or freed</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the initial value of the interval.</doc>
+          <type name="GObject.Value" c:type="GValue*"/>
+        </return-value>
+      </method>
+      <method name="set_final_value"
+              c:identifier="clutter_interval_set_final_value"
+              version="1.0">
+        <doc xml:whitespace="preserve">Sets the final value of @interval to @value. The value is
+copied inside the #ClutterInterval.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="value" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GValue</doc>
+            <type name="GObject.Value" c:type="GValue*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_initial_value"
+              c:identifier="clutter_interval_set_initial_value"
+              version="1.0">
+        <doc xml:whitespace="preserve">Sets the initial value of @interval to @value. The value is copied
+inside the #ClutterInterval.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="value" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GValue</doc>
+            <type name="GObject.Value" c:type="GValue*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_interval"
+              c:identifier="clutter_interval_set_interval"
+              version="1.0"
+              introspectable="0">
+        <doc xml:whitespace="preserve">Variable arguments wrapper for clutter_interval_set_initial_value()
+and clutter_interval_set_final_value() that avoids using the
+#GValue arguments:
+|[
+clutter_interval_set_interval (interval, 0, 50);
+clutter_interval_set_interval (interval, 1.0, 0.0);
+clutter_interval_set_interval (interval, FALSE, TRUE);
+]|
+This function is meant for the convenience of the C API; bindings
+should reimplement this function using the #GValue-based API.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter transfer-ownership="none">
+            <varargs>
+            </varargs>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="validate"
+              c:identifier="clutter_interval_validate"
+              version="1.0">
+        <doc xml:whitespace="preserve">Validates the initial and final values of @interval against
+a #GParamSpec.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if the #ClutterInterval is valid, %FALSE otherwise</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="pspec" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GParamSpec</doc>
+            <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <property name="value-type"
+                version="1.0"
+                writable="1"
+                construct-only="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">The type of the values in the interval.</doc>
+        <type name="GType"/>
+      </property>
+      <field name="parent_instance">
+        <type name="GObject.InitiallyUnowned" c:type="GInitiallyUnowned"/>
+      </field>
+      <field name="priv">
+        <type name="IntervalPrivate" c:type="ClutterIntervalPrivate*"/>
+      </field>
+    </class>
+    <record name="IntervalClass"
+            c:type="ClutterIntervalClass"
+            glib:is-gtype-struct-for="Interval"
+            version="1.0">
+      <doc xml:whitespace="preserve">The #ClutterIntervalClass contains only private data.</doc>
+      <field name="parent_class">
+        <type name="GObject.InitiallyUnownedClass"
+              c:type="GInitiallyUnownedClass"/>
+      </field>
+      <field name="validate">
+        <callback name="validate">
+          <return-value transfer-ownership="none">
+            <doc xml:whitespace="preserve">%TRUE if the #ClutterInterval is valid, %FALSE otherwise</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="interval" transfer-ownership="none">
+              <type name="Interval" c:type="ClutterInterval*"/>
+            </parameter>
+            <parameter name="pspec" transfer-ownership="none">
+              <doc xml:whitespace="preserve">a #GParamSpec</doc>
+              <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="compute_value">
+        <callback name="compute_value">
+          <return-value transfer-ownership="none">
+            <doc xml:whitespace="preserve">%TRUE if the operation was successful</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="interval" transfer-ownership="none">
+              <type name="Interval" c:type="ClutterInterval*"/>
+            </parameter>
+            <parameter name="factor" transfer-ownership="none">
+              <doc xml:whitespace="preserve">the progress factor, between 0 and 1</doc>
+              <type name="gdouble" c:type="gdouble"/>
+            </parameter>
+            <parameter name="value"
+                       direction="out"
+                       caller-allocates="1"
+                       transfer-ownership="none">
+              <doc xml:whitespace="preserve">return location for an initialized #GValue</doc>
+              <type name="GObject.Value" c:type="GValue*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="_clutter_reserved1" introspectable="0">
+        <callback name="_clutter_reserved1">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_reserved2" introspectable="0">
+        <callback name="_clutter_reserved2">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_reserved3" introspectable="0">
+        <callback name="_clutter_reserved3">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_reserved4" introspectable="0">
+        <callback name="_clutter_reserved4">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_reserved5" introspectable="0">
+        <callback name="_clutter_reserved5">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_reserved6" introspectable="0">
+        <callback name="_clutter_reserved6">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+    </record>
+    <record name="IntervalPrivate"
+            c:type="ClutterIntervalPrivate"
+            disguised="1">
+    </record>
+    <constant name="Iogonek" value="967">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Itilde" value="933">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="J" value="74">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Jcircumflex" value="684">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="K" value="75">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_0" value="48">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_1" value="49">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_2" value="50">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_3" value="51">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_3270_AltCursor" value="64784">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_3270_Attn" value="64782">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_3270_BackTab" value="64773">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_3270_ChangeScreen" value="64793">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_3270_Copy" value="64789">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_3270_CursorBlink" value="64783">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_3270_CursorSelect" value="64796">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_3270_DeleteWord" value="64794">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_3270_Duplicate" value="64769">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_3270_Enter" value="64798">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_3270_EraseEOF" value="64774">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_3270_EraseInput" value="64775">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_3270_ExSelect" value="64795">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_3270_FieldMark" value="64770">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_3270_Ident" value="64787">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_3270_Jump" value="64786">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_3270_KeyClick" value="64785">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_3270_Left2" value="64772">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_3270_PA1" value="64778">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_3270_PA2" value="64779">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_3270_PA3" value="64780">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_3270_Play" value="64790">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_3270_PrintScreen" value="64797">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_3270_Quit" value="64777">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_3270_Record" value="64792">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_3270_Reset" value="64776">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_3270_Right2" value="64771">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_3270_Rule" value="64788">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_3270_Setup" value="64791">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_3270_Test" value="64781">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_4" value="52">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_5" value="53">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_6" value="54">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_7" value="55">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_8" value="56">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_9" value="57">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_A" value="65">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_AE" value="198">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Aacute" value="193">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Abelowdot" value="16785056">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Abreve" value="451">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Abreveacute" value="16785070">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Abrevebelowdot" value="16785078">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Abrevegrave" value="16785072">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Abrevehook" value="16785074">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Abrevetilde" value="16785076">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_AccessX_Enable" value="65136">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_AccessX_Feedback_Enable" value="65137">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Acircumflex" value="194">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Acircumflexacute" value="16785060">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Acircumflexbelowdot" value="16785068">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Acircumflexgrave" value="16785062">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Acircumflexhook" value="16785064">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Acircumflextilde" value="16785066">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_AddFavorite" value="269025081">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Adiaeresis" value="196">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Agrave" value="192">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ahook" value="16785058">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Alt_L" value="65513">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Alt_R" value="65514">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Amacron" value="960">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Aogonek" value="417">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ApplicationLeft" value="269025104">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ApplicationRight" value="269025105">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_0" value="16778848">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_1" value="16778849">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_2" value="16778850">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_3" value="16778851">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_4" value="16778852">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_5" value="16778853">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_6" value="16778854">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_7" value="16778855">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_8" value="16778856">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_9" value="16778857">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_ain" value="1497">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_alef" value="1479">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_alefmaksura" value="1513">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_beh" value="1480">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_comma" value="1452">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_dad" value="1494">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_dal" value="1487">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_damma" value="1519">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_dammatan" value="1516">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_ddal" value="16778888">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_farsi_yeh" value="16778956">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_fatha" value="1518">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_fathatan" value="1515">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_feh" value="1505">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_fullstop" value="16778964">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_gaf" value="16778927">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_ghain" value="1498">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_ha" value="1511">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_hah" value="1485">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_hamza" value="1473">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_hamza_above" value="16778836">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_hamza_below" value="16778837">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_hamzaonalef" value="1475">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_hamzaonwaw" value="1476">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_hamzaonyeh" value="1478">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_hamzaunderalef" value="1477">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_heh" value="1511">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_heh_doachashmee" value="16778942">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_heh_goal" value="16778945">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_jeem" value="1484">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_jeh" value="16778904">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_kaf" value="1507">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_kasra" value="1520">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_kasratan" value="1517">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_keheh" value="16778921">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_khah" value="1486">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_lam" value="1508">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_madda_above" value="16778835">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_maddaonalef" value="1474">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_meem" value="1509">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_noon" value="1510">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_noon_ghunna" value="16778938">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_peh" value="16778878">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_percent" value="16778858">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_qaf" value="1506">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_question_mark" value="1471">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_ra" value="1489">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_rreh" value="16778897">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_sad" value="1493">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_seen" value="1491">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_semicolon" value="1467">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_shadda" value="1521">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_sheen" value="1492">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_sukun" value="1522">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_superscript_alef" value="16778864">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_switch" value="65406">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_tah" value="1495">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_tatweel" value="1504">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_tcheh" value="16778886">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_teh" value="1482">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_tehmarbuta" value="1481">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_thal" value="1488">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_theh" value="1483">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_tteh" value="16778873">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_veh" value="16778916">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_waw" value="1512">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_yeh" value="1514">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_yeh_baree" value="16778962">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_zah" value="1496">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_zain" value="1490">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Aring" value="197">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_AT" value="16778552">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_AYB" value="16778545">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_BEN" value="16778546">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_CHA" value="16778569">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_DA" value="16778548">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_DZA" value="16778561">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_E" value="16778551">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_FE" value="16778582">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_GHAT" value="16778562">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_GIM" value="16778547">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_HI" value="16778565">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_HO" value="16778560">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_INI" value="16778555">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_JE" value="16778571">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_KE" value="16778580">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_KEN" value="16778559">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_KHE" value="16778557">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_LYUN" value="16778556">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_MEN" value="16778564">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_NU" value="16778566">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_O" value="16778581">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_PE" value="16778570">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_PYUR" value="16778579">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_RA" value="16778572">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_RE" value="16778576">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_SE" value="16778573">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_SHA" value="16778567">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_TCHE" value="16778563">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_TO" value="16778553">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_TSA" value="16778558">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_TSO" value="16778577">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_TYUN" value="16778575">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_VEV" value="16778574">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_VO" value="16778568">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_VYUN" value="16778578">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_YECH" value="16778549">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_ZA" value="16778550">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_ZHE" value="16778554">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_accent" value="16778587">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_amanak" value="16778588">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_apostrophe" value="16778586">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_at" value="16778600">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_ayb" value="16778593">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_ben" value="16778594">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_but" value="16778589">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_cha" value="16778617">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_da" value="16778596">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_dza" value="16778609">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_e" value="16778599">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_exclam" value="16778588">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_fe" value="16778630">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_full_stop" value="16778633">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_ghat" value="16778610">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_gim" value="16778595">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_hi" value="16778613">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_ho" value="16778608">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_hyphen" value="16778634">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_ini" value="16778603">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_je" value="16778619">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_ke" value="16778628">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_ken" value="16778607">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_khe" value="16778605">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_ligature_ew" value="16778631">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_lyun" value="16778604">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_men" value="16778612">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_nu" value="16778614">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_o" value="16778629">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_paruyk" value="16778590">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_pe" value="16778618">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_pyur" value="16778627">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_question" value="16778590">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_ra" value="16778620">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_re" value="16778624">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_se" value="16778621">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_separation_mark" value="16778589">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_sha" value="16778615">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_shesht" value="16778587">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_tche" value="16778611">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_to" value="16778601">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_tsa" value="16778606">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_tso" value="16778625">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_tyun" value="16778623">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_verjaket" value="16778633">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_vev" value="16778622">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_vo" value="16778616">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_vyun" value="16778626">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_yech" value="16778597">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_yentamna" value="16778634">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_za" value="16778598">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_zhe" value="16778602">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Atilde" value="195">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_AudibleBell_Enable" value="65146">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_AudioCycleTrack" value="269025179">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_AudioForward" value="269025175">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_AudioLowerVolume" value="269025041">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_AudioMedia" value="269025074">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_AudioMute" value="269025042">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_AudioNext" value="269025047">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_AudioPause" value="269025073">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_AudioPlay" value="269025044">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_AudioPrev" value="269025046">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_AudioRaiseVolume" value="269025043">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_AudioRandomPlay" value="269025177">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_AudioRecord" value="269025052">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_AudioRepeat" value="269025176">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_AudioRewind" value="269025086">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_AudioStop" value="269025045">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Away" value="269025165">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_B" value="66">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Babovedot" value="16784898">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Back" value="269025062">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_BackForward" value="269025087">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_BackSpace" value="65288">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Battery" value="269025171">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Begin" value="65368">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Blue" value="269025190">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Bluetooth" value="269025172">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Book" value="269025106">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_BounceKeys_Enable" value="65140">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Break" value="65387">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_BrightnessAdjust" value="269025083">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Byelorussian_SHORTU" value="1726">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Byelorussian_shortu" value="1710">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_C" value="67">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_CD" value="269025107">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cabovedot" value="709">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cacute" value="454">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Calculator" value="269025053">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Calendar" value="269025056">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cancel" value="65385">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Caps_Lock" value="65509">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ccaron" value="456">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ccedilla" value="199">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ccircumflex" value="710">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Clear" value="65291">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ClearGrab" value="269024801">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Close" value="269025110">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Codeinput" value="65335">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ColonSign" value="16785569">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Community" value="269025085">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ContrastAdjust" value="269025058">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Control_L" value="65507">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Control_R" value="65508">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Copy" value="269025111">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_CruzeiroSign" value="16785570">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cut" value="269025112">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_CycleAngle" value="269025180">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_A" value="1761">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_BE" value="1762">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_CHE" value="1790">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_CHE_descender" value="16778422">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_CHE_vertstroke" value="16778424">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_DE" value="1764">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_DZHE" value="1727">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_E" value="1788">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_EF" value="1766">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_EL" value="1772">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_EM" value="1773">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_EN" value="1774">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_EN_descender" value="16778402">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_ER" value="1778">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_ES" value="1779">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_GHE" value="1767">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_GHE_bar" value="16778386">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_HA" value="1768">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_HARDSIGN" value="1791">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_HA_descender" value="16778418">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_I" value="1769">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_IE" value="1765">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_IO" value="1715">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_I_macron" value="16778466">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_JE" value="1720">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_KA" value="1771">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_KA_descender" value="16778394">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_KA_vertstroke" value="16778396">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_LJE" value="1721">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_NJE" value="1722">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_O" value="1775">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_O_bar" value="16778472">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_PE" value="1776">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_SCHWA" value="16778456">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_SHA" value="1787">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_SHCHA" value="1789">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_SHHA" value="16778426">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_SHORTI" value="1770">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_SOFTSIGN" value="1784">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_TE" value="1780">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_TSE" value="1763">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_U" value="1781">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_U_macron" value="16778478">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_U_straight" value="16778414">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_U_straight_bar" value="16778416">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_VE" value="1783">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_YA" value="1777">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_YERU" value="1785">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_YU" value="1760">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_ZE" value="1786">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_ZHE" value="1782">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_ZHE_descender" value="16778390">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_a" value="1729">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_be" value="1730">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_che" value="1758">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_che_descender" value="16778423">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_che_vertstroke" value="16778425">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_de" value="1732">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_dzhe" value="1711">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_e" value="1756">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_ef" value="1734">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_el" value="1740">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_em" value="1741">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_en" value="1742">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_en_descender" value="16778403">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_er" value="1746">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_es" value="1747">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_ghe" value="1735">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_ghe_bar" value="16778387">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_ha" value="1736">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_ha_descender" value="16778419">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_hardsign" value="1759">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_i" value="1737">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_i_macron" value="16778467">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_ie" value="1733">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_io" value="1699">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_je" value="1704">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_ka" value="1739">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_ka_descender" value="16778395">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_ka_vertstroke" value="16778397">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_lje" value="1705">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_nje" value="1706">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_o" value="1743">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_o_bar" value="16778473">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_pe" value="1744">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_schwa" value="16778457">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_sha" value="1755">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_shcha" value="1757">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_shha" value="16778427">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_shorti" value="1738">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_softsign" value="1752">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_te" value="1748">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_tse" value="1731">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_u" value="1749">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_u_macron" value="16778479">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_u_straight" value="16778415">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_u_straight_bar" value="16778417">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_ve" value="1751">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_ya" value="1745">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_yeru" value="1753">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_yu" value="1728">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_ze" value="1754">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_zhe" value="1750">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_zhe_descender" value="16778391">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_D" value="68">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_DOS" value="269025114">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Dabovedot" value="16784906">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Dcaron" value="463">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Delete" value="65535">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Display" value="269025113">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Documents" value="269025115">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_DongSign" value="16785579">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Down" value="65364">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Dstroke" value="464">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_E" value="69">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ENG" value="957">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ETH" value="208">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Eabovedot" value="972">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Eacute" value="201">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ebelowdot" value="16785080">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ecaron" value="460">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ecircumflex" value="202">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ecircumflexacute" value="16785086">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ecircumflexbelowdot" value="16785094">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ecircumflexgrave" value="16785088">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ecircumflexhook" value="16785090">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ecircumflextilde" value="16785092">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_EcuSign" value="16785568">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ediaeresis" value="203">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Egrave" value="200">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ehook" value="16785082">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Eisu_Shift" value="65327">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Eisu_toggle" value="65328">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Eject" value="269025068">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Emacron" value="938">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_End" value="65367">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Eogonek" value="458">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Escape" value="65307">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Eth" value="208">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Etilde" value="16785084">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_EuroSign" value="8364">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Excel" value="269025116">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Execute" value="65378">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Explorer" value="269025117">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_F" value="70">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_F1" value="65470">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_F10" value="65479">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_F11" value="65480">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_F12" value="65481">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_F13" value="65482">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_F14" value="65483">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_F15" value="65484">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_F16" value="65485">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_F17" value="65486">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_F18" value="65487">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_F19" value="65488">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_F2" value="65471">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_F20" value="65489">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_F21" value="65490">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_F22" value="65491">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_F23" value="65492">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_F24" value="65493">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_F25" value="65494">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_F26" value="65495">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_F27" value="65496">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_F28" value="65497">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_F29" value="65498">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_F3" value="65472">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_F30" value="65499">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_F31" value="65500">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_F32" value="65501">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_F33" value="65502">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_F34" value="65503">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_F35" value="65504">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_F4" value="65473">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_F5" value="65474">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_F6" value="65475">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_F7" value="65476">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_F8" value="65477">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_F9" value="65478">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_FFrancSign" value="16785571">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Fabovedot" value="16784926">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Farsi_0" value="16778992">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Farsi_1" value="16778993">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Farsi_2" value="16778994">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Farsi_3" value="16778995">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Farsi_4" value="16778996">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Farsi_5" value="16778997">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Farsi_6" value="16778998">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Farsi_7" value="16778999">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Farsi_8" value="16779000">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Farsi_9" value="16779001">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Farsi_yeh" value="16778956">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Favorites" value="269025072">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Finance" value="269025084">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Find" value="65384">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_First_Virtual_Screen" value="65232">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Forward" value="269025063">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_FrameBack" value="269025181">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_FrameForward" value="269025182">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_G" value="71">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Gabovedot" value="725">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Game" value="269025118">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Gbreve" value="683">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Gcaron" value="16777702">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Gcedilla" value="939">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Gcircumflex" value="728">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Georgian_an" value="16781520">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Georgian_ban" value="16781521">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Georgian_can" value="16781546">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Georgian_char" value="16781549">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Georgian_chin" value="16781545">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Georgian_cil" value="16781548">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Georgian_don" value="16781523">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Georgian_en" value="16781524">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Georgian_fi" value="16781558">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Georgian_gan" value="16781522">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Georgian_ghan" value="16781542">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Georgian_hae" value="16781552">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Georgian_har" value="16781556">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Georgian_he" value="16781553">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Georgian_hie" value="16781554">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Georgian_hoe" value="16781557">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Georgian_in" value="16781528">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Georgian_jhan" value="16781551">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Georgian_jil" value="16781547">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Georgian_kan" value="16781529">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Georgian_khar" value="16781541">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Georgian_las" value="16781530">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Georgian_man" value="16781531">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Georgian_nar" value="16781532">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Georgian_on" value="16781533">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Georgian_par" value="16781534">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Georgian_phar" value="16781540">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Georgian_qar" value="16781543">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Georgian_rae" value="16781536">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Georgian_san" value="16781537">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Georgian_shin" value="16781544">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Georgian_tan" value="16781527">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Georgian_tar" value="16781538">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Georgian_un" value="16781539">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Georgian_vin" value="16781525">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Georgian_we" value="16781555">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Georgian_xan" value="16781550">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Georgian_zen" value="16781526">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Georgian_zhar" value="16781535">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Go" value="269025119">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_ALPHA" value="1985">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_ALPHAaccent" value="1953">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_BETA" value="1986">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_CHI" value="2007">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_DELTA" value="1988">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_EPSILON" value="1989">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_EPSILONaccent" value="1954">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_ETA" value="1991">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_ETAaccent" value="1955">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_GAMMA" value="1987">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_IOTA" value="1993">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_IOTAaccent" value="1956">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_IOTAdiaeresis" value="1957">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_IOTAdieresis" value="1957">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_KAPPA" value="1994">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_LAMBDA" value="1995">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_LAMDA" value="1995">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_MU" value="1996">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_NU" value="1997">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_OMEGA" value="2009">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_OMEGAaccent" value="1963">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_OMICRON" value="1999">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_OMICRONaccent" value="1959">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_PHI" value="2006">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_PI" value="2000">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_PSI" value="2008">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_RHO" value="2001">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_SIGMA" value="2002">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_TAU" value="2004">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_THETA" value="1992">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_UPSILON" value="2005">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_UPSILONaccent" value="1960">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_UPSILONdieresis" value="1961">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_XI" value="1998">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_ZETA" value="1990">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_accentdieresis" value="1966">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_alpha" value="2017">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_alphaaccent" value="1969">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_beta" value="2018">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_chi" value="2039">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_delta" value="2020">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_epsilon" value="2021">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_epsilonaccent" value="1970">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_eta" value="2023">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_etaaccent" value="1971">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_finalsmallsigma" value="2035">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_gamma" value="2019">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_horizbar" value="1967">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_iota" value="2025">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_iotaaccent" value="1972">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_iotaaccentdieresis" value="1974">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_iotadieresis" value="1973">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_kappa" value="2026">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_lambda" value="2027">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_lamda" value="2027">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_mu" value="2028">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_nu" value="2029">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_omega" value="2041">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_omegaaccent" value="1979">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_omicron" value="2031">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_omicronaccent" value="1975">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_phi" value="2038">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_pi" value="2032">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_psi" value="2040">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_rho" value="2033">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_sigma" value="2034">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_switch" value="65406">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_tau" value="2036">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_theta" value="2024">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_upsilon" value="2037">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_upsilonaccent" value="1976">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_upsilonaccentdieresis" value="1978">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_upsilondieresis" value="1977">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_xi" value="2030">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_zeta" value="2022">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Green" value="269025188">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_H" value="72">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul" value="65329">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_A" value="3775">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_AE" value="3776">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_AraeA" value="3830">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_AraeAE" value="3831">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_Banja" value="65337">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_Cieuc" value="3770">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_Codeinput" value="65335">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_Dikeud" value="3751">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_E" value="3780">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_EO" value="3779">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_EU" value="3793">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_End" value="65331">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_Hanja" value="65332">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_Hieuh" value="3774">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_I" value="3795">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_Ieung" value="3767">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_J_Cieuc" value="3818">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_J_Dikeud" value="3802">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_J_Hieuh" value="3822">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_J_Ieung" value="3816">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_J_Jieuj" value="3817">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_J_Khieuq" value="3819">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_J_Kiyeog" value="3796">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_J_KiyeogSios" value="3798">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_J_KkogjiDalrinIeung" value="3833">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_J_Mieum" value="3811">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_J_Nieun" value="3799">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_J_NieunHieuh" value="3801">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_J_NieunJieuj" value="3800">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_J_PanSios" value="3832">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_J_Phieuf" value="3821">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_J_Pieub" value="3812">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_J_PieubSios" value="3813">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_J_Rieul" value="3803">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_J_RieulHieuh" value="3810">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_J_RieulKiyeog" value="3804">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_J_RieulMieum" value="3805">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_J_RieulPhieuf" value="3809">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_J_RieulPieub" value="3806">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_J_RieulSios" value="3807">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_J_RieulTieut" value="3808">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_J_Sios" value="3814">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_J_SsangKiyeog" value="3797">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_J_SsangSios" value="3815">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_J_Tieut" value="3820">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_J_YeorinHieuh" value="3834">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_Jamo" value="65333">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_Jeonja" value="65336">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_Jieuj" value="3768">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_Khieuq" value="3771">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_Kiyeog" value="3745">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_KiyeogSios" value="3747">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_KkogjiDalrinIeung" value="3827">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_Mieum" value="3761">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_MultipleCandidate" value="65341">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_Nieun" value="3748">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_NieunHieuh" value="3750">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_NieunJieuj" value="3749">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_O" value="3783">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_OE" value="3786">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_PanSios" value="3826">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_Phieuf" value="3773">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_Pieub" value="3762">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_PieubSios" value="3764">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_PostHanja" value="65339">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_PreHanja" value="65338">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_PreviousCandidate" value="65342">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_Rieul" value="3753">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_RieulHieuh" value="3760">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_RieulKiyeog" value="3754">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_RieulMieum" value="3755">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_RieulPhieuf" value="3759">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_RieulPieub" value="3756">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_RieulSios" value="3757">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_RieulTieut" value="3758">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_RieulYeorinHieuh" value="3823">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_Romaja" value="65334">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_SingleCandidate" value="65340">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_Sios" value="3765">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_Special" value="65343">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_SsangDikeud" value="3752">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_SsangJieuj" value="3769">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_SsangKiyeog" value="3746">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_SsangPieub" value="3763">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_SsangSios" value="3766">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_Start" value="65330">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_SunkyeongeumMieum" value="3824">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_SunkyeongeumPhieuf" value="3828">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_SunkyeongeumPieub" value="3825">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_Tieut" value="3772">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_U" value="3788">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_WA" value="3784">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_WAE" value="3785">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_WE" value="3790">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_WEO" value="3789">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_WI" value="3791">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_YA" value="3777">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_YAE" value="3778">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_YE" value="3782">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_YEO" value="3781">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_YI" value="3794">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_YO" value="3787">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_YU" value="3792">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_YeorinHieuh" value="3829">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_switch" value="65406">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hankaku" value="65321">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hcircumflex" value="678">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hebrew_switch" value="65406">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Help" value="65386">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Henkan" value="65315">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Henkan_Mode" value="65315">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hibernate" value="269025192">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hiragana" value="65317">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hiragana_Katakana" value="65319">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_History" value="269025079">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Home" value="65360">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_HomePage" value="269025048">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_HotLinks" value="269025082">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hstroke" value="673">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hyper_L" value="65517">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hyper_R" value="65518">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_I" value="73">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ISO_Center_Object" value="65075">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ISO_Continuous_Underline" value="65072">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ISO_Discontinuous_Underline" value="65073">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ISO_Emphasize" value="65074">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ISO_Enter" value="65076">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ISO_Fast_Cursor_Down" value="65071">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ISO_Fast_Cursor_Left" value="65068">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ISO_Fast_Cursor_Right" value="65069">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ISO_Fast_Cursor_Up" value="65070">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ISO_First_Group" value="65036">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ISO_First_Group_Lock" value="65037">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ISO_Group_Latch" value="65030">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ISO_Group_Lock" value="65031">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ISO_Group_Shift" value="65406">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ISO_Last_Group" value="65038">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ISO_Last_Group_Lock" value="65039">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ISO_Left_Tab" value="65056">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ISO_Level2_Latch" value="65026">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ISO_Level3_Latch" value="65028">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ISO_Level3_Lock" value="65029">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ISO_Level3_Shift" value="65027">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ISO_Level5_Latch" value="65042">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ISO_Level5_Lock" value="65043">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ISO_Level5_Shift" value="65041">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ISO_Lock" value="65025">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ISO_Move_Line_Down" value="65058">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ISO_Move_Line_Up" value="65057">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ISO_Next_Group" value="65032">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ISO_Next_Group_Lock" value="65033">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ISO_Partial_Line_Down" value="65060">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ISO_Partial_Line_Up" value="65059">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ISO_Partial_Space_Left" value="65061">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ISO_Partial_Space_Right" value="65062">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ISO_Prev_Group" value="65034">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ISO_Prev_Group_Lock" value="65035">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ISO_Release_Both_Margins" value="65067">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ISO_Release_Margin_Left" value="65065">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ISO_Release_Margin_Right" value="65066">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ISO_Set_Margin_Left" value="65063">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ISO_Set_Margin_Right" value="65064">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Iabovedot" value="681">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Iacute" value="205">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ibelowdot" value="16785098">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ibreve" value="16777516">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Icircumflex" value="206">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Idiaeresis" value="207">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Igrave" value="204">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ihook" value="16785096">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Imacron" value="975">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Insert" value="65379">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Iogonek" value="967">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Itilde" value="933">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_J" value="74">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Jcircumflex" value="684">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_K" value="75">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_KP_0" value="65456">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_KP_1" value="65457">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_KP_2" value="65458">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_KP_3" value="65459">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_KP_4" value="65460">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_KP_5" value="65461">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_KP_6" value="65462">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_KP_7" value="65463">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_KP_8" value="65464">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_KP_9" value="65465">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_KP_Add" value="65451">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_KP_Begin" value="65437">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_KP_Decimal" value="65454">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_KP_Delete" value="65439">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_KP_Divide" value="65455">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_KP_Down" value="65433">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_KP_End" value="65436">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_KP_Enter" value="65421">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_KP_Equal" value="65469">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_KP_F1" value="65425">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_KP_F2" value="65426">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_KP_F3" value="65427">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_KP_F4" value="65428">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_KP_Home" value="65429">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_KP_Insert" value="65438">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_KP_Left" value="65430">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_KP_Multiply" value="65450">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_KP_Next" value="65435">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_KP_Page_Down" value="65435">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_KP_Page_Up" value="65434">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_KP_Prior" value="65434">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_KP_Right" value="65432">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_KP_Separator" value="65452">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_KP_Space" value="65408">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_KP_Subtract" value="65453">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_KP_Tab" value="65417">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_KP_Up" value="65431">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Kana_Lock" value="65325">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Kana_Shift" value="65326">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Kanji" value="65313">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Kanji_Bangou" value="65335">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Katakana" value="65318">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_KbdBrightnessDown" value="269025030">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_KbdBrightnessUp" value="269025029">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_KbdLightOnOff" value="269025028">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Kcedilla" value="979">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Korean_Won" value="3839">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_L" value="76">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_L1" value="65480">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_L10" value="65489">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_L2" value="65481">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_L3" value="65482">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_L4" value="65483">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_L5" value="65484">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_L6" value="65485">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_L7" value="65486">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_L8" value="65487">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_L9" value="65488">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Lacute" value="453">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Last_Virtual_Screen" value="65236">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Launch0" value="269025088">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Launch1" value="269025089">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Launch2" value="269025090">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Launch3" value="269025091">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Launch4" value="269025092">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Launch5" value="269025093">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Launch6" value="269025094">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Launch7" value="269025095">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Launch8" value="269025096">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Launch9" value="269025097">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_LaunchA" value="269025098">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_LaunchB" value="269025099">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_LaunchC" value="269025100">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_LaunchD" value="269025101">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_LaunchE" value="269025102">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_LaunchF" value="269025103">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Lbelowdot" value="16784950">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Lcaron" value="421">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Lcedilla" value="934">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Left" value="65361">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_LightBulb" value="269025077">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Linefeed" value="65290">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_LiraSign" value="16785572">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_LogOff" value="269025121">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Lstroke" value="419">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_M" value="77">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Mabovedot" value="16784960">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Macedonia_DSE" value="1717">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Macedonia_GJE" value="1714">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Macedonia_KJE" value="1724">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Macedonia_dse" value="1701">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Macedonia_gje" value="1698">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Macedonia_kje" value="1708">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Mae_Koho" value="65342">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Mail" value="269025049">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_MailForward" value="269025168">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Market" value="269025122">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Massyo" value="65324">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Meeting" value="269025123">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Memo" value="269025054">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Menu" value="65383">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_MenuKB" value="269025125">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_MenuPB" value="269025126">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Messenger" value="269025166">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Meta_L" value="65511">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Meta_R" value="65512">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_MillSign" value="16785573">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ModeLock" value="269025025">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Mode_switch" value="65406">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_MonBrightnessDown" value="269025027">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_MonBrightnessUp" value="269025026">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_MouseKeys_Accel_Enable" value="65143">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_MouseKeys_Enable" value="65142">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Muhenkan" value="65314">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Multi_key" value="65312">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_MultipleCandidate" value="65341">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Music" value="269025170">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_MyComputer" value="269025075">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_MySites" value="269025127">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_N" value="78">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Nacute" value="465">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_NairaSign" value="16785574">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ncaron" value="466">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ncedilla" value="977">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_New" value="269025128">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_NewSheqelSign" value="16785578">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_News" value="269025129">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Next" value="65366">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Next_VMode" value="269024802">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Next_Virtual_Screen" value="65234">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ntilde" value="209">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Num_Lock" value="65407">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_O" value="79">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_OE" value="5052">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Oacute" value="211">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Obarred" value="16777631">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Obelowdot" value="16785100">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ocaron" value="16777681">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ocircumflex" value="212">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ocircumflexacute" value="16785104">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ocircumflexbelowdot" value="16785112">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ocircumflexgrave" value="16785106">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ocircumflexhook" value="16785108">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ocircumflextilde" value="16785110">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Odiaeresis" value="214">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Odoubleacute" value="469">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_OfficeHome" value="269025130">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ograve" value="210">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ohook" value="16785102">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ohorn" value="16777632">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ohornacute" value="16785114">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ohornbelowdot" value="16785122">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ohorngrave" value="16785116">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ohornhook" value="16785118">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ohorntilde" value="16785120">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Omacron" value="978">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ooblique" value="216">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Open" value="269025131">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_OpenURL" value="269025080">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Option" value="269025132">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Oslash" value="216">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Otilde" value="213">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Overlay1_Enable" value="65144">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Overlay2_Enable" value="65145">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_P" value="80">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Pabovedot" value="16784982">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Page_Down" value="65366">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Page_Up" value="65365">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Paste" value="269025133">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Pause" value="65299">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_PesetaSign" value="16785575">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Phone" value="269025134">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Pictures" value="269025169">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Pointer_Accelerate" value="65274">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Pointer_Button1" value="65257">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Pointer_Button2" value="65258">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Pointer_Button3" value="65259">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Pointer_Button4" value="65260">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Pointer_Button5" value="65261">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Pointer_Button_Dflt" value="65256">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Pointer_DblClick1" value="65263">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Pointer_DblClick2" value="65264">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Pointer_DblClick3" value="65265">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Pointer_DblClick4" value="65266">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Pointer_DblClick5" value="65267">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Pointer_DblClick_Dflt" value="65262">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Pointer_DfltBtnNext" value="65275">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Pointer_DfltBtnPrev" value="65276">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Pointer_Down" value="65251">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Pointer_DownLeft" value="65254">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Pointer_DownRight" value="65255">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Pointer_Drag1" value="65269">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Pointer_Drag2" value="65270">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Pointer_Drag3" value="65271">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Pointer_Drag4" value="65272">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Pointer_Drag5" value="65277">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Pointer_Drag_Dflt" value="65268">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Pointer_EnableKeys" value="65273">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Pointer_Left" value="65248">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Pointer_Right" value="65249">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Pointer_Up" value="65250">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Pointer_UpLeft" value="65252">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Pointer_UpRight" value="65253">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_PowerDown" value="269025057">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_PowerOff" value="269025066">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Prev_VMode" value="269024803">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Prev_Virtual_Screen" value="65233">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_PreviousCandidate" value="65342">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Print" value="65377">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Prior" value="65365">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Q" value="81">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_R" value="82">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_R1" value="65490">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_R10" value="65499">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_R11" value="65500">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_R12" value="65501">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_R13" value="65502">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_R14" value="65503">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_R15" value="65504">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_R2" value="65491">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_R3" value="65492">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_R4" value="65493">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_R5" value="65494">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_R6" value="65495">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_R7" value="65496">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_R8" value="65497">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_R9" value="65498">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Racute" value="448">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Rcaron" value="472">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Rcedilla" value="931">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Red" value="269025187">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Redo" value="65382">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Refresh" value="269025065">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Reload" value="269025139">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_RepeatKeys_Enable" value="65138">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Reply" value="269025138">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Return" value="65293">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Right" value="65363">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_RockerDown" value="269025060">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_RockerEnter" value="269025061">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_RockerUp" value="269025059">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Romaji" value="65316">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_RotateWindows" value="269025140">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_RotationKB" value="269025142">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_RotationPB" value="269025141">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_RupeeSign" value="16785576">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_S" value="83">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_SCHWA" value="16777615">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sabovedot" value="16784992">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sacute" value="422">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Save" value="269025143">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Scaron" value="425">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Scedilla" value="426">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Scircumflex" value="734">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ScreenSaver" value="269025069">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ScrollClick" value="269025146">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ScrollDown" value="269025145">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ScrollUp" value="269025144">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Scroll_Lock" value="65300">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Search" value="269025051">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Select" value="65376">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_SelectButton" value="269025184">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Send" value="269025147">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Serbian_DJE" value="1713">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Serbian_DZE" value="1727">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Serbian_JE" value="1720">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Serbian_LJE" value="1721">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Serbian_NJE" value="1722">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Serbian_TSHE" value="1723">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Serbian_dje" value="1697">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Serbian_dze" value="1711">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Serbian_je" value="1704">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Serbian_lje" value="1705">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Serbian_nje" value="1706">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Serbian_tshe" value="1707">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Shift_L" value="65505">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Shift_Lock" value="65510">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Shift_R" value="65506">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Shop" value="269025078">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_SingleCandidate" value="65340">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sleep" value="269025071">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_SlowKeys_Enable" value="65139">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Spell" value="269025148">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_SplitScreen" value="269025149">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Standby" value="269025040">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Start" value="269025050">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_StickyKeys_Enable" value="65141">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Stop" value="269025064">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Subtitle" value="269025178">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Super_L" value="65515">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Super_R" value="65516">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Support" value="269025150">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Suspend" value="269025191">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Switch_VT_1" value="269024769">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Switch_VT_10" value="269024778">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Switch_VT_11" value="269024779">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Switch_VT_12" value="269024780">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Switch_VT_2" value="269024770">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Switch_VT_3" value="269024771">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Switch_VT_4" value="269024772">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Switch_VT_5" value="269024773">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Switch_VT_6" value="269024774">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Switch_VT_7" value="269024775">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Switch_VT_8" value="269024776">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Switch_VT_9" value="269024777">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sys_Req" value="65301">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_T" value="84">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_THORN" value="222">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Tab" value="65289">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Tabovedot" value="16785002">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_TaskPane" value="269025151">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Tcaron" value="427">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Tcedilla" value="478">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Terminal" value="269025152">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Terminate_Server" value="65237">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_baht" value="3551">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_bobaimai" value="3514">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_chochan" value="3496">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_chochang" value="3498">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_choching" value="3497">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_chochoe" value="3500">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_dochada" value="3502">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_dodek" value="3508">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_fofa" value="3517">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_fofan" value="3519">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_hohip" value="3531">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_honokhuk" value="3534">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_khokhai" value="3490">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_khokhon" value="3493">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_khokhuat" value="3491">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_khokhwai" value="3492">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_khorakhang" value="3494">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_kokai" value="3489">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_lakkhangyao" value="3557">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_lekchet" value="3575">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_lekha" value="3573">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_lekhok" value="3574">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_lekkao" value="3577">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_leknung" value="3569">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_lekpaet" value="3576">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_leksam" value="3571">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_leksi" value="3572">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_leksong" value="3570">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_leksun" value="3568">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_lochula" value="3532">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_loling" value="3525">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_lu" value="3526">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_maichattawa" value="3563">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_maiek" value="3560">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_maihanakat" value="3537">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_maihanakat_maitho" value="3550">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_maitaikhu" value="3559">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_maitho" value="3561">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_maitri" value="3562">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_maiyamok" value="3558">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_moma" value="3521">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_ngongu" value="3495">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_nikhahit" value="3565">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_nonen" value="3507">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_nonu" value="3513">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_oang" value="3533">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_paiyannoi" value="3535">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_phinthu" value="3546">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_phophan" value="3518">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_phophung" value="3516">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_phosamphao" value="3520">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_popla" value="3515">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_rorua" value="3523">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_ru" value="3524">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_saraa" value="3536">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_saraaa" value="3538">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_saraae" value="3553">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_saraaimaimalai" value="3556">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_saraaimaimuan" value="3555">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_saraam" value="3539">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_sarae" value="3552">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_sarai" value="3540">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_saraii" value="3541">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_sarao" value="3554">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_sarau" value="3544">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_saraue" value="3542">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_sarauee" value="3543">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_sarauu" value="3545">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_sorusi" value="3529">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_sosala" value="3528">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_soso" value="3499">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_sosua" value="3530">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_thanthakhat" value="3564">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_thonangmontho" value="3505">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_thophuthao" value="3506">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_thothahan" value="3511">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_thothan" value="3504">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_thothong" value="3512">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_thothung" value="3510">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_topatak" value="3503">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_totao" value="3509">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_wowaen" value="3527">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_yoyak" value="3522">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_yoying" value="3501">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thorn" value="222">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Time" value="269025183">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ToDoList" value="269025055">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Tools" value="269025153">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_TopMenu" value="269025186">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_TouchpadToggle" value="269025193">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Touroku" value="65323">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Travel" value="269025154">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Tslash" value="940">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_U" value="85">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_UWB" value="269025174">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Uacute" value="218">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ubelowdot" value="16785124">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ubreve" value="733">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ucircumflex" value="219">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Udiaeresis" value="220">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Udoubleacute" value="475">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ugrave" value="217">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Uhook" value="16785126">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Uhorn" value="16777647">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Uhornacute" value="16785128">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Uhornbelowdot" value="16785136">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Uhorngrave" value="16785130">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Uhornhook" value="16785132">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Uhorntilde" value="16785134">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ukrainian_GHE_WITH_UPTURN" value="1725">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ukrainian_I" value="1718">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ukrainian_IE" value="1716">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ukrainian_YI" value="1719">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ukrainian_ghe_with_upturn" value="1709">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ukrainian_i" value="1702">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ukrainian_ie" value="1700">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ukrainian_yi" value="1703">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ukranian_I" value="1718">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ukranian_JE" value="1716">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ukranian_YI" value="1719">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ukranian_i" value="1702">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ukranian_je" value="1700">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ukranian_yi" value="1703">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Umacron" value="990">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Undo" value="65381">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ungrab" value="269024800">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Uogonek" value="985">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Up" value="65362">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Uring" value="473">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_User1KB" value="269025157">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_User2KB" value="269025158">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_UserPB" value="269025156">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Utilde" value="989">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_V" value="86">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_VendorHome" value="269025076">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Video" value="269025159">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_View" value="269025185">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_VoidSymbol" value="16777215">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_W" value="87">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_WLAN" value="269025173">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_WWW" value="269025070">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Wacute" value="16785026">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_WakeUp" value="269025067">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Wcircumflex" value="16777588">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Wdiaeresis" value="16785028">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_WebCam" value="269025167">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Wgrave" value="16785024">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_WheelButton" value="269025160">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_WindowClear" value="269025109">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_WonSign" value="16785577">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Word" value="269025161">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_X" value="88">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Xabovedot" value="16785034">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Xfer" value="269025162">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Y" value="89">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Yacute" value="221">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ybelowdot" value="16785140">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ycircumflex" value="16777590">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ydiaeresis" value="5054">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Yellow" value="269025189">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ygrave" value="16785138">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Yhook" value="16785142">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ytilde" value="16785144">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Z" value="90">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Zabovedot" value="431">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Zacute" value="428">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Zcaron" value="430">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Zen_Koho" value="65341">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Zenkaku" value="65320">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Zenkaku_Hankaku" value="65322">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ZoomIn" value="269025163">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ZoomOut" value="269025164">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Zstroke" value="16777653">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_a" value="97">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_aacute" value="225">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_abelowdot" value="16785057">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_abovedot" value="511">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_abreve" value="483">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_abreveacute" value="16785071">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_abrevebelowdot" value="16785079">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_abrevegrave" value="16785073">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_abrevehook" value="16785075">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_abrevetilde" value="16785077">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_acircumflex" value="226">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_acircumflexacute" value="16785061">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_acircumflexbelowdot" value="16785069">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_acircumflexgrave" value="16785063">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_acircumflexhook" value="16785065">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_acircumflextilde" value="16785067">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_acute" value="180">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_adiaeresis" value="228">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ae" value="230">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_agrave" value="224">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ahook" value="16785059">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_amacron" value="992">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ampersand" value="38">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_aogonek" value="433">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_apostrophe" value="39">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_approxeq" value="16785992">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_approximate" value="2248">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_aring" value="229">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_asciicircum" value="94">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_asciitilde" value="126">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_asterisk" value="42">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_at" value="64">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_atilde" value="227">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_b" value="98">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_babovedot" value="16784899">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_backslash" value="92">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ballotcross" value="2804">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_bar" value="124">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_because" value="16785973">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_blank" value="2527">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_botintegral" value="2213">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_botleftparens" value="2220">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_botleftsqbracket" value="2216">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_botleftsummation" value="2226">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_botrightparens" value="2222">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_botrightsqbracket" value="2218">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_botrightsummation" value="2230">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_bott" value="2550">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_botvertsummationconnector" value="2228">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braceleft" value="123">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braceright" value="125">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_bracketleft" value="91">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_bracketright" value="93">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_blank" value="16787456">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dot_1" value="65521">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dot_10" value="65530">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dot_2" value="65522">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dot_3" value="65523">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dot_4" value="65524">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dot_5" value="65525">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dot_6" value="65526">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dot_7" value="65527">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dot_8" value="65528">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dot_9" value="65529">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_1" value="16787457">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_12" value="16787459">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_123" value="16787463">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_1234" value="16787471">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_12345" value="16787487">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_123456" value="16787519">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_1234567" value="16787583">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_12345678" value="16787711">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_1234568" value="16787647">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_123457" value="16787551">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_1234578" value="16787679">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_123458" value="16787615">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_12346" value="16787503">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_123467" value="16787567">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_1234678" value="16787695">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_123468" value="16787631">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_12347" value="16787535">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_123478" value="16787663">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_12348" value="16787599">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_1235" value="16787479">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_12356" value="16787511">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_123567" value="16787575">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_1235678" value="16787703">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_123568" value="16787639">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_12357" value="16787543">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_123578" value="16787671">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_12358" value="16787607">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_1236" value="16787495">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_12367" value="16787559">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_123678" value="16787687">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_12368" value="16787623">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_1237" value="16787527">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_12378" value="16787655">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_1238" value="16787591">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_124" value="16787467">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_1245" value="16787483">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_12456" value="16787515">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_124567" value="16787579">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_1245678" value="16787707">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_124568" value="16787643">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_12457" value="16787547">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_124578" value="16787675">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_12458" value="16787611">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_1246" value="16787499">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_12467" value="16787563">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_124678" value="16787691">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_12468" value="16787627">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_1247" value="16787531">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_12478" value="16787659">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_1248" value="16787595">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_125" value="16787475">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_1256" value="16787507">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_12567" value="16787571">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_125678" value="16787699">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_12568" value="16787635">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_1257" value="16787539">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_12578" value="16787667">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_1258" value="16787603">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_126" value="16787491">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_1267" value="16787555">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_12678" value="16787683">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_1268" value="16787619">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_127" value="16787523">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_1278" value="16787651">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_128" value="16787587">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_13" value="16787461">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_134" value="16787469">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_1345" value="16787485">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_13456" value="16787517">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_134567" value="16787581">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_1345678" value="16787709">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_134568" value="16787645">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_13457" value="16787549">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_134578" value="16787677">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_13458" value="16787613">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_1346" value="16787501">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_13467" value="16787565">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_134678" value="16787693">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_13468" value="16787629">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_1347" value="16787533">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_13478" value="16787661">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_1348" value="16787597">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_135" value="16787477">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_1356" value="16787509">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_13567" value="16787573">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_135678" value="16787701">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_13568" value="16787637">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_1357" value="16787541">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_13578" value="16787669">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_1358" value="16787605">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_136" value="16787493">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_1367" value="16787557">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_13678" value="16787685">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_1368" value="16787621">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_137" value="16787525">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_1378" value="16787653">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_138" value="16787589">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_14" value="16787465">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_145" value="16787481">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_1456" value="16787513">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_14567" value="16787577">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_145678" value="16787705">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_14568" value="16787641">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_1457" value="16787545">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_14578" value="16787673">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_1458" value="16787609">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_146" value="16787497">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_1467" value="16787561">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_14678" value="16787689">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_1468" value="16787625">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_147" value="16787529">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_1478" value="16787657">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_148" value="16787593">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_15" value="16787473">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_156" value="16787505">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_1567" value="16787569">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_15678" value="16787697">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_1568" value="16787633">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_157" value="16787537">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_1578" value="16787665">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_158" value="16787601">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_16" value="16787489">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_167" value="16787553">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_1678" value="16787681">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_168" value="16787617">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_17" value="16787521">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_178" value="16787649">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_18" value="16787585">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_2" value="16787458">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_23" value="16787462">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_234" value="16787470">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_2345" value="16787486">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_23456" value="16787518">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_234567" value="16787582">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_2345678" value="16787710">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_234568" value="16787646">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_23457" value="16787550">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_234578" value="16787678">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_23458" value="16787614">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_2346" value="16787502">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_23467" value="16787566">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_234678" value="16787694">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_23468" value="16787630">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_2347" value="16787534">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_23478" value="16787662">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_2348" value="16787598">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_235" value="16787478">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_2356" value="16787510">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_23567" value="16787574">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_235678" value="16787702">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_23568" value="16787638">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_2357" value="16787542">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_23578" value="16787670">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_2358" value="16787606">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_236" value="16787494">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_2367" value="16787558">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_23678" value="16787686">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_2368" value="16787622">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_237" value="16787526">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_2378" value="16787654">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_238" value="16787590">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_24" value="16787466">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_245" value="16787482">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_2456" value="16787514">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_24567" value="16787578">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_245678" value="16787706">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_24568" value="16787642">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_2457" value="16787546">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_24578" value="16787674">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_2458" value="16787610">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_246" value="16787498">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_2467" value="16787562">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_24678" value="16787690">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_2468" value="16787626">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_247" value="16787530">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_2478" value="16787658">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_248" value="16787594">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_25" value="16787474">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_256" value="16787506">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_2567" value="16787570">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_25678" value="16787698">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_2568" value="16787634">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_257" value="16787538">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_2578" value="16787666">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_258" value="16787602">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_26" value="16787490">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_267" value="16787554">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_2678" value="16787682">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_268" value="16787618">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_27" value="16787522">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_278" value="16787650">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_28" value="16787586">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_3" value="16787460">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_34" value="16787468">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_345" value="16787484">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_3456" value="16787516">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_34567" value="16787580">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_345678" value="16787708">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_34568" value="16787644">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_3457" value="16787548">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_34578" value="16787676">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_3458" value="16787612">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_346" value="16787500">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_3467" value="16787564">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_34678" value="16787692">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_3468" value="16787628">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_347" value="16787532">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_3478" value="16787660">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_348" value="16787596">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_35" value="16787476">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_356" value="16787508">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_3567" value="16787572">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_35678" value="16787700">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_3568" value="16787636">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_357" value="16787540">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_3578" value="16787668">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_358" value="16787604">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_36" value="16787492">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_367" value="16787556">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_3678" value="16787684">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_368" value="16787620">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_37" value="16787524">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_378" value="16787652">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_38" value="16787588">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_4" value="16787464">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_45" value="16787480">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_456" value="16787512">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_4567" value="16787576">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_45678" value="16787704">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_4568" value="16787640">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_457" value="16787544">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_4578" value="16787672">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_458" value="16787608">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_46" value="16787496">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_467" value="16787560">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_4678" value="16787688">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_468" value="16787624">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_47" value="16787528">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_478" value="16787656">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_48" value="16787592">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_5" value="16787472">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_56" value="16787504">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_567" value="16787568">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_5678" value="16787696">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_568" value="16787632">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_57" value="16787536">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_578" value="16787664">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_58" value="16787600">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_6" value="16787488">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_67" value="16787552">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_678" value="16787680">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_68" value="16787616">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_7" value="16787520">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_78" value="16787648">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_8" value="16787584">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_breve" value="418">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_brokenbar" value="166">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_c" value="99">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_cabovedot" value="741">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_cacute" value="486">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_careof" value="2744">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_caret" value="2812">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_caron" value="439">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ccaron" value="488">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ccedilla" value="231">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ccircumflex" value="742">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_cedilla" value="184">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_cent" value="162">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_checkerboard" value="2529">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_checkmark" value="2803">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_circle" value="3023">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_club" value="2796">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_colon" value="58">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_comma" value="44">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_containsas" value="16785931">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_copyright" value="169">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_cr" value="2532">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_crossinglines" value="2542">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_cuberoot" value="16785947">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_currency" value="164">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_cursor" value="2815">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_d" value="100">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_dabovedot" value="16784907">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_dagger" value="2801">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_dcaron" value="495">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_dead_A" value="65153">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_dead_E" value="65155">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_dead_I" value="65157">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_dead_O" value="65159">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_dead_U" value="65161">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_dead_a" value="65152">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_dead_abovecomma" value="65124">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_dead_abovedot" value="65110">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_dead_abovereversedcomma" value="65125">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_dead_abovering" value="65112">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_dead_acute" value="65105">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_dead_belowbreve" value="65131">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_dead_belowcircumflex" value="65129">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_dead_belowcomma" value="65134">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_dead_belowdiaeresis" value="65132">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_dead_belowdot" value="65120">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_dead_belowmacron" value="65128">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_dead_belowring" value="65127">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_dead_belowtilde" value="65130">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_dead_breve" value="65109">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_dead_capital_schwa" value="65163">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_dead_caron" value="65114">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_dead_cedilla" value="65115">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_dead_circumflex" value="65106">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_dead_currency" value="65135">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_dead_dasia" value="65125">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_dead_diaeresis" value="65111">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_dead_doubleacute" value="65113">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_dead_doublegrave" value="65126">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_dead_e" value="65154">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_dead_grave" value="65104">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_dead_hook" value="65121">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_dead_horn" value="65122">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_dead_i" value="65156">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_dead_invertedbreve" value="65133">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_dead_iota" value="65117">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_dead_macron" value="65108">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_dead_o" value="65158">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_dead_ogonek" value="65116">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_dead_perispomeni" value="65107">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_dead_psili" value="65124">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_dead_semivoiced_sound" value="65119">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_dead_small_schwa" value="65162">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_dead_stroke" value="65123">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_dead_tilde" value="65107">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_dead_u" value="65160">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_dead_voiced_sound" value="65118">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_decimalpoint" value="2749">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_degree" value="176">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_diaeresis" value="168">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_diamond" value="2797">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_digitspace" value="2725">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_dintegral" value="16785964">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_division" value="247">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_dollar" value="36">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_doubbaselinedot" value="2735">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_doubleacute" value="445">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_doubledagger" value="2802">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_doublelowquotemark" value="2814">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_downarrow" value="2302">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_downcaret" value="2984">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_downshoe" value="3030">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_downstile" value="3012">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_downtack" value="3010">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_dstroke" value="496">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_e" value="101">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_eabovedot" value="1004">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_eacute" value="233">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ebelowdot" value="16785081">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ecaron" value="492">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ecircumflex" value="234">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ecircumflexacute" value="16785087">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ecircumflexbelowdot" value="16785095">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ecircumflexgrave" value="16785089">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ecircumflexhook" value="16785091">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ecircumflextilde" value="16785093">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ediaeresis" value="235">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_egrave" value="232">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ehook" value="16785083">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_eightsubscript" value="16785544">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_eightsuperior" value="16785528">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_elementof" value="16785928">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ellipsis" value="2734">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_em3space" value="2723">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_em4space" value="2724">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_emacron" value="954">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_emdash" value="2729">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_emfilledcircle" value="2782">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_emfilledrect" value="2783">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_emopencircle" value="2766">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_emopenrectangle" value="2767">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_emptyset" value="16785925">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_emspace" value="2721">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_endash" value="2730">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_enfilledcircbullet" value="2790">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_enfilledsqbullet" value="2791">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_eng" value="959">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_enopencircbullet" value="2784">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_enopensquarebullet" value="2785">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_enspace" value="2722">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_eogonek" value="490">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_equal" value="61">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_eth" value="240">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_etilde" value="16785085">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_exclam" value="33">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_exclamdown" value="161">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_f" value="102">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_fabovedot" value="16784927">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_femalesymbol" value="2808">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ff" value="2531">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_figdash" value="2747">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_filledlefttribullet" value="2780">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_filledrectbullet" value="2779">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_filledrighttribullet" value="2781">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_filledtribulletdown" value="2793">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_filledtribulletup" value="2792">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_fiveeighths" value="2757">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_fivesixths" value="2743">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_fivesubscript" value="16785541">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_fivesuperior" value="16785525">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_fourfifths" value="2741">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_foursubscript" value="16785540">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_foursuperior" value="16785524">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_fourthroot" value="16785948">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_function" value="2294">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_g" value="103">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_gabovedot" value="757">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_gbreve" value="699">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_gcaron" value="16777703">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_gcedilla" value="955">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_gcircumflex" value="760">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_grave" value="96">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_greater" value="62">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_greaterthanequal" value="2238">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_guillemotleft" value="171">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_guillemotright" value="187">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_h" value="104">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_hairspace" value="2728">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_hcircumflex" value="694">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_heart" value="2798">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_hebrew_aleph" value="3296">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_hebrew_ayin" value="3314">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_hebrew_bet" value="3297">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_hebrew_beth" value="3297">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_hebrew_chet" value="3303">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_hebrew_dalet" value="3299">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_hebrew_daleth" value="3299">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_hebrew_doublelowline" value="3295">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_hebrew_finalkaph" value="3306">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_hebrew_finalmem" value="3309">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_hebrew_finalnun" value="3311">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_hebrew_finalpe" value="3315">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_hebrew_finalzade" value="3317">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_hebrew_finalzadi" value="3317">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_hebrew_gimel" value="3298">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_hebrew_gimmel" value="3298">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_hebrew_he" value="3300">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_hebrew_het" value="3303">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_hebrew_kaph" value="3307">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_hebrew_kuf" value="3319">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_hebrew_lamed" value="3308">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_hebrew_mem" value="3310">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_hebrew_nun" value="3312">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_hebrew_pe" value="3316">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_hebrew_qoph" value="3319">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_hebrew_resh" value="3320">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_hebrew_samech" value="3313">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_hebrew_samekh" value="3313">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_hebrew_shin" value="3321">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_hebrew_taf" value="3322">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_hebrew_taw" value="3322">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_hebrew_tet" value="3304">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_hebrew_teth" value="3304">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_hebrew_waw" value="3301">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_hebrew_yod" value="3305">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_hebrew_zade" value="3318">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_hebrew_zadi" value="3318">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_hebrew_zain" value="3302">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_hebrew_zayin" value="3302">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_hexagram" value="2778">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_horizconnector" value="2211">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_horizlinescan1" value="2543">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_horizlinescan3" value="2544">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_horizlinescan5" value="2545">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_horizlinescan7" value="2546">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_horizlinescan9" value="2547">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_hstroke" value="689">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ht" value="2530">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_hyphen" value="173">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_i" value="105">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_iTouch" value="269025120">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_iacute" value="237">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ibelowdot" value="16785099">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ibreve" value="16777517">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_icircumflex" value="238">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_identical" value="2255">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_idiaeresis" value="239">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_idotless" value="697">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ifonlyif" value="2253">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_igrave" value="236">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ihook" value="16785097">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_imacron" value="1007">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_implies" value="2254">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_includedin" value="2266">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_includes" value="2267">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_infinity" value="2242">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_integral" value="2239">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_intersection" value="2268">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_iogonek" value="999">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_itilde" value="949">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_j" value="106">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_jcircumflex" value="700">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_jot" value="3018">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_k" value="107">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_A" value="1201">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_CHI" value="1217">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_E" value="1204">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_FU" value="1228">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_HA" value="1226">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_HE" value="1229">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_HI" value="1227">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_HO" value="1230">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_HU" value="1228">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_I" value="1202">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_KA" value="1206">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_KE" value="1209">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_KI" value="1207">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_KO" value="1210">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_KU" value="1208">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_MA" value="1231">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_ME" value="1234">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_MI" value="1232">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_MO" value="1235">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_MU" value="1233">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_N" value="1245">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_NA" value="1221">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_NE" value="1224">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_NI" value="1222">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_NO" value="1225">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_NU" value="1223">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_O" value="1205">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_RA" value="1239">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_RE" value="1242">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_RI" value="1240">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_RO" value="1243">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_RU" value="1241">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_SA" value="1211">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_SE" value="1214">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_SHI" value="1212">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_SO" value="1215">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_SU" value="1213">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_TA" value="1216">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_TE" value="1219">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_TI" value="1217">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_TO" value="1220">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_TSU" value="1218">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_TU" value="1218">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_U" value="1203">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_WA" value="1244">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_WO" value="1190">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_YA" value="1236">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_YO" value="1238">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_YU" value="1237">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_a" value="1191">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_closingbracket" value="1187">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_comma" value="1188">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_conjunctive" value="1189">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_e" value="1194">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_fullstop" value="1185">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_i" value="1192">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_middledot" value="1189">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_o" value="1195">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_openingbracket" value="1186">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_switch" value="65406">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_tsu" value="1199">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_tu" value="1199">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_u" value="1193">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_ya" value="1196">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_yo" value="1198">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_yu" value="1197">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kappa" value="930">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kcedilla" value="1011">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kra" value="930">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_l" value="108">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_lacute" value="485">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_latincross" value="2777">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_lbelowdot" value="16784951">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_lcaron" value="437">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_lcedilla" value="950">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_leftanglebracket" value="2748">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_leftarrow" value="2299">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_leftcaret" value="2979">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_leftdoublequotemark" value="2770">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_leftmiddlecurlybrace" value="2223">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_leftopentriangle" value="2764">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_leftpointer" value="2794">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_leftradical" value="2209">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_leftshoe" value="3034">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_leftsinglequotemark" value="2768">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_leftt" value="2548">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_lefttack" value="3036">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_less" value="60">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_lessthanequal" value="2236">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_lf" value="2533">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_logicaland" value="2270">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_logicalor" value="2271">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_lowleftcorner" value="2541">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_lowrightcorner" value="2538">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_lstroke" value="435">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_m" value="109">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_mabovedot" value="16784961">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_macron" value="175">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_malesymbol" value="2807">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_maltesecross" value="2800">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_marker" value="2751">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_masculine" value="186">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_minus" value="45">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_minutes" value="2774">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_mu" value="181">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_multiply" value="215">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_musicalflat" value="2806">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_musicalsharp" value="2805">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_n" value="110">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_nabla" value="2245">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_nacute" value="497">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ncaron" value="498">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ncedilla" value="1009">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ninesubscript" value="16785545">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ninesuperior" value="16785529">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_nl" value="2536">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_nobreakspace" value="160">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_notapproxeq" value="16785991">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_notelementof" value="16785929">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_notequal" value="2237">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_notidentical" value="16786018">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_notsign" value="172">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ntilde" value="241">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_numbersign" value="35">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_numerosign" value="1712">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_o" value="111">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_oacute" value="243">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_obarred" value="16777845">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_obelowdot" value="16785101">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ocaron" value="16777682">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ocircumflex" value="244">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ocircumflexacute" value="16785105">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ocircumflexbelowdot" value="16785113">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ocircumflexgrave" value="16785107">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ocircumflexhook" value="16785109">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ocircumflextilde" value="16785111">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_odiaeresis" value="246">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_odoubleacute" value="501">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_oe" value="5053">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ogonek" value="434">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ograve" value="242">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ohook" value="16785103">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ohorn" value="16777633">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ohornacute" value="16785115">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ohornbelowdot" value="16785123">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ohorngrave" value="16785117">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ohornhook" value="16785119">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ohorntilde" value="16785121">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_omacron" value="1010">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_oneeighth" value="2755">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_onefifth" value="2738">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_onehalf" value="189">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_onequarter" value="188">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_onesixth" value="2742">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_onesubscript" value="16785537">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_onesuperior" value="185">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_onethird" value="2736">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ooblique" value="248">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_openrectbullet" value="2786">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_openstar" value="2789">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_opentribulletdown" value="2788">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_opentribulletup" value="2787">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ordfeminine" value="170">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_oslash" value="248">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_otilde" value="245">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_overbar" value="3008">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_overline" value="1150">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_p" value="112">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_pabovedot" value="16784983">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_paragraph" value="182">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_parenleft" value="40">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_parenright" value="41">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_partdifferential" value="16785922">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_partialderivative" value="2287">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_percent" value="37">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_period" value="46">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_periodcentered" value="183">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_phonographcopyright" value="2811">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_plus" value="43">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_plusminus" value="177">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_prescription" value="2772">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_prolongedsound" value="1200">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_punctspace" value="2726">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_q" value="113">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_quad" value="3020">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_question" value="63">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_questiondown" value="191">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_quotedbl" value="34">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_quoteleft" value="96">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_quoteright" value="39">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_r" value="114">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_racute" value="480">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_radical" value="2262">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_rcaron" value="504">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_rcedilla" value="947">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_registered" value="174">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_rightanglebracket" value="2750">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_rightarrow" value="2301">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_rightcaret" value="2982">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_rightdoublequotemark" value="2771">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_rightmiddlecurlybrace" value="2224">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_rightmiddlesummation" value="2231">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_rightopentriangle" value="2765">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_rightpointer" value="2795">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_rightshoe" value="3032">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_rightsinglequotemark" value="2769">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_rightt" value="2549">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_righttack" value="3068">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_s" value="115">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_sabovedot" value="16784993">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_sacute" value="438">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_scaron" value="441">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_scedilla" value="442">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_schwa" value="16777817">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_scircumflex" value="766">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_script_switch" value="65406">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_seconds" value="2775">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_section" value="167">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_semicolon" value="59">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_semivoicedsound" value="1247">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_seveneighths" value="2758">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_sevensubscript" value="16785543">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_sevensuperior" value="16785527">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_signaturemark" value="2762">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_signifblank" value="2732">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_similarequal" value="2249">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_singlelowquotemark" value="2813">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_sixsubscript" value="16785542">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_sixsuperior" value="16785526">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_slash" value="47">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_soliddiamond" value="2528">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_space" value="32">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_squareroot" value="16785946">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ssharp" value="223">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_sterling" value="163">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_stricteq" value="16786019">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_t" value="116">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_tabovedot" value="16785003">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_tcaron" value="443">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_tcedilla" value="510">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_telephone" value="2809">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_telephonerecorder" value="2810">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_therefore" value="2240">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_thinspace" value="2727">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_thorn" value="254">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_threeeighths" value="2756">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_threefifths" value="2740">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_threequarters" value="190">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_threesubscript" value="16785539">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_threesuperior" value="179">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_tintegral" value="16785965">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_topintegral" value="2212">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_topleftparens" value="2219">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_topleftradical" value="2210">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_topleftsqbracket" value="2215">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_topleftsummation" value="2225">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_toprightparens" value="2221">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_toprightsqbracket" value="2217">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_toprightsummation" value="2229">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_topt" value="2551">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_topvertsummationconnector" value="2227">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_trademark" value="2761">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_trademarkincircle" value="2763">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_tslash" value="956">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_twofifths" value="2739">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_twosubscript" value="16785538">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_twosuperior" value="178">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_twothirds" value="2737">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_u" value="117">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_uacute" value="250">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ubelowdot" value="16785125">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ubreve" value="765">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ucircumflex" value="251">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_udiaeresis" value="252">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_udoubleacute" value="507">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ugrave" value="249">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_uhook" value="16785127">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_uhorn" value="16777648">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_uhornacute" value="16785129">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_uhornbelowdot" value="16785137">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_uhorngrave" value="16785131">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_uhornhook" value="16785133">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_uhorntilde" value="16785135">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_umacron" value="1022">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_underbar" value="3014">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_underscore" value="95">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_union" value="2269">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_uogonek" value="1017">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_uparrow" value="2300">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_upcaret" value="2985">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_upleftcorner" value="2540">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_uprightcorner" value="2539">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_upshoe" value="3011">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_upstile" value="3027">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_uptack" value="3022">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_uring" value="505">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_utilde" value="1021">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_v" value="118">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_variation" value="2241">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_vertbar" value="2552">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_vertconnector" value="2214">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_voicedsound" value="1246">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_vt" value="2537">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_w" value="119">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_wacute" value="16785027">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_wcircumflex" value="16777589">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_wdiaeresis" value="16785029">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_wgrave" value="16785025">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_x" value="120">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_xabovedot" value="16785035">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_y" value="121">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_yacute" value="253">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ybelowdot" value="16785141">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ycircumflex" value="16777591">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ydiaeresis" value="255">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_yen" value="165">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ygrave" value="16785139">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_yhook" value="16785143">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ytilde" value="16785145">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_z" value="122">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_zabovedot" value="447">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_zacute" value="444">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_zcaron" value="446">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_zerosubscript" value="16785536">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_zerosuperior" value="16785520">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_zstroke" value="16777654">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KP_0" value="65456">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KP_1" value="65457">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KP_2" value="65458">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KP_3" value="65459">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KP_4" value="65460">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KP_5" value="65461">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KP_6" value="65462">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KP_7" value="65463">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KP_8" value="65464">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KP_9" value="65465">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KP_Add" value="65451">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KP_Begin" value="65437">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KP_Decimal" value="65454">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KP_Delete" value="65439">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KP_Divide" value="65455">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KP_Down" value="65433">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KP_End" value="65436">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KP_Enter" value="65421">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KP_Equal" value="65469">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KP_F1" value="65425">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KP_F2" value="65426">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KP_F3" value="65427">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KP_F4" value="65428">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KP_Home" value="65429">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KP_Insert" value="65438">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KP_Left" value="65430">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KP_Multiply" value="65450">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KP_Next" value="65435">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KP_Page_Down" value="65435">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KP_Page_Up" value="65434">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KP_Prior" value="65434">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KP_Right" value="65432">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KP_Separator" value="65452">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KP_Space" value="65408">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KP_Subtract" value="65453">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KP_Tab" value="65417">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KP_Up" value="65431">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Kana_Lock" value="65325">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Kana_Shift" value="65326">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Kanji" value="65313">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Kanji_Bangou" value="65335">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Katakana" value="65318">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KbdBrightnessDown" value="269025030">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KbdBrightnessUp" value="269025029">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KbdLightOnOff" value="269025028">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Kcedilla" value="979">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <record name="KeyEvent" c:type="ClutterKeyEvent" version="0.2">
+      <doc xml:whitespace="preserve">Key event</doc>
+      <field name="type" writable="1">
+        <type name="EventType" c:type="ClutterEventType"/>
+      </field>
+      <field name="time" writable="1">
+        <type name="guint32" c:type="guint32"/>
+      </field>
+      <field name="flags" writable="1">
+        <type name="EventFlags" c:type="ClutterEventFlags"/>
+      </field>
+      <field name="stage" writable="1">
+        <type name="Stage" c:type="ClutterStage*"/>
+      </field>
+      <field name="source" writable="1">
+        <type name="Actor" c:type="ClutterActor*"/>
+      </field>
+      <field name="modifier_state" writable="1">
+        <type name="ModifierType" c:type="ClutterModifierType"/>
+      </field>
+      <field name="keyval" writable="1">
+        <type name="guint" c:type="guint"/>
+      </field>
+      <field name="hardware_keycode" writable="1">
+        <type name="guint16" c:type="guint16"/>
+      </field>
+      <field name="unicode_value" introspectable="0" writable="1">
+        <type name="gunichar" c:type="gunichar"/>
+      </field>
+      <field name="device" writable="1">
+        <type name="InputDevice" c:type="ClutterInputDevice*"/>
+      </field>
+    </record>
+    <record name="Knot"
+            c:type="ClutterKnot"
+            version="0.2"
+            glib:type-name="ClutterKnot"
+            glib:get-type="clutter_knot_get_type"
+            c:symbol-prefix="knot">
+      <doc xml:whitespace="preserve">Point in a path behaviour.</doc>
+      <field name="x" writable="1">
+        <type name="gint" c:type="gint"/>
+      </field>
+      <field name="y" writable="1">
+        <type name="gint" c:type="gint"/>
+      </field>
+      <method name="copy" c:identifier="clutter_knot_copy" version="0.2">
+        <doc xml:whitespace="preserve">Makes an allocated copy of a knot.</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">the copied knot.</doc>
+          <type name="Knot" c:type="ClutterKnot*"/>
+        </return-value>
+      </method>
+      <method name="equal" c:identifier="clutter_knot_equal" version="0.2">
+        <doc xml:whitespace="preserve">Compares to knot and checks if the point to the same location.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if the knots point to the same location.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="knot_b" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Second knot</doc>
+            <type name="Knot" c:type="ClutterKnot*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="free" c:identifier="clutter_knot_free" version="0.2">
+        <doc xml:whitespace="preserve">Frees the memory of an allocated knot.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </method>
+    </record>
+    <constant name="Korean_Won" value="3839">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="L" value="76">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="L1" value="65480">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="L10" value="65489">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="L2" value="65481">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="L3" value="65482">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="L4" value="65483">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="L5" value="65484">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="L6" value="65485">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="L7" value="65486">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="L8" value="65487">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="L9" value="65488">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Lacute" value="453">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Last_Virtual_Screen" value="65236">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Launch0" value="269025088">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Launch1" value="269025089">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Launch2" value="269025090">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Launch3" value="269025091">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Launch4" value="269025092">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Launch5" value="269025093">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Launch6" value="269025094">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Launch7" value="269025095">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Launch8" value="269025096">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Launch9" value="269025097">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="LaunchA" value="269025098">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="LaunchB" value="269025099">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="LaunchC" value="269025100">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="LaunchD" value="269025101">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="LaunchE" value="269025102">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="LaunchF" value="269025103">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <class name="LayoutManager"
+           c:symbol-prefix="layout_manager"
+           c:type="ClutterLayoutManager"
+           version="1.2"
+           parent="GObject.InitiallyUnowned"
+           abstract="1"
+           glib:type-name="ClutterLayoutManager"
+           glib:get-type="clutter_layout_manager_get_type"
+           glib:type-struct="LayoutManagerClass">
+      <doc xml:whitespace="preserve">The #ClutterLayoutManager structure contains only private data
+and should be accessed using the provided API</doc>
+      <virtual-method name="allocate" invoker="allocate" version="1.2">
+        <doc xml:whitespace="preserve">Allocates the children of @container given an area
+See also clutter_actor_allocate()</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="container" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the #ClutterContainer using @manager</doc>
+            <type name="Container" c:type="ClutterContainer*"/>
+          </parameter>
+          <parameter name="allocation" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the #ClutterActorBox containing the allocated area of @container</doc>
+            <type name="ActorBox" c:type="ClutterActorBox*"/>
+          </parameter>
+          <parameter name="flags" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the allocation flags</doc>
+            <type name="AllocationFlags" c:type="ClutterAllocationFlags"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="begin_animation"
+                      invoker="begin_animation"
+                      version="1.2">
+        <doc xml:whitespace="preserve">Begins an animation of @duration milliseconds, using the provided
+easing @mode
+The easing mode can be specified either as a #ClutterAnimationMode
+or as a logical id returned by clutter_alpha_register_func()
+The result of this function depends on the @manager implementation
+layout manager; the returned instance is owned by the layout
+manager and should not be unreferenced</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">The #ClutterAlpha created by the</doc>
+          <type name="Alpha" c:type="ClutterAlpha*"/>
+        </return-value>
+        <parameters>
+          <parameter name="duration" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the duration of the animation, in milliseconds</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+          <parameter name="mode" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the easing mode of the animation</doc>
+            <type name="gulong" c:type="gulong"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="create_child_meta" introspectable="0">
+        <return-value>
+          <type name="LayoutMeta" c:type="ClutterLayoutMeta*"/>
+        </return-value>
+        <parameters>
+          <parameter name="container" transfer-ownership="none">
+            <type name="Container" c:type="ClutterContainer*"/>
+          </parameter>
+          <parameter name="actor" transfer-ownership="none">
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="end_animation"
+                      invoker="end_animation"
+                      version="1.2">
+        <doc xml:whitespace="preserve">Ends an animation started by clutter_layout_manager_begin_animation()
+The result of this call depends on the @manager implementation</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </virtual-method>
+      <virtual-method name="get_animation_progress"
+                      invoker="get_animation_progress"
+                      version="1.2">
+        <doc xml:whitespace="preserve">Retrieves the progress of the animation, if one has been started by
+clutter_layout_manager_begin_animation()
+The returned value has the same semantics of the #ClutterAlpha:alpha
+value</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the progress of the animation</doc>
+          <type name="gdouble" c:type="gdouble"/>
+        </return-value>
+      </virtual-method>
+      <virtual-method name="get_child_meta_type">
+        <return-value transfer-ownership="none">
+          <type name="GType" c:type="GType"/>
+        </return-value>
+      </virtual-method>
+      <virtual-method name="get_preferred_height"
+                      invoker="get_preferred_height"
+                      version="1.2">
+        <doc xml:whitespace="preserve">Computes the minimum and natural heights of the @container according
+to @manager.
+See also clutter_actor_get_preferred_height()</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="container" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the #ClutterContainer using @manager</doc>
+            <type name="Container" c:type="ClutterContainer*"/>
+          </parameter>
+          <parameter name="for_width" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the width for which the height should be computed, or -1</doc>
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+          <parameter name="minimum_height_p" transfer-ownership="none">
+            <type name="gfloat" c:type="gfloat*"/>
+          </parameter>
+          <parameter name="natural_height_p" transfer-ownership="none">
+            <type name="gfloat" c:type="gfloat*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="get_preferred_width"
+                      invoker="get_preferred_width"
+                      version="1.2">
+        <doc xml:whitespace="preserve">Computes the minimum and natural widths of the @container according
+to @manager.
+See also clutter_actor_get_preferred_width()</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="container" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the #ClutterContainer using @manager</doc>
+            <type name="Container" c:type="ClutterContainer*"/>
+          </parameter>
+          <parameter name="for_height" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the height for which the width should be computed, or -1</doc>
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+          <parameter name="minimum_width_p" transfer-ownership="none">
+            <type name="gfloat" c:type="gfloat*"/>
+          </parameter>
+          <parameter name="natural_width_p" transfer-ownership="none">
+            <type name="gfloat" c:type="gfloat*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="set_container"
+                      invoker="set_container"
+                      version="1.2">
+        <doc xml:whitespace="preserve">If the #ClutterLayoutManager sub-class allows it, allow
+adding a weak reference of the @container using @manager
+from within the layout manager
+The layout manager should not increase the reference
+count of the @container</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="container" transfer-ownership="none" allow-none="1">
+            <doc xml:whitespace="preserve">a #ClutterContainer using @manager</doc>
+            <type name="Container" c:type="ClutterContainer*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <method name="allocate"
+              c:identifier="clutter_layout_manager_allocate"
+              version="1.2">
+        <doc xml:whitespace="preserve">Allocates the children of @container given an area
+See also clutter_actor_allocate()</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="container" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the #ClutterContainer using @manager</doc>
+            <type name="Container" c:type="ClutterContainer*"/>
+          </parameter>
+          <parameter name="allocation" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the #ClutterActorBox containing the allocated area of @container</doc>
+            <type name="ActorBox" c:type="ClutterActorBox*"/>
+          </parameter>
+          <parameter name="flags" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the allocation flags</doc>
+            <type name="AllocationFlags" c:type="ClutterAllocationFlags"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="begin_animation"
+              c:identifier="clutter_layout_manager_begin_animation"
+              version="1.2">
+        <doc xml:whitespace="preserve">Begins an animation of @duration milliseconds, using the provided
+easing @mode
+The easing mode can be specified either as a #ClutterAnimationMode
+or as a logical id returned by clutter_alpha_register_func()
+The result of this function depends on the @manager implementation
+layout manager; the returned instance is owned by the layout
+manager and should not be unreferenced</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">The #ClutterAlpha created by the</doc>
+          <type name="Alpha" c:type="ClutterAlpha*"/>
+        </return-value>
+        <parameters>
+          <parameter name="duration" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the duration of the animation, in milliseconds</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+          <parameter name="mode" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the easing mode of the animation</doc>
+            <type name="gulong" c:type="gulong"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="child_get"
+              c:identifier="clutter_layout_manager_child_get"
+              version="1.2"
+              introspectable="0">
+        <doc xml:whitespace="preserve">Retrieves the values for a list of properties out of the
+#ClutterLayoutMeta created by @manager and attached to the
+child of a @container</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="container" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #ClutterContainer using @manager</doc>
+            <type name="Container" c:type="ClutterContainer*"/>
+          </parameter>
+          <parameter name="actor" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #ClutterActor child of @container</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+          <parameter name="first_property" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the name of the first property</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter transfer-ownership="none">
+            <varargs>
+            </varargs>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="child_get_property"
+              c:identifier="clutter_layout_manager_child_get_property"
+              version="1.2">
+        <doc xml:whitespace="preserve">Gets a property on the #ClutterLayoutMeta created by @manager and
+attached to a child of @container
+The #GValue must already be initialized to the type of the property
+and has to be unset with g_value_unset() after extracting the real
+value out of it</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="container" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #ClutterContainer using @manager</doc>
+            <type name="Container" c:type="ClutterContainer*"/>
+          </parameter>
+          <parameter name="actor" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #ClutterActor child of @container</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+          <parameter name="property_name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the name of the property to get</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="value" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GValue with the value of the property to get</doc>
+            <type name="GObject.Value" c:type="GValue*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="child_set"
+              c:identifier="clutter_layout_manager_child_set"
+              version="1.2"
+              introspectable="0">
+        <doc xml:whitespace="preserve">Sets a list of properties and their values on the #ClutterLayoutMeta
+associated by @manager to a child of @container
+Languages bindings should use clutter_layout_manager_child_set_property()
+instead</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="container" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #ClutterContainer using @manager</doc>
+            <type name="Container" c:type="ClutterContainer*"/>
+          </parameter>
+          <parameter name="actor" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #ClutterActor child of @container</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+          <parameter name="first_property" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the first property name</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter transfer-ownership="none">
+            <varargs>
+            </varargs>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="child_set_property"
+              c:identifier="clutter_layout_manager_child_set_property"
+              version="1.2">
+        <doc xml:whitespace="preserve">Sets a property on the #ClutterLayoutMeta created by @manager and
+attached to a child of @container</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="container" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #ClutterContainer using @manager</doc>
+            <type name="Container" c:type="ClutterContainer*"/>
+          </parameter>
+          <parameter name="actor" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #ClutterActor child of @container</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+          <parameter name="property_name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the name of the property to set</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="value" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GValue with the value of the property to set</doc>
+            <type name="GObject.Value" c:type="GValue*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="end_animation"
+              c:identifier="clutter_layout_manager_end_animation"
+              version="1.2">
+        <doc xml:whitespace="preserve">Ends an animation started by clutter_layout_manager_begin_animation()
+The result of this call depends on the @manager implementation</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </method>
+      <method name="find_child_property"
+              c:identifier="clutter_layout_manager_find_child_property"
+              version="1.2">
+        <doc xml:whitespace="preserve">Retrieves the #GParamSpec for the layout property @name inside
+the #ClutterLayoutMeta sub-class used by @manager
+or %NULL if no property with that name exists. The returned
+#GParamSpec is owned by the layout manager and should not be
+modified or freed</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #GParamSpec describing the property,</doc>
+          <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
+        </return-value>
+        <parameters>
+          <parameter name="name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the name of the property</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_animation_progress"
+              c:identifier="clutter_layout_manager_get_animation_progress"
+              version="1.2">
+        <doc xml:whitespace="preserve">Retrieves the progress of the animation, if one has been started by
+clutter_layout_manager_begin_animation()
+The returned value has the same semantics of the #ClutterAlpha:alpha
+value</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the progress of the animation</doc>
+          <type name="gdouble" c:type="gdouble"/>
+        </return-value>
+      </method>
+      <method name="get_child_meta"
+              c:identifier="clutter_layout_manager_get_child_meta"
+              version="1.0">
+        <doc xml:whitespace="preserve">Retrieves the #ClutterLayoutMeta that the layout @manager associated
+to the @actor child of @container, eventually by creating one if the
+#ClutterLayoutManager supports layout properties
+#ClutterLayoutManager does not have layout properties. The returned
+layout meta instance is owned by the #ClutterLayoutManager and it
+should not be unreferenced</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #ClutterLayoutMeta, or %NULL if the</doc>
+          <type name="LayoutMeta" c:type="ClutterLayoutMeta*"/>
+        </return-value>
+        <parameters>
+          <parameter name="container" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #ClutterContainer using @manager</doc>
+            <type name="Container" c:type="ClutterContainer*"/>
+          </parameter>
+          <parameter name="actor" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #ClutterActor child of @container</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_preferred_height"
+              c:identifier="clutter_layout_manager_get_preferred_height"
+              version="1.2">
+        <doc xml:whitespace="preserve">Computes the minimum and natural heights of the @container according
+to @manager.
+See also clutter_actor_get_preferred_height()</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="container" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the #ClutterContainer using @manager</doc>
+            <type name="Container" c:type="ClutterContainer*"/>
+          </parameter>
+          <parameter name="for_width" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the width for which the height should be computed, or -1</doc>
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+          <parameter name="min_height_p"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full"
+                     allow-none="1">
+            <doc xml:whitespace="preserve">return location for the minimum height of the layout, or %NULL</doc>
+            <type name="gfloat" c:type="gfloat*"/>
+          </parameter>
+          <parameter name="nat_height_p"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full"
+                     allow-none="1">
+            <doc xml:whitespace="preserve">return location for the natural height of the layout, or %NULL</doc>
+            <type name="gfloat" c:type="gfloat*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_preferred_width"
+              c:identifier="clutter_layout_manager_get_preferred_width"
+              version="1.2">
+        <doc xml:whitespace="preserve">Computes the minimum and natural widths of the @container according
+to @manager.
+See also clutter_actor_get_preferred_width()</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="container" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the #ClutterContainer using @manager</doc>
+            <type name="Container" c:type="ClutterContainer*"/>
+          </parameter>
+          <parameter name="for_height" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the height for which the width should be computed, or -1</doc>
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+          <parameter name="min_width_p"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full"
+                     allow-none="1">
+            <doc xml:whitespace="preserve">return location for the minimum width of the layout, or %NULL</doc>
+            <type name="gfloat" c:type="gfloat*"/>
+          </parameter>
+          <parameter name="nat_width_p"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full"
+                     allow-none="1">
+            <doc xml:whitespace="preserve">return location for the natural width of the layout, or %NULL</doc>
+            <type name="gfloat" c:type="gfloat*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="layout_changed"
+              c:identifier="clutter_layout_manager_layout_changed"
+              version="1.2">
+        <doc xml:whitespace="preserve">Emits the #ClutterLayoutManager::layout-changed signal on @manager
+This function should only be called by implementations of the
+#ClutterLayoutManager class</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </method>
+      <method name="list_child_properties"
+              c:identifier="clutter_layout_manager_list_child_properties"
+              version="1.2">
+        <doc xml:whitespace="preserve">Retrieves all the #GParamSpec&lt;!-- --&gt;s for the layout properties
+stored inside the #ClutterLayoutMeta sub-class used by @manager
+%NULL-terminated array of #GParamSpec&lt;!-- --&gt;s. Use g_free() to free the
+resources allocated for the array</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">the newly-allocated,</doc>
+          <array length="0" c:type="GParamSpec**">
+            <type name="GObject.ParamSpec"/>
+          </array>
+        </return-value>
+        <parameters>
+          <parameter name="n_pspecs"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:whitespace="preserve">return location for the number of returned #GParamSpec&lt;!-- --&gt;s</doc>
+            <type name="guint" c:type="guint*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_container"
+              c:identifier="clutter_layout_manager_set_container"
+              version="1.2">
+        <doc xml:whitespace="preserve">If the #ClutterLayoutManager sub-class allows it, allow
+adding a weak reference of the @container using @manager
+from within the layout manager
+The layout manager should not increase the reference
+count of the @container</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="container" transfer-ownership="none" allow-none="1">
+            <doc xml:whitespace="preserve">a #ClutterContainer using @manager</doc>
+            <type name="Container" c:type="ClutterContainer*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <field name="parent_instance">
+        <type name="GObject.InitiallyUnowned" c:type="GInitiallyUnowned"/>
+      </field>
+      <field name="dummy">
+        <type name="gpointer" c:type="gpointer"/>
+      </field>
+      <glib:signal name="layout-changed" version="1.2">
+        <doc xml:whitespace="preserve">The ::layout-changed signal is emitted each time a layout manager
+has been changed. Every #ClutterActor using the @manager instance
+as a layout manager should connect a handler to the ::layout-changed
+signal and queue a relayout on themselves:
+|[
+static void layout_changed (ClutterLayoutManager *manager,
+ClutterActor         *self)
+{
+clutter_actor_queue_relayout (self);
+}
+...
+self-&gt;manager = g_object_ref_sink (manager);
+g_signal_connect (self-&gt;manager, "layout-changed",
+G_CALLBACK (layout_changed),
+self);
+]|
+Sub-classes of #ClutterLayoutManager that implement a layout that
+can be controlled or changed using parameters should emit the
+::layout-changed signal whenever one of the parameters changes,
+by using clutter_layout_manager_layout_changed().</doc>
+        <return-value transfer-ownership="none">
+          <type name="none"/>
+        </return-value>
+      </glib:signal>
+    </class>
+    <record name="LayoutManagerClass"
+            c:type="ClutterLayoutManagerClass"
+            glib:is-gtype-struct-for="LayoutManager"
+            version="1.2">
+      <doc xml:whitespace="preserve">The #ClutterLayoutManagerClass structure contains only private
+data and should be accessed using the provided API</doc>
+      <field name="parent_class">
+        <type name="GObject.InitiallyUnownedClass"
+              c:type="GInitiallyUnownedClass"/>
+      </field>
+      <field name="get_preferred_width">
+        <callback name="get_preferred_width">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="manager" transfer-ownership="none">
+              <type name="LayoutManager" c:type="ClutterLayoutManager*"/>
+            </parameter>
+            <parameter name="container" transfer-ownership="none">
+              <doc xml:whitespace="preserve">the #ClutterContainer using @manager</doc>
+              <type name="Container" c:type="ClutterContainer*"/>
+            </parameter>
+            <parameter name="for_height" transfer-ownership="none">
+              <doc xml:whitespace="preserve">the height for which the width should be computed, or -1</doc>
+              <type name="gfloat" c:type="gfloat"/>
+            </parameter>
+            <parameter name="minimum_width_p" transfer-ownership="none">
+              <type name="gfloat" c:type="gfloat*"/>
+            </parameter>
+            <parameter name="natural_width_p" transfer-ownership="none">
+              <type name="gfloat" c:type="gfloat*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="get_preferred_height">
+        <callback name="get_preferred_height">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="manager" transfer-ownership="none">
+              <type name="LayoutManager" c:type="ClutterLayoutManager*"/>
+            </parameter>
+            <parameter name="container" transfer-ownership="none">
+              <doc xml:whitespace="preserve">the #ClutterContainer using @manager</doc>
+              <type name="Container" c:type="ClutterContainer*"/>
+            </parameter>
+            <parameter name="for_width" transfer-ownership="none">
+              <doc xml:whitespace="preserve">the width for which the height should be computed, or -1</doc>
+              <type name="gfloat" c:type="gfloat"/>
+            </parameter>
+            <parameter name="minimum_height_p" transfer-ownership="none">
+              <type name="gfloat" c:type="gfloat*"/>
+            </parameter>
+            <parameter name="natural_height_p" transfer-ownership="none">
+              <type name="gfloat" c:type="gfloat*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="allocate">
+        <callback name="allocate">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="manager" transfer-ownership="none">
+              <type name="LayoutManager" c:type="ClutterLayoutManager*"/>
+            </parameter>
+            <parameter name="container" transfer-ownership="none">
+              <doc xml:whitespace="preserve">the #ClutterContainer using @manager</doc>
+              <type name="Container" c:type="ClutterContainer*"/>
+            </parameter>
+            <parameter name="allocation" transfer-ownership="none">
+              <doc xml:whitespace="preserve">the #ClutterActorBox containing the allocated area of @container</doc>
+              <type name="ActorBox" c:type="ClutterActorBox*"/>
+            </parameter>
+            <parameter name="flags" transfer-ownership="none">
+              <doc xml:whitespace="preserve">the allocation flags</doc>
+              <type name="AllocationFlags" c:type="ClutterAllocationFlags"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="set_container">
+        <callback name="set_container">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="manager" transfer-ownership="none">
+              <type name="LayoutManager" c:type="ClutterLayoutManager*"/>
+            </parameter>
+            <parameter name="container"
+                       transfer-ownership="none"
+                       allow-none="1">
+              <doc xml:whitespace="preserve">a #ClutterContainer using @manager</doc>
+              <type name="Container" c:type="ClutterContainer*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="get_child_meta_type">
+        <callback name="get_child_meta_type">
+          <return-value transfer-ownership="none">
+            <type name="GType" c:type="GType"/>
+          </return-value>
+          <parameters>
+            <parameter name="manager" transfer-ownership="none">
+              <type name="LayoutManager" c:type="ClutterLayoutManager*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="create_child_meta" introspectable="0">
+        <callback name="create_child_meta" introspectable="0">
+          <return-value>
+            <type name="LayoutMeta" c:type="ClutterLayoutMeta*"/>
+          </return-value>
+          <parameters>
+            <parameter name="manager" transfer-ownership="none">
+              <type name="LayoutManager" c:type="ClutterLayoutManager*"/>
+            </parameter>
+            <parameter name="container" transfer-ownership="none">
+              <type name="Container" c:type="ClutterContainer*"/>
+            </parameter>
+            <parameter name="actor" transfer-ownership="none">
+              <type name="Actor" c:type="ClutterActor*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="begin_animation">
+        <callback name="begin_animation">
+          <return-value transfer-ownership="none">
+            <doc xml:whitespace="preserve">The #ClutterAlpha created by the</doc>
+            <type name="Alpha" c:type="ClutterAlpha*"/>
+          </return-value>
+          <parameters>
+            <parameter name="manager" transfer-ownership="none">
+              <type name="LayoutManager" c:type="ClutterLayoutManager*"/>
+            </parameter>
+            <parameter name="duration" transfer-ownership="none">
+              <doc xml:whitespace="preserve">the duration of the animation, in milliseconds</doc>
+              <type name="guint" c:type="guint"/>
+            </parameter>
+            <parameter name="mode" transfer-ownership="none">
+              <doc xml:whitespace="preserve">the easing mode of the animation</doc>
+              <type name="gulong" c:type="gulong"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="get_animation_progress">
+        <callback name="get_animation_progress">
+          <return-value transfer-ownership="none">
+            <doc xml:whitespace="preserve">the progress of the animation</doc>
+            <type name="gdouble" c:type="gdouble"/>
+          </return-value>
+          <parameters>
+            <parameter name="manager" transfer-ownership="none">
+              <type name="LayoutManager" c:type="ClutterLayoutManager*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="end_animation">
+        <callback name="end_animation">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="manager" transfer-ownership="none">
+              <type name="LayoutManager" c:type="ClutterLayoutManager*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="layout_changed">
+        <callback name="layout_changed">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="manager" transfer-ownership="none">
+              <type name="LayoutManager" c:type="ClutterLayoutManager*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="_clutter_padding_1" introspectable="0">
+        <callback name="_clutter_padding_1">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_padding_2" introspectable="0">
+        <callback name="_clutter_padding_2">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_padding_3" introspectable="0">
+        <callback name="_clutter_padding_3">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_padding_4" introspectable="0">
+        <callback name="_clutter_padding_4">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_padding_5" introspectable="0">
+        <callback name="_clutter_padding_5">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_padding_6" introspectable="0">
+        <callback name="_clutter_padding_6">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_padding_7" introspectable="0">
+        <callback name="_clutter_padding_7">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_padding_8" introspectable="0">
+        <callback name="_clutter_padding_8">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+    </record>
+    <class name="LayoutMeta"
+           c:symbol-prefix="layout_meta"
+           c:type="ClutterLayoutMeta"
+           parent="ChildMeta"
+           abstract="1"
+           glib:type-name="ClutterLayoutMeta"
+           glib:get-type="clutter_layout_meta_get_type"
+           glib:type-struct="LayoutMetaClass">
+      <method name="get_manager"
+              c:identifier="clutter_layout_meta_get_manager"
+              version="1.2">
+        <doc xml:whitespace="preserve">Retrieves the actor wrapped by @data</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #ClutterLayoutManager</doc>
+          <type name="LayoutManager" c:type="ClutterLayoutManager*"/>
+        </return-value>
+      </method>
+      <property name="manager"
+                version="1.2"
+                writable="1"
+                construct-only="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">The #ClutterLayoutManager that created this #ClutterLayoutMeta.</doc>
+        <type name="LayoutManager"/>
+      </property>
+      <field name="parent_instance">
+        <type name="ChildMeta" c:type="ClutterChildMeta"/>
+      </field>
+      <field name="manager">
+        <type name="LayoutManager" c:type="ClutterLayoutManager*"/>
+      </field>
+      <field name="dummy0">
+        <type name="gint32" c:type="gint32"/>
+      </field>
+      <field name="dummy1">
+        <type name="gpointer" c:type="gpointer"/>
+      </field>
+    </class>
+    <record name="LayoutMetaClass"
+            c:type="ClutterLayoutMetaClass"
+            glib:is-gtype-struct-for="LayoutMeta"
+            version="1.2">
+      <doc xml:whitespace="preserve">The #ClutterLayoutMetaClass contains only private data and
+should never be accessed directly</doc>
+      <field name="parent_class">
+        <type name="ChildMetaClass" c:type="ClutterChildMetaClass"/>
+      </field>
+      <field name="_clutter_padding1" introspectable="0">
+        <callback name="_clutter_padding1">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_padding2" introspectable="0">
+        <callback name="_clutter_padding2">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_padding3" introspectable="0">
+        <callback name="_clutter_padding3">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_padding4" introspectable="0">
+        <callback name="_clutter_padding4">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+    </record>
+    <constant name="Lbelowdot" value="16784950">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Lcaron" value="421">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Lcedilla" value="934">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Left" value="65361">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="LightBulb" value="269025077">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Linefeed" value="65290">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="LiraSign" value="16785572">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <class name="ListModel"
+           c:symbol-prefix="list_model"
+           c:type="ClutterListModel"
+           version="0.6"
+           parent="Model"
+           glib:type-name="ClutterListModel"
+           glib:get-type="clutter_list_model_get_type"
+           glib:type-struct="ListModelClass">
+      <doc xml:whitespace="preserve">The #ClutterListModel struct contains only private data.</doc>
+      <implements name="Scriptable"/>
+      <constructor name="new"
+                   c:identifier="clutter_list_model_new"
+                   version="0.6"
+                   introspectable="0">
+        <doc xml:whitespace="preserve">Creates a new default model with @n_columns columns with the types 
+and names passed in.
+For example:
+&lt;informalexample&gt;&lt;programlisting&gt;
+model = clutter_list_model_new (3,
+G_TYPE_INT,      "Score",
+G_TYPE_STRING,   "Team",
+GDK_TYPE_PIXBUF, "Logo");
+&lt;/programlisting&gt;&lt;/informalexample&gt;
+will create a new #ClutterModel with three columns of type int,
+string and #GdkPixbuf respectively.
+Note that the name of the column can be set to %NULL, in which case
+the canonical name of the type held by the column will be used as
+the title.</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">a new #ClutterListModel</doc>
+          <type name="Model" c:type="ClutterModel*"/>
+        </return-value>
+        <parameters>
+          <parameter name="n_columns" transfer-ownership="none">
+            <doc xml:whitespace="preserve">number of columns in the model</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+          <parameter transfer-ownership="none">
+            <varargs>
+            </varargs>
+          </parameter>
+        </parameters>
+      </constructor>
+      <function name="newv"
+                c:identifier="clutter_list_model_newv"
+                version="0.6">
+        <doc xml:whitespace="preserve">Non-vararg version of clutter_list_model_new(). This function is
+useful for language bindings.</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">a new default #ClutterModel</doc>
+          <type name="Model" c:type="ClutterModel*"/>
+        </return-value>
+        <parameters>
+          <parameter name="n_columns" transfer-ownership="none">
+            <doc xml:whitespace="preserve">number of columns in the model</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+          <parameter name="types" transfer-ownership="none">
+            <doc xml:whitespace="preserve">an array of #GType types for the columns, from first to last</doc>
+            <type name="GType" c:type="GType*"/>
+          </parameter>
+          <parameter name="names" transfer-ownership="none">
+            <doc xml:whitespace="preserve">an array of names for the columns, from first to last</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </function>
+      <field name="parent_instance">
+        <type name="Model" c:type="ClutterModel"/>
+      </field>
+      <field name="priv">
+        <type name="ListModelPrivate" c:type="ClutterListModelPrivate*"/>
+      </field>
+    </class>
+    <record name="ListModelClass"
+            c:type="ClutterListModelClass"
+            glib:is-gtype-struct-for="ListModel"
+            version="0.6">
+      <doc xml:whitespace="preserve">The #ClutterListModelClass struct contains only private data.</doc>
+      <field name="parent_class">
+        <type name="ModelClass" c:type="ClutterModelClass"/>
+      </field>
+    </record>
+    <record name="ListModelPrivate"
+            c:type="ClutterListModelPrivate"
+            disguised="1">
+    </record>
+    <constant name="LogOff" value="269025121">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Lstroke" value="419">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="M" value="77">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="MAJOR_VERSION" value="1">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="MICRO_VERSION" value="0">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="MINOR_VERSION" value="4">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Mabovedot" value="16784960">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Macedonia_DSE" value="1717">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Macedonia_GJE" value="1714">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Macedonia_KJE" value="1724">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Macedonia_dse" value="1701">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Macedonia_gje" value="1698">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Macedonia_kje" value="1708">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Mae_Koho" value="65342">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Mail" value="269025049">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="MailForward" value="269025168">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Market" value="269025122">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Massyo" value="65324">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <interface name="Media"
+               c:symbol-prefix="media"
+               c:type="ClutterMedia"
+               version="0.2"
+               glib:type-name="ClutterMedia"
+               glib:get-type="clutter_media_get_type"
+               glib:type-struct="MediaIface">
+      <doc xml:whitespace="preserve">#ClutterMedia is an opaque structure whose members cannot be directly
+accessed</doc>
+      <method name="get_audio_volume"
+              c:identifier="clutter_media_get_audio_volume"
+              version="1.0">
+        <doc xml:whitespace="preserve">Retrieves the playback volume of @media.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">The playback volume between 0.0 and 1.0</doc>
+          <type name="gdouble" c:type="gdouble"/>
+        </return-value>
+      </method>
+      <method name="get_buffer_fill"
+              c:identifier="clutter_media_get_buffer_fill"
+              version="1.0">
+        <doc xml:whitespace="preserve">Retrieves the amount of the stream that is buffered.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the fill level, between 0.0 and 1.0</doc>
+          <type name="gdouble" c:type="gdouble"/>
+        </return-value>
+      </method>
+      <method name="get_can_seek"
+              c:identifier="clutter_media_get_can_seek"
+              version="0.2">
+        <doc xml:whitespace="preserve">Retrieves whether @media is seekable or not.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if @media can seek, %FALSE otherwise.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+      </method>
+      <method name="get_duration"
+              c:identifier="clutter_media_get_duration"
+              version="0.2">
+        <doc xml:whitespace="preserve">Retrieves the duration of the media stream that @media represents.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the duration of the media stream, in seconds</doc>
+          <type name="gdouble" c:type="gdouble"/>
+        </return-value>
+      </method>
+      <method name="get_playing"
+              c:identifier="clutter_media_get_playing"
+              version="0.2">
+        <doc xml:whitespace="preserve">Retrieves the playing status of @media.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if playing, %FALSE if stopped.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+      </method>
+      <method name="get_progress"
+              c:identifier="clutter_media_get_progress"
+              version="1.0">
+        <doc xml:whitespace="preserve">Retrieves the playback progress of @media.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the playback progress, between 0.0 and 1.0</doc>
+          <type name="gdouble" c:type="gdouble"/>
+        </return-value>
+      </method>
+      <method name="get_subtitle_font_name"
+              c:identifier="clutter_media_get_subtitle_font_name"
+              version="1.2">
+        <doc xml:whitespace="preserve">Retrieves the font name currently used.
+to free the returned string</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">a string containing the font name. Use g_free()</doc>
+          <type name="utf8" c:type="gchar*"/>
+        </return-value>
+      </method>
+      <method name="get_subtitle_uri"
+              c:identifier="clutter_media_get_subtitle_uri"
+              version="1.2">
+        <doc xml:whitespace="preserve">Retrieves the URI of the subtitle file in use.
+to free the returned string</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">the URI of the subtitle file. Use g_free()</doc>
+          <type name="utf8" c:type="gchar*"/>
+        </return-value>
+      </method>
+      <method name="get_uri"
+              c:identifier="clutter_media_get_uri"
+              version="0.2">
+        <doc xml:whitespace="preserve">Retrieves the URI from @media.
+to free the returned string</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">the URI of the media stream. Use g_free()</doc>
+          <type name="utf8" c:type="gchar*"/>
+        </return-value>
+      </method>
+      <method name="set_audio_volume"
+              c:identifier="clutter_media_set_audio_volume"
+              version="1.0">
+        <doc xml:whitespace="preserve">Sets the playback volume of @media to @volume.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="volume" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the volume as a double between 0.0 and 1.0</doc>
+            <type name="gdouble" c:type="gdouble"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_filename"
+              c:identifier="clutter_media_set_filename"
+              version="0.2">
+        <doc xml:whitespace="preserve">Sets the source of @media using a file path.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="filename" transfer-ownership="none">
+            <doc xml:whitespace="preserve">A filename</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_playing"
+              c:identifier="clutter_media_set_playing"
+              version="0.2">
+        <doc xml:whitespace="preserve">Starts or stops playing of @media.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="playing" transfer-ownership="none">
+            <doc xml:whitespace="preserve">%TRUE to start playing</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_progress"
+              c:identifier="clutter_media_set_progress"
+              version="1.0">
+        <doc xml:whitespace="preserve">Sets the playback progress of @media. The @progress is
+a normalized value between 0.0 (begin) and 1.0 (end).</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="progress" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the progress of the playback, between 0.0 and 1.0</doc>
+            <type name="gdouble" c:type="gdouble"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_subtitle_font_name"
+              c:identifier="clutter_media_set_subtitle_font_name"
+              version="1.2">
+        <doc xml:whitespace="preserve">Sets the font used by the subtitle renderer. The @font_name string must be
+either %NULL, which means that the default font name of the underlying
+implementation will be used; or must follow the grammar recognized by
+pango_font_description_from_string() like:
+|[
+clutter_media_set_subtitle_font_name (media, "Sans 24pt");
+]|</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="font_name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a font name, or %NULL to set the default font name</doc>
+            <type name="utf8" c:type="char*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_subtitle_uri"
+              c:identifier="clutter_media_set_subtitle_uri"
+              version="1.2">
+        <doc xml:whitespace="preserve">Sets the location of a subtitle file to display while playing @media.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="uri" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the URI of a subtitle file</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_uri"
+              c:identifier="clutter_media_set_uri"
+              version="0.2">
+        <doc xml:whitespace="preserve">Sets the URI of @media to @uri.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="uri" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the URI of the media stream</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <property name="audio-volume"
+                version="1.0"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">The volume of the audio, as a normalized value between
+0.0 and 1.0.</doc>
+        <type name="gdouble"/>
+      </property>
+      <property name="buffer-fill" version="1.0" transfer-ownership="none">
+        <doc xml:whitespace="preserve">The fill level of the buffer for the current stream,
+as a value between 0.0 and 1.0.</doc>
+        <type name="gdouble"/>
+      </property>
+      <property name="can-seek" version="0.2" transfer-ownership="none">
+        <doc xml:whitespace="preserve">Whether the current stream is seekable.</doc>
+        <type name="gboolean"/>
+      </property>
+      <property name="duration" version="0.2" transfer-ownership="none">
+        <doc xml:whitespace="preserve">The duration of the current stream, in seconds</doc>
+        <type name="gdouble"/>
+      </property>
+      <property name="playing"
+                version="0.2"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">Whether the #ClutterMedia actor is playing.</doc>
+        <type name="gboolean"/>
+      </property>
+      <property name="progress"
+                version="1.0"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">The current progress of the playback, as a normalized
+value between 0.0 and 1.0.</doc>
+        <type name="gdouble"/>
+      </property>
+      <property name="subtitle-font-name"
+                version="1.2"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">The font used to display subtitles. The font description has to
+follow the same grammar as the one recognized by
+pango_font_description_from_string().</doc>
+        <type name="utf8"/>
+      </property>
+      <property name="subtitle-uri"
+                version="1.2"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">The location of a subtitle file, expressed as a valid URI.</doc>
+        <type name="utf8"/>
+      </property>
+      <property name="uri"
+                version="0.2"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">The location of a media file, expressed as a valid URI.</doc>
+        <type name="utf8"/>
+      </property>
+      <glib:signal name="eos" version="0.2">
+        <doc xml:whitespace="preserve">The ::eos signal is emitted each time the media stream ends.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none"/>
+        </return-value>
+      </glib:signal>
+      <glib:signal name="error" version="0.2">
+        <doc xml:whitespace="preserve">The ::error signal is emitted each time an error occurred.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none"/>
+        </return-value>
+        <parameters>
+          <parameter name="object" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the #GError</doc>
+            <type name="gpointer"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+    </interface>
+    <record name="MediaIface"
+            c:type="ClutterMediaIface"
+            glib:is-gtype-struct-for="Media"
+            version="0.2">
+      <doc xml:whitespace="preserve">Interface vtable for #ClutterMedia implementations</doc>
+      <field name="base_iface">
+        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
+      </field>
+      <field name="eos">
+        <callback name="eos">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="media" transfer-ownership="none">
+              <type name="Media" c:type="ClutterMedia*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="error">
+        <callback name="error">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="media" transfer-ownership="none">
+              <type name="Media" c:type="ClutterMedia*"/>
+            </parameter>
+            <parameter name="error" transfer-ownership="none">
+              <type name="GLib.Error" c:type="GError*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+    </record>
+    <constant name="Meeting" value="269025123">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Memo" value="269025054">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Menu" value="65383">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="MenuKB" value="269025125">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="MenuPB" value="269025126">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Messenger" value="269025166">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Meta_L" value="65511">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Meta_R" value="65512">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="MillSign" value="16785573">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ModeLock" value="269025025">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Mode_switch" value="65406">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <class name="Model"
+           c:symbol-prefix="model"
+           c:type="ClutterModel"
+           version="0.6"
+           parent="GObject.Object"
+           abstract="1"
+           glib:type-name="ClutterModel"
+           glib:get-type="clutter_model_get_type"
+           glib:type-struct="ModelClass">
+      <doc xml:whitespace="preserve">Base class for list models. The #ClutterModel structure contains
+only private data and should be manipulated using the provided
+API.</doc>
+      <implements name="Scriptable"/>
+      <virtual-method name="get_column_name"
+                      invoker="get_column_name"
+                      version="0.6">
+        <doc xml:whitespace="preserve">Retrieves the name of the @column
+string, and it should not be modified or freed</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the name of the column. The model holds the returned</doc>
+          <type name="utf8" c:type="gchar*"/>
+        </return-value>
+        <parameters>
+          <parameter name="column" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the column number</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="get_column_type"
+                      invoker="get_column_type"
+                      version="0.6">
+        <doc xml:whitespace="preserve">Retrieves the type of the @column.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the type of the column.</doc>
+          <type name="GType" c:type="GType"/>
+        </return-value>
+        <parameters>
+          <parameter name="column" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the column number</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="get_iter_at_row"
+                      invoker="get_iter_at_row"
+                      version="0.6">
+        <doc xml:whitespace="preserve">Retrieves a #ClutterModelIter representing the row at the given index.
+If a filter function has been set using clutter_model_set_filter()
+then the @model implementation will return the first non filtered
+row.
+out of bounds. When done using the iterator object, call g_object_unref()
+to deallocate its resources</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">A new #ClutterModelIter, or %NULL if @row was</doc>
+          <type name="ModelIter" c:type="ClutterModelIter*"/>
+        </return-value>
+        <parameters>
+          <parameter name="row" transfer-ownership="none">
+            <doc xml:whitespace="preserve">position of the row to retrieve</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="get_n_columns"
+                      invoker="get_n_columns"
+                      version="0.6">
+        <doc xml:whitespace="preserve">Retrieves the number of columns inside @model.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the number of columns</doc>
+          <type name="guint" c:type="guint"/>
+        </return-value>
+      </virtual-method>
+      <virtual-method name="get_n_rows" invoker="get_n_rows" version="0.6">
+        <doc xml:whitespace="preserve">Retrieves the number of rows inside @model, eventually taking
+into account any filtering function set using clutter_model_set_filter().
+the length of the filtered @model is returned.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">The length of the @model. If there is a filter set, then</doc>
+          <type name="guint" c:type="guint"/>
+        </return-value>
+      </virtual-method>
+      <virtual-method name="insert_row" introspectable="0">
+        <return-value>
+          <type name="ModelIter" c:type="ClutterModelIter*"/>
+        </return-value>
+        <parameters>
+          <parameter name="index_" transfer-ownership="none">
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="remove_row">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="row" transfer-ownership="none">
+            <type name="guint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="resort" introspectable="0">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="func" transfer-ownership="none" closure="1">
+            <type name="ModelSortFunc" c:type="ClutterModelSortFunc"/>
+          </parameter>
+          <parameter name="data" transfer-ownership="none">
+            <type name="gpointer" c:type="gpointer"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <method name="append"
+              c:identifier="clutter_model_append"
+              version="0.6"
+              introspectable="0">
+        <doc xml:whitespace="preserve">Creates and appends a new row to the #ClutterModel, setting the
+row values upon creation. For example, to append a new row where
+column 0 is type %G_TYPE_INT and column 1 is of type %G_TYPE_STRING:
+&lt;informalexample&gt;&lt;programlisting&gt;
+ClutterModel *model;
+model = clutter_model_default_new (2,
+G_TYPE_INT,    "Score",
+G_TYPE_STRING, "Team");
+clutter_model_append (model, 0, 42, 1, "Team #1", -1);
+&lt;/programlisting&gt;&lt;/informalexample&gt;</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter transfer-ownership="none">
+            <varargs>
+            </varargs>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="appendv"
+              c:identifier="clutter_model_appendv"
+              version="0.6">
+        <doc xml:whitespace="preserve">Creates and appends a new row to the #ClutterModel, setting the row
+values for the given @columns upon creation.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="n_columns" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the number of columns and values</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+          <parameter name="columns" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a vector with the columns to set</doc>
+            <array length="0" c:type="guint*">
+              <type name="guint"/>
+            </array>
+          </parameter>
+          <parameter name="values" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a vector with the values</doc>
+            <array length="0" c:type="GValue*">
+              <type name="GObject.Value"/>
+            </array>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="filter_iter"
+              c:identifier="clutter_model_filter_iter"
+              version="0.6">
+        <doc xml:whitespace="preserve">Checks whether the row pointer by @iter should be filtered or not using
+the filtering function set on @model.
+This function should be used only by subclasses of #ClutterModel.
+%FALSE otherwise</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if the row should be displayed,</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="iter" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the row to filter</doc>
+            <type name="ModelIter" c:type="ClutterModelIter*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="filter_row"
+              c:identifier="clutter_model_filter_row"
+              version="0.6">
+        <doc xml:whitespace="preserve">Checks whether @row should be filtered or not using the
+filtering function set on @model.
+This function should be used only by subclasses of #ClutterModel.
+%FALSE otherwise</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if the row should be displayed,</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="row" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the row to filter</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="foreach"
+              c:identifier="clutter_model_foreach"
+              version="0.6">
+        <doc xml:whitespace="preserve">Calls @func for each row in the model.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="func"
+                     transfer-ownership="none"
+                     scope="call"
+                     closure="1">
+            <doc xml:whitespace="preserve">a #ClutterModelForeachFunc</doc>
+            <type name="ModelForeachFunc" c:type="ClutterModelForeachFunc"/>
+          </parameter>
+          <parameter name="user_data" transfer-ownership="none">
+            <doc xml:whitespace="preserve">user data to pass to @func</doc>
+            <type name="gpointer" c:type="gpointer"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_column_name"
+              c:identifier="clutter_model_get_column_name"
+              version="0.6">
+        <doc xml:whitespace="preserve">Retrieves the name of the @column
+string, and it should not be modified or freed</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the name of the column. The model holds the returned</doc>
+          <type name="utf8" c:type="gchar*"/>
+        </return-value>
+        <parameters>
+          <parameter name="column" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the column number</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_column_type"
+              c:identifier="clutter_model_get_column_type"
+              version="0.6">
+        <doc xml:whitespace="preserve">Retrieves the type of the @column.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the type of the column.</doc>
+          <type name="GType" c:type="GType"/>
+        </return-value>
+        <parameters>
+          <parameter name="column" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the column number</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_filter_set"
+              c:identifier="clutter_model_get_filter_set"
+              version="1.0">
+        <doc xml:whitespace="preserve">Returns whether the @model has a filter in place, set
+using clutter_model_set_filter()</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if a filter is set</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+      </method>
+      <method name="get_first_iter"
+              c:identifier="clutter_model_get_first_iter"
+              version="0.6">
+        <doc xml:whitespace="preserve">Retrieves a #ClutterModelIter representing the first non-filtered
+row in @model.
+Call g_object_unref() when done using it</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">A new #ClutterModelIter.</doc>
+          <type name="ModelIter" c:type="ClutterModelIter*"/>
+        </return-value>
+      </method>
+      <method name="get_iter_at_row"
+              c:identifier="clutter_model_get_iter_at_row"
+              version="0.6">
+        <doc xml:whitespace="preserve">Retrieves a #ClutterModelIter representing the row at the given index.
+If a filter function has been set using clutter_model_set_filter()
+then the @model implementation will return the first non filtered
+row.
+out of bounds. When done using the iterator object, call g_object_unref()
+to deallocate its resources</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">A new #ClutterModelIter, or %NULL if @row was</doc>
+          <type name="ModelIter" c:type="ClutterModelIter*"/>
+        </return-value>
+        <parameters>
+          <parameter name="row" transfer-ownership="none">
+            <doc xml:whitespace="preserve">position of the row to retrieve</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_last_iter"
+              c:identifier="clutter_model_get_last_iter"
+              version="0.6">
+        <doc xml:whitespace="preserve">Retrieves a #ClutterModelIter representing the last non-filtered
+row in @model.
+Call g_object_unref() when done using it</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">A new #ClutterModelIter.</doc>
+          <type name="ModelIter" c:type="ClutterModelIter*"/>
+        </return-value>
+      </method>
+      <method name="get_n_columns"
+              c:identifier="clutter_model_get_n_columns"
+              version="0.6">
+        <doc xml:whitespace="preserve">Retrieves the number of columns inside @model.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the number of columns</doc>
+          <type name="guint" c:type="guint"/>
+        </return-value>
+      </method>
+      <method name="get_n_rows"
+              c:identifier="clutter_model_get_n_rows"
+              version="0.6">
+        <doc xml:whitespace="preserve">Retrieves the number of rows inside @model, eventually taking
+into account any filtering function set using clutter_model_set_filter().
+the length of the filtered @model is returned.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">The length of the @model. If there is a filter set, then</doc>
+          <type name="guint" c:type="guint"/>
+        </return-value>
+      </method>
+      <method name="get_sorting_column"
+              c:identifier="clutter_model_get_sorting_column"
+              version="0.6">
+        <doc xml:whitespace="preserve">Retrieves the number of column used for sorting the @model.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">a column number, or -1 if the model is not sorted</doc>
+          <type name="gint" c:type="gint"/>
+        </return-value>
+      </method>
+      <method name="insert"
+              c:identifier="clutter_model_insert"
+              version="0.6"
+              introspectable="0">
+        <doc xml:whitespace="preserve">Inserts a new row to the #ClutterModel at @row, setting the row
+values upon creation. For example, to insert a new row at index 100,
+where column 0 is type %G_TYPE_INT and column 1 is of type
+%G_TYPE_STRING:
+&lt;informalexample&gt;&lt;programlisting&gt;
+ClutterModel *model;
+model = clutter_model_default_new (2,
+G_TYPE_INT,    "Score",
+G_TYPE_STRING, "Team");
+clutter_model_insert (model, 3, 0, 42, 1, "Team #1", -1);
+&lt;/programlisting&gt;&lt;/informalexample&gt;</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="row" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the position to insert the new row</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+          <parameter transfer-ownership="none">
+            <varargs>
+            </varargs>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="insert_value"
+              c:identifier="clutter_model_insert_value"
+              version="0.6">
+        <doc xml:whitespace="preserve">Sets the data in the cell specified by @iter and @column. The type of 
+not exist then it is created.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="row" transfer-ownership="none">
+            <doc xml:whitespace="preserve">position of the row to modify</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+          <parameter name="column" transfer-ownership="none">
+            <doc xml:whitespace="preserve">column to modify</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+          <parameter name="value" transfer-ownership="none">
+            <doc xml:whitespace="preserve">new value for the cell</doc>
+            <type name="GObject.Value" c:type="GValue*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="insertv"
+              c:identifier="clutter_model_insertv"
+              version="0.6">
+        <doc xml:whitespace="preserve">Inserts data at @row into the #ClutterModel, setting the row
+values for the given @columns upon creation.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="row" transfer-ownership="none">
+            <doc xml:whitespace="preserve">row index</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+          <parameter name="n_columns" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the number of columns and values to set</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+          <parameter name="columns" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a vector containing the columns to set</doc>
+            <array length="1" c:type="guint*">
+              <type name="guint"/>
+            </array>
+          </parameter>
+          <parameter name="values" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a vector containing the values for the cells</doc>
+            <array length="1" c:type="GValue*">
+              <type name="GObject.Value"/>
+            </array>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="prepend"
+              c:identifier="clutter_model_prepend"
+              version="0.6"
+              introspectable="0">
+        <doc xml:whitespace="preserve">Creates and prepends a new row to the #ClutterModel, setting the row
+values upon creation. For example, to prepend a new row where column 0
+is type %G_TYPE_INT and column 1 is of type %G_TYPE_STRING:
+&lt;informalexample&gt;&lt;programlisting&gt;
+ClutterModel *model;
+model = clutter_model_default_new (2,
+G_TYPE_INT,    "Score",
+G_TYPE_STRING, "Team");
+clutter_model_prepend (model, 0, 42, 1, "Team #1", -1);
+&lt;/programlisting&gt;&lt;/informalexample&gt;</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter transfer-ownership="none">
+            <varargs>
+            </varargs>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="prependv"
+              c:identifier="clutter_model_prependv"
+              version="0.6">
+        <doc xml:whitespace="preserve">Creates and prepends a new row to the #ClutterModel, setting the row
+values for the given @columns upon creation.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="n_columns" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the number of columns and values to set</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+          <parameter name="columns" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a vector containing the columns to set</doc>
+            <array length="0" c:type="guint*">
+              <type name="guint"/>
+            </array>
+          </parameter>
+          <parameter name="values" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a vector containing the values for the cells</doc>
+            <array length="0" c:type="GValue*">
+              <type name="GObject.Value"/>
+            </array>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="remove" c:identifier="clutter_model_remove" version="0.6">
+        <doc xml:whitespace="preserve">Removes the row at the given position from the model.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="row" transfer-ownership="none">
+            <doc xml:whitespace="preserve">position of row to remove</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="resort" c:identifier="clutter_model_resort" version="0.6">
+        <doc xml:whitespace="preserve">Force a resort on the @model. This function should only be
+used by subclasses of #ClutterModel.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </method>
+      <method name="set_filter"
+              c:identifier="clutter_model_set_filter"
+              version="0.6">
+        <doc xml:whitespace="preserve">Filters the @model using the given filtering function.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="func"
+                     transfer-ownership="none"
+                     scope="notified"
+                     closure="1"
+                     destroy="2">
+            <doc xml:whitespace="preserve">a #ClutterModelFilterFunc, or #NULL</doc>
+            <type name="ModelFilterFunc" c:type="ClutterModelFilterFunc"/>
+          </parameter>
+          <parameter name="user_data" transfer-ownership="none">
+            <doc xml:whitespace="preserve">user data to pass to @func, or #NULL</doc>
+            <type name="gpointer" c:type="gpointer"/>
+          </parameter>
+          <parameter name="notify" transfer-ownership="none" scope="async">
+            <doc xml:whitespace="preserve">destroy notifier of @user_data, or #NULL</doc>
+            <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_names"
+              c:identifier="clutter_model_set_names"
+              version="0.6">
+        <doc xml:whitespace="preserve">Assigns a name to the columns of a #ClutterModel.
+This function is meant primarily for #GObjects that inherit from
+#ClutterModel, and should only be used when contructing a #ClutterModel.
+It will not work after the initial creation of the #ClutterModel.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="n_columns" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the number of column names</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+          <parameter name="names" transfer-ownership="none">
+            <doc xml:whitespace="preserve">an array of strings</doc>
+            <array length="0" c:type="gchar*">
+              <type name="utf8"/>
+            </array>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_sort"
+              c:identifier="clutter_model_set_sort"
+              version="0.6">
+        <doc xml:whitespace="preserve">Sorts @model using the given sorting function.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="column" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the column to sort on</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+          <parameter name="func"
+                     transfer-ownership="none"
+                     scope="notified"
+                     closure="2"
+                     destroy="3">
+            <doc xml:whitespace="preserve">a #ClutterModelSortFunc, or #NULL</doc>
+            <type name="ModelSortFunc" c:type="ClutterModelSortFunc"/>
+          </parameter>
+          <parameter name="user_data" transfer-ownership="none">
+            <doc xml:whitespace="preserve">user data to pass to @func, or #NULL</doc>
+            <type name="gpointer" c:type="gpointer"/>
+          </parameter>
+          <parameter name="notify" transfer-ownership="none" scope="async">
+            <doc xml:whitespace="preserve">destroy notifier of @user_data, or #NULL</doc>
+            <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_sorting_column"
+              c:identifier="clutter_model_set_sorting_column"
+              version="0.6">
+        <doc xml:whitespace="preserve">Sets the model to sort by @column. If @column is a negative value
+the sorting column will be unset.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="column" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the column of the @model to sort, or -1</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_types"
+              c:identifier="clutter_model_set_types"
+              version="0.6">
+        <doc xml:whitespace="preserve">Sets the types of the columns inside a #ClutterModel.
+This function is meant primarily for #GObjects that inherit from
+#ClutterModel, and should only be used when contructing a #ClutterModel.
+It will not work after the initial creation of the #ClutterModel.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="n_columns" transfer-ownership="none">
+            <doc xml:whitespace="preserve">number of columns for the model</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+          <parameter name="types" transfer-ownership="none">
+            <doc xml:whitespace="preserve">an array of #GType types</doc>
+            <array length="0" c:type="GType*">
+              <type name="GType"/>
+            </array>
+          </parameter>
+        </parameters>
+      </method>
+      <property name="filter-set" version="1.0" transfer-ownership="none">
+        <doc xml:whitespace="preserve">Whether the #ClutterModel has a filter set
+This property is set to %TRUE if a filter function has been
+set using clutter_model_set_filter()</doc>
+        <type name="gboolean"/>
+      </property>
+      <field name="parent_instance">
+        <type name="GObject.Object" c:type="GObject"/>
+      </field>
+      <field name="priv">
+        <type name="ModelPrivate" c:type="ClutterModelPrivate*"/>
+      </field>
+      <glib:signal name="filter-changed" version="0.6">
+        <doc xml:whitespace="preserve">The ::filter-changed signal is emitted when a new filter has been applied</doc>
+        <return-value transfer-ownership="none">
+          <type name="none"/>
+        </return-value>
+      </glib:signal>
+      <glib:signal name="row-added" version="0.6">
+        <doc xml:whitespace="preserve">The ::row-added signal is emitted when a new row has been added.
+The data on the row has already been set when the ::row-added signal
+has been emitted.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none"/>
+        </return-value>
+        <parameters>
+          <parameter name="object" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #ClutterModelIter pointing to the new row</doc>
+            <type name="ModelIter"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="row-changed" version="0.6">
+        <doc xml:whitespace="preserve">The ::row-removed signal is emitted when a row has been changed.
+The data on the row has already been updated when the ::row-changed
+signal has been emitted.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none"/>
+        </return-value>
+        <parameters>
+          <parameter name="object" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #ClutterModelIter pointing to the changed row</doc>
+            <type name="ModelIter"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="row-removed" version="0.6">
+        <doc xml:whitespace="preserve">The ::row-removed signal is emitted when a row has been removed.
+The data on the row pointed by the passed iterator is still valid
+when the ::row-removed signal has been emitted.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none"/>
+        </return-value>
+        <parameters>
+          <parameter name="object" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #ClutterModelIter pointing to the removed row</doc>
+            <type name="ModelIter"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="sort-changed" version="0.6">
+        <doc xml:whitespace="preserve">The ::sort-changed signal is emitted after the model has been sorted</doc>
+        <return-value transfer-ownership="none">
+          <type name="none"/>
+        </return-value>
+      </glib:signal>
+    </class>
+    <record name="ModelClass"
+            c:type="ClutterModelClass"
+            glib:is-gtype-struct-for="Model"
+            version="0.6">
+      <doc xml:whitespace="preserve">Class for #ClutterModel instances.</doc>
+      <field name="parent_class">
+        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
+      </field>
+      <field name="get_n_rows">
+        <callback name="get_n_rows">
+          <return-value transfer-ownership="none">
+            <doc xml:whitespace="preserve">The length of the @model. If there is a filter set, then</doc>
+            <type name="guint" c:type="guint"/>
+          </return-value>
+          <parameters>
+            <parameter name="model" transfer-ownership="none">
+              <type name="Model" c:type="ClutterModel*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="get_n_columns">
+        <callback name="get_n_columns">
+          <return-value transfer-ownership="none">
+            <doc xml:whitespace="preserve">the number of columns</doc>
+            <type name="guint" c:type="guint"/>
+          </return-value>
+          <parameters>
+            <parameter name="model" transfer-ownership="none">
+              <type name="Model" c:type="ClutterModel*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="get_column_name">
+        <callback name="get_column_name">
+          <return-value transfer-ownership="none">
+            <doc xml:whitespace="preserve">the name of the column. The model holds the returned</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </return-value>
+          <parameters>
+            <parameter name="model" transfer-ownership="none">
+              <type name="Model" c:type="ClutterModel*"/>
+            </parameter>
+            <parameter name="column" transfer-ownership="none">
+              <doc xml:whitespace="preserve">the column number</doc>
+              <type name="guint" c:type="guint"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="get_column_type">
+        <callback name="get_column_type">
+          <return-value transfer-ownership="none">
+            <doc xml:whitespace="preserve">the type of the column.</doc>
+            <type name="GType" c:type="GType"/>
+          </return-value>
+          <parameters>
+            <parameter name="model" transfer-ownership="none">
+              <type name="Model" c:type="ClutterModel*"/>
+            </parameter>
+            <parameter name="column" transfer-ownership="none">
+              <doc xml:whitespace="preserve">the column number</doc>
+              <type name="guint" c:type="guint"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="insert_row" introspectable="0">
+        <callback name="insert_row" introspectable="0">
+          <return-value>
+            <type name="ModelIter" c:type="ClutterModelIter*"/>
+          </return-value>
+          <parameters>
+            <parameter name="model" transfer-ownership="none">
+              <type name="Model" c:type="ClutterModel*"/>
+            </parameter>
+            <parameter name="index_" transfer-ownership="none">
+              <type name="gint" c:type="gint"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="remove_row">
+        <callback name="remove_row">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="model" transfer-ownership="none">
+              <type name="Model" c:type="ClutterModel*"/>
+            </parameter>
+            <parameter name="row" transfer-ownership="none">
+              <type name="guint" c:type="guint"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="get_iter_at_row">
+        <callback name="get_iter_at_row">
+          <return-value transfer-ownership="full">
+            <doc xml:whitespace="preserve">A new #ClutterModelIter, or %NULL if @row was</doc>
+            <type name="ModelIter" c:type="ClutterModelIter*"/>
+          </return-value>
+          <parameters>
+            <parameter name="model" transfer-ownership="none">
+              <type name="Model" c:type="ClutterModel*"/>
+            </parameter>
+            <parameter name="row" transfer-ownership="none">
+              <doc xml:whitespace="preserve">position of the row to retrieve</doc>
+              <type name="guint" c:type="guint"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="resort" introspectable="0">
+        <callback name="resort" introspectable="0">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="model" transfer-ownership="none">
+              <type name="Model" c:type="ClutterModel*"/>
+            </parameter>
+            <parameter name="func" transfer-ownership="none" closure="2">
+              <type name="ModelSortFunc" c:type="ClutterModelSortFunc"/>
+            </parameter>
+            <parameter name="data" transfer-ownership="none">
+              <type name="gpointer" c:type="gpointer"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="row_added">
+        <callback name="row_added">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="model" transfer-ownership="none">
+              <type name="Model" c:type="ClutterModel*"/>
+            </parameter>
+            <parameter name="iter" transfer-ownership="none">
+              <type name="ModelIter" c:type="ClutterModelIter*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="row_removed">
+        <callback name="row_removed">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="model" transfer-ownership="none">
+              <type name="Model" c:type="ClutterModel*"/>
+            </parameter>
+            <parameter name="iter" transfer-ownership="none">
+              <type name="ModelIter" c:type="ClutterModelIter*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="row_changed">
+        <callback name="row_changed">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="model" transfer-ownership="none">
+              <type name="Model" c:type="ClutterModel*"/>
+            </parameter>
+            <parameter name="iter" transfer-ownership="none">
+              <type name="ModelIter" c:type="ClutterModelIter*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="sort_changed">
+        <callback name="sort_changed">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="model" transfer-ownership="none">
+              <type name="Model" c:type="ClutterModel*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="filter_changed">
+        <callback name="filter_changed">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="model" transfer-ownership="none">
+              <type name="Model" c:type="ClutterModel*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="_clutter_model_1" introspectable="0">
+        <callback name="_clutter_model_1">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_model_2" introspectable="0">
+        <callback name="_clutter_model_2">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_model_3" introspectable="0">
+        <callback name="_clutter_model_3">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_model_4" introspectable="0">
+        <callback name="_clutter_model_4">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_model_5" introspectable="0">
+        <callback name="_clutter_model_5">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_model_6" introspectable="0">
+        <callback name="_clutter_model_6">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_model_7" introspectable="0">
+        <callback name="_clutter_model_7">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_model_8" introspectable="0">
+        <callback name="_clutter_model_8">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+    </record>
+    <callback name="ModelFilterFunc"
+              c:type="ClutterModelFilterFunc"
+              version="0.6">
+      <doc xml:whitespace="preserve">Filters the content of a row in the model.</doc>
+      <return-value transfer-ownership="none">
+        <doc xml:whitespace="preserve">If the row should be displayed, return %TRUE</doc>
+        <type name="gboolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="model" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #ClutterModel</doc>
+          <type name="Model" c:type="ClutterModel*"/>
+        </parameter>
+        <parameter name="iter" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the iterator for the row</doc>
+          <type name="ModelIter" c:type="ClutterModelIter*"/>
+        </parameter>
+        <parameter name="user_data" transfer-ownership="none" closure="2">
+          <doc xml:whitespace="preserve">data passed to clutter_model_set_filter()</doc>
+          <type name="gpointer" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <callback name="ModelForeachFunc"
+              c:type="ClutterModelForeachFunc"
+              version="0.6">
+      <doc xml:whitespace="preserve">Iterates on the content of a row in the model</doc>
+      <return-value transfer-ownership="none">
+        <doc xml:whitespace="preserve">%TRUE if the iteration should continue, %FALSE otherwise</doc>
+        <type name="gboolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="model" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #ClutterModel</doc>
+          <type name="Model" c:type="ClutterModel*"/>
+        </parameter>
+        <parameter name="iter" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the iterator for the row</doc>
+          <type name="ModelIter" c:type="ClutterModelIter*"/>
+        </parameter>
+        <parameter name="user_data" transfer-ownership="none" closure="2">
+          <doc xml:whitespace="preserve">data passed to clutter_model_foreach()</doc>
+          <type name="gpointer" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <class name="ModelIter"
+           c:symbol-prefix="model_iter"
+           c:type="ClutterModelIter"
+           version="0.6"
+           parent="GObject.Object"
+           abstract="1"
+           glib:type-name="ClutterModelIter"
+           glib:get-type="clutter_model_iter_get_type"
+           glib:type-struct="ModelIterClass">
+      <doc xml:whitespace="preserve">Base class for list models iters. The #ClutterModelIter structure
+contains only private data and should be manipulated using the
+provided API.</doc>
+      <virtual-method name="copy" invoker="copy" version="0.8">
+        <doc xml:whitespace="preserve">Copies the passed iterator.</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">a copy of the iterator, or %NULL</doc>
+          <type name="ModelIter" c:type="ClutterModelIter*"/>
+        </return-value>
+      </virtual-method>
+      <virtual-method name="get_model" invoker="get_model" version="0.6">
+        <doc xml:whitespace="preserve">Retrieves a pointer to the #ClutterModel that this iter is part of.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">a pointer to a #ClutterModel.</doc>
+          <type name="Model" c:type="ClutterModel*"/>
+        </return-value>
+      </virtual-method>
+      <virtual-method name="get_row" invoker="get_row" version="0.6">
+        <doc xml:whitespace="preserve">Retrieves the position of the row that the @iter points to.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the position of the @iter in the model</doc>
+          <type name="guint" c:type="guint"/>
+        </return-value>
+      </virtual-method>
+      <virtual-method name="get_value" invoker="get_value" version="0.6">
+        <doc xml:whitespace="preserve">Sets an initializes @value to that at @column. When done with @value, 
+g_value_unset() needs to be called to free any allocated memory.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="column" transfer-ownership="none">
+            <doc xml:whitespace="preserve">column number to retrieve the value from</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+          <parameter name="value" transfer-ownership="none">
+            <doc xml:whitespace="preserve">an empty #GValue to set</doc>
+            <type name="GObject.Value" c:type="GValue*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="is_first" invoker="is_first" version="0.6">
+        <doc xml:whitespace="preserve">Gets whether the current iterator is at the beginning of the model
+to which it belongs.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">#TRUE if @iter is the first iter in the filtered model</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+      </virtual-method>
+      <virtual-method name="is_last" invoker="is_last" version="0.6">
+        <doc xml:whitespace="preserve">Gets whether the iterator is at the end of the model to which it
+belongs.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">#TRUE if @iter is the last iter in the filtered model.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+      </virtual-method>
+      <virtual-method name="next" invoker="next" version="0.6">
+        <doc xml:whitespace="preserve">Updates the @iter to point at the next position in the model.
+The model implementation should take into account the presence of
+a filter function.
+row in the model.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">The passed iterator, updated to point at the next</doc>
+          <type name="ModelIter" c:type="ClutterModelIter*"/>
+        </return-value>
+      </virtual-method>
+      <virtual-method name="prev" invoker="prev" version="0.6">
+        <doc xml:whitespace="preserve">Sets the @iter to point at the previous position in the model.
+The model implementation should take into account the presence of
+a filter function.
+row in the model.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">The passed iterator, updated to point at the previous</doc>
+          <type name="ModelIter" c:type="ClutterModelIter*"/>
+        </return-value>
+      </virtual-method>
+      <virtual-method name="set_value" invoker="set_value" version="0.6">
+        <doc xml:whitespace="preserve">Sets the data in the cell specified by @iter and @column. The type of</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="column" transfer-ownership="none">
+            <doc xml:whitespace="preserve">column number to retrieve the value from</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+          <parameter name="value" transfer-ownership="none">
+            <doc xml:whitespace="preserve">new value for the cell</doc>
+            <type name="GObject.Value" c:type="GValue*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <method name="copy" c:identifier="clutter_model_iter_copy" version="0.8">
+        <doc xml:whitespace="preserve">Copies the passed iterator.</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">a copy of the iterator, or %NULL</doc>
+          <type name="ModelIter" c:type="ClutterModelIter*"/>
+        </return-value>
+      </method>
+      <method name="get"
+              c:identifier="clutter_model_iter_get"
+              version="0.6"
+              introspectable="0">
+        <doc xml:whitespace="preserve">Gets the value of one or more cells in the row referenced by @iter. The
+variable argument list should contain integer column numbers, each column
+column number followed by a place to store the value being retrieved. The
+list is terminated by a -1.
+For example, to get a value from column 0 with type %G_TYPE_STRING use:
+&lt;informalexample&gt;&lt;programlisting&gt;
+clutter_model_iter_get (iter, 0, &amp;place_string_here, -1);
+&lt;/programlisting&gt;&lt;/informalexample&gt;
+where place_string_here is a gchar* to be filled with the string. If
+appropriate, the returned values have to be freed or unreferenced.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter transfer-ownership="none">
+            <varargs>
+            </varargs>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_model"
+              c:identifier="clutter_model_iter_get_model"
+              version="0.6">
+        <doc xml:whitespace="preserve">Retrieves a pointer to the #ClutterModel that this iter is part of.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">a pointer to a #ClutterModel.</doc>
+          <type name="Model" c:type="ClutterModel*"/>
+        </return-value>
+      </method>
+      <method name="get_row"
+              c:identifier="clutter_model_iter_get_row"
+              version="0.6">
+        <doc xml:whitespace="preserve">Retrieves the position of the row that the @iter points to.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the position of the @iter in the model</doc>
+          <type name="guint" c:type="guint"/>
+        </return-value>
+      </method>
+      <method name="get_valist"
+              c:identifier="clutter_model_iter_get_valist"
+              version="0.6"
+              introspectable="0">
+        <doc xml:whitespace="preserve">See clutter_model_iter_get(). This version takes a va_list for language
+bindings.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="args" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a list of column/return location pairs, terminated by -1</doc>
+            <type name="va_list" c:type="va_list"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_value"
+              c:identifier="clutter_model_iter_get_value"
+              version="0.6">
+        <doc xml:whitespace="preserve">Sets an initializes @value to that at @column. When done with @value, 
+g_value_unset() needs to be called to free any allocated memory.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="column" transfer-ownership="none">
+            <doc xml:whitespace="preserve">column number to retrieve the value from</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+          <parameter name="value" transfer-ownership="none">
+            <doc xml:whitespace="preserve">an empty #GValue to set</doc>
+            <type name="GObject.Value" c:type="GValue*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="is_first"
+              c:identifier="clutter_model_iter_is_first"
+              version="0.6">
+        <doc xml:whitespace="preserve">Gets whether the current iterator is at the beginning of the model
+to which it belongs.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">#TRUE if @iter is the first iter in the filtered model</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+      </method>
+      <method name="is_last"
+              c:identifier="clutter_model_iter_is_last"
+              version="0.6">
+        <doc xml:whitespace="preserve">Gets whether the iterator is at the end of the model to which it
+belongs.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">#TRUE if @iter is the last iter in the filtered model.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+      </method>
+      <method name="next" c:identifier="clutter_model_iter_next" version="0.6">
+        <doc xml:whitespace="preserve">Updates the @iter to point at the next position in the model.
+The model implementation should take into account the presence of
+a filter function.
+row in the model.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">The passed iterator, updated to point at the next</doc>
+          <type name="ModelIter" c:type="ClutterModelIter*"/>
+        </return-value>
+      </method>
+      <method name="prev" c:identifier="clutter_model_iter_prev" version="0.6">
+        <doc xml:whitespace="preserve">Sets the @iter to point at the previous position in the model.
+The model implementation should take into account the presence of
+a filter function.
+row in the model.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">The passed iterator, updated to point at the previous</doc>
+          <type name="ModelIter" c:type="ClutterModelIter*"/>
+        </return-value>
+      </method>
+      <method name="set"
+              c:identifier="clutter_model_iter_set"
+              version="0.6"
+              introspectable="0">
+        <doc xml:whitespace="preserve">Sets the value of one or more cells in the row referenced by @iter. The
+variable argument list should contain integer column numbers, each column
+column number followed by the value to be set. The  list is terminated by a
+-1.
+For example, to set column 0 with type %G_TYPE_STRING, use:
+&lt;informalexample&gt;&lt;programlisting&gt;
+clutter_model_iter_set (iter, 0, "foo", -1);
+&lt;/programlisting&gt;&lt;/informalexample&gt;</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter transfer-ownership="none">
+            <varargs>
+            </varargs>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_valist"
+              c:identifier="clutter_model_iter_set_valist"
+              version="0.6"
+              introspectable="0">
+        <doc xml:whitespace="preserve">See clutter_model_iter_set(); this version takes a va_list for language
+bindings.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="args" transfer-ownership="none">
+            <doc xml:whitespace="preserve">va_list of column/value pairs, terminiated by -1</doc>
+            <type name="va_list" c:type="va_list"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_value"
+              c:identifier="clutter_model_iter_set_value"
+              version="0.6">
+        <doc xml:whitespace="preserve">Sets the data in the cell specified by @iter and @column. The type of</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="column" transfer-ownership="none">
+            <doc xml:whitespace="preserve">column number to retrieve the value from</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+          <parameter name="value" transfer-ownership="none">
+            <doc xml:whitespace="preserve">new value for the cell</doc>
+            <type name="GObject.Value" c:type="GValue*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <property name="model"
+                version="0.6"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">A reference to the #ClutterModel that this iter belongs to.</doc>
+        <type name="Model"/>
+      </property>
+      <property name="row"
+                version="0.6"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">The row number to which this iter points to.</doc>
+        <type name="guint"/>
+      </property>
+      <field name="parent_instance">
+        <type name="GObject.Object" c:type="GObject"/>
+      </field>
+      <field name="priv">
+        <type name="ModelIterPrivate" c:type="ClutterModelIterPrivate*"/>
+      </field>
+    </class>
+    <record name="ModelIterClass"
+            c:type="ClutterModelIterClass"
+            glib:is-gtype-struct-for="ModelIter"
+            version="0.6">
+      <doc xml:whitespace="preserve">Class for #ClutterModelIter instances.</doc>
+      <field name="parent_class">
+        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
+      </field>
+      <field name="get_value">
+        <callback name="get_value">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="iter" transfer-ownership="none">
+              <type name="ModelIter" c:type="ClutterModelIter*"/>
+            </parameter>
+            <parameter name="column" transfer-ownership="none">
+              <doc xml:whitespace="preserve">column number to retrieve the value from</doc>
+              <type name="guint" c:type="guint"/>
+            </parameter>
+            <parameter name="value" transfer-ownership="none">
+              <doc xml:whitespace="preserve">an empty #GValue to set</doc>
+              <type name="GObject.Value" c:type="GValue*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="set_value">
+        <callback name="set_value">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="iter" transfer-ownership="none">
+              <type name="ModelIter" c:type="ClutterModelIter*"/>
+            </parameter>
+            <parameter name="column" transfer-ownership="none">
+              <doc xml:whitespace="preserve">column number to retrieve the value from</doc>
+              <type name="guint" c:type="guint"/>
+            </parameter>
+            <parameter name="value" transfer-ownership="none">
+              <doc xml:whitespace="preserve">new value for the cell</doc>
+              <type name="GObject.Value" c:type="GValue*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="is_first">
+        <callback name="is_first">
+          <return-value transfer-ownership="none">
+            <doc xml:whitespace="preserve">#TRUE if @iter is the first iter in the filtered model</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="iter" transfer-ownership="none">
+              <type name="ModelIter" c:type="ClutterModelIter*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="is_last">
+        <callback name="is_last">
+          <return-value transfer-ownership="none">
+            <doc xml:whitespace="preserve">#TRUE if @iter is the last iter in the filtered model.</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="iter" transfer-ownership="none">
+              <type name="ModelIter" c:type="ClutterModelIter*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="next">
+        <callback name="next">
+          <return-value transfer-ownership="none">
+            <doc xml:whitespace="preserve">The passed iterator, updated to point at the next</doc>
+            <type name="ModelIter" c:type="ClutterModelIter*"/>
+          </return-value>
+          <parameters>
+            <parameter name="iter" transfer-ownership="none">
+              <type name="ModelIter" c:type="ClutterModelIter*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="prev">
+        <callback name="prev">
+          <return-value transfer-ownership="none">
+            <doc xml:whitespace="preserve">The passed iterator, updated to point at the previous</doc>
+            <type name="ModelIter" c:type="ClutterModelIter*"/>
+          </return-value>
+          <parameters>
+            <parameter name="iter" transfer-ownership="none">
+              <type name="ModelIter" c:type="ClutterModelIter*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="get_model">
+        <callback name="get_model">
+          <return-value transfer-ownership="none">
+            <doc xml:whitespace="preserve">a pointer to a #ClutterModel.</doc>
+            <type name="Model" c:type="ClutterModel*"/>
+          </return-value>
+          <parameters>
+            <parameter name="iter" transfer-ownership="none">
+              <type name="ModelIter" c:type="ClutterModelIter*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="get_row">
+        <callback name="get_row">
+          <return-value transfer-ownership="none">
+            <doc xml:whitespace="preserve">the position of the @iter in the model</doc>
+            <type name="guint" c:type="guint"/>
+          </return-value>
+          <parameters>
+            <parameter name="iter" transfer-ownership="none">
+              <type name="ModelIter" c:type="ClutterModelIter*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="copy">
+        <callback name="copy">
+          <return-value transfer-ownership="full">
+            <doc xml:whitespace="preserve">a copy of the iterator, or %NULL</doc>
+            <type name="ModelIter" c:type="ClutterModelIter*"/>
+          </return-value>
+          <parameters>
+            <parameter name="iter" transfer-ownership="none">
+              <type name="ModelIter" c:type="ClutterModelIter*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="_clutter_model_iter_1" introspectable="0">
+        <callback name="_clutter_model_iter_1">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_model_iter_2" introspectable="0">
+        <callback name="_clutter_model_iter_2">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_model_iter_3" introspectable="0">
+        <callback name="_clutter_model_iter_3">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_model_iter_4" introspectable="0">
+        <callback name="_clutter_model_iter_4">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_model_iter_5" introspectable="0">
+        <callback name="_clutter_model_iter_5">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_model_iter_6" introspectable="0">
+        <callback name="_clutter_model_iter_6">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_model_iter_7" introspectable="0">
+        <callback name="_clutter_model_iter_7">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_model_iter_8" introspectable="0">
+        <callback name="_clutter_model_iter_8">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+    </record>
+    <record name="ModelIterPrivate"
+            c:type="ClutterModelIterPrivate"
+            disguised="1">
+    </record>
+    <record name="ModelPrivate" c:type="ClutterModelPrivate" disguised="1">
+    </record>
+    <callback name="ModelSortFunc" c:type="ClutterModelSortFunc" version="0.6">
+      <doc xml:whitespace="preserve">Compares the content of two rows in the model.</doc>
+      <return-value transfer-ownership="none">
+        <doc xml:whitespace="preserve">a positive integer if @a is after @b, a negative integer if</doc>
+        <type name="gint" c:type="gint"/>
+      </return-value>
+      <parameters>
+        <parameter name="model" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #ClutterModel</doc>
+          <type name="Model" c:type="ClutterModel*"/>
+        </parameter>
+        <parameter name="a" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #GValue representing the contents of the row</doc>
+          <type name="GObject.Value" c:type="GValue*"/>
+        </parameter>
+        <parameter name="b" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #GValue representing the contents of the second row</doc>
+          <type name="GObject.Value" c:type="GValue*"/>
+        </parameter>
+        <parameter name="user_data" transfer-ownership="none" closure="3">
+          <doc xml:whitespace="preserve">data passed to clutter_model_set_sort()</doc>
+          <type name="gpointer" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <bitfield name="ModifierType"
+              version="0.4"
+              glib:type-name="ClutterModifierType"
+              glib:get-type="clutter_modifier_type_get_type"
+              c:type="ClutterModifierType">
+      <doc xml:whitespace="preserve">Masks applied to a #ClutterEvent by modifiers.</doc>
+      <member name="shift_mask"
+              value="1"
+              c:identifier="CLUTTER_SHIFT_MASK"
+              glib:nick="shift-mask"/>
+      <member name="lock_mask"
+              value="2"
+              c:identifier="CLUTTER_LOCK_MASK"
+              glib:nick="lock-mask"/>
+      <member name="control_mask"
+              value="4"
+              c:identifier="CLUTTER_CONTROL_MASK"
+              glib:nick="control-mask"/>
+      <member name="mod1_mask"
+              value="8"
+              c:identifier="CLUTTER_MOD1_MASK"
+              glib:nick="mod1-mask"/>
+      <member name="mod2_mask"
+              value="16"
+              c:identifier="CLUTTER_MOD2_MASK"
+              glib:nick="mod2-mask"/>
+      <member name="mod3_mask"
+              value="32"
+              c:identifier="CLUTTER_MOD3_MASK"
+              glib:nick="mod3-mask"/>
+      <member name="mod4_mask"
+              value="64"
+              c:identifier="CLUTTER_MOD4_MASK"
+              glib:nick="mod4-mask"/>
+      <member name="mod5_mask"
+              value="128"
+              c:identifier="CLUTTER_MOD5_MASK"
+              glib:nick="mod5-mask"/>
+      <member name="button1_mask"
+              value="256"
+              c:identifier="CLUTTER_BUTTON1_MASK"
+              glib:nick="button1-mask"/>
+      <member name="button2_mask"
+              value="512"
+              c:identifier="CLUTTER_BUTTON2_MASK"
+              glib:nick="button2-mask"/>
+      <member name="button3_mask"
+              value="1024"
+              c:identifier="CLUTTER_BUTTON3_MASK"
+              glib:nick="button3-mask"/>
+      <member name="button4_mask"
+              value="2048"
+              c:identifier="CLUTTER_BUTTON4_MASK"
+              glib:nick="button4-mask"/>
+      <member name="button5_mask"
+              value="4096"
+              c:identifier="CLUTTER_BUTTON5_MASK"
+              glib:nick="button5-mask"/>
+      <member name="super_mask"
+              value="67108864"
+              c:identifier="CLUTTER_SUPER_MASK"
+              glib:nick="super-mask"/>
+      <member name="hyper_mask"
+              value="134217728"
+              c:identifier="CLUTTER_HYPER_MASK"
+              glib:nick="hyper-mask"/>
+      <member name="meta_mask"
+              value="268435456"
+              c:identifier="CLUTTER_META_MASK"
+              glib:nick="meta-mask"/>
+      <member name="release_mask"
+              value="1073741824"
+              c:identifier="CLUTTER_RELEASE_MASK"
+              glib:nick="release-mask"/>
+      <member name="modifier_mask"
+              value="1543512063"
+              c:identifier="CLUTTER_MODIFIER_MASK"
+              glib:nick="modifier-mask"/>
+    </bitfield>
+    <constant name="MonBrightnessDown" value="269025027">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="MonBrightnessUp" value="269025026">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <record name="MotionEvent" c:type="ClutterMotionEvent" version="0.2">
+      <doc xml:whitespace="preserve">Event for the pointer motion</doc>
+      <field name="type" writable="1">
+        <type name="EventType" c:type="ClutterEventType"/>
+      </field>
+      <field name="time" writable="1">
+        <type name="guint32" c:type="guint32"/>
+      </field>
+      <field name="flags" writable="1">
+        <type name="EventFlags" c:type="ClutterEventFlags"/>
+      </field>
+      <field name="stage" writable="1">
+        <type name="Stage" c:type="ClutterStage*"/>
+      </field>
+      <field name="source" writable="1">
+        <type name="Actor" c:type="ClutterActor*"/>
+      </field>
+      <field name="x" writable="1">
+        <type name="gfloat" c:type="gfloat"/>
+      </field>
+      <field name="y" writable="1">
+        <type name="gfloat" c:type="gfloat"/>
+      </field>
+      <field name="modifier_state" writable="1">
+        <type name="ModifierType" c:type="ClutterModifierType"/>
+      </field>
+      <field name="axes" writable="1">
+        <type name="gdouble" c:type="gdouble*"/>
+      </field>
+      <field name="device" writable="1">
+        <type name="InputDevice" c:type="ClutterInputDevice*"/>
+      </field>
+    </record>
+    <constant name="MouseKeys_Accel_Enable" value="65143">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="MouseKeys_Enable" value="65142">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Muhenkan" value="65314">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Multi_key" value="65312">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="MultipleCandidate" value="65341">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Music" value="269025170">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="MyComputer" value="269025075">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="MySites" value="269025127">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="N" value="78">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Nacute" value="465">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="NairaSign" value="16785574">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Ncaron" value="466">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Ncedilla" value="977">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="New" value="269025128">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="NewSheqelSign" value="16785578">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="News" value="269025129">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Next" value="65366">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Next_VMode" value="269024802">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Next_Virtual_Screen" value="65234">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Ntilde" value="209">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Num_Lock" value="65407">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="O" value="79">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="OE" value="5052">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Oacute" value="211">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Obarred" value="16777631">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Obelowdot" value="16785100">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Ocaron" value="16777681">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Ocircumflex" value="212">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Ocircumflexacute" value="16785104">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Ocircumflexbelowdot" value="16785112">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Ocircumflexgrave" value="16785106">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Ocircumflexhook" value="16785108">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Ocircumflextilde" value="16785110">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Odiaeresis" value="214">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Odoubleacute" value="469">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="OfficeHome" value="269025130">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <class name="OffscreenEffect"
+           c:symbol-prefix="offscreen_effect"
+           c:type="ClutterOffscreenEffect"
+           version="1.4"
+           parent="Effect"
+           abstract="1"
+           glib:type-name="ClutterOffscreenEffect"
+           glib:get-type="clutter_offscreen_effect_get_type"
+           glib:type-struct="OffscreenEffectClass">
+      <doc xml:whitespace="preserve">The #ClutterOffscreenEffect structure contains only private data
+and should be accessed using the provided API</doc>
+      <virtual-method name="create_texture"
+                      invoker="create_texture"
+                      version="1.4">
+        <doc xml:whitespace="preserve">Calls the create_texture() virtual function of the @effect
+%COGL_INVALID_HANDLE. The returned handle has its reference
+count increased.</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">a handle to a Cogl texture, or</doc>
+          <type name="Cogl.Handle" c:type="CoglHandle"/>
+        </return-value>
+        <parameters>
+          <parameter name="min_width" transfer-ownership="none">
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+          <parameter name="min_height" transfer-ownership="none">
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="paint_target" invoker="paint_target" version="1.4">
+        <doc xml:whitespace="preserve">Calls the paint_target() virtual function of the @effect</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </virtual-method>
+      <method name="create_texture"
+              c:identifier="clutter_offscreen_effect_create_texture"
+              version="1.4">
+        <doc xml:whitespace="preserve">Calls the create_texture() virtual function of the @effect
+%COGL_INVALID_HANDLE. The returned handle has its reference
+count increased.</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">a handle to a Cogl texture, or</doc>
+          <type name="Cogl.Handle" c:type="CoglHandle"/>
+        </return-value>
+        <parameters>
+          <parameter name="width" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the minimum width of the target texture</doc>
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+          <parameter name="height" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the minimum height of the target texture</doc>
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_target"
+              c:identifier="clutter_offscreen_effect_get_target"
+              version="1.4">
+        <doc xml:whitespace="preserve">Retrieves the material used as a render target for the offscreen
+buffer created by @effect
+You should only use the returned #CoglMaterial when painting. The
+returned material might change between different frames.
+returned material is owned by Clutter and it should not be
+modified or freed</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #CoglMaterial or %NULL. The</doc>
+          <type name="Cogl.Material" c:type="CoglMaterial*"/>
+        </return-value>
+      </method>
+      <method name="paint_target"
+              c:identifier="clutter_offscreen_effect_paint_target"
+              version="1.4">
+        <doc xml:whitespace="preserve">Calls the paint_target() virtual function of the @effect</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </method>
+      <field name="parent_instance">
+        <type name="Effect" c:type="ClutterEffect"/>
+      </field>
+      <field name="priv">
+        <type name="OffscreenEffectPrivate"
+              c:type="ClutterOffscreenEffectPrivate*"/>
+      </field>
+    </class>
+    <record name="OffscreenEffectClass"
+            c:type="ClutterOffscreenEffectClass"
+            glib:is-gtype-struct-for="OffscreenEffect"
+            version="1.4">
+      <doc xml:whitespace="preserve">The #ClutterOffscreenEffectClass structure contains only private data</doc>
+      <field name="parent_class">
+        <type name="EffectClass" c:type="ClutterEffectClass"/>
+      </field>
+      <field name="create_texture">
+        <callback name="create_texture">
+          <return-value transfer-ownership="full">
+            <doc xml:whitespace="preserve">a handle to a Cogl texture, or</doc>
+            <type name="Cogl.Handle" c:type="CoglHandle"/>
+          </return-value>
+          <parameters>
+            <parameter name="effect" transfer-ownership="none">
+              <type name="OffscreenEffect" c:type="ClutterOffscreenEffect*"/>
+            </parameter>
+            <parameter name="min_width" transfer-ownership="none">
+              <type name="gfloat" c:type="gfloat"/>
+            </parameter>
+            <parameter name="min_height" transfer-ownership="none">
+              <type name="gfloat" c:type="gfloat"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="paint_target">
+        <callback name="paint_target">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="effect" transfer-ownership="none">
+              <type name="OffscreenEffect" c:type="ClutterOffscreenEffect*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="_clutter_offscreen1" introspectable="0">
+        <callback name="_clutter_offscreen1">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_offscreen2" introspectable="0">
+        <callback name="_clutter_offscreen2">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_offscreen3" introspectable="0">
+        <callback name="_clutter_offscreen3">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_offscreen4" introspectable="0">
+        <callback name="_clutter_offscreen4">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_offscreen5" introspectable="0">
+        <callback name="_clutter_offscreen5">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_offscreen6" introspectable="0">
+        <callback name="_clutter_offscreen6">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_offscreen7" introspectable="0">
+        <callback name="_clutter_offscreen7">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+    </record>
+    <record name="OffscreenEffectPrivate"
+            c:type="ClutterOffscreenEffectPrivate"
+            disguised="1">
+    </record>
+    <constant name="Ograve" value="210">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Ohook" value="16785102">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Ohorn" value="16777632">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Ohornacute" value="16785114">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Ohornbelowdot" value="16785122">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Ohorngrave" value="16785116">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Ohornhook" value="16785118">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Ohorntilde" value="16785120">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Omacron" value="978">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Ooblique" value="216">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Open" value="269025131">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="OpenURL" value="269025080">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Option" value="269025132">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Oslash" value="216">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Otilde" value="213">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Overlay1_Enable" value="65144">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Overlay2_Enable" value="65145">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="P" value="80">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="PATH_RELATIVE" value="32">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="PRIORITY_REDRAW" value="50">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Pabovedot" value="16784982">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <class name="PageTurnEffect"
+           c:symbol-prefix="page_turn_effect"
+           c:type="ClutterPageTurnEffect"
+           version="1.4"
+           parent="DeformEffect"
+           glib:type-name="ClutterPageTurnEffect"
+           glib:get-type="clutter_page_turn_effect_get_type">
+      <doc xml:whitespace="preserve">&lt;structname&gt;ClutterPageTurnEffect&lt;/structname&gt; is an opaque structure
+whose members can only be accessed using the provided API</doc>
+      <constructor name="new"
+                   c:identifier="clutter_page_turn_effect_new"
+                   version="1.4">
+        <doc xml:whitespace="preserve">Creates a new #ClutterPageTurnEffect instance with the given parameters</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the newly created #ClutterPageTurnEffect</doc>
+          <type name="Effect" c:type="ClutterEffect*"/>
+        </return-value>
+        <parameters>
+          <parameter name="period" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the period of the page curl, between 0.0 and 1.0</doc>
+            <type name="gdouble" c:type="gdouble"/>
+          </parameter>
+          <parameter name="angle" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the angle of the page curl, between 0.0 and 360.0</doc>
+            <type name="gdouble" c:type="gdouble"/>
+          </parameter>
+          <parameter name="radius" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the radius of the page curl, in pixels</doc>
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <method name="get_angle"
+              c:identifier="clutter_page_turn_effect_get_angle"
+              version="1.4">
+        <doc xml:whitespace="preserve">Retrieves the value set using clutter_page_turn_effect_get_angle()</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the angle of the page curling</doc>
+          <type name="gdouble" c:type="gdouble"/>
+        </return-value>
+      </method>
+      <method name="get_period"
+              c:identifier="clutter_page_turn_effect_get_period"
+              version="1.4">
+        <doc xml:whitespace="preserve">Retrieves the value set using clutter_page_turn_effect_get_period()</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the period of the page curling</doc>
+          <type name="gdouble" c:type="gdouble"/>
+        </return-value>
+      </method>
+      <method name="get_radius"
+              c:identifier="clutter_page_turn_effect_get_radius"
+              version="1.4">
+        <doc xml:whitespace="preserve">Retrieves the value set using clutter_page_turn_effect_set_radius()</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the radius of the page curling</doc>
+          <type name="gfloat" c:type="gfloat"/>
+        </return-value>
+      </method>
+      <method name="set_angle"
+              c:identifier="clutter_page_turn_effect_set_angle"
+              version="1.4">
+        <doc xml:whitespace="preserve">Sets the angle of the page curling, in degrees</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="angle" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the angle of the page curl, in degrees</doc>
+            <type name="gdouble" c:type="gdouble"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_period"
+              c:identifier="clutter_page_turn_effect_set_period"
+              version="1.4">
+        <doc xml:whitespace="preserve">Sets the period of the page curling, between 0.0 (no curling)
+and 1.0 (fully curled)</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="period" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the period of the page curl, between 0.0 and 1.0</doc>
+            <type name="gdouble" c:type="gdouble"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_radius"
+              c:identifier="clutter_page_turn_effect_set_radius"
+              version="1.4">
+        <doc xml:whitespace="preserve">Sets the radius of the page curling</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="radius" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the radius of the page curling, in pixels</doc>
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+        </parameters>
+      </method>
+      <property name="angle"
+                version="1.4"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">The angle of the page rotation, in degrees, between 0.0 and 360.0</doc>
+        <type name="gdouble"/>
+      </property>
+      <property name="period"
+                version="1.4"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">The period of the page turn, between 0.0 (no curling) and
+1.0 (fully curled)</doc>
+        <type name="gdouble"/>
+      </property>
+      <property name="radius"
+                version="1.4"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">The radius of the page curl, in pixels</doc>
+        <type name="gfloat"/>
+      </property>
+    </class>
+    <constant name="Page_Down" value="65366">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Page_Up" value="65365">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <class name="ParamSpecColor"
+           c:symbol-prefix="param_color"
+           c:type="ClutterParamSpecColor"
+           version="1.0"
+           glib:type-name="ClutterParamSpecColor"
+           glib:get-type="clutter_param_color_get_type"
+           glib:fundamental="1">
+      <doc xml:whitespace="preserve">A #GParamSpec subclass for defining properties holding
+a #ClutterColor.</doc>
+      <field name="parent_instance">
+        <type name="GObject.ParamSpec" c:type="GParamSpec"/>
+      </field>
+      <field name="default_value">
+        <type name="Color" c:type="ClutterColor*"/>
+      </field>
+    </class>
+    <class name="ParamSpecFixed"
+           c:symbol-prefix="param_fixed"
+           c:type="ClutterParamSpecFixed"
+           glib:type-name="ClutterParamSpecFixed"
+           glib:get-type="clutter_param_fixed_get_type"
+           glib:fundamental="1">
+      <field name="parent_instance">
+        <type name="GObject.ParamSpec" c:type="GParamSpec"/>
+      </field>
+      <field name="minimum">
+        <type name="Cogl.Fixed" c:type="CoglFixed"/>
+      </field>
+      <field name="maximum">
+        <type name="Cogl.Fixed" c:type="CoglFixed"/>
+      </field>
+      <field name="default_value">
+        <type name="Cogl.Fixed" c:type="CoglFixed"/>
+      </field>
+    </class>
+    <class name="ParamSpecUnit"
+           c:symbol-prefix="param_units"
+           glib:type-name="ClutterParamSpecUnit"
+           glib:get-type="clutter_param_units_get_type"
+           glib:fundamental="1">
+    </class>
+    <record name="ParamSpecUnits" c:type="ClutterParamSpecUnits" version="1.0">
+      <doc xml:whitespace="preserve">#GParamSpec subclass for unit based properties.</doc>
+      <field name="parent_instance" writable="1">
+        <type name="GObject.ParamSpec" c:type="GParamSpec"/>
+      </field>
+      <field name="default_type" writable="1">
+        <type name="UnitType" c:type="ClutterUnitType"/>
+      </field>
+      <field name="default_value" writable="1">
+        <type name="gfloat" c:type="gfloat"/>
+      </field>
+      <field name="minimum" writable="1">
+        <type name="gfloat" c:type="gfloat"/>
+      </field>
+      <field name="maximum" writable="1">
+        <type name="gfloat" c:type="gfloat"/>
+      </field>
+    </record>
+    <constant name="Paste" value="269025133">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <class name="Path"
+           c:symbol-prefix="path"
+           c:type="ClutterPath"
+           version="1.0"
+           parent="GObject.InitiallyUnowned"
+           glib:type-name="ClutterPath"
+           glib:get-type="clutter_path_get_type"
+           glib:type-struct="PathClass">
+      <doc xml:whitespace="preserve">The #ClutterPath struct contains only private data and should
+be accessed with the functions below.</doc>
+      <constructor name="new" c:identifier="clutter_path_new" version="1.0">
+        <doc xml:whitespace="preserve">Creates a new #ClutterPath instance with no nodes.
+The object has a floating reference so if you add it to a
+#ClutterBehaviourPath then you do not need to unref it.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the newly created #ClutterPath</doc>
+          <type name="Path" c:type="ClutterPath*"/>
+        </return-value>
+      </constructor>
+      <constructor name="new_with_description"
+                   c:identifier="clutter_path_new_with_description"
+                   version="1.0">
+        <doc xml:whitespace="preserve">Creates a new #ClutterPath instance with the nodes described in
+the string.
+The object has a floating reference so if you add it to a
+#ClutterBehaviourPath then you do not need to unref it.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the newly created #ClutterPath</doc>
+          <type name="Path" c:type="ClutterPath*"/>
+        </return-value>
+        <parameters>
+          <parameter name="desc" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a string describing the path</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <method name="add_cairo_path"
+              c:identifier="clutter_path_add_cairo_path"
+              version="1.0">
+        <doc xml:whitespace="preserve">Add the nodes of the Cairo path to the end of @path.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="cpath" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a Cairo path</doc>
+            <type name="cairo.Path" c:type="cairo_path_t*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="add_close"
+              c:identifier="clutter_path_add_close"
+              version="1.0">
+        <doc xml:whitespace="preserve">Adds a %CLUTTER_PATH_CLOSE type node to the path. This creates a
+straight line from the last node to the last %CLUTTER_PATH_MOVE_TO
+type node.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </method>
+      <method name="add_curve_to"
+              c:identifier="clutter_path_add_curve_to"
+              version="1.0">
+        <doc xml:whitespace="preserve">Adds a %CLUTTER_PATH_CURVE_TO type node to the path. This causes
+the actor to follow a bezier from the last node to (@x_3, @y_3) using
+(@x_1, @y_1) and (@x_2,@y_2) as control points.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="x_1" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the x coordinate of the first control point</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="y_1" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the y coordinate of the first control point</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="x_2" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the x coordinate of the second control point</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="y_2" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the y coordinate of the second control point</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="x_3" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the x coordinate of the third control point</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="y_3" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the y coordinate of the third control point</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="add_line_to"
+              c:identifier="clutter_path_add_line_to"
+              version="1.0">
+        <doc xml:whitespace="preserve">Adds a %CLUTTER_PATH_LINE_TO type node to the path. This causes the
+actor to move to the new coordinates in a straight line.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="x" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the x coordinate</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="y" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the y coordinate</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="add_move_to"
+              c:identifier="clutter_path_add_move_to"
+              version="1.0">
+        <doc xml:whitespace="preserve">Adds a %CLUTTER_PATH_MOVE_TO type node to the path. This is usually
+used as the first node in a path. It can also be used in the middle
+of the path to cause the actor to jump to the new coordinate.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="x" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the x coordinate</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="y" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the y coordinate</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="add_node"
+              c:identifier="clutter_path_add_node"
+              version="1.0">
+        <doc xml:whitespace="preserve">Adds @node to the end of the path.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="node" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #ClutterPathNode</doc>
+            <type name="PathNode" c:type="ClutterPathNode*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="add_rel_curve_to"
+              c:identifier="clutter_path_add_rel_curve_to"
+              version="1.0">
+        <doc xml:whitespace="preserve">Same as clutter_path_add_curve_to() except the coordinates are
+relative to the previous node.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="x_1" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the x coordinate of the first control point</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="y_1" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the y coordinate of the first control point</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="x_2" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the x coordinate of the second control point</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="y_2" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the y coordinate of the second control point</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="x_3" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the x coordinate of the third control point</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="y_3" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the y coordinate of the third control point</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="add_rel_line_to"
+              c:identifier="clutter_path_add_rel_line_to"
+              version="1.0">
+        <doc xml:whitespace="preserve">Same as clutter_path_add_line_to() except the coordinates are
+relative to the previous node.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="x" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the x coordinate</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="y" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the y coordinate</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="add_rel_move_to"
+              c:identifier="clutter_path_add_rel_move_to"
+              version="1.0">
+        <doc xml:whitespace="preserve">Same as clutter_path_add_move_to() except the coordinates are
+relative to the previous node.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="x" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the x coordinate</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="y" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the y coordinate</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="add_string"
+              c:identifier="clutter_path_add_string"
+              version="1.0">
+        <doc xml:whitespace="preserve">Adds new nodes to the end of the path as described in @str. The
+format is a subset of the SVG path format. Each node is represented
+by a letter and is followed by zero, one or three pairs of
+coordinates. The coordinates can be separated by spaces or a
+comma. The types are:
+&lt;variablelist&gt;
+&lt;varlistentry&gt;&lt;term&gt;M&lt;/term&gt;
+&lt;listitem&gt;&lt;para&gt;
+Adds a %CLUTTER_PATH_MOVE_TO node. Takes one pair of coordinates.
+&lt;/para&gt;&lt;/listitem&gt;&lt;/varlistentry&gt;
+&lt;varlistentry&gt;&lt;term&gt;L&lt;/term&gt;
+&lt;listitem&gt;&lt;para&gt;
+Adds a %CLUTTER_PATH_LINE_TO node. Takes one pair of coordinates.
+&lt;/para&gt;&lt;/listitem&gt;&lt;/varlistentry&gt;
+&lt;varlistentry&gt;&lt;term&gt;C&lt;/term&gt;
+&lt;listitem&gt;&lt;para&gt;
+Adds a %CLUTTER_PATH_CURVE_TO node. Takes three pairs of coordinates.
+&lt;/para&gt;&lt;/listitem&gt;&lt;/varlistentry&gt;
+&lt;varlistentry&gt;&lt;term&gt;z&lt;/term&gt;
+&lt;listitem&gt;&lt;para&gt;
+Adds a %CLUTTER_PATH_CLOSE node. No coordinates are needed.
+&lt;/para&gt;&lt;/listitem&gt;&lt;/varlistentry&gt;
+&lt;/variablelist&gt;
+The M, L and C commands can also be specified in lower case which
+means the coordinates are relative to the previous node.
+For example, to move an actor in a 100 by 100 pixel square centered
+on the point 300,300 you could use the following path:
+&lt;informalexample&gt;
+&lt;programlisting&gt;
+M 250,350 l 0 -100 L 350,250 l 0 100 z
+&lt;/programlisting&gt;
+&lt;/informalexample&gt;
+If the path description isn't valid %FALSE will be returned and no
+nodes will be added.
+otherwise.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE is the path description was valid or %FALSE</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="str" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a string describing the new nodes</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="clear" c:identifier="clutter_path_clear" version="1.0">
+        <doc xml:whitespace="preserve">Removes all nodes from the path.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </method>
+      <method name="foreach" c:identifier="clutter_path_foreach" version="1.0">
+        <doc xml:whitespace="preserve">Calls a function for each node of the path.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="callback"
+                     transfer-ownership="none"
+                     scope="call"
+                     closure="1">
+            <doc xml:whitespace="preserve">the function to call with each node</doc>
+            <type name="PathCallback" c:type="ClutterPathCallback"/>
+          </parameter>
+          <parameter name="user_data" transfer-ownership="none">
+            <doc xml:whitespace="preserve">user data to pass to the function</doc>
+            <type name="gpointer" c:type="gpointer"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_description"
+              c:identifier="clutter_path_get_description"
+              version="1.0">
+        <doc xml:whitespace="preserve">Returns a newly allocated string describing the path in the same
+format as used by clutter_path_add_string().</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">a string description of the path. Free with g_free().</doc>
+          <type name="utf8" c:type="gchar*"/>
+        </return-value>
+      </method>
+      <method name="get_length"
+              c:identifier="clutter_path_get_length"
+              version="1.0">
+        <doc xml:whitespace="preserve">Retrieves an approximation of the total length of the path.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the length of the path.</doc>
+          <type name="guint" c:type="guint"/>
+        </return-value>
+      </method>
+      <method name="get_n_nodes"
+              c:identifier="clutter_path_get_n_nodes"
+              version="1.0">
+        <doc xml:whitespace="preserve">Retrieves the number of nodes in the path.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the number of nodes.</doc>
+          <type name="guint" c:type="guint"/>
+        </return-value>
+      </method>
+      <method name="get_node"
+              c:identifier="clutter_path_get_node"
+              version="1.0">
+        <doc xml:whitespace="preserve">Retrieves the node of the path indexed by @index.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="index_" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the node number to retrieve</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+          <parameter name="node" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a location to store a copy of the node</doc>
+            <type name="PathNode" c:type="ClutterPathNode*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_nodes"
+              c:identifier="clutter_path_get_nodes"
+              version="1.0">
+        <doc xml:whitespace="preserve">Returns a #GSList of #ClutterPathNode&lt;!-- --&gt;s. The list should be
+freed with g_slist_free(). The nodes are owned by the path and
+should not be freed. Altering the path may cause the nodes in the
+list to become invalid so you should copy them if you want to keep
+the list.
+list of nodes in the path.</doc>
+        <return-value transfer-ownership="container">
+          <doc xml:whitespace="preserve">a</doc>
+          <type name="GLib.SList" c:type="GSList*">
+            <type name="PathNode"/>
+          </type>
+        </return-value>
+      </method>
+      <method name="get_position"
+              c:identifier="clutter_path_get_position"
+              version="1.0">
+        <doc xml:whitespace="preserve">The value in @progress represents a position along the path where
+0.0 is the beginning and 1.0 is the end of the path. An
+interpolated position is then stored in @position.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">index of the node used to calculate the position.</doc>
+          <type name="guint" c:type="guint"/>
+        </return-value>
+        <parameters>
+          <parameter name="progress" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a position along the path as a fraction of its length</doc>
+            <type name="gdouble" c:type="gdouble"/>
+          </parameter>
+          <parameter name="position" transfer-ownership="none">
+            <doc xml:whitespace="preserve">location to store the position</doc>
+            <type name="Knot" c:type="ClutterKnot*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="insert_node"
+              c:identifier="clutter_path_insert_node"
+              version="1.0">
+        <doc xml:whitespace="preserve">Inserts @node into the path before the node at the given offset. If</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="index_" transfer-ownership="none">
+            <doc xml:whitespace="preserve">offset of where to insert the node</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="node" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the node to insert</doc>
+            <type name="PathNode" c:type="ClutterPathNode*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="remove_node"
+              c:identifier="clutter_path_remove_node"
+              version="1.0">
+        <doc xml:whitespace="preserve">Removes the node at the given offset from the path.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="index_" transfer-ownership="none">
+            <doc xml:whitespace="preserve">index of the node to remove</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="replace_node"
+              c:identifier="clutter_path_replace_node"
+              version="1.0">
+        <doc xml:whitespace="preserve">Replaces the node at offset @index_ with @node.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="index_" transfer-ownership="none">
+            <doc xml:whitespace="preserve">index to the existing node</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+          <parameter name="node" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the replacement node</doc>
+            <type name="PathNode" c:type="ClutterPathNode*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_description"
+              c:identifier="clutter_path_set_description"
+              version="1.0">
+        <doc xml:whitespace="preserve">Replaces all of the nodes in the path with nodes described by
+If the string is invalid then %FALSE is returned and the path is
+unaltered.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE is the path was valid, %FALSE otherwise.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="str" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a string describing the path</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="to_cairo_path"
+              c:identifier="clutter_path_to_cairo_path"
+              version="1.0">
+        <doc xml:whitespace="preserve">Add the nodes of the ClutterPath to the path in the Cairo context.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="cr" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a Cairo context</doc>
+            <type name="cairo.Context" c:type="cairo_t*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <property name="description" writable="1" transfer-ownership="none">
+        <type name="utf8"/>
+      </property>
+      <property name="length" transfer-ownership="none">
+        <type name="guint"/>
+      </property>
+      <field name="parent">
+        <type name="GObject.InitiallyUnowned" c:type="GInitiallyUnowned"/>
+      </field>
+      <field name="priv">
+        <type name="PathPrivate" c:type="ClutterPathPrivate*"/>
+      </field>
+    </class>
+    <callback name="PathCallback" c:type="ClutterPathCallback" version="1.0">
+      <doc xml:whitespace="preserve">This function is passed to clutter_path_foreach() and will be
+called for each node contained in the path.</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="node" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the node</doc>
+          <type name="PathNode" c:type="ClutterPathNode*"/>
+        </parameter>
+        <parameter name="data" transfer-ownership="none">
+          <doc xml:whitespace="preserve">optional data passed to the function</doc>
+          <type name="gpointer" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <record name="PathClass"
+            c:type="ClutterPathClass"
+            glib:is-gtype-struct-for="Path"
+            version="1.0">
+      <doc xml:whitespace="preserve">The #ClutterPathClass struct contains only private data.</doc>
+      <field name="parent_class">
+        <type name="GObject.InitiallyUnownedClass"
+              c:type="GInitiallyUnownedClass"/>
+      </field>
+    </record>
+    <record name="PathNode"
+            c:type="ClutterPathNode"
+            version="1.0"
+            glib:type-name="ClutterPathNode"
+            glib:get-type="clutter_path_node_get_type"
+            c:symbol-prefix="path_node">
+      <doc xml:whitespace="preserve">Represents a single node of a #ClutterPath.
+Some of the coordinates in @points may be unused for some node
+types. %CLUTTER_PATH_MOVE_TO and %CLUTTER_PATH_LINE_TO use only one
+pair of coordinates, %CLUTTER_PATH_CURVE_TO uses all three and
+%CLUTTER_PATH_CLOSE uses none.</doc>
+      <field name="type" writable="1">
+        <type name="PathNodeType" c:type="ClutterPathNodeType"/>
+      </field>
+      <field name="points" writable="1">
+        <array zero-terminated="0" c:type="ClutterKnot" fixed-size="3">
+          <type name="Knot" c:type="ClutterKnot"/>
+        </array>
+      </field>
+      <method name="copy" c:identifier="clutter_path_node_copy" version="1.0">
+        <doc xml:whitespace="preserve">Makes an allocated copy of a node.</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">the copied node.</doc>
+          <type name="PathNode" c:type="ClutterPathNode*"/>
+        </return-value>
+      </method>
+      <method name="equal"
+              c:identifier="clutter_path_node_equal"
+              version="1.0">
+        <doc xml:whitespace="preserve">Compares two nodes and checks if they are the same type with the
+same coordinates.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if the nodes are the same.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="node_b" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Second node</doc>
+            <type name="PathNode" c:type="ClutterPathNode*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="free" c:identifier="clutter_path_node_free" version="1.0">
+        <doc xml:whitespace="preserve">Frees the memory of an allocated node.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </method>
+    </record>
+    <enumeration name="PathNodeType"
+                 version="1.0"
+                 glib:type-name="ClutterPathNodeType"
+                 glib:get-type="clutter_path_node_type_get_type"
+                 c:type="ClutterPathNodeType">
+      <doc xml:whitespace="preserve">Types of nodes in a #ClutterPath.</doc>
+      <member name="move_to"
+              value="0"
+              c:identifier="CLUTTER_PATH_MOVE_TO"
+              glib:nick="move-to"/>
+      <member name="line_to"
+              value="1"
+              c:identifier="CLUTTER_PATH_LINE_TO"
+              glib:nick="line-to"/>
+      <member name="curve_to"
+              value="2"
+              c:identifier="CLUTTER_PATH_CURVE_TO"
+              glib:nick="curve-to"/>
+      <member name="close"
+              value="3"
+              c:identifier="CLUTTER_PATH_CLOSE"
+              glib:nick="close"/>
+      <member name="rel_move_to"
+              value="32"
+              c:identifier="CLUTTER_PATH_REL_MOVE_TO"
+              glib:nick="rel-move-to"/>
+      <member name="rel_line_to"
+              value="33"
+              c:identifier="CLUTTER_PATH_REL_LINE_TO"
+              glib:nick="rel-line-to"/>
+      <member name="rel_curve_to"
+              value="34"
+              c:identifier="CLUTTER_PATH_REL_CURVE_TO"
+              glib:nick="rel-curve-to"/>
+    </enumeration>
+    <record name="PathPrivate" c:type="ClutterPathPrivate" disguised="1">
+    </record>
+    <constant name="Pause" value="65299">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <record name="Perspective"
+            c:type="ClutterPerspective"
+            version="0.4"
+            glib:type-name="ClutterPerspective"
+            glib:get-type="clutter_perspective_get_type"
+            c:symbol-prefix="perspective">
+      <doc xml:whitespace="preserve">Stage perspective definition. #ClutterPerspective is only used by
+the fixed point version of clutter_stage_set_perspective().</doc>
+      <field name="fovy" writable="1">
+        <type name="gfloat" c:type="gfloat"/>
+      </field>
+      <field name="aspect" writable="1">
+        <type name="gfloat" c:type="gfloat"/>
+      </field>
+      <field name="z_near" writable="1">
+        <type name="gfloat" c:type="gfloat"/>
+      </field>
+      <field name="z_far" writable="1">
+        <type name="gfloat" c:type="gfloat"/>
+      </field>
+    </record>
+    <constant name="PesetaSign" value="16785575">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Phone" value="269025134">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <enumeration name="PickMode"
+                 version="1.0"
+                 glib:type-name="ClutterPickMode"
+                 glib:get-type="clutter_pick_mode_get_type"
+                 c:type="ClutterPickMode">
+      <doc xml:whitespace="preserve">Controls the paint cycle of the scene graph when in pick mode</doc>
+      <member name="none"
+              value="0"
+              c:identifier="CLUTTER_PICK_NONE"
+              glib:nick="none"/>
+      <member name="reactive"
+              value="1"
+              c:identifier="CLUTTER_PICK_REACTIVE"
+              glib:nick="reactive"/>
+      <member name="all"
+              value="2"
+              c:identifier="CLUTTER_PICK_ALL"
+              glib:nick="all"/>
+    </enumeration>
+    <constant name="Pictures" value="269025169">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Pointer_Accelerate" value="65274">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Pointer_Button1" value="65257">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Pointer_Button2" value="65258">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Pointer_Button3" value="65259">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Pointer_Button4" value="65260">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Pointer_Button5" value="65261">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Pointer_Button_Dflt" value="65256">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Pointer_DblClick1" value="65263">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Pointer_DblClick2" value="65264">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Pointer_DblClick3" value="65265">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Pointer_DblClick4" value="65266">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Pointer_DblClick5" value="65267">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Pointer_DblClick_Dflt" value="65262">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Pointer_DfltBtnNext" value="65275">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Pointer_DfltBtnPrev" value="65276">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Pointer_Down" value="65251">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Pointer_DownLeft" value="65254">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Pointer_DownRight" value="65255">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Pointer_Drag1" value="65269">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Pointer_Drag2" value="65270">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Pointer_Drag3" value="65271">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Pointer_Drag4" value="65272">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Pointer_Drag5" value="65277">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Pointer_Drag_Dflt" value="65268">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Pointer_EnableKeys" value="65273">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Pointer_Left" value="65248">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Pointer_Right" value="65249">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Pointer_Up" value="65250">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Pointer_UpLeft" value="65252">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Pointer_UpRight" value="65253">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="PowerDown" value="269025057">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="PowerOff" value="269025066">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Prev_VMode" value="269024803">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Prev_Virtual_Screen" value="65233">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="PreviousCandidate" value="65342">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Print" value="65377">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Prior" value="65365">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <callback name="ProgressFunc" c:type="ClutterProgressFunc" version="1.0">
+      <doc xml:whitespace="preserve">Prototype of the progress function used to compute the value
+between the two ends @a and @b of an interval depending on
+the value of @progress.
+The #GValue in @retval is already initialized with the same
+type as @a and @b.
+This function will be called by #ClutterInterval if the
+type of the values of the interval was registered using
+clutter_interval_register_progress_func().
+the value and stored it inside @retval</doc>
+      <return-value transfer-ownership="none">
+        <doc xml:whitespace="preserve">%TRUE if the function successfully computed</doc>
+        <type name="gboolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="a" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the initial value of an interval</doc>
+          <type name="GObject.Value" c:type="GValue*"/>
+        </parameter>
+        <parameter name="b" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the final value of an interval</doc>
+          <type name="GObject.Value" c:type="GValue*"/>
+        </parameter>
+        <parameter name="progress" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the progress factor, between 0 and 1</doc>
+          <type name="gdouble" c:type="gdouble"/>
+        </parameter>
+        <parameter name="retval" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the value used to store the progress</doc>
+          <type name="GObject.Value" c:type="GValue*"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <constant name="Q" value="81">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="R" value="82">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="R1" value="65490">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="R10" value="65499">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="R11" value="65500">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="R12" value="65501">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="R13" value="65502">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="R14" value="65503">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="R15" value="65504">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="R2" value="65491">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="R3" value="65492">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="R4" value="65493">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="R5" value="65494">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="R6" value="65495">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="R7" value="65496">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="R8" value="65497">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="R9" value="65498">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Racute" value="448">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Rcaron" value="472">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Rcedilla" value="931">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <class name="Rectangle"
+           c:symbol-prefix="rectangle"
+           c:type="ClutterRectangle"
+           version="0.1"
+           parent="Actor"
+           glib:type-name="ClutterRectangle"
+           glib:get-type="clutter_rectangle_get_type"
+           glib:type-struct="RectangleClass">
+      <doc xml:whitespace="preserve">The #ClutterRectangle structure contains only private data
+and should be accessed using the provided API</doc>
+      <implements name="Atk.ImplementorIface"/>
+      <implements name="Animatable"/>
+      <implements name="Scriptable"/>
+      <constructor name="new" c:identifier="clutter_rectangle_new">
+        <doc xml:whitespace="preserve">Creates a new #ClutterActor with a rectangular shape.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">a new #ClutterActor</doc>
+          <type name="Actor" c:type="ClutterActor*"/>
+        </return-value>
+      </constructor>
+      <constructor name="new_with_color"
+                   c:identifier="clutter_rectangle_new_with_color">
+        <doc xml:whitespace="preserve">Creates a new #ClutterActor with a rectangular shape
+and of the given @color.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">a new #ClutterActor</doc>
+          <type name="Actor" c:type="ClutterActor*"/>
+        </return-value>
+        <parameters>
+          <parameter name="color" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #ClutterColor</doc>
+            <type name="Color" c:type="ClutterColor*"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <method name="get_border_color"
+              c:identifier="clutter_rectangle_get_border_color"
+              version="0.2">
+        <doc xml:whitespace="preserve">Gets the color of the border used by @rectangle and places
+it into @color.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="color" transfer-ownership="none">
+            <doc xml:whitespace="preserve">return location for a #ClutterColor</doc>
+            <type name="Color" c:type="ClutterColor*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_border_width"
+              c:identifier="clutter_rectangle_get_border_width"
+              version="0.2">
+        <doc xml:whitespace="preserve">Gets the width (in pixels) of the border used by @rectangle</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the border's width</doc>
+          <type name="guint" c:type="guint"/>
+        </return-value>
+      </method>
+      <method name="get_color" c:identifier="clutter_rectangle_get_color">
+        <doc xml:whitespace="preserve">Retrieves the color of @rectangle.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="color" transfer-ownership="none">
+            <doc xml:whitespace="preserve">return location for a #ClutterColor</doc>
+            <type name="Color" c:type="ClutterColor*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_border_color"
+              c:identifier="clutter_rectangle_set_border_color">
+        <doc xml:whitespace="preserve">Sets the color of the border used by @rectangle using @color</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="color" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the color of the border</doc>
+            <type name="Color" c:type="ClutterColor*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_border_width"
+              c:identifier="clutter_rectangle_set_border_width"
+              version="0.2">
+        <doc xml:whitespace="preserve">Sets the width (in pixel) of the border used by @rectangle.
+A @width of 0 will unset the border.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="width" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the width of the border</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_color" c:identifier="clutter_rectangle_set_color">
+        <doc xml:whitespace="preserve">Sets the color of @rectangle.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="color" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #ClutterColor</doc>
+            <type name="Color" c:type="ClutterColor*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <property name="border-color"
+                version="0.2"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">The color of the border of the rectangle.</doc>
+        <type name="Color"/>
+      </property>
+      <property name="border-width"
+                version="0.2"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">The width of the border of the rectangle, in pixels.</doc>
+        <type name="guint"/>
+      </property>
+      <property name="color" writable="1" transfer-ownership="none">
+        <doc xml:whitespace="preserve">The color of the rectangle.</doc>
+        <type name="Color"/>
+      </property>
+      <property name="has-border"
+                version="0.2"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">Whether the #ClutterRectangle should be displayed with a border.</doc>
+        <type name="gboolean"/>
+      </property>
+      <field name="parent">
+        <type name="Actor" c:type="ClutterActor"/>
+      </field>
+      <field name="priv">
+        <type name="RectanglePrivate" c:type="ClutterRectanglePrivate*"/>
+      </field>
+    </class>
+    <record name="RectangleClass"
+            c:type="ClutterRectangleClass"
+            glib:is-gtype-struct-for="Rectangle"
+            version="0.1">
+      <doc xml:whitespace="preserve">The #ClutterRectangleClass structure contains only private data</doc>
+      <field name="parent_class">
+        <type name="ActorClass" c:type="ClutterActorClass"/>
+      </field>
+      <field name="_clutter_rectangle1" introspectable="0">
+        <callback name="_clutter_rectangle1">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_rectangle2" introspectable="0">
+        <callback name="_clutter_rectangle2">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_rectangle3" introspectable="0">
+        <callback name="_clutter_rectangle3">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_rectangle4" introspectable="0">
+        <callback name="_clutter_rectangle4">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+    </record>
+    <record name="RectanglePrivate"
+            c:type="ClutterRectanglePrivate"
+            disguised="1">
+    </record>
+    <constant name="Red" value="269025187">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Redo" value="65382">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <bitfield name="RedrawFlags"
+              version="1.2"
+              glib:type-name="ClutterRedrawFlags"
+              glib:get-type="clutter_redraw_flags_get_type"
+              c:type="ClutterRedrawFlags">
+      <doc xml:whitespace="preserve">Flags passed to the clutter_actor_queue_redraw_with_clip ()
+function</doc>
+      <member name="box"
+              value="0"
+              c:identifier="CLUTTER_REDRAW_CLIPPED_TO_BOX"
+              glib:nick="box"/>
+      <member name="allocation"
+              value="2"
+              c:identifier="CLUTTER_REDRAW_CLIPPED_TO_ALLOCATION"
+              glib:nick="allocation"/>
+    </bitfield>
+    <constant name="Refresh" value="269025065">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Reload" value="269025139">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="RepeatKeys_Enable" value="65138">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Reply" value="269025138">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <enumeration name="RequestMode"
+                 version="0.8"
+                 glib:type-name="ClutterRequestMode"
+                 glib:get-type="clutter_request_mode_get_type"
+                 c:type="ClutterRequestMode">
+      <doc xml:whitespace="preserve">Specifies the type of requests for a #ClutterActor.</doc>
+      <member name="height_for_width"
+              value="0"
+              c:identifier="CLUTTER_REQUEST_HEIGHT_FOR_WIDTH"
+              glib:nick="height-for-width"/>
+      <member name="width_for_height"
+              value="1"
+              c:identifier="CLUTTER_REQUEST_WIDTH_FOR_HEIGHT"
+              glib:nick="width-for-height"/>
+    </enumeration>
+    <constant name="Return" value="65293">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Right" value="65363">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="RockerDown" value="269025060">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="RockerEnter" value="269025061">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="RockerUp" value="269025059">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Romaji" value="65316">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <enumeration name="RotateAxis"
+                 version="0.4"
+                 glib:type-name="ClutterRotateAxis"
+                 glib:get-type="clutter_rotate_axis_get_type"
+                 c:type="ClutterRotateAxis">
+      <doc xml:whitespace="preserve">Axis of a rotation.</doc>
+      <member name="x_axis"
+              value="0"
+              c:identifier="CLUTTER_X_AXIS"
+              glib:nick="x-axis"/>
+      <member name="y_axis"
+              value="1"
+              c:identifier="CLUTTER_Y_AXIS"
+              glib:nick="y-axis"/>
+      <member name="z_axis"
+              value="2"
+              c:identifier="CLUTTER_Z_AXIS"
+              glib:nick="z-axis"/>
+    </enumeration>
+    <enumeration name="RotateDirection"
+                 version="0.4"
+                 glib:type-name="ClutterRotateDirection"
+                 glib:get-type="clutter_rotate_direction_get_type"
+                 c:type="ClutterRotateDirection">
+      <doc xml:whitespace="preserve">Direction of a rotation.</doc>
+      <member name="cw"
+              value="0"
+              c:identifier="CLUTTER_ROTATE_CW"
+              glib:nick="cw"/>
+      <member name="ccw"
+              value="1"
+              c:identifier="CLUTTER_ROTATE_CCW"
+              glib:nick="ccw"/>
+    </enumeration>
+    <constant name="RotateWindows" value="269025140">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="RotationKB" value="269025142">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="RotationPB" value="269025141">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="RupeeSign" value="16785576">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="S" value="83">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="SCHWA" value="16777615">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Sabovedot" value="16784992">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Sacute" value="422">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Save" value="269025143">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Scaron" value="425">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Scedilla" value="426">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Scircumflex" value="734">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <class name="Score"
+           c:symbol-prefix="score"
+           c:type="ClutterScore"
+           version="0.6"
+           parent="GObject.Object"
+           glib:type-name="ClutterScore"
+           glib:get-type="clutter_score_get_type"
+           glib:type-struct="ScoreClass">
+      <doc xml:whitespace="preserve">The #ClutterScore structure contains only private data
+and should be accessed using the provided API</doc>
+      <constructor name="new" c:identifier="clutter_score_new" version="0.6">
+        <doc xml:whitespace="preserve">Creates a new #ClutterScore. A #ClutterScore is an object that can
+hold multiple #ClutterTimeline&lt;!-- --&gt;s in a sequential order.
+when done.</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">the newly created #ClutterScore. Use g_object_unref()</doc>
+          <type name="Score" c:type="ClutterScore*"/>
+        </return-value>
+      </constructor>
+      <method name="append" c:identifier="clutter_score_append" version="0.6">
+        <doc xml:whitespace="preserve">Appends a timeline to another one existing in the score; the newly
+appended timeline will be started when @parent is complete.
+If @parent is %NULL, the new #ClutterTimeline will be started when
+clutter_score_start() is called.
+#ClutterScore will take a reference on @timeline.
+0 on failure. The returned id can be used with clutter_score_remove()
+or clutter_score_get_timeline().</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the id of the #ClutterTimeline inside the score, or</doc>
+          <type name="gulong" c:type="gulong"/>
+        </return-value>
+        <parameters>
+          <parameter name="parent" transfer-ownership="none" allow-none="1">
+            <doc xml:whitespace="preserve">a #ClutterTimeline in the score, or %NULL</doc>
+            <type name="Timeline" c:type="ClutterTimeline*"/>
+          </parameter>
+          <parameter name="timeline" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #ClutterTimeline</doc>
+            <type name="Timeline" c:type="ClutterTimeline*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="append_at_marker"
+              c:identifier="clutter_score_append_at_marker"
+              version="0.8">
+        <doc xml:whitespace="preserve">Appends @timeline at the given @marker_name on the @parent
+#ClutterTimeline.
+If you want to append @timeline at the end of @parent, use
+clutter_score_append().
+The #ClutterScore will take a reference on @timeline.
+0 on failure. The returned id can be used with clutter_score_remove()
+or clutter_score_get_timeline().</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the id of the #ClutterTimeline inside the score, or</doc>
+          <type name="gulong" c:type="gulong"/>
+        </return-value>
+        <parameters>
+          <parameter name="parent" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the parent #ClutterTimeline</doc>
+            <type name="Timeline" c:type="ClutterTimeline*"/>
+          </parameter>
+          <parameter name="marker_name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the name of the marker to use</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="timeline" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the #ClutterTimeline to append</doc>
+            <type name="Timeline" c:type="ClutterTimeline*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_loop"
+              c:identifier="clutter_score_get_loop"
+              version="0.6">
+        <doc xml:whitespace="preserve">Gets whether @score is looping</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if the score is looping</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+      </method>
+      <method name="get_timeline"
+              c:identifier="clutter_score_get_timeline"
+              version="0.6">
+        <doc xml:whitespace="preserve">Retrieves the #ClutterTimeline for @id inside @score.
+function does not increase the reference count on the returned
+#ClutterTimeline</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the requested timeline, or %NULL. This</doc>
+          <type name="Timeline" c:type="ClutterTimeline*"/>
+        </return-value>
+        <parameters>
+          <parameter name="id" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the id of the timeline</doc>
+            <type name="gulong" c:type="gulong"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="is_playing"
+              c:identifier="clutter_score_is_playing"
+              version="0.6">
+        <doc xml:whitespace="preserve">Query state of a #ClutterScore instance.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if score is currently playing</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+      </method>
+      <method name="list_timelines"
+              c:identifier="clutter_score_list_timelines"
+              version="0.6">
+        <doc xml:whitespace="preserve">Retrieves a list of all the #ClutterTimelines managed by @score.
+#GSList containing all the timelines in the score. This function does
+not increase the reference count of the returned timelines. Use
+g_slist_free() on the returned list to deallocate its resources.</doc>
+        <return-value transfer-ownership="container">
+          <doc xml:whitespace="preserve">a</doc>
+          <type name="GLib.SList" c:type="GSList*">
+            <type name="Timeline"/>
+          </type>
+        </return-value>
+      </method>
+      <method name="pause" c:identifier="clutter_score_pause" version="0.6">
+        <doc xml:whitespace="preserve">Pauses a playing score @score.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </method>
+      <method name="remove" c:identifier="clutter_score_remove" version="0.6">
+        <doc xml:whitespace="preserve">Removes the #ClutterTimeline with the given id inside @score. If
+the timeline has other timelines attached to it, those are removed
+as well.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="id" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the id of the timeline to remove</doc>
+            <type name="gulong" c:type="gulong"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="remove_all"
+              c:identifier="clutter_score_remove_all"
+              version="0.6">
+        <doc xml:whitespace="preserve">Removes all the timelines inside @score.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </method>
+      <method name="rewind" c:identifier="clutter_score_rewind" version="0.6">
+        <doc xml:whitespace="preserve">Rewinds a #ClutterScore to its initial state.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </method>
+      <method name="set_loop"
+              c:identifier="clutter_score_set_loop"
+              version="0.6">
+        <doc xml:whitespace="preserve">Sets whether @score should loop. A looping #ClutterScore will start
+from its initial state after the ::complete signal has been fired.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="loop" transfer-ownership="none">
+            <doc xml:whitespace="preserve">%TRUE for enable looping</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="start" c:identifier="clutter_score_start" version="0.6">
+        <doc xml:whitespace="preserve">Starts the score.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </method>
+      <method name="stop" c:identifier="clutter_score_stop" version="0.6">
+        <doc xml:whitespace="preserve">Stops and rewinds a playing #ClutterScore instance.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </method>
+      <property name="loop"
+                version="0.6"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">Whether the #ClutterScore should restart once finished.</doc>
+        <type name="gboolean"/>
+      </property>
+      <field name="parent">
+        <type name="GObject.Object" c:type="GObject"/>
+      </field>
+      <field name="priv">
+        <type name="ScorePrivate" c:type="ClutterScorePrivate*"/>
+      </field>
+      <glib:signal name="completed" version="0.6">
+        <doc xml:whitespace="preserve">The ::completed signal is emitted each time a #ClutterScore terminates.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none"/>
+        </return-value>
+      </glib:signal>
+      <glib:signal name="paused" version="0.6">
+        <doc xml:whitespace="preserve">The ::paused signal is emitted each time a #ClutterScore
+is paused.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none"/>
+        </return-value>
+      </glib:signal>
+      <glib:signal name="started" version="0.6">
+        <doc xml:whitespace="preserve">The ::started signal is emitted each time a #ClutterScore starts playing.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none"/>
+        </return-value>
+      </glib:signal>
+      <glib:signal name="timeline-completed" version="0.6">
+        <doc xml:whitespace="preserve">The ::timeline-completed signal is emitted each time a timeline
+inside a #ClutterScore terminates.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none"/>
+        </return-value>
+        <parameters>
+          <parameter name="object" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the completed timeline</doc>
+            <type name="Timeline"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="timeline-started" version="0.6">
+        <doc xml:whitespace="preserve">The ::timeline-started signal is emitted each time a new timeline
+inside a #ClutterScore starts playing.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none"/>
+        </return-value>
+        <parameters>
+          <parameter name="object" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the current timeline</doc>
+            <type name="Timeline"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+    </class>
+    <record name="ScoreClass"
+            c:type="ClutterScoreClass"
+            glib:is-gtype-struct-for="Score"
+            version="0.6">
+      <doc xml:whitespace="preserve">The #ClutterScoreClass structure contains only private data</doc>
+      <field name="parent_class">
+        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
+      </field>
+      <field name="timeline_started">
+        <callback name="timeline_started">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="score" transfer-ownership="none">
+              <type name="Score" c:type="ClutterScore*"/>
+            </parameter>
+            <parameter name="timeline" transfer-ownership="none">
+              <type name="Timeline" c:type="ClutterTimeline*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="timeline_completed">
+        <callback name="timeline_completed">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="score" transfer-ownership="none">
+              <type name="Score" c:type="ClutterScore*"/>
+            </parameter>
+            <parameter name="timeline" transfer-ownership="none">
+              <type name="Timeline" c:type="ClutterTimeline*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="started">
+        <callback name="started">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="score" transfer-ownership="none">
+              <type name="Score" c:type="ClutterScore*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="completed">
+        <callback name="completed">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="score" transfer-ownership="none">
+              <type name="Score" c:type="ClutterScore*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="paused">
+        <callback name="paused">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="score" transfer-ownership="none">
+              <type name="Score" c:type="ClutterScore*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="_clutter_score_1" introspectable="0">
+        <callback name="_clutter_score_1">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_score_2" introspectable="0">
+        <callback name="_clutter_score_2">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_score_3" introspectable="0">
+        <callback name="_clutter_score_3">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_score_4" introspectable="0">
+        <callback name="_clutter_score_4">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_score_5" introspectable="0">
+        <callback name="_clutter_score_5">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+    </record>
+    <record name="ScorePrivate" c:type="ClutterScorePrivate" disguised="1">
+    </record>
+    <constant name="ScreenSaver" value="269025069">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <class name="Script"
+           c:symbol-prefix="script"
+           c:type="ClutterScript"
+           version="0.6"
+           parent="GObject.Object"
+           glib:type-name="ClutterScript"
+           glib:get-type="clutter_script_get_type"
+           glib:type-struct="ScriptClass">
+      <doc xml:whitespace="preserve">The #ClutterScript structure contains only private data
+and should be accessed using the provided API</doc>
+      <constructor name="new" c:identifier="clutter_script_new" version="0.6">
+        <doc xml:whitespace="preserve">Creates a new #ClutterScript instance. #ClutterScript can be used
+to load objects definitions for scenegraph elements, like actors,
+or behavioural elements, like behaviours and timelines. The
+definitions must be encoded using the JavaScript Object Notation (JSON)
+language.
+g_object_unref() when done.</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">the newly created #ClutterScript instance. Use</doc>
+          <type name="Script" c:type="ClutterScript*"/>
+        </return-value>
+      </constructor>
+      <virtual-method name="get_type_from_name"
+                      invoker="get_type_from_name"
+                      version="0.6">
+        <doc xml:whitespace="preserve">Looks up a type by name, using the virtual function that 
+#ClutterScript has for that purpose. This function should
+rarely be used.
+%G_TYPE_INVALID if not corresponding type was found.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the type for the requested type name, or</doc>
+          <type name="GType" c:type="GType"/>
+        </return-value>
+        <parameters>
+          <parameter name="type_name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">name of the type to look up</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <method name="add_search_paths"
+              c:identifier="clutter_script_add_search_paths"
+              version="0.8">
+        <doc xml:whitespace="preserve">Adds @paths to the list of search paths held by @script.
+The search paths are used by clutter_script_lookup_filename(), which
+can be used to define search paths for the textures source file name
+or other custom, file-based properties.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="paths" transfer-ownership="none">
+            <doc xml:whitespace="preserve">an array of strings containing different search paths</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="n_paths" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the length of the passed array</doc>
+            <type name="gulong" c:type="gsize"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="connect_signals"
+              c:identifier="clutter_script_connect_signals"
+              version="0.6">
+        <doc xml:whitespace="preserve">Connects all the signals defined into a UI definition file to their
+handlers.
+This method invokes clutter_script_connect_signals_full() internally
+and uses  #GModule's introspective features (by opening the current
+module's scope) to look at the application's symbol table.
+Note that this function will not work if #GModule is not supported by
+the platform Clutter is running on.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="user_data" transfer-ownership="none">
+            <doc xml:whitespace="preserve">data to be passed to the signal handlers, or %NULL</doc>
+            <type name="gpointer" c:type="gpointer"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="connect_signals_full"
+              c:identifier="clutter_script_connect_signals_full"
+              version="0.6"
+              introspectable="0">
+        <doc xml:whitespace="preserve">Connects all the signals defined into a UI definition file to their
+handlers.
+This function allows to control how the signal handlers are
+going to be connected to their respective signals. It is meant
+primarily for language bindings to allow resolving the function
+names using the native API, but it can also be used on platforms
+that do not support GModule.
+Applications should use clutter_script_connect_signals().</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="func" transfer-ownership="none" closure="1">
+            <doc xml:whitespace="preserve">signal connection function</doc>
+            <type name="ScriptConnectFunc" c:type="ClutterScriptConnectFunc"/>
+          </parameter>
+          <parameter name="user_data" transfer-ownership="none">
+            <doc xml:whitespace="preserve">data to be passed to the signal handlers, or %NULL</doc>
+            <type name="gpointer" c:type="gpointer"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="ensure_objects"
+              c:identifier="clutter_script_ensure_objects"
+              version="0.6">
+        <doc xml:whitespace="preserve">Ensure that every object defined inside @script is correctly
+constructed. You should rarely need to use this function.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </method>
+      <method name="get_object"
+              c:identifier="clutter_script_get_object"
+              version="0.6">
+        <doc xml:whitespace="preserve">Retrieves the object bound to @name. This function does not increment
+the reference count of the returned object.
+with the given name was available</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the named object, or %NULL if no object</doc>
+          <type name="GObject.Object" c:type="GObject*"/>
+        </return-value>
+        <parameters>
+          <parameter name="name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the name of the object to retrieve</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_objects"
+              c:identifier="clutter_script_get_objects"
+              version="0.6"
+              introspectable="0">
+        <doc xml:whitespace="preserve">Retrieves a list of objects for the given names. After @script, object
+names/return location pairs should be listed, with a %NULL pointer
+ending the list, like:
+&lt;informalexample&gt;&lt;programlisting&gt;
+GObject *my_label, *a_button, *main_timeline;
+clutter_script_get_objects (script,
+"my-label", &amp;amp;my_label,
+"a-button", &amp;amp;a_button,
+"main-timeline", &amp;amp;main_timeline,
+NULL);
+&lt;/programlisting&gt;&lt;/informalexample&gt;
+returned objects.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the number of objects returned.</doc>
+          <type name="gint" c:type="gint"/>
+        </return-value>
+        <parameters>
+          <parameter name="first_name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the name of the first object to retrieve</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter transfer-ownership="none">
+            <varargs>
+            </varargs>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_type_from_name"
+              c:identifier="clutter_script_get_type_from_name"
+              version="0.6">
+        <doc xml:whitespace="preserve">Looks up a type by name, using the virtual function that 
+#ClutterScript has for that purpose. This function should
+rarely be used.
+%G_TYPE_INVALID if not corresponding type was found.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the type for the requested type name, or</doc>
+          <type name="GType" c:type="GType"/>
+        </return-value>
+        <parameters>
+          <parameter name="type_name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">name of the type to look up</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="list_objects"
+              c:identifier="clutter_script_list_objects"
+              version="0.8.2">
+        <doc xml:whitespace="preserve">Retrieves all the objects created by @script.
+objects it returns.
+of #GObject&lt;!-- --&gt;s, or %NULL. The objects are owned by the
+#ClutterScript instance. Use g_list_free() on the returned list when
+done.</doc>
+        <return-value transfer-ownership="container">
+          <doc xml:whitespace="preserve">a list</doc>
+          <type name="GLib.List" c:type="GList*">
+            <type name="GObject.Object"/>
+          </type>
+        </return-value>
+      </method>
+      <method name="load_from_data"
+              c:identifier="clutter_script_load_from_data"
+              version="0.6"
+              throws="1">
+        <doc xml:whitespace="preserve">Loads the definitions from @data into @script and merges with
+the currently loaded ones, if any.
+accordingly. On success, the merge id for the UI definitions is
+returned. You can use the merge id with clutter_script_unmerge().</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">on error, zero is returned and @error is set</doc>
+          <type name="guint" c:type="guint"/>
+        </return-value>
+        <parameters>
+          <parameter name="data" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a buffer containing the definitions</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="length" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the length of the buffer, or -1 if @data is a NUL-terminated buffer</doc>
+            <type name="glong" c:type="gssize"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="load_from_file"
+              c:identifier="clutter_script_load_from_file"
+              version="0.6"
+              throws="1">
+        <doc xml:whitespace="preserve">Loads the definitions from @filename into @script and merges with
+the currently loaded ones, if any.
+accordingly. On success, the merge id for the UI definitions is
+returned. You can use the merge id with clutter_script_unmerge_objects().</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">on error, zero is returned and @error is set</doc>
+          <type name="guint" c:type="guint"/>
+        </return-value>
+        <parameters>
+          <parameter name="filename" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the full path to the definition file</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="lookup_filename"
+              c:identifier="clutter_script_lookup_filename"
+              version="0.8">
+        <doc xml:whitespace="preserve">Looks up @filename inside the search paths of @script. If @filename
+is found, its full path will be returned .
+found.</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">the full path of @filename or %NULL if no path was</doc>
+          <type name="utf8" c:type="gchar*"/>
+        </return-value>
+        <parameters>
+          <parameter name="filename" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the name of the file to lookup</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="unmerge_objects"
+              c:identifier="clutter_script_unmerge_objects"
+              version="0.6">
+        <doc xml:whitespace="preserve">Unmerges the objects identified by @merge_id.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="merge_id" transfer-ownership="none">
+            <doc xml:whitespace="preserve">merge id returned when loading a UI definition</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <property name="filename" version="0.6" transfer-ownership="none">
+        <doc xml:whitespace="preserve">The path of the currently parsed file. If #ClutterScript:filename-set
+is %FALSE then the value of this property is undefined.</doc>
+        <type name="utf8"/>
+      </property>
+      <property name="filename-set" version="0.6" transfer-ownership="none">
+        <doc xml:whitespace="preserve">Whether the #ClutterScript:filename property is set. If this property
+is %TRUE then the currently parsed data comes from a file, and the
+file name is stored inside the #ClutterScript:filename property.</doc>
+        <type name="gboolean"/>
+      </property>
+      <field name="parent_instance">
+        <type name="GObject.Object" c:type="GObject"/>
+      </field>
+      <field name="priv">
+        <type name="ScriptPrivate" c:type="ClutterScriptPrivate*"/>
+      </field>
+    </class>
+    <record name="ScriptClass"
+            c:type="ClutterScriptClass"
+            glib:is-gtype-struct-for="Script"
+            version="0.6">
+      <doc xml:whitespace="preserve">The #ClutterScriptClass structure contains only private data</doc>
+      <field name="parent_class">
+        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
+      </field>
+      <field name="get_type_from_name">
+        <callback name="get_type_from_name">
+          <return-value transfer-ownership="none">
+            <doc xml:whitespace="preserve">the type for the requested type name, or</doc>
+            <type name="GType" c:type="GType"/>
+          </return-value>
+          <parameters>
+            <parameter name="script" transfer-ownership="none">
+              <type name="Script" c:type="ClutterScript*"/>
+            </parameter>
+            <parameter name="type_name" transfer-ownership="none">
+              <doc xml:whitespace="preserve">name of the type to look up</doc>
+              <type name="utf8" c:type="gchar*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="_clutter_reserved1" introspectable="0">
+        <callback name="_clutter_reserved1">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_reserved2" introspectable="0">
+        <callback name="_clutter_reserved2">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_reserved3" introspectable="0">
+        <callback name="_clutter_reserved3">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_reserved4" introspectable="0">
+        <callback name="_clutter_reserved4">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_reserved5" introspectable="0">
+        <callback name="_clutter_reserved5">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_reserved6" introspectable="0">
+        <callback name="_clutter_reserved6">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_reserved7" introspectable="0">
+        <callback name="_clutter_reserved7">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_reserved8" introspectable="0">
+        <callback name="_clutter_reserved8">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+    </record>
+    <callback name="ScriptConnectFunc"
+              c:type="ClutterScriptConnectFunc"
+              version="0.6">
+      <doc xml:whitespace="preserve">This is the signature of a function used to connect signals.  It is used
+by the clutter_script_connect_signals_full() function.  It is mainly
+intended for interpreted language bindings, but could be useful where the
+programmer wants more control over the signal connection process.</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="script" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #ClutterScript</doc>
+          <type name="Script" c:type="ClutterScript*"/>
+        </parameter>
+        <parameter name="object" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the object to connect</doc>
+          <type name="GObject.Object" c:type="GObject*"/>
+        </parameter>
+        <parameter name="signal_name" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the name of the signal</doc>
+          <type name="utf8" c:type="gchar*"/>
+        </parameter>
+        <parameter name="handler_name" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the name of the signal handler</doc>
+          <type name="utf8" c:type="gchar*"/>
+        </parameter>
+        <parameter name="connect_object" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the object to connect the signal to, or %NULL</doc>
+          <type name="GObject.Object" c:type="GObject*"/>
+        </parameter>
+        <parameter name="flags" transfer-ownership="none">
+          <doc xml:whitespace="preserve">signal connection flags</doc>
+          <type name="GObject.ConnectFlags" c:type="GConnectFlags"/>
+        </parameter>
+        <parameter name="user_data" transfer-ownership="none" closure="6">
+          <doc xml:whitespace="preserve">user data to pass to the signal handler</doc>
+          <type name="gpointer" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <enumeration name="ScriptError"
+                 version="0.6"
+                 glib:type-name="ClutterScriptError"
+                 glib:get-type="clutter_script_error_get_type"
+                 c:type="ClutterScriptError"
+                 glib:error-quark="clutter_script_error_quark">
+      <doc xml:whitespace="preserve">#ClutterScript error enumeration.</doc>
+      <member name="type_function"
+              value="0"
+              c:identifier="CLUTTER_SCRIPT_ERROR_INVALID_TYPE_FUNCTION"
+              glib:nick="type-function"/>
+      <member name="property"
+              value="1"
+              c:identifier="CLUTTER_SCRIPT_ERROR_INVALID_PROPERTY"
+              glib:nick="property"/>
+      <member name="value"
+              value="2"
+              c:identifier="CLUTTER_SCRIPT_ERROR_INVALID_VALUE"
+              glib:nick="value"/>
+    </enumeration>
+    <record name="ScriptPrivate" c:type="ClutterScriptPrivate" disguised="1">
+    </record>
+    <interface name="Scriptable"
+               c:symbol-prefix="scriptable"
+               c:type="ClutterScriptable"
+               version="0.6"
+               glib:type-name="ClutterScriptable"
+               glib:get-type="clutter_scriptable_get_type"
+               glib:type-struct="ScriptableIface">
+      <doc xml:whitespace="preserve">#ClutterScriptable is an opaque structure whose members cannot be directly
+accessed</doc>
+      <virtual-method name="get_id" invoker="get_id" version="0.6">
+        <doc xml:whitespace="preserve">Retrieves the id of @scriptable set using clutter_scriptable_set_id().
+the scriptable object and should never be modified of freed</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the id of the object. The returned string is owned by</doc>
+          <type name="utf8" c:type="gchar*"/>
+        </return-value>
+      </virtual-method>
+      <virtual-method name="parse_custom_node"
+                      invoker="parse_custom_node"
+                      version="0.6">
+        <doc xml:whitespace="preserve">Parses the passed JSON node. The implementation must set the type
+of the passed #GValue pointer using g_value_init().</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if the node was successfully parsed, %FALSE otherwise.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="script" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the #ClutterScript creating the scriptable instance</doc>
+            <type name="Script" c:type="ClutterScript*"/>
+          </parameter>
+          <parameter name="value" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the generic value to be set</doc>
+            <type name="GObject.Value" c:type="GValue*"/>
+          </parameter>
+          <parameter name="name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the name of the node</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="node" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the JSON node to be parsed</doc>
+            <type name="Json.Node" c:type="JsonNode*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="set_custom_property"
+                      invoker="set_custom_property"
+                      version="0.6">
+        <doc xml:whitespace="preserve">Overrides the common properties setting. The underlying virtual
+function should be used when implementing custom properties.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="script" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the #ClutterScript creating the scriptable instance</doc>
+            <type name="Script" c:type="ClutterScript*"/>
+          </parameter>
+          <parameter name="name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the name of the property</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="value" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the value of the property</doc>
+            <type name="GObject.Value" c:type="GValue*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="set_id" invoker="set_id" version="0.6">
+        <doc xml:whitespace="preserve">Sets @id as the unique Clutter script it for this instance of
+#ClutterScriptableIface.
+This name can be used by user interface designer applications to
+define a unique name for an object constructable using the UI
+definition language parsed by #ClutterScript.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="name" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <method name="get_id"
+              c:identifier="clutter_scriptable_get_id"
+              version="0.6">
+        <doc xml:whitespace="preserve">Retrieves the id of @scriptable set using clutter_scriptable_set_id().
+the scriptable object and should never be modified of freed</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the id of the object. The returned string is owned by</doc>
+          <type name="utf8" c:type="gchar*"/>
+        </return-value>
+      </method>
+      <method name="parse_custom_node"
+              c:identifier="clutter_scriptable_parse_custom_node"
+              version="0.6">
+        <doc xml:whitespace="preserve">Parses the passed JSON node. The implementation must set the type
+of the passed #GValue pointer using g_value_init().</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if the node was successfully parsed, %FALSE otherwise.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="script" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the #ClutterScript creating the scriptable instance</doc>
+            <type name="Script" c:type="ClutterScript*"/>
+          </parameter>
+          <parameter name="value" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the generic value to be set</doc>
+            <type name="GObject.Value" c:type="GValue*"/>
+          </parameter>
+          <parameter name="name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the name of the node</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="node" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the JSON node to be parsed</doc>
+            <type name="Json.Node" c:type="JsonNode*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_custom_property"
+              c:identifier="clutter_scriptable_set_custom_property"
+              version="0.6">
+        <doc xml:whitespace="preserve">Overrides the common properties setting. The underlying virtual
+function should be used when implementing custom properties.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="script" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the #ClutterScript creating the scriptable instance</doc>
+            <type name="Script" c:type="ClutterScript*"/>
+          </parameter>
+          <parameter name="name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the name of the property</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="value" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the value of the property</doc>
+            <type name="GObject.Value" c:type="GValue*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_id"
+              c:identifier="clutter_scriptable_set_id"
+              version="0.6">
+        <doc xml:whitespace="preserve">Sets @id as the unique Clutter script it for this instance of
+#ClutterScriptableIface.
+This name can be used by user interface designer applications to
+define a unique name for an object constructable using the UI
+definition language parsed by #ClutterScript.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="id" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the #ClutterScript id of the object</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+    </interface>
+    <record name="ScriptableIface"
+            c:type="ClutterScriptableIface"
+            glib:is-gtype-struct-for="Scriptable"
+            version="0.6">
+      <doc xml:whitespace="preserve">Interface for implementing "scriptable" objects. An object implementing
+this interface can override the parsing and properties setting sequence
+when loading a UI definition data with #ClutterScript</doc>
+      <field name="g_iface">
+        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
+      </field>
+      <field name="set_id">
+        <callback name="set_id">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="scriptable" transfer-ownership="none">
+              <type name="Scriptable" c:type="ClutterScriptable*"/>
+            </parameter>
+            <parameter name="name" transfer-ownership="none">
+              <type name="utf8" c:type="gchar*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="get_id">
+        <callback name="get_id">
+          <return-value transfer-ownership="none">
+            <doc xml:whitespace="preserve">the id of the object. The returned string is owned by</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </return-value>
+          <parameters>
+            <parameter name="scriptable" transfer-ownership="none">
+              <type name="Scriptable" c:type="ClutterScriptable*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="parse_custom_node">
+        <callback name="parse_custom_node">
+          <return-value transfer-ownership="none">
+            <doc xml:whitespace="preserve">%TRUE if the node was successfully parsed, %FALSE otherwise.</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="scriptable" transfer-ownership="none">
+              <type name="Scriptable" c:type="ClutterScriptable*"/>
+            </parameter>
+            <parameter name="script" transfer-ownership="none">
+              <doc xml:whitespace="preserve">the #ClutterScript creating the scriptable instance</doc>
+              <type name="Script" c:type="ClutterScript*"/>
+            </parameter>
+            <parameter name="value" transfer-ownership="none">
+              <doc xml:whitespace="preserve">the generic value to be set</doc>
+              <type name="GObject.Value" c:type="GValue*"/>
+            </parameter>
+            <parameter name="name" transfer-ownership="none">
+              <doc xml:whitespace="preserve">the name of the node</doc>
+              <type name="utf8" c:type="gchar*"/>
+            </parameter>
+            <parameter name="node" transfer-ownership="none">
+              <doc xml:whitespace="preserve">the JSON node to be parsed</doc>
+              <type name="Json.Node" c:type="JsonNode*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="set_custom_property">
+        <callback name="set_custom_property">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="scriptable" transfer-ownership="none">
+              <type name="Scriptable" c:type="ClutterScriptable*"/>
+            </parameter>
+            <parameter name="script" transfer-ownership="none">
+              <doc xml:whitespace="preserve">the #ClutterScript creating the scriptable instance</doc>
+              <type name="Script" c:type="ClutterScript*"/>
+            </parameter>
+            <parameter name="name" transfer-ownership="none">
+              <doc xml:whitespace="preserve">the name of the property</doc>
+              <type name="utf8" c:type="gchar*"/>
+            </parameter>
+            <parameter name="value" transfer-ownership="none">
+              <doc xml:whitespace="preserve">the value of the property</doc>
+              <type name="GObject.Value" c:type="GValue*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+    </record>
+    <constant name="ScrollClick" value="269025146">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <enumeration name="ScrollDirection"
+                 version="0.4"
+                 glib:type-name="ClutterScrollDirection"
+                 glib:get-type="clutter_scroll_direction_get_type"
+                 c:type="ClutterScrollDirection">
+      <doc xml:whitespace="preserve">Direction of a pointer scroll event.</doc>
+      <member name="up"
+              value="0"
+              c:identifier="CLUTTER_SCROLL_UP"
+              glib:nick="up"/>
+      <member name="down"
+              value="1"
+              c:identifier="CLUTTER_SCROLL_DOWN"
+              glib:nick="down"/>
+      <member name="left"
+              value="2"
+              c:identifier="CLUTTER_SCROLL_LEFT"
+              glib:nick="left"/>
+      <member name="right"
+              value="3"
+              c:identifier="CLUTTER_SCROLL_RIGHT"
+              glib:nick="right"/>
+    </enumeration>
+    <constant name="ScrollDown" value="269025145">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <record name="ScrollEvent" c:type="ClutterScrollEvent" version="0.2">
+      <doc xml:whitespace="preserve">Scroll wheel (or similar device) event</doc>
+      <field name="type" writable="1">
+        <type name="EventType" c:type="ClutterEventType"/>
+      </field>
+      <field name="time" writable="1">
+        <type name="guint32" c:type="guint32"/>
+      </field>
+      <field name="flags" writable="1">
+        <type name="EventFlags" c:type="ClutterEventFlags"/>
+      </field>
+      <field name="stage" writable="1">
+        <type name="Stage" c:type="ClutterStage*"/>
+      </field>
+      <field name="source" writable="1">
+        <type name="Actor" c:type="ClutterActor*"/>
+      </field>
+      <field name="x" writable="1">
+        <type name="gfloat" c:type="gfloat"/>
+      </field>
+      <field name="y" writable="1">
+        <type name="gfloat" c:type="gfloat"/>
+      </field>
+      <field name="direction" writable="1">
+        <type name="ScrollDirection" c:type="ClutterScrollDirection"/>
+      </field>
+      <field name="modifier_state" writable="1">
+        <type name="ModifierType" c:type="ClutterModifierType"/>
+      </field>
+      <field name="axes" writable="1">
+        <type name="gdouble" c:type="gdouble*"/>
+      </field>
+      <field name="device" writable="1">
+        <type name="InputDevice" c:type="ClutterInputDevice*"/>
+      </field>
+    </record>
+    <constant name="ScrollUp" value="269025144">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Scroll_Lock" value="65300">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Search" value="269025051">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Select" value="65376">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="SelectButton" value="269025184">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Send" value="269025147">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Serbian_DJE" value="1713">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Serbian_DZE" value="1727">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Serbian_JE" value="1720">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Serbian_LJE" value="1721">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Serbian_NJE" value="1722">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Serbian_TSHE" value="1723">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Serbian_dje" value="1697">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Serbian_dze" value="1711">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Serbian_je" value="1704">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Serbian_lje" value="1705">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Serbian_nje" value="1706">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Serbian_tshe" value="1707">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <class name="Settings"
+           c:symbol-prefix="settings"
+           c:type="ClutterSettings"
+           version="1.4"
+           parent="GObject.Object"
+           glib:type-name="ClutterSettings"
+           glib:get-type="clutter_settings_get_type">
+      <doc xml:whitespace="preserve">&lt;structname&gt;ClutterSettings&lt;/structname&gt; is an opaque structure whose
+members cannot be directly accessed.</doc>
+      <function name="get_default"
+                c:identifier="clutter_settings_get_default"
+                version="1.4">
+        <doc xml:whitespace="preserve">Retrieves the singleton instance of #ClutterSettings
+returned object is owned by Clutter and it should not be unreferenced
+directly</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the instance of #ClutterSettings. The</doc>
+          <type name="Settings" c:type="ClutterSettings*"/>
+        </return-value>
+      </function>
+      <property name="backend"
+                version="1.4"
+                readable="0"
+                writable="1"
+                construct-only="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">A back pointer to the #ClutterBackend</doc>
+        <type name="Backend"/>
+      </property>
+      <property name="double-click-distance"
+                version="1.4"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">The maximum distance, in pixels, between button-press events that
+determines whether or not to increase the click count by 1.</doc>
+        <type name="gint"/>
+      </property>
+      <property name="double-click-time"
+                version="1.4"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">The time, in milliseconds, that should elapse between button-press
+events in order to increase the click count by 1.</doc>
+        <type name="gint"/>
+      </property>
+      <property name="font-antialias"
+                version="1.4"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">Whether or not to use antialiasing when rendering text; a value
+of 1 enables it unconditionally; a value of 0 disables it
+unconditionally; and -1 will use the system's default.</doc>
+        <type name="gint"/>
+      </property>
+      <property name="font-dpi"
+                version="1.4"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">The DPI used when rendering text, as a value of 1024 * dots/inch.
+If set to -1, the system's default will be used instead</doc>
+        <type name="gint"/>
+      </property>
+      <property name="font-hint-style"
+                version="1.4"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">The style of the hinting used when rendering text. Valid values
+are:
+&lt;itemizedlist&gt;
+&lt;listitem&gt;&lt;simpara&gt;hintnone&lt;/simpara&gt;&lt;/listitem&gt;
+&lt;listitem&gt;&lt;simpara&gt;hintslight&lt;/simpara&gt;&lt;/listitem&gt;
+&lt;listitem&gt;&lt;simpara&gt;hintmedium&lt;/simpara&gt;&lt;/listitem&gt;
+&lt;listitem&gt;&lt;simpara&gt;hintfull&lt;/simpara&gt;&lt;/listitem&gt;
+&lt;/itemizedlist&gt;</doc>
+        <type name="utf8"/>
+      </property>
+      <property name="font-hinting"
+                version="1.4"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">Whether or not to use hinting when rendering text; a value of 1
+unconditionally enables it; a value of 0 unconditionally disables
+it; and a value of -1 will use the system's default.</doc>
+        <type name="gint"/>
+      </property>
+      <property name="font-name"
+                version="1.4"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">The default font name that should be used by text actors, as
+a string that can be passed to pango_font_description_from_string().</doc>
+        <type name="utf8"/>
+      </property>
+      <property name="font-subpixel-order"
+                version="1.4"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">The type of sub-pixel antialiasing used when rendering text. Valid
+values are:
+&lt;itemizedlist&gt;
+&lt;listitem&gt;&lt;simpara&gt;none&lt;/simpara&gt;&lt;/listitem&gt;
+&lt;listitem&gt;&lt;simpara&gt;rgb&lt;/simpara&gt;&lt;/listitem&gt;
+&lt;listitem&gt;&lt;simpara&gt;bgr&lt;/simpara&gt;&lt;/listitem&gt;
+&lt;listitem&gt;&lt;simpara&gt;vrgb&lt;/simpara&gt;&lt;/listitem&gt;
+&lt;listitem&gt;&lt;simpara&gt;vbgr&lt;/simpara&gt;&lt;/listitem&gt;
+&lt;/itemizedlist&gt;</doc>
+        <type name="utf8"/>
+      </property>
+    </class>
+    <class name="Shader"
+           c:symbol-prefix="shader"
+           c:type="ClutterShader"
+           version="0.6"
+           parent="GObject.Object"
+           glib:type-name="ClutterShader"
+           glib:get-type="clutter_shader_get_type"
+           glib:type-struct="ShaderClass">
+      <doc xml:whitespace="preserve">The #ClutterShader structure contains only private data
+and should be accessed using the provided API</doc>
+      <constructor name="new" c:identifier="clutter_shader_new" version="0.6">
+        <doc xml:whitespace="preserve">Create a new #ClutterShader instance.</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">a new #ClutterShader.</doc>
+          <type name="Shader" c:type="ClutterShader*"/>
+        </return-value>
+      </constructor>
+      <method name="compile"
+              c:identifier="clutter_shader_compile"
+              version="0.8"
+              throws="1">
+        <doc xml:whitespace="preserve">Compiles and links GLSL sources set for vertex and fragment shaders for
+a #ClutterShader. If the compilation fails and a #GError return location is
+provided the error will contain the errors from the compiler, if any.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">returns TRUE if the shader was succesfully compiled.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+      </method>
+      <method name="get_cogl_fragment_shader"
+              c:identifier="clutter_shader_get_cogl_fragment_shader"
+              version="1.0">
+        <doc xml:whitespace="preserve">Retrieves the underlying #CoglHandle for the fragment shader.
+shader, or %NULL. The handle is owned by the #ClutterShader
+and it should not be unreferenced</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">A #CoglHandle for the fragment</doc>
+          <type name="Cogl.Handle" c:type="CoglHandle"/>
+        </return-value>
+      </method>
+      <method name="get_cogl_program"
+              c:identifier="clutter_shader_get_cogl_program"
+              version="1.0">
+        <doc xml:whitespace="preserve">Retrieves the underlying #CoglHandle for the shader program.
+or %NULL. The handle is owned by the #ClutterShader and it should
+not be unreferenced</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">A #CoglHandle for the shader program,</doc>
+          <type name="Cogl.Handle" c:type="CoglHandle"/>
+        </return-value>
+      </method>
+      <method name="get_cogl_vertex_shader"
+              c:identifier="clutter_shader_get_cogl_vertex_shader"
+              version="1.0">
+        <doc xml:whitespace="preserve">Retrieves the underlying #CoglHandle for the vertex shader.
+shader, or %NULL. The handle is owned by the #ClutterShader
+and it should not be unreferenced</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">A #CoglHandle for the vertex</doc>
+          <type name="Cogl.Handle" c:type="CoglHandle"/>
+        </return-value>
+      </method>
+      <method name="get_fragment_source"
+              c:identifier="clutter_shader_get_fragment_source"
+              version="0.6">
+        <doc xml:whitespace="preserve">Query the current GLSL fragment source set on @shader.
+ClutterShader object or %NULL. The returned string is owned by the
+shader object and should never be modified or freed</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the source of the fragment shader for this</doc>
+          <type name="utf8" c:type="gchar*"/>
+        </return-value>
+      </method>
+      <method name="get_is_enabled"
+              c:identifier="clutter_shader_get_is_enabled"
+              version="0.6">
+        <doc xml:whitespace="preserve">Checks whether @shader is enabled.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if the shader is enabled.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+      </method>
+      <method name="get_vertex_source"
+              c:identifier="clutter_shader_get_vertex_source"
+              version="0.6">
+        <doc xml:whitespace="preserve">Query the current GLSL vertex source set on @shader.
+ClutterShader object or %NULL. The returned string is owned by the
+shader object and should never be modified or freed</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the source of the vertex shader for this</doc>
+          <type name="utf8" c:type="gchar*"/>
+        </return-value>
+      </method>
+      <method name="is_compiled"
+              c:identifier="clutter_shader_is_compiled"
+              version="0.8">
+        <doc xml:whitespace="preserve">Checks whether @shader is is currently compiled, linked and bound
+to the GL context.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if the shader is compiled, linked and ready for use.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+      </method>
+      <method name="release"
+              c:identifier="clutter_shader_release"
+              version="0.6">
+        <doc xml:whitespace="preserve">Frees up any GL context resources held by the shader.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </method>
+      <method name="set_fragment_source"
+              c:identifier="clutter_shader_set_fragment_source"
+              version="0.6">
+        <doc xml:whitespace="preserve">Sets the GLSL source code to be used by a #ClutterShader for the fragment
+program.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="data" transfer-ownership="none">
+            <doc xml:whitespace="preserve">GLSL source code.</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="length" transfer-ownership="none">
+            <doc xml:whitespace="preserve">length of source buffer (currently ignored)</doc>
+            <type name="glong" c:type="gssize"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_is_enabled"
+              c:identifier="clutter_shader_set_is_enabled"
+              version="0.6">
+        <doc xml:whitespace="preserve">Enables a shader. This function will attempt to compile and link
+the shader, if it isn't already.
+When @enabled is %FALSE the default state of the GL pipeline will be
+used instead.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="enabled" transfer-ownership="none">
+            <doc xml:whitespace="preserve">The new state of the shader.</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_uniform"
+              c:identifier="clutter_shader_set_uniform"
+              version="1.0">
+        <doc xml:whitespace="preserve">Sets a user configurable variable in the GLSL shader programs attached to
+a #ClutterShader.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">name of uniform in GLSL shader program to set.</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="value" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #ClutterShaderFloat, #ClutterShaderInt or #ClutterShaderMatrix #GValue.</doc>
+            <type name="GObject.Value" c:type="GValue*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_vertex_source"
+              c:identifier="clutter_shader_set_vertex_source"
+              version="0.6">
+        <doc xml:whitespace="preserve">Sets the GLSL source code to be used by a #ClutterShader for the vertex
+program.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="data" transfer-ownership="none">
+            <doc xml:whitespace="preserve">GLSL source code.</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="length" transfer-ownership="none">
+            <doc xml:whitespace="preserve">length of source buffer (currently ignored)</doc>
+            <type name="glong" c:type="gssize"/>
+          </parameter>
+        </parameters>
+      </method>
+      <property name="compiled" version="0.8" transfer-ownership="none">
+        <doc xml:whitespace="preserve">Whether the shader is compiled and linked, ready for use
+in the GL context.</doc>
+        <type name="gboolean"/>
+      </property>
+      <property name="enabled"
+                version="0.6"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">Whether the shader is currently used in the GL rendering pipeline.</doc>
+        <type name="gboolean"/>
+      </property>
+      <property name="fragment-source"
+                version="0.6"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">GLSL source code for the fragment shader part of the shader program.</doc>
+        <type name="utf8"/>
+      </property>
+      <property name="vertex-source"
+                version="0.6"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">GLSL source code for the vertex shader part of the shader
+program, if any</doc>
+        <type name="utf8"/>
+      </property>
+      <field name="parent">
+        <type name="GObject.Object" c:type="GObject"/>
+      </field>
+      <field name="priv">
+        <type name="ShaderPrivate" c:type="ClutterShaderPrivate*"/>
+      </field>
+    </class>
+    <record name="ShaderClass"
+            c:type="ClutterShaderClass"
+            glib:is-gtype-struct-for="Shader"
+            version="0.6">
+      <doc xml:whitespace="preserve">The #ClutterShaderClass structure contains only private data</doc>
+      <field name="parent_class">
+        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
+      </field>
+    </record>
+    <class name="ShaderEffect"
+           c:symbol-prefix="shader_effect"
+           c:type="ClutterShaderEffect"
+           version="1.4"
+           parent="OffscreenEffect"
+           abstract="1"
+           glib:type-name="ClutterShaderEffect"
+           glib:get-type="clutter_shader_effect_get_type"
+           glib:type-struct="ShaderEffectClass">
+      <doc xml:whitespace="preserve">The &lt;structname&gt;ClutterShaderEffect&lt;/structname&gt; structure contains
+only private data and should be accessed using the provided API</doc>
+      <method name="get_program"
+              c:identifier="clutter_shader_effect_get_program"
+              version="1.4">
+        <doc xml:whitespace="preserve">Retrieves a pointer to the program's handle
+or %COGL_INVALID_HANDLE</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">a pointer to the program's handle,</doc>
+          <type name="Cogl.Handle" c:type="CoglHandle"/>
+        </return-value>
+      </method>
+      <method name="get_shader"
+              c:identifier="clutter_shader_effect_get_shader"
+              version="1.4">
+        <doc xml:whitespace="preserve">Retrieves a pointer to the shader's handle
+or %COGL_INVALID_HANDLE</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">a pointer to the shader's handle,</doc>
+          <type name="Cogl.Handle" c:type="CoglHandle"/>
+        </return-value>
+      </method>
+      <method name="set_shader_source"
+              c:identifier="clutter_shader_effect_set_shader_source"
+              version="1.4">
+        <doc xml:whitespace="preserve">Sets the source of the GLSL shader used by @effect
+This function should only be called by implementations of
+the #ClutterShaderEffect class, and not by application code.
+This function can only be called once; subsequent calls will
+yield no result.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if the source was set</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="source" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the source of a GLSL shader</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_uniform"
+              c:identifier="clutter_shader_effect_set_uniform"
+              version="1.4"
+              introspectable="0">
+        <doc xml:whitespace="preserve">Sets a list of values as the payload for the uniform @name inside
+the shader effect
+%G_TYPE_FLOAT, for 1 or more floating point values;
+%CLUTTER_TYPE_SHADER_INT, for a pointer to an array of integer values;
+%CLUTTER_TYPE_SHADER_FLOAT, for a pointer to an array of floating point
+values; and %CLUTTER_TYPE_SHADER_MATRIX, for a pointer to an array of
+floating point values mapping a matrix
+The number of values interepreted is defined by the @n_value
+argument, and by the @gtype argument. For instance, a uniform named
+"sampler0" and containing a single integer value is set using:
+|[
+clutter_shader_effect_set_uniform (effect, "sampler0",
+G_TYPE_INT, 1,
+0);
+]|
+While a uniform named "components" and containing a 3-elements vector
+of floating point values (a "vec3") can be set using:
+|[
+gfloat component_r, component_g, component_b;
+clutter_shader_effect_set_uniform (effect, "components",
+G_TYPE_FLOAT, 3,
+component_r,
+component_g,
+component_b);
+]|
+or can be set using:
+|[
+gfloat component_vec[3];
+clutter_shader_effect_set_uniform (effect, "components",
+CLUTTER_TYPE_SHADER_FLOAT, 3,
+component_vec);
+]|
+Finally, a uniform named "map" and containing a matrix can be set using:
+|[
+clutter_shader_effect_set_uniform (effect, "map",
+CLUTTER_TYPE_SHADER_MATRIX, 1,
+cogl_matrix_get_array (&amp;matrix));
+]|</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the name of the uniform to set</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="gtype" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the type of the uniform to set</doc>
+            <type name="GType" c:type="GType"/>
+          </parameter>
+          <parameter name="n_values" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the number of values</doc>
+            <type name="gulong" c:type="gsize"/>
+          </parameter>
+          <parameter transfer-ownership="none">
+            <varargs>
+            </varargs>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_uniform_value"
+              c:identifier="clutter_shader_effect_set_uniform_value"
+              version="1.4">
+        <doc xml:whitespace="preserve">Sets @value as the payload for the uniform @name inside the shader
+effect
+integer value; %G_TYPE_FLOAT, for a single floating point value;
+%CLUTTER_TYPE_SHADER_INT, for an array of integer values;
+%CLUTTER_TYPE_SHADER_FLOAT, for an array of floating point values;
+and %CLUTTER_TYPE_SHADER_MATRIX, for a matrix of floating point
+values</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the name of the uniform to set</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="value" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GValue with the value of the uniform to set</doc>
+            <type name="GObject.Value" c:type="GValue*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <property name="shader-type"
+                version="1.4"
+                readable="0"
+                writable="1"
+                construct-only="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">The type of shader that is used by the effect. This property
+should be set by the constructor of #ClutterShaderEffect
+sub-classes.</doc>
+        <type name="ShaderType"/>
+      </property>
+      <field name="parent_instance">
+        <type name="OffscreenEffect" c:type="ClutterOffscreenEffect"/>
+      </field>
+      <field name="priv">
+        <type name="ShaderEffectPrivate" c:type="ClutterShaderEffectPrivate*"/>
+      </field>
+    </class>
+    <record name="ShaderEffectClass"
+            c:type="ClutterShaderEffectClass"
+            glib:is-gtype-struct-for="ShaderEffect"
+            version="1.4">
+      <doc xml:whitespace="preserve">The &lt;structname&gt;ClutterShaderEffectClass&lt;/structname&gt; structure contains
+only private data</doc>
+      <field name="parent_class">
+        <type name="OffscreenEffectClass"
+              c:type="ClutterOffscreenEffectClass"/>
+      </field>
+      <field name="_clutter_shader1" introspectable="0">
+        <callback name="_clutter_shader1">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_shader2" introspectable="0">
+        <callback name="_clutter_shader2">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_shader3" introspectable="0">
+        <callback name="_clutter_shader3">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_shader4" introspectable="0">
+        <callback name="_clutter_shader4">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_shader5" introspectable="0">
+        <callback name="_clutter_shader5">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_shader6" introspectable="0">
+        <callback name="_clutter_shader6">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+    </record>
+    <record name="ShaderEffectPrivate"
+            c:type="ClutterShaderEffectPrivate"
+            disguised="1">
+    </record>
+    <enumeration name="ShaderError"
+                 version="0.6"
+                 glib:type-name="ClutterShaderError"
+                 glib:get-type="clutter_shader_error_get_type"
+                 c:type="ClutterShaderError"
+                 glib:error-quark="clutter_shader_error_quark">
+      <doc xml:whitespace="preserve">#ClutterShader error enumeration</doc>
+      <member name="no_asm"
+              value="0"
+              c:identifier="CLUTTER_SHADER_ERROR_NO_ASM"
+              glib:nick="no-asm"/>
+      <member name="no_glsl"
+              value="1"
+              c:identifier="CLUTTER_SHADER_ERROR_NO_GLSL"
+              glib:nick="no-glsl"/>
+      <member name="compile"
+              value="2"
+              c:identifier="CLUTTER_SHADER_ERROR_COMPILE"
+              glib:nick="compile"/>
+    </enumeration>
+    <record name="ShaderFloat" c:type="ClutterShaderFloat" disguised="1">
+    </record>
+    <record name="ShaderInt" c:type="ClutterShaderInt" disguised="1">
+    </record>
+    <record name="ShaderMatrix" c:type="ClutterShaderMatrix" disguised="1">
+    </record>
+    <record name="ShaderPrivate" c:type="ClutterShaderPrivate" disguised="1">
+    </record>
+    <enumeration name="ShaderType"
+                 version="1.4"
+                 glib:type-name="ClutterShaderType"
+                 glib:get-type="clutter_shader_type_get_type"
+                 c:type="ClutterShaderType">
+      <doc xml:whitespace="preserve">The type of GLSL shader program</doc>
+      <member name="vertex_shader"
+              value="0"
+              c:identifier="CLUTTER_VERTEX_SHADER"
+              glib:nick="vertex-shader"/>
+      <member name="fragment_shader"
+              value="1"
+              c:identifier="CLUTTER_FRAGMENT_SHADER"
+              glib:nick="fragment-shader"/>
+    </enumeration>
+    <constant name="Shift_L" value="65505">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Shift_Lock" value="65510">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Shift_R" value="65506">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Shop" value="269025078">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="SingleCandidate" value="65340">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Sleep" value="269025071">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="SlowKeys_Enable" value="65139">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Spell" value="269025148">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="SplitScreen" value="269025149">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <class name="Stage"
+           c:symbol-prefix="stage"
+           c:type="ClutterStage"
+           version="0.1"
+           parent="Group"
+           glib:type-name="ClutterStage"
+           glib:get-type="clutter_stage_get_type"
+           glib:type-struct="StageClass">
+      <doc xml:whitespace="preserve">The #ClutterStage structure contains only private data
+and should be accessed using the provided API</doc>
+      <implements name="Atk.ImplementorIface"/>
+      <implements name="Animatable"/>
+      <implements name="Container"/>
+      <implements name="Scriptable"/>
+      <constructor name="new" c:identifier="clutter_stage_new" version="0.8">
+        <doc xml:whitespace="preserve">Creates a new, non-default stage. A non-default stage is a new
+top-level actor which can be used as another container. It works
+exactly like the default stage, but while clutter_stage_get_default()
+will always return the same instance, you will have to keep a pointer
+to any #ClutterStage returned by clutter_stage_create().
+The ability to support multiple stages depends on the current
+backend. Use clutter_feature_available() and
+%CLUTTER_FEATURE_STAGE_MULTIPLE to check at runtime whether a
+backend supports multiple stages.
+not support multiple stages. Use clutter_actor_destroy() to
+programmatically close the returned stage.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">a new stage, or %NULL if the default backend does</doc>
+          <type name="Actor" c:type="ClutterActor*"/>
+        </return-value>
+      </constructor>
+      <function name="get_default" c:identifier="clutter_stage_get_default">
+        <doc xml:whitespace="preserve">Returns the main stage. The default #ClutterStage is a singleton,
+so the stage will be created the first time this function is
+called (typically, inside clutter_init()); all the subsequent
+calls to clutter_stage_get_default() will return the same instance.
+Clutter guarantess the existence of the default stage.
+destroy or unref the returned actor.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the main #ClutterStage.  You should never</doc>
+          <type name="Actor" c:type="ClutterActor*"/>
+        </return-value>
+      </function>
+      <method name="ensure_current"
+              c:identifier="clutter_stage_ensure_current"
+              version="0.8">
+        <doc xml:whitespace="preserve">This function essentially makes sure the right GL context is
+current for the passed stage. It is not intended to
+be used by applications.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </method>
+      <method name="ensure_redraw"
+              c:identifier="clutter_stage_ensure_redraw"
+              version="1.0">
+        <doc xml:whitespace="preserve">Ensures that @stage is redrawn
+used when embedding a #ClutterStage into a toolkit with
+another windowing system, like GTK+.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </method>
+      <method name="ensure_viewport"
+              c:identifier="clutter_stage_ensure_viewport"
+              version="1.0">
+        <doc xml:whitespace="preserve">Ensures that the GL viewport is updated with the current
+stage window size.
+This function will queue a redraw of @stage.
+This function should not be called by applications; it is used
+when embedding a #ClutterStage into a toolkit with another
+windowing system, like GTK+.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </method>
+      <method name="event" c:identifier="clutter_stage_event" version="0.4">
+        <doc xml:whitespace="preserve">This function is used to emit an event on the main stage.
+You should rarely need to use this function, except for
+synthetised events.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the return value from the signal emission</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="event" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #ClutterEvent</doc>
+            <type name="Event" c:type="ClutterEvent*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_actor_at_pos"
+              c:identifier="clutter_stage_get_actor_at_pos">
+        <doc xml:whitespace="preserve">Checks the scene at the coordinates @x and @y and returns a pointer
+to the #ClutterActor at those coordinates.
+By using @pick_mode it is possible to control which actors will be
+painted and thus available.
+if any</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the actor at the specified coordinates,</doc>
+          <type name="Actor" c:type="ClutterActor*"/>
+        </return-value>
+        <parameters>
+          <parameter name="pick_mode" transfer-ownership="none">
+            <doc xml:whitespace="preserve">how the scene graph should be painted</doc>
+            <type name="PickMode" c:type="ClutterPickMode"/>
+          </parameter>
+          <parameter name="x" transfer-ownership="none">
+            <doc xml:whitespace="preserve">X coordinate to check</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="y" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Y coordinate to check</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_color" c:identifier="clutter_stage_get_color">
+        <doc xml:whitespace="preserve">Retrieves the stage color.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="color" transfer-ownership="none">
+            <doc xml:whitespace="preserve">return location for a #ClutterColor</doc>
+            <type name="Color" c:type="ClutterColor*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_fog"
+              c:identifier="clutter_stage_get_fog"
+              version="0.6">
+        <doc xml:whitespace="preserve">Retrieves the current depth cueing settings from the stage.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="fog" transfer-ownership="none">
+            <doc xml:whitespace="preserve">return location for a #ClutterFog structure</doc>
+            <type name="Fog" c:type="ClutterFog*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_fullscreen"
+              c:identifier="clutter_stage_get_fullscreen"
+              version="1.0">
+        <doc xml:whitespace="preserve">Retrieves whether the stage is full screen or not</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if the stage is full screen</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+      </method>
+      <method name="get_key_focus"
+              c:identifier="clutter_stage_get_key_focus"
+              version="0.6">
+        <doc xml:whitespace="preserve">Retrieves the actor that is currently under key focus.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the actor with key focus, or the stage</doc>
+          <type name="Actor" c:type="ClutterActor*"/>
+        </return-value>
+      </method>
+      <method name="get_minimum_size"
+              c:identifier="clutter_stage_get_minimum_size"
+              version="1.2">
+        <doc xml:whitespace="preserve">Retrieves the minimum size for a stage window as set using
+clutter_stage_set_minimum_size().
+The returned size may not correspond to the actual minimum size and
+it is specific to the #ClutterStage implementation inside the
+Clutter backend</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="width"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:whitespace="preserve">return location for the minimum width, in pixels, or %NULL</doc>
+            <type name="guint" c:type="guint*"/>
+          </parameter>
+          <parameter name="height"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:whitespace="preserve">return location for the minimum height, in pixels, or %NULL</doc>
+            <type name="guint" c:type="guint*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_no_clear_hint"
+              c:identifier="clutter_stage_get_no_clear_hint"
+              version="1.4">
+        <doc xml:whitespace="preserve">Retrieves the hint set with clutter_stage_set_no_clear_hint()
+cycle, and %FALSE otherwise</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if the stage should not clear itself on every paint</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+      </method>
+      <method name="get_perspective"
+              c:identifier="clutter_stage_get_perspective">
+        <doc xml:whitespace="preserve">Retrieves the stage perspective.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="perspective"
+                     direction="out"
+                     caller-allocates="1"
+                     transfer-ownership="none"
+                     allow-none="1">
+            <doc xml:whitespace="preserve">return location for a #ClutterPerspective</doc>
+            <type name="Perspective" c:type="ClutterPerspective*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_throttle_motion_events"
+              c:identifier="clutter_stage_get_throttle_motion_events"
+              version="1.0">
+        <doc xml:whitespace="preserve">Retrieves the value set with clutter_stage_set_throttle_motion_events()
+and %FALSE otherwise</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if the motion events are being throttled,</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+      </method>
+      <method name="get_title" c:identifier="clutter_stage_get_title">
+        <return-value transfer-ownership="none">
+          <type name="utf8" c:type="gchar*"/>
+        </return-value>
+      </method>
+      <method name="get_use_alpha"
+              c:identifier="clutter_stage_get_use_alpha"
+              version="1.2">
+        <doc xml:whitespace="preserve">Retrieves the value set using clutter_stage_set_use_alpha()
+alpha channel of the stage color</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if the stage should honour the opacity and the</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+      </method>
+      <method name="get_use_fog"
+              c:identifier="clutter_stage_get_use_fog"
+              version="0.6">
+        <doc xml:whitespace="preserve">Gets whether the depth cueing effect is enabled on @stage.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if the the depth cueing effect is enabled</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+      </method>
+      <method name="get_user_resizable"
+              c:identifier="clutter_stage_get_user_resizable"
+              version="0.4">
+        <doc xml:whitespace="preserve">Retrieves the value set with clutter_stage_set_user_resizable().</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if the stage is resizable by the user.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+      </method>
+      <method name="hide_cursor"
+              c:identifier="clutter_stage_hide_cursor"
+              version="0.4">
+        <doc xml:whitespace="preserve">Makes the cursor invisible on the stage window</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </method>
+      <method name="is_default"
+              c:identifier="clutter_stage_is_default"
+              version="0.8">
+        <doc xml:whitespace="preserve">Checks if @stage is the default stage, or an instance created using
+clutter_stage_new() but internally using the same implementation.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if the passed stage is the default one</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+      </method>
+      <method name="queue_redraw"
+              c:identifier="clutter_stage_queue_redraw"
+              version="0.8">
+        <doc xml:whitespace="preserve">Queues a redraw for the passed stage.
+&lt;note&gt;Applications should call clutter_actor_queue_redraw() and not
+this function.&lt;/note&gt;
+&lt;note&gt;This function is just a wrapper for clutter_actor_queue_redraw()
+and should probably go away.&lt;/note&gt;</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </method>
+      <method name="read_pixels" c:identifier="clutter_stage_read_pixels">
+        <doc xml:whitespace="preserve">Makes a screenshot of the stage in RGBA 8bit data, returns a
+linear buffer with @width * 4 as rowstride.
+The alpha data contained in the returned buffer is driver-dependent,
+and not guaranteed to hold any sensible value.
+or %NULL if the read failed. Use g_free() on the returned data
+to release the resources it has allocated.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">a pointer to newly allocated memory with the buffer</doc>
+          <type name="guint8" c:type="guchar*"/>
+        </return-value>
+        <parameters>
+          <parameter name="x" transfer-ownership="none">
+            <doc xml:whitespace="preserve">x coordinate of the first pixel that is read from stage</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="y" transfer-ownership="none">
+            <doc xml:whitespace="preserve">y coordinate of the first pixel that is read from stage</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="width" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Width dimention of pixels to be read, or -1 for the entire stage width</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="height" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Height dimention of pixels to be read, or -1 for the entire stage height</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_color" c:identifier="clutter_stage_set_color">
+        <doc xml:whitespace="preserve">Sets the stage color.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="color" transfer-ownership="none">
+            <doc xml:whitespace="preserve">A #ClutterColor</doc>
+            <type name="Color" c:type="ClutterColor*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_fog"
+              c:identifier="clutter_stage_set_fog"
+              version="0.6">
+        <doc xml:whitespace="preserve">Sets the fog (also known as "depth cueing") settings for the @stage.
+A #ClutterStage will only use a linear fog progression, which
+depends solely on the distance from the viewer. The cogl_set_fog()
+function in COGL exposes more of the underlying implementation,
+and allows changing the for progression function. It can be directly
+used by disabling the #ClutterStage:use-fog property and connecting
+a signal handler to the #ClutterActor::paint signal on the @stage,
+like:
+|[
+clutter_stage_set_use_fog (stage, FALSE);
+g_signal_connect (stage, "paint", G_CALLBACK (on_stage_paint), NULL);
+]|
+The paint signal handler will call cogl_set_fog() with the
+desired settings:
+|[
+static void
+on_stage_paint (ClutterActor *actor)
+{
+ClutterColor stage_color = { 0, };
+CoglColor fog_color = { 0, };
+/&amp;ast; set the fog color to the stage background color &amp;ast;/
+clutter_stage_get_color (CLUTTER_STAGE (actor), &amp;amp;stage_color);
+cogl_color_init_from_4ub (&amp;amp;fog_color,
+stage_color.red,
+stage_color.green,
+stage_color.blue,
+stage_color.alpha);
+/&amp;ast; enable fog &amp;ast;/
+cogl_set_fog (&amp;amp;fog_color,
+COGL_FOG_MODE_EXPONENTIAL, /&amp;ast; mode &amp;ast;/
+0.5,                       /&amp;ast; density &amp;ast;/
+5.0, 30.0);                /&amp;ast; z_near and z_far &amp;ast;/
+}
+]|
+&lt;note&gt;The fogging functions only work correctly when the visible actors use
+unmultiplied alpha colors. By default Cogl will premultiply textures and
+cogl_set_source_color() will premultiply colors, so unless you explicitly
+load your textures requesting an unmultiplied internal format and use
+cogl_material_set_color() you can only use fogging with fully opaque actors.
+Support for premultiplied colors will improve in the future when we can
+depend on fragment shaders.&lt;/note&gt;</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="fog" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #ClutterFog structure</doc>
+            <type name="Fog" c:type="ClutterFog*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_fullscreen"
+              c:identifier="clutter_stage_set_fullscreen"
+              version="1.0">
+        <doc xml:whitespace="preserve">Asks to place the stage window in the fullscreen or unfullscreen
+states.
+afterward, because other entities (e.g. the user or window manager)
+could unfullscreen it again, and not all window managers honor
+requests to fullscreen windows.
+If you want to receive notification of the fullscreen state you
+should either use the #ClutterStage::fullscreen and
+#ClutterStage::unfullscreen signals, or use the notify signal
+for the #ClutterStage:fullscreen-set property</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="fullscreen" transfer-ownership="none">
+            <doc xml:whitespace="preserve">%TRUE to to set the stage fullscreen</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_key_focus"
+              c:identifier="clutter_stage_set_key_focus"
+              version="0.6">
+        <doc xml:whitespace="preserve">Sets the key focus on @actor. An actor with key focus will receive
+all the key events. If @actor is %NULL, the stage will receive
+focus.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="actor" transfer-ownership="none" allow-none="1">
+            <doc xml:whitespace="preserve">the actor to set key focus to, or %NULL</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_minimum_size"
+              c:identifier="clutter_stage_set_minimum_size"
+              version="1.2">
+        <doc xml:whitespace="preserve">Sets the minimum size for a stage window, if the default backend
+uses #ClutterStage inside a window
+This is a convenience function, and it is equivalent to setting the
+#ClutterActor:min-width and #ClutterActor:min-height on @stage
+If the current size of @stage is smaller than the minimum size, the
+This function has no effect if @stage is fullscreen</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="width" transfer-ownership="none">
+            <doc xml:whitespace="preserve">width, in pixels</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+          <parameter name="height" transfer-ownership="none">
+            <doc xml:whitespace="preserve">height, in pixels</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_no_clear_hint"
+              c:identifier="clutter_stage_set_no_clear_hint"
+              version="1.4">
+        <doc xml:whitespace="preserve">Sets whether the @stage should clear itself at the beginning
+of each paint cycle or not.
+Clearing the #ClutterStage can be a costly operation, especially
+if the stage is always covered - for instance, in a full-screen
+video player or in a game with a background texture.
+&lt;note&gt;&lt;para&gt;This setting is a hint; Clutter might discard this
+hint depending on its internal state.&lt;/para&gt;&lt;/note&gt;
+&lt;warning&gt;&lt;para&gt;If parts of the stage are visible and you disable
+clearing you might end up with visual artifacts while painting the
+contents of the stage.&lt;/para&gt;&lt;/warning&gt;</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="no_clear" transfer-ownership="none">
+            <doc xml:whitespace="preserve">%TRUE if the @stage should not clear itself on every repaint cycle</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_perspective"
+              c:identifier="clutter_stage_set_perspective">
+        <doc xml:whitespace="preserve">Sets the stage perspective.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="perspective" transfer-ownership="none">
+            <doc xml:whitespace="preserve">A #ClutterPerspective</doc>
+            <type name="Perspective" c:type="ClutterPerspective*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_throttle_motion_events"
+              c:identifier="clutter_stage_set_throttle_motion_events"
+              version="1.0">
+        <doc xml:whitespace="preserve">Sets whether motion events received between redraws should
+be throttled or not. If motion events are throttled, those
+events received by the windowing system between redraws will
+be compressed so that only the last event will be propagated
+to the @stage and its actors.
+This function should only be used if you want to have all
+the motion events delivered to your application code.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="throttle" transfer-ownership="none">
+            <doc xml:whitespace="preserve">%TRUE to throttle motion events</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_title" c:identifier="clutter_stage_set_title">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="title" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_use_alpha"
+              c:identifier="clutter_stage_set_use_alpha"
+              version="1.2">
+        <doc xml:whitespace="preserve">Sets whether the @stage should honour the #ClutterActor:opacity and
+the alpha channel of the #ClutterStage:color</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="use_alpha" transfer-ownership="none">
+            <doc xml:whitespace="preserve">whether the stage should honour the opacity or the alpha channel of the stage color</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_use_fog"
+              c:identifier="clutter_stage_set_use_fog"
+              version="0.6">
+        <doc xml:whitespace="preserve">Sets whether the depth cueing effect on the stage should be enabled
+or not.
+Depth cueing is a 3D effect that makes actors farther away from the
+viewing point less opaque, by fading them with the stage color.
+The parameters of the GL fog used can be changed using the
+clutter_stage_set_fog() function.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="fog" transfer-ownership="none">
+            <doc xml:whitespace="preserve">%TRUE for enabling the depth cueing effect</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_user_resizable"
+              c:identifier="clutter_stage_set_user_resizable"
+              version="0.4">
+        <doc xml:whitespace="preserve">Sets if the stage is resizable by user interaction (e.g. via
+window manager controls)</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="resizable" transfer-ownership="none">
+            <doc xml:whitespace="preserve">whether the stage should be user resizable.</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="show_cursor" c:identifier="clutter_stage_show_cursor">
+        <doc xml:whitespace="preserve">Shows the cursor on the stage window</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </method>
+      <property name="color" writable="1" transfer-ownership="none">
+        <doc xml:whitespace="preserve">The color of the main stage.</doc>
+        <type name="Color"/>
+      </property>
+      <property name="cursor-visible" writable="1" transfer-ownership="none">
+        <doc xml:whitespace="preserve">Whether the mouse pointer should be visible</doc>
+        <type name="gboolean"/>
+      </property>
+      <property name="fog"
+                version="1.0"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">The settings for the GL "fog", used only if #ClutterStage:use-fog
+is set to %TRUE</doc>
+        <type name="Fog"/>
+      </property>
+      <property name="fullscreen-set" transfer-ownership="none">
+        <type name="gboolean"/>
+      </property>
+      <property name="key-focus"
+                version="1.2"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">The #ClutterActor that will receive key events from the underlying
+windowing system.
+If %NULL, the #ClutterStage will receive the events.</doc>
+        <type name="Actor"/>
+      </property>
+      <property name="no-clear-hint"
+                version="1.4"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">Whether or not the #ClutterStage should clear its contents
+before each paint cycle.
+See clutter_stage_set_no_clear_hint() for further information.</doc>
+        <type name="gboolean"/>
+      </property>
+      <property name="offscreen" writable="1" transfer-ownership="none">
+        <doc xml:whitespace="preserve">Whether the stage should be rendered in an offscreen buffer.
+&lt;warning&gt;&lt;para&gt;Not every backend supports redirecting the
+stage to an offscreen buffer. This property might not work
+and it might be deprecated at any later date.&lt;/para&gt;&lt;/warning&gt;</doc>
+        <type name="gboolean"/>
+      </property>
+      <property name="perspective"
+                version="0.8.2"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">The parameters used for the perspective projection from 3D
+coordinates to 2D</doc>
+        <type name="Perspective"/>
+      </property>
+      <property name="title"
+                version="0.4"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">The stage's title - usually displayed in stage windows title decorations.</doc>
+        <type name="utf8"/>
+      </property>
+      <property name="use-alpha"
+                version="1.2"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">Whether the #ClutterStage should honour the alpha component of the
+#ClutterStage:color property when painting. If Clutter is run under
+a compositing manager this will result in the stage being blended
+with the underlying window(s)</doc>
+        <type name="gboolean"/>
+      </property>
+      <property name="use-fog"
+                version="0.6"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">Whether the stage should use a linear GL "fog" in creating the
+depth-cueing effect, to enhance the perception of depth by fading
+actors farther from the viewpoint.</doc>
+        <type name="gboolean"/>
+      </property>
+      <property name="user-resizable"
+                version="0.4"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">Whether the stage is resizable via user interaction.</doc>
+        <type name="gboolean"/>
+      </property>
+      <field name="parent_instance">
+        <type name="Group" c:type="ClutterGroup"/>
+      </field>
+      <field name="priv">
+        <type name="StagePrivate" c:type="ClutterStagePrivate*"/>
+      </field>
+      <glib:signal name="activate">
+        <return-value transfer-ownership="none">
+          <type name="none"/>
+        </return-value>
+      </glib:signal>
+      <glib:signal name="deactivate">
+        <return-value transfer-ownership="none">
+          <type name="none"/>
+        </return-value>
+      </glib:signal>
+      <glib:signal name="delete-event" version="1.2">
+        <doc xml:whitespace="preserve">The ::delete-event signal is emitted when the user closes a
+#ClutterStage window using the window controls.
+Clutter by default will call clutter_main_quit() if @stage is
+the default stage, and clutter_actor_destroy() for any other
+stage.
+It is possible to override the default behaviour by connecting
+a new handler and returning %TRUE there.
+&lt;note&gt;This signal is emitted only on Clutter backends that
+embed #ClutterStage in native windows. It is not emitted for
+backends that use a static frame buffer.&lt;/note&gt;</doc>
+        <return-value transfer-ownership="none">
+          <type name="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="object" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #ClutterEvent of type %CLUTTER_DELETE</doc>
+            <type name="Event"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="fullscreen">
+        <return-value transfer-ownership="none">
+          <type name="none"/>
+        </return-value>
+      </glib:signal>
+      <glib:signal name="unfullscreen">
+        <return-value transfer-ownership="none">
+          <type name="none"/>
+        </return-value>
+      </glib:signal>
+    </class>
+    <record name="StageClass"
+            c:type="ClutterStageClass"
+            glib:is-gtype-struct-for="Stage"
+            version="0.1">
+      <doc xml:whitespace="preserve">The #ClutterStageClass structure contains only private data</doc>
+      <field name="parent_class">
+        <type name="GroupClass" c:type="ClutterGroupClass"/>
+      </field>
+      <field name="fullscreen">
+        <callback name="fullscreen">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="stage" transfer-ownership="none">
+              <type name="Stage" c:type="ClutterStage*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="unfullscreen">
+        <callback name="unfullscreen">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="stage" transfer-ownership="none">
+              <type name="Stage" c:type="ClutterStage*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="activate">
+        <callback name="activate">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="stage" transfer-ownership="none">
+              <type name="Stage" c:type="ClutterStage*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="deactivate">
+        <callback name="deactivate">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="stage" transfer-ownership="none">
+              <type name="Stage" c:type="ClutterStage*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="delete_event">
+        <callback name="delete_event">
+          <return-value transfer-ownership="none">
+            <type name="gboolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="stage" transfer-ownership="none">
+              <type name="Stage" c:type="ClutterStage*"/>
+            </parameter>
+            <parameter name="event" transfer-ownership="none">
+              <type name="Event" c:type="ClutterEvent*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="_padding_dummy">
+        <array zero-terminated="0" c:type="gpointer" fixed-size="31">
+          <type name="gpointer" c:type="gpointer"/>
+        </array>
+      </field>
+    </record>
+    <class name="StageManager"
+           c:symbol-prefix="stage_manager"
+           c:type="ClutterStageManager"
+           version="1.0"
+           parent="GObject.Object"
+           glib:type-name="ClutterStageManager"
+           glib:get-type="clutter_stage_manager_get_type"
+           glib:type-struct="StageManagerClass">
+      <doc xml:whitespace="preserve">The #ClutterStageManager structure is private.</doc>
+      <function name="get_default"
+                c:identifier="clutter_stage_manager_get_default"
+                version="0.8">
+        <doc xml:whitespace="preserve">Returns the default #ClutterStageManager.
+object is owned by Clutter and you should not reference or unreference it.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the default stage manager instance. The returned</doc>
+          <type name="StageManager" c:type="ClutterStageManager*"/>
+        </return-value>
+      </function>
+      <method name="get_default_stage"
+              c:identifier="clutter_stage_manager_get_default_stage"
+              version="0.8">
+        <doc xml:whitespace="preserve">Returns the default #ClutterStage.
+is owned by Clutter and you should never reference or unreference it</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the default stage. The returned object</doc>
+          <type name="Stage" c:type="ClutterStage*"/>
+        </return-value>
+      </method>
+      <method name="list_stages"
+              c:identifier="clutter_stage_manager_list_stages"
+              version="0.8">
+        <doc xml:whitespace="preserve">Lists all currently used stages.
+allocated list of #ClutterStage objects. Use g_slist_free() to
+deallocate it when done.</doc>
+        <return-value transfer-ownership="container">
+          <doc xml:whitespace="preserve">a newly</doc>
+          <type name="GLib.SList" c:type="GSList*">
+            <type name="Stage"/>
+          </type>
+        </return-value>
+      </method>
+      <method name="peek_stages"
+              c:identifier="clutter_stage_manager_peek_stages"
+              version="1.0">
+        <doc xml:whitespace="preserve">Lists all currently used stages.
+to the internal list of #ClutterStage objects. The returned list
+is owned by the #ClutterStageManager and should never be modified
+or freed</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">a pointer</doc>
+          <type name="GLib.SList" c:type="GSList*">
+            <type name="Stage"/>
+          </type>
+        </return-value>
+      </method>
+      <method name="set_default_stage"
+              c:identifier="clutter_stage_manager_set_default_stage"
+              version="0.8"
+              deprecated="Calling this function has no effect"
+              deprecated-version="1.2">
+        <doc xml:whitespace="preserve">Sets @stage as the default stage.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="stage" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #ClutterStage</doc>
+            <type name="Stage" c:type="ClutterStage*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <property name="default-stage" version="0.8" transfer-ownership="none">
+        <doc xml:whitespace="preserve">The default stage used by Clutter.</doc>
+        <type name="Stage"/>
+      </property>
+      <glib:signal name="stage-added" version="0.8">
+        <doc xml:whitespace="preserve">The ::stage-added signal is emitted each time a new #ClutterStage
+has been added to the stage manager.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none"/>
+        </return-value>
+        <parameters>
+          <parameter name="object" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the added stage</doc>
+            <type name="Stage"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="stage-removed" version="0.8">
+        <doc xml:whitespace="preserve">The ::stage-removed signal is emitted each time a #ClutterStage
+has been removed from the stage manager.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none"/>
+        </return-value>
+        <parameters>
+          <parameter name="object" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the removed stage</doc>
+            <type name="Stage"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+    </class>
+    <record name="StageManagerClass"
+            c:type="ClutterStageManagerClass"
+            glib:is-gtype-struct-for="StageManager"
+            version="1.0">
+      <doc xml:whitespace="preserve">The #ClutterStageManagerClass structure contains only private data
+and should be accessed using the provided API</doc>
+      <field name="parent_class">
+        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
+      </field>
+      <field name="stage_added">
+        <callback name="stage_added">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="stage_manager" transfer-ownership="none">
+              <type name="StageManager" c:type="ClutterStageManager*"/>
+            </parameter>
+            <parameter name="stage" transfer-ownership="none">
+              <type name="Stage" c:type="ClutterStage*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="stage_removed">
+        <callback name="stage_removed">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="stage_manager" transfer-ownership="none">
+              <type name="StageManager" c:type="ClutterStageManager*"/>
+            </parameter>
+            <parameter name="stage" transfer-ownership="none">
+              <type name="Stage" c:type="ClutterStage*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+    </record>
+    <record name="StagePrivate" c:type="ClutterStagePrivate" disguised="1">
+    </record>
+    <bitfield name="StageState"
+              version="0.4"
+              glib:type-name="ClutterStageState"
+              glib:get-type="clutter_stage_state_get_type"
+              c:type="ClutterStageState">
+      <doc xml:whitespace="preserve">Stage state masks</doc>
+      <member name="fullscreen"
+              value="2"
+              c:identifier="CLUTTER_STAGE_STATE_FULLSCREEN"
+              glib:nick="fullscreen"/>
+      <member name="offscreen"
+              value="4"
+              c:identifier="CLUTTER_STAGE_STATE_OFFSCREEN"
+              glib:nick="offscreen"/>
+      <member name="activated"
+              value="8"
+              c:identifier="CLUTTER_STAGE_STATE_ACTIVATED"
+              glib:nick="activated"/>
+    </bitfield>
+    <record name="StageStateEvent"
+            c:type="ClutterStageStateEvent"
+            version="0.2">
+      <doc xml:whitespace="preserve">Event signalling a change in the #ClutterStage state.</doc>
+      <field name="type" writable="1">
+        <type name="EventType" c:type="ClutterEventType"/>
+      </field>
+      <field name="time" writable="1">
+        <type name="guint32" c:type="guint32"/>
+      </field>
+      <field name="flags" writable="1">
+        <type name="EventFlags" c:type="ClutterEventFlags"/>
+      </field>
+      <field name="stage" writable="1">
+        <type name="Stage" c:type="ClutterStage*"/>
+      </field>
+      <field name="source" writable="1">
+        <type name="Actor" c:type="ClutterActor*"/>
+      </field>
+      <field name="changed_mask" writable="1">
+        <type name="StageState" c:type="ClutterStageState"/>
+      </field>
+      <field name="new_state" writable="1">
+        <type name="StageState" c:type="ClutterStageState"/>
+      </field>
+    </record>
+    <interface name="StageWindow"
+               c:symbol-prefix="stage_window"
+               c:type="ClutterStageWindow"
+               version="0.8"
+               glib:type-name="ClutterStageWindow"
+               glib:get-type="clutter_stage_window_get_type"
+               glib:type-struct="StageWindowIface">
+      <doc xml:whitespace="preserve">&lt;structname&gt;ClutterStageWindow&lt;/structname&gt; is an opaque structure
+whose members should not be accessed directly</doc>
+      <virtual-method name="add_redraw_clip">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="stage_rectangle" transfer-ownership="none">
+            <type name="Geometry" c:type="ClutterGeometry*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="get_geometry">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="geometry" transfer-ownership="none">
+            <type name="Geometry" c:type="ClutterGeometry*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="get_pending_swaps">
+        <return-value transfer-ownership="none">
+          <type name="gint" c:type="int"/>
+        </return-value>
+      </virtual-method>
+      <virtual-method name="get_wrapper" introspectable="0">
+        <return-value>
+          <type name="Actor" c:type="ClutterActor*"/>
+        </return-value>
+      </virtual-method>
+      <virtual-method name="has_redraw_clips">
+        <return-value transfer-ownership="none">
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+      </virtual-method>
+      <virtual-method name="hide">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </virtual-method>
+      <virtual-method name="ignoring_redraw_clips">
+        <return-value transfer-ownership="none">
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+      </virtual-method>
+      <virtual-method name="realize">
+        <return-value transfer-ownership="none">
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+      </virtual-method>
+      <virtual-method name="resize">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="width" transfer-ownership="none">
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="height" transfer-ownership="none">
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="set_cursor_visible">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="cursor_visible" transfer-ownership="none">
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="set_fullscreen">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="is_fullscreen" transfer-ownership="none">
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="set_title">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="title" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="set_user_resizable">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="is_resizable" transfer-ownership="none">
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="show">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="do_raise" transfer-ownership="none">
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="unrealize">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </virtual-method>
+    </interface>
+    <record name="StageWindowIface"
+            c:type="ClutterStageWindowIface"
+            glib:is-gtype-struct-for="StageWindow"
+            version="0.8">
+      <doc xml:whitespace="preserve">The interface implemented by backends for stage windows</doc>
+      <field name="parent_iface">
+        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
+      </field>
+      <field name="get_wrapper" introspectable="0">
+        <callback name="get_wrapper" introspectable="0">
+          <return-value>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </return-value>
+          <parameters>
+            <parameter name="stage_window" transfer-ownership="none">
+              <type name="StageWindow" c:type="ClutterStageWindow*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="set_title">
+        <callback name="set_title">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="stage_window" transfer-ownership="none">
+              <type name="StageWindow" c:type="ClutterStageWindow*"/>
+            </parameter>
+            <parameter name="title" transfer-ownership="none">
+              <type name="utf8" c:type="gchar*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="set_fullscreen">
+        <callback name="set_fullscreen">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="stage_window" transfer-ownership="none">
+              <type name="StageWindow" c:type="ClutterStageWindow*"/>
+            </parameter>
+            <parameter name="is_fullscreen" transfer-ownership="none">
+              <type name="gboolean" c:type="gboolean"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="set_cursor_visible">
+        <callback name="set_cursor_visible">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="stage_window" transfer-ownership="none">
+              <type name="StageWindow" c:type="ClutterStageWindow*"/>
+            </parameter>
+            <parameter name="cursor_visible" transfer-ownership="none">
+              <type name="gboolean" c:type="gboolean"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="set_user_resizable">
+        <callback name="set_user_resizable">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="stage_window" transfer-ownership="none">
+              <type name="StageWindow" c:type="ClutterStageWindow*"/>
+            </parameter>
+            <parameter name="is_resizable" transfer-ownership="none">
+              <type name="gboolean" c:type="gboolean"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="realize">
+        <callback name="realize">
+          <return-value transfer-ownership="none">
+            <type name="gboolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="stage_window" transfer-ownership="none">
+              <type name="StageWindow" c:type="ClutterStageWindow*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="unrealize">
+        <callback name="unrealize">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="stage_window" transfer-ownership="none">
+              <type name="StageWindow" c:type="ClutterStageWindow*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="show">
+        <callback name="show">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="stage_window" transfer-ownership="none">
+              <type name="StageWindow" c:type="ClutterStageWindow*"/>
+            </parameter>
+            <parameter name="do_raise" transfer-ownership="none">
+              <type name="gboolean" c:type="gboolean"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="hide">
+        <callback name="hide">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="stage_window" transfer-ownership="none">
+              <type name="StageWindow" c:type="ClutterStageWindow*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="resize">
+        <callback name="resize">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="stage_window" transfer-ownership="none">
+              <type name="StageWindow" c:type="ClutterStageWindow*"/>
+            </parameter>
+            <parameter name="width" transfer-ownership="none">
+              <type name="gint" c:type="gint"/>
+            </parameter>
+            <parameter name="height" transfer-ownership="none">
+              <type name="gint" c:type="gint"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="get_geometry">
+        <callback name="get_geometry">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="stage_window" transfer-ownership="none">
+              <type name="StageWindow" c:type="ClutterStageWindow*"/>
+            </parameter>
+            <parameter name="geometry" transfer-ownership="none">
+              <type name="Geometry" c:type="ClutterGeometry*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="get_pending_swaps">
+        <callback name="get_pending_swaps">
+          <return-value transfer-ownership="none">
+            <type name="gint" c:type="int"/>
+          </return-value>
+          <parameters>
+            <parameter name="stage_window" transfer-ownership="none">
+              <type name="StageWindow" c:type="ClutterStageWindow*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="add_redraw_clip">
+        <callback name="add_redraw_clip">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="stage_window" transfer-ownership="none">
+              <type name="StageWindow" c:type="ClutterStageWindow*"/>
+            </parameter>
+            <parameter name="stage_rectangle" transfer-ownership="none">
+              <type name="Geometry" c:type="ClutterGeometry*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="has_redraw_clips">
+        <callback name="has_redraw_clips">
+          <return-value transfer-ownership="none">
+            <type name="gboolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="stage_window" transfer-ownership="none">
+              <type name="StageWindow" c:type="ClutterStageWindow*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="ignoring_redraw_clips">
+        <callback name="ignoring_redraw_clips">
+          <return-value transfer-ownership="none">
+            <type name="gboolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="stage_window" transfer-ownership="none">
+              <type name="StageWindow" c:type="ClutterStageWindow*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+    </record>
+    <constant name="Standby" value="269025040">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Start" value="269025050">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <class name="State"
+           c:symbol-prefix="state"
+           c:type="ClutterState"
+           version="1.4"
+           parent="GObject.Object"
+           glib:type-name="ClutterState"
+           glib:get-type="clutter_state_get_type"
+           glib:type-struct="StateClass">
+      <doc xml:whitespace="preserve">The &lt;structname&gt;ClutterState&lt;/structname&gt; structure contains only
+private data and should be accessed using the provided API</doc>
+      <implements name="Scriptable"/>
+      <constructor name="new" c:identifier="clutter_state_new">
+        <doc xml:whitespace="preserve">Creates a new #ClutterState</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">the newly create #ClutterState instance</doc>
+          <type name="State" c:type="ClutterState*"/>
+        </return-value>
+      </constructor>
+      <method name="get_animator"
+              c:identifier="clutter_state_get_animator"
+              version="1.4">
+        <doc xml:whitespace="preserve">Retrieves the #ClutterAnimator that is being used for transitioning
+between the two states, if any has been set</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #ClutterAnimator instance, or %NULL</doc>
+          <type name="Animator" c:type="ClutterAnimator*"/>
+        </return-value>
+        <parameters>
+          <parameter name="source_state_name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the name of a source state</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="target_state_name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the name of a target state</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_duration"
+              c:identifier="clutter_state_get_duration"
+              version="1.4">
+        <doc xml:whitespace="preserve">Queries the duration used for transitions between a source and
+target state pair
+The semantics for the query are the same as the semantics used for
+setting the duration with clutter_state_set_duration()</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the duration, in milliseconds</doc>
+          <type name="guint" c:type="guint"/>
+        </return-value>
+        <parameters>
+          <parameter name="source_state_name"
+                     transfer-ownership="none"
+                     allow-none="1">
+            <doc xml:whitespace="preserve">the name of the source state to get the duration of, or %NULL</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="target_state_name"
+                     transfer-ownership="none"
+                     allow-none="1">
+            <doc xml:whitespace="preserve">the name of the source state to get the duration of, or %NULL</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_keys"
+              c:identifier="clutter_state_get_keys"
+              version="1.4">
+        <doc xml:whitespace="preserve">Returns a list of pointers to opaque structures with accessor functions
+that describe the keys added to an animator.
+newly allocated #GList of #ClutterStateKey&lt;!-- --&gt;s. The contents of
+the returned list are owned by the #ClutterState and should not be
+modified or freed. Use g_list_free() to free the resources allocated
+by the returned list when done using it</doc>
+        <return-value transfer-ownership="container">
+          <doc xml:whitespace="preserve">a</doc>
+          <type name="GLib.List" c:type="GList*">
+            <type name="StateKey"/>
+          </type>
+        </return-value>
+        <parameters>
+          <parameter name="source_state_name"
+                     transfer-ownership="none"
+                     allow-none="1">
+            <doc xml:whitespace="preserve">the source transition name to query, or %NULL for all source states</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="target_state_name"
+                     transfer-ownership="none"
+                     allow-none="1">
+            <doc xml:whitespace="preserve">the target transition name to query, or %NULL for all target states</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="object" transfer-ownership="none" allow-none="1">
+            <doc xml:whitespace="preserve">the specific object instance to list keys for, or %NULL for all managed objects</doc>
+            <type name="GObject.Object" c:type="GObject*"/>
+          </parameter>
+          <parameter name="property_name"
+                     transfer-ownership="none"
+                     allow-none="1">
+            <doc xml:whitespace="preserve">the property name to search for, or %NULL for all properties.</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_state"
+              c:identifier="clutter_state_get_state"
+              version="1.4">
+        <doc xml:whitespace="preserve">Queries the currently set target state.
+During a transition this function will return the target of the transition.
+This function is useful when called from handlers of the
+#ClutterState::completed signal.
+is owned by the #ClutterState and should not be modified or freed</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">a string containing the target state. The returned string</doc>
+          <type name="utf8" c:type="gchar*"/>
+        </return-value>
+      </method>
+      <method name="get_states"
+              c:identifier="clutter_state_get_states"
+              version="1.4">
+        <doc xml:whitespace="preserve">Gets a list of all the state names managed by this #ClutterState.
+#GList of state names. The contents of the returned #GList are owned
+by the #ClutterState and should not be modified or freed. Use
+g_list_free() to free the resources allocated by the returned list when
+done using it</doc>
+        <return-value transfer-ownership="container">
+          <doc xml:whitespace="preserve">a newly allocated</doc>
+          <type name="GLib.List" c:type="GList*">
+            <type name="utf8"/>
+          </type>
+        </return-value>
+      </method>
+      <method name="get_timeline"
+              c:identifier="clutter_state_get_timeline"
+              version="1.4">
+        <doc xml:whitespace="preserve">Gets the timeline driving the #ClutterState
+the state change animations. The returned timeline is owned
+by the #ClutterState and it should not be unreferenced directly</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the #ClutterTimeline that drives</doc>
+          <type name="Timeline" c:type="ClutterTimeline*"/>
+        </return-value>
+      </method>
+      <method name="remove_key"
+              c:identifier="clutter_state_remove_key"
+              version="1.4">
+        <doc xml:whitespace="preserve">Removes all keys matching the search criteria passed in arguments.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="source_state_name"
+                     transfer-ownership="none"
+                     allow-none="1">
+            <doc xml:whitespace="preserve">the source state name to query, or %NULL for all source states</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="target_state_name"
+                     transfer-ownership="none"
+                     allow-none="1">
+            <doc xml:whitespace="preserve">the target state name to query, or %NULL for all target states</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="object" transfer-ownership="none" allow-none="1">
+            <doc xml:whitespace="preserve">the specific object instance to list keys for, or %NULL for all managed objects</doc>
+            <type name="GObject.Object" c:type="GObject*"/>
+          </parameter>
+          <parameter name="property_name"
+                     transfer-ownership="none"
+                     allow-none="1">
+            <doc xml:whitespace="preserve">the property name to search for, or %NULL for all properties.</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set"
+              c:identifier="clutter_state_set"
+              version="1.4"
+              introspectable="0">
+        <doc xml:whitespace="preserve">Adds multiple keys to a named state of a #ClutterState instance, specifying
+the easing mode and value a given property of an object should have at a
+given progress of the animation.
+The mode specified is the easing mode used when going to from the previous
+key to the specified key.
+For instance, the code below:
+|[
+clutter_state_set (state, NULL, "hover",
+button, "opacity", 255, CLUTTER_LINEAR,
+button, "scale-x", 1.2, CLUTTER_EASE_OUT_CUBIC,
+button, "scale-y", 1.2, CLUTTER_EASE_OUT_CUBIC,
+NULL);
+]|
+will create a transition from any state (a @source_state_name of NULL is
+treated as a wildcard) and a state named "hover"; the
+&lt;emphasis&gt;button&lt;/emphasis&gt; object will have the #ClutterActor:opacity
+property animated to a value of 255 using %CLUTTER_LINEAR as the animation
+mode, and the #ClutterActor:scale-x and #ClutterActor:scale-y properties
+animated to a value of 1.2 using %CLUTTER_EASE_OUT_CUBIC as the animation
+mode. To change the state (and start the transition) you can use the
+clutter_state_change() function:
+|[
+clutter_state_change (state, "hover", TRUE);
+]|
+If a given object, state_name, property tuple already exist in the
+#ClutterState instance, then the mode and value will be replaced with
+the new specified values.
+If a property name is prefixed with "delayed::" two additional
+to pause before transitioning and a similar value to pause after
+transitioning, e.g.:
+|[
+clutter_state_set (state, "hover", "toggled",
+button, "delayed::scale-x", 1.0, 0.2, 0.2,
+button, "delayed::scale-y", 1.0, 0.2, 0.2,
+NULL);
+]|
+will pause for 20% of the duration of the transition before animating,
+and 20% of the duration after animating.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="source_state_name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the name of the source state keys are being added for</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="target_state_name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the name of the target state keys are being added for</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="first_object" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GObject</doc>
+            <type name="gpointer" c:type="gpointer"/>
+          </parameter>
+          <parameter name="first_property_name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a property of @first_object to specify a key for</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="first_mode" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the id of the alpha function to use</doc>
+            <type name="gulong" c:type="gulong"/>
+          </parameter>
+          <parameter transfer-ownership="none">
+            <varargs>
+            </varargs>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_animator"
+              c:identifier="clutter_state_set_animator"
+              version="1.4">
+        <doc xml:whitespace="preserve">Specifies a #ClutterAnimator to be used when transitioning between
+the two named states.
+The @animator allows specifying a transition between the state that is
+more elaborate than the basic transitions allowed by the tweening of
+properties defined in the #ClutterState keys.
+If @animator is %NULL it will unset an existing animator.
+#ClutterState will take a reference on the passed @animator, if any</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="source_state_name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the name of a source state</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="target_state_name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the name of a target state</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="animator" transfer-ownership="none" allow-none="1">
+            <doc xml:whitespace="preserve">a #ClutterAnimator instance, or %NULL to unset an existing #ClutterAnimator</doc>
+            <type name="Animator" c:type="ClutterAnimator*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_duration"
+              c:identifier="clutter_state_set_duration"
+              version="1.4">
+        <doc xml:whitespace="preserve">Sets the duration of a transition.
+If both state names are %NULL the default duration for @state is set.
+If only @target_state_name is specified, the passed @duration becomes
+the default duration for transitions to the target state.
+If both states names are specified, the passed @duration only applies
+to the specified transition.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="source_state_name"
+                     transfer-ownership="none"
+                     allow-none="1">
+            <doc xml:whitespace="preserve">the name of the source state, or %NULL</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="target_state_name"
+                     transfer-ownership="none"
+                     allow-none="1">
+            <doc xml:whitespace="preserve">the name of the target state, or %NULL</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="duration" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the duration of the transition, in milliseconds</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_key"
+              c:identifier="clutter_state_set_key"
+              version="1.4">
+        <doc xml:whitespace="preserve">Sets one specific end key for a state_name, object, property_name
+combination.
+chaining of multiple calls</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the #ClutterState instance, allowing</doc>
+          <type name="State" c:type="ClutterState*"/>
+        </return-value>
+        <parameters>
+          <parameter name="source_state_name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the source transition to specify transition for or NULL to specify the default fallback when a more specific source_state doesn't exist.</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="target_state_name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the name of the transition to set a key value for.</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="object" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the #GObject to set a key for</doc>
+            <type name="GObject.Object" c:type="GObject*"/>
+          </parameter>
+          <parameter name="property_name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the property to set a key for</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="mode" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the id of the alpha function to use</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+          <parameter name="value" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the value for property_name of object in state_name</doc>
+            <type name="GObject.Value" c:type="GValue*"/>
+          </parameter>
+          <parameter name="pre_delay" transfer-ownership="none">
+            <doc xml:whitespace="preserve">relative time of the transition to be idle in the beginning of the transition</doc>
+            <type name="gdouble" c:type="gdouble"/>
+          </parameter>
+          <parameter name="post_delay" transfer-ownership="none">
+            <doc xml:whitespace="preserve">relative time of the transition to be idle in the end of the transition</doc>
+            <type name="gdouble" c:type="gdouble"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_state"
+              c:identifier="clutter_state_set_state"
+              version="1.4">
+        <doc xml:whitespace="preserve">Change the current state of #ClutterState to @target_state_name
+The state will animate during its transition, see
+#clutter_state_warp_to_state for animation-free state switching.
+state transition. The returned timeline is owned by the #ClutterState
+and it should not be unreferenced</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the #ClutterTimeline that drives the</doc>
+          <type name="Timeline" c:type="ClutterTimeline*"/>
+        </return-value>
+        <parameters>
+          <parameter name="target_state_name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the state to transition to</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="warp_to_state"
+              c:identifier="clutter_state_warp_to_state"
+              version="1.4">
+        <doc xml:whitespace="preserve">Change the current state of #ClutterState to @target_state_name
+Change to the specified target state immediately with no animation.
+state transition. The returned timeline is owned by the #ClutterState
+and it should not be unreferenced</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the #ClutterTimeline that drives the</doc>
+          <type name="Timeline" c:type="ClutterTimeline*"/>
+        </return-value>
+        <parameters>
+          <parameter name="target_state_name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the state to transition to</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <property name="duration" writable="1" transfer-ownership="none">
+        <doc xml:whitespace="preserve">Default duration used if an duration has not been specified for a specific
+source/target state pair. The values is in milliseconds.</doc>
+        <type name="guint"/>
+      </property>
+      <property name="state" writable="1" transfer-ownership="none">
+        <doc xml:whitespace="preserve">The currently set target state, setting it causes the
+state machine to transition to the new state, use
+clutter_state_change() with a final FALSE argument to
+change state without a transition.</doc>
+        <type name="utf8"/>
+      </property>
+      <field name="parent">
+        <type name="GObject.Object" c:type="GObject"/>
+      </field>
+      <field name="priv">
+        <type name="StatePrivate" c:type="ClutterStatePrivate*"/>
+      </field>
+      <glib:signal name="completed" version="1.4">
+        <doc xml:whitespace="preserve">The ::completed signal is emitted when a #ClutterState reaches
+the target state specified by clutter_state_change()</doc>
+        <return-value transfer-ownership="none">
+          <type name="none"/>
+        </return-value>
+      </glib:signal>
+    </class>
+    <record name="StateClass"
+            c:type="ClutterStateClass"
+            glib:is-gtype-struct-for="State"
+            version="1.4">
+      <doc xml:whitespace="preserve">The &lt;structname&gt;ClutterStateClass&lt;/structname&gt; structure contains
+only private data</doc>
+      <field name="parent_class">
+        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
+      </field>
+      <field name="completed">
+        <callback name="completed">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="state" transfer-ownership="none">
+              <type name="State" c:type="ClutterState*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="_padding_dummy">
+        <array zero-terminated="0" c:type="gpointer" fixed-size="8">
+          <type name="gpointer" c:type="gpointer"/>
+        </array>
+      </field>
+    </record>
+    <record name="StateKey"
+            c:type="ClutterStateKey"
+            version="1.4"
+            glib:type-name="ClutterStateKey"
+            glib:get-type="clutter_state_key_get_type"
+            c:symbol-prefix="state_key">
+      <doc xml:whitespace="preserve">&lt;structname&gt;ClutterStateKey&lt;/structname&gt; is an opaque structure whose
+members cannot be accessed directly</doc>
+      <method name="get_mode"
+              c:identifier="clutter_state_key_get_mode"
+              version="1.4">
+        <doc xml:whitespace="preserve">Retrieves the easing mode used for @state_key.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the mode of a #ClutterStateKey</doc>
+          <type name="gulong" c:type="gulong"/>
+        </return-value>
+      </method>
+      <method name="get_object"
+              c:identifier="clutter_state_key_get_object"
+              version="1.4">
+        <doc xml:whitespace="preserve">Retrieves the object instance this #ClutterStateKey applies to.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the object this state key applies to.</doc>
+          <type name="GObject.Object" c:type="GObject*"/>
+        </return-value>
+      </method>
+      <method name="get_post_delay"
+              c:identifier="clutter_state_key_get_post_delay"
+              version="1.4">
+        <doc xml:whitespace="preserve">Retrieves the duration of the pause after transitioning is complete
+as a fraction of the total transition time.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the post delay, used after doing the transition.</doc>
+          <type name="gdouble" c:type="gdouble"/>
+        </return-value>
+      </method>
+      <method name="get_pre_delay"
+              c:identifier="clutter_state_key_get_pre_delay"
+              version="1.4">
+        <doc xml:whitespace="preserve">Retrieves the pause before transitioning starts as a fraction of
+the total transition time.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the pre delay used before starting the transition.</doc>
+          <type name="gdouble" c:type="gdouble"/>
+        </return-value>
+      </method>
+      <method name="get_property_name"
+              c:identifier="clutter_state_key_get_property_name"
+              version="1.4">
+        <doc xml:whitespace="preserve">Retrieves the name of the property this #ClutterStateKey applies to
+by the #ClutterStateKey and should never be modified or freed</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the name of the property. The returned string is owned</doc>
+          <type name="utf8" c:type="gchar*"/>
+        </return-value>
+      </method>
+      <method name="get_property_type"
+              c:identifier="clutter_state_key_get_property_type"
+              version="1.4">
+        <doc xml:whitespace="preserve">Retrieves the #GType of the property a key applies to
+You can use this type to initialize the #GValue to pass to
+clutter_state_key_get_value()</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the #GType of the property</doc>
+          <type name="GType" c:type="GType"/>
+        </return-value>
+      </method>
+      <method name="get_source_state_name"
+              c:identifier="clutter_state_key_get_source_state_name"
+              version="1.4">
+        <doc xml:whitespace="preserve">Retrieves the name of the source state of the @state_key
+if this is the generic state key for the given property when
+transitioning to the target state. The returned string is owned
+by the #ClutterStateKey and should never be modified or freed</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the name of the source state for this key, or %NULL</doc>
+          <type name="utf8" c:type="gchar*"/>
+        </return-value>
+      </method>
+      <method name="get_target_state_name"
+              c:identifier="clutter_state_key_get_target_state_name"
+              version="1.4">
+        <doc xml:whitespace="preserve">Get the name of the source state this #ClutterStateKey contains,
+or NULL if this is the generic state key for the given property
+when transitioning to the target state.
+the key is generic</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the name of the source state for this key, or NULL if</doc>
+          <type name="utf8" c:type="gchar*"/>
+        </return-value>
+      </method>
+      <method name="get_value"
+              c:identifier="clutter_state_key_get_value"
+              version="1.4">
+        <doc xml:whitespace="preserve">Retrieves a copy of the value for a #ClutterStateKey.
+The #GValue needs to be already initialized for the value type
+of the property or to a type that allow transformation from the value
+type of the key.
+Use g_value_unset() when done.
+and %FALSE otherwise</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if the value was successfully retrieved,</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="value" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GValue initialized with the correct type for the @state_key</doc>
+            <type name="GObject.Value" c:type="GValue*"/>
+          </parameter>
+        </parameters>
+      </method>
+    </record>
+    <record name="StatePrivate" c:type="ClutterStatePrivate" disguised="1">
+    </record>
+    <constant name="StickyKeys_Enable" value="65141">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Stop" value="269025064">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Subtitle" value="269025178">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Super_L" value="65515">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Super_R" value="65516">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Support" value="269025150">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Suspend" value="269025191">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Switch_VT_1" value="269024769">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Switch_VT_10" value="269024778">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Switch_VT_11" value="269024779">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Switch_VT_12" value="269024780">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Switch_VT_2" value="269024770">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Switch_VT_3" value="269024771">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Switch_VT_4" value="269024772">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Switch_VT_5" value="269024773">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Switch_VT_6" value="269024774">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Switch_VT_7" value="269024775">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Switch_VT_8" value="269024776">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Switch_VT_9" value="269024777">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Sys_Req" value="65301">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="T" value="84">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="THORN" value="222">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Tab" value="65289">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <enumeration name="TableAlignment"
+                 version="1.4"
+                 glib:type-name="ClutterTableAlignment"
+                 glib:get-type="clutter_table_alignment_get_type"
+                 c:type="ClutterTableAlignment">
+      <doc xml:whitespace="preserve">The alignment policies available on each axis of the #ClutterTableLayout</doc>
+      <member name="start"
+              value="0"
+              c:identifier="CLUTTER_TABLE_ALIGNMENT_START"
+              glib:nick="start"/>
+      <member name="center"
+              value="1"
+              c:identifier="CLUTTER_TABLE_ALIGNMENT_CENTER"
+              glib:nick="center"/>
+      <member name="end"
+              value="2"
+              c:identifier="CLUTTER_TABLE_ALIGNMENT_END"
+              glib:nick="end"/>
+    </enumeration>
+    <class name="TableLayout"
+           c:symbol-prefix="table_layout"
+           c:type="ClutterTableLayout"
+           version="1.4"
+           parent="LayoutManager"
+           glib:type-name="ClutterTableLayout"
+           glib:get-type="clutter_table_layout_get_type"
+           glib:type-struct="TableLayoutClass">
+      <doc xml:whitespace="preserve">The #ClutterTableLayout structure contains only private data
+and should be accessed using the provided API</doc>
+      <constructor name="new"
+                   c:identifier="clutter_table_layout_new"
+                   version="1.4">
+        <doc xml:whitespace="preserve">Creates a new #ClutterTableLayout layout manager</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the newly created #ClutterTableLayout</doc>
+          <type name="LayoutManager" c:type="ClutterLayoutManager*"/>
+        </return-value>
+      </constructor>
+      <method name="get_alignment"
+              c:identifier="clutter_table_layout_get_alignment"
+              version="1.4">
+        <doc xml:whitespace="preserve">Retrieves the horizontal and vertical alignment policies for @actor
+as set using clutter_table_layout_pack() or
+clutter_table_layout_set_alignment().</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="actor" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #ClutterActor child of @layout</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+          <parameter name="x_align"
+                     direction="out"
+                     caller-allocates="1"
+                     transfer-ownership="none">
+            <doc xml:whitespace="preserve">return location for the horizontal alignment policy</doc>
+            <type name="TableAlignment" c:type="ClutterTableAlignment*"/>
+          </parameter>
+          <parameter name="y_align"
+                     direction="out"
+                     caller-allocates="1"
+                     transfer-ownership="none">
+            <doc xml:whitespace="preserve">return location for the vertical alignment policy</doc>
+            <type name="TableAlignment" c:type="ClutterTableAlignment*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_column_count"
+              c:identifier="clutter_table_layout_get_column_count"
+              version="1.4">
+        <doc xml:whitespace="preserve">Retrieve the current number of columns in @layout</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the number of columns</doc>
+          <type name="gint" c:type="gint"/>
+        </return-value>
+      </method>
+      <method name="get_column_spacing"
+              c:identifier="clutter_table_layout_get_column_spacing"
+              version="1.4">
+        <doc xml:whitespace="preserve">Retrieves the spacing set using clutter_table_layout_set_column_spacing()</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the spacing between columns of the #ClutterTableLayout</doc>
+          <type name="guint" c:type="guint"/>
+        </return-value>
+      </method>
+      <method name="get_easing_duration"
+              c:identifier="clutter_table_layout_get_easing_duration"
+              version="1.4">
+        <doc xml:whitespace="preserve">Retrieves the duration set using clutter_table_layout_set_easing_duration()</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the duration of the animations, in milliseconds</doc>
+          <type name="guint" c:type="guint"/>
+        </return-value>
+      </method>
+      <method name="get_easing_mode"
+              c:identifier="clutter_table_layout_get_easing_mode"
+              version="1.4">
+        <doc xml:whitespace="preserve">Retrieves the easing mode set using clutter_table_layout_set_easing_mode()</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">an easing mode</doc>
+          <type name="gulong" c:type="gulong"/>
+        </return-value>
+      </method>
+      <method name="get_expand"
+              c:identifier="clutter_table_layout_get_expand"
+              version="1.4">
+        <doc xml:whitespace="preserve">Retrieves the horizontal and vertical expand policies for @actor
+as set using clutter_table_layout_pack() or clutter_table_layout_set_expand()</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="actor" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #ClutterActor child of @layout</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+          <parameter name="x_expand"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:whitespace="preserve">return location for the horizontal expand policy</doc>
+            <type name="gboolean" c:type="gboolean*"/>
+          </parameter>
+          <parameter name="y_expand"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:whitespace="preserve">return location for the vertical expand policy</doc>
+            <type name="gboolean" c:type="gboolean*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_fill"
+              c:identifier="clutter_table_layout_get_fill"
+              version="1.4">
+        <doc xml:whitespace="preserve">Retrieves the horizontal and vertical fill policies for @actor
+as set using clutter_table_layout_pack() or clutter_table_layout_set_fill()</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="actor" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #ClutterActor child of @layout</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+          <parameter name="x_fill"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:whitespace="preserve">return location for the horizontal fill policy</doc>
+            <type name="gboolean" c:type="gboolean*"/>
+          </parameter>
+          <parameter name="y_fill"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:whitespace="preserve">return location for the vertical fill policy</doc>
+            <type name="gboolean" c:type="gboolean*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_row_count"
+              c:identifier="clutter_table_layout_get_row_count"
+              version="1.4">
+        <doc xml:whitespace="preserve">Retrieve the current number rows in the @layout</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the number of rows</doc>
+          <type name="gint" c:type="gint"/>
+        </return-value>
+      </method>
+      <method name="get_row_spacing"
+              c:identifier="clutter_table_layout_get_row_spacing"
+              version="1.4">
+        <doc xml:whitespace="preserve">Retrieves the spacing set using clutter_table_layout_set_row_spacing()</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the spacing between rows of the #ClutterTableLayout</doc>
+          <type name="guint" c:type="guint"/>
+        </return-value>
+      </method>
+      <method name="get_span"
+              c:identifier="clutter_table_layout_get_span"
+              version="1.4">
+        <doc xml:whitespace="preserve">Retrieves the row and column span for @actor as set using
+clutter_table_layout_pack() or clutter_table_layout_set_span()</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="actor" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #ClutterActor child of @layout</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+          <parameter name="column_span"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:whitespace="preserve">return location for the col span</doc>
+            <type name="gint" c:type="gint*"/>
+          </parameter>
+          <parameter name="row_span"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:whitespace="preserve">return location for the row span</doc>
+            <type name="gint" c:type="gint*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_use_animations"
+              c:identifier="clutter_table_layout_get_use_animations"
+              version="1.4">
+        <doc xml:whitespace="preserve">Retrieves whether @layout should animate changes in the layout properties
+Since clutter_table_layout_set_use_animations()</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if the animations should be used, %FALSE otherwise</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+      </method>
+      <method name="pack"
+              c:identifier="clutter_table_layout_pack"
+              version="1.4">
+        <doc xml:whitespace="preserve">Packs @actor inside the #ClutterContainer associated to @layout
+at the given row and column.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="actor" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+          <parameter name="column" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the column the @actor should be put, or -1 to append</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="row" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the row the @actor should be put, or -1 to append</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_alignment"
+              c:identifier="clutter_table_layout_set_alignment"
+              version="1.4">
+        <doc xml:whitespace="preserve">Sets the horizontal and vertical alignment policies for @actor
+inside @layout</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="actor" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #ClutterActor child of @layout</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+          <parameter name="x_align" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Horizontal alignment policy for @actor</doc>
+            <type name="TableAlignment" c:type="ClutterTableAlignment"/>
+          </parameter>
+          <parameter name="y_align" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Vertical alignment policy for @actor</doc>
+            <type name="TableAlignment" c:type="ClutterTableAlignment"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_column_spacing"
+              c:identifier="clutter_table_layout_set_column_spacing"
+              version="1.4">
+        <doc xml:whitespace="preserve">Sets the spacing between columns of @layout</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="spacing" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the spacing between columns of the layout, in pixels</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_easing_duration"
+              c:identifier="clutter_table_layout_set_easing_duration"
+              version="1.4">
+        <doc xml:whitespace="preserve">Sets the duration of the animations used by @layout when animating changes
+in the layout properties
+Use clutter_table_layout_set_use_animations() to enable and disable the
+animations</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="msecs" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the duration of the animations, in milliseconds</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_easing_mode"
+              c:identifier="clutter_table_layout_set_easing_mode"
+              version="1.4">
+        <doc xml:whitespace="preserve">Sets the easing mode to be used by @layout when animating changes in layout
+properties
+Use clutter_table_layout_set_use_animations() to enable and disable the
+animations</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="mode" transfer-ownership="none">
+            <doc xml:whitespace="preserve">an easing mode, either from #ClutterAnimationMode or a logical id from clutter_alpha_register_func()</doc>
+            <type name="gulong" c:type="gulong"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_expand"
+              c:identifier="clutter_table_layout_set_expand"
+              version="1.4">
+        <doc xml:whitespace="preserve">Sets the horizontal and vertical expand policies for @actor
+inside @layout</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="actor" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #ClutterActor child of @layout</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+          <parameter name="x_expand" transfer-ownership="none">
+            <doc xml:whitespace="preserve">whether @actor should allocate extra space horizontally</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+          <parameter name="y_expand" transfer-ownership="none">
+            <doc xml:whitespace="preserve">whether @actor should allocate extra space vertically</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_fill"
+              c:identifier="clutter_table_layout_set_fill"
+              version="1.4">
+        <doc xml:whitespace="preserve">Sets the horizontal and vertical fill policies for @actor
+inside @layout</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="actor" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #ClutterActor child of @layout</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+          <parameter name="x_fill" transfer-ownership="none">
+            <doc xml:whitespace="preserve">whether @actor should fill horizontally the allocated space</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+          <parameter name="y_fill" transfer-ownership="none">
+            <doc xml:whitespace="preserve">whether @actor should fill vertically the allocated space</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_row_spacing"
+              c:identifier="clutter_table_layout_set_row_spacing"
+              version="1.4">
+        <doc xml:whitespace="preserve">Sets the spacing between rows of @layout</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="spacing" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the spacing between rows of the layout, in pixels</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_span"
+              c:identifier="clutter_table_layout_set_span"
+              version="1.4">
+        <doc xml:whitespace="preserve">Sets the row and column span for @actor
+inside @layout</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="actor" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #ClutterActor child of @layout</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+          <parameter name="column_span" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Column span for @actor</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="row_span" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Row span for @actor</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_use_animations"
+              c:identifier="clutter_table_layout_set_use_animations"
+              version="1.4">
+        <doc xml:whitespace="preserve">Sets whether @layout should animate changes in the layout properties
+The duration of the animations is controlled by
+clutter_table_layout_set_easing_duration(); the easing mode to be used
+by the animations is controlled by clutter_table_layout_set_easing_mode()</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="animate" transfer-ownership="none">
+            <doc xml:whitespace="preserve">%TRUE if the @layout should use animations</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <property name="column-spacing"
+                version="1.4"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">The spacing between columns of the #ClutterTableLayout, in pixels</doc>
+        <type name="guint"/>
+      </property>
+      <property name="easing-duration"
+                version="1.4"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">The duration of the animations, in case #ClutterTableLayout:use-animations
+is set to %TRUE
+The duration is expressed in milliseconds</doc>
+        <type name="guint"/>
+      </property>
+      <property name="easing-mode"
+                version="1.4"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">The easing mode for the animations, in case
+#ClutterTableLayout:use-animations is set to %TRUE
+either be a value from the #ClutterAnimationMode enumeration, like
+%CLUTTER_EASE_OUT_CUBIC, or a logical id as returned by
+clutter_alpha_register_func()
+The default value is %CLUTTER_EASE_OUT_CUBIC</doc>
+        <type name="gulong"/>
+      </property>
+      <property name="row-spacing"
+                version="1.4"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">The spacing between rows of the #ClutterTableLayout, in pixels</doc>
+        <type name="guint"/>
+      </property>
+      <property name="use-animations"
+                version="1.4"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">Whether the #ClutterTableLayout should animate changes in the
+layout properties</doc>
+        <type name="gboolean"/>
+      </property>
+      <field name="parent_instance">
+        <type name="LayoutManager" c:type="ClutterLayoutManager"/>
+      </field>
+      <field name="priv">
+        <type name="TableLayoutPrivate" c:type="ClutterTableLayoutPrivate*"/>
+      </field>
+    </class>
+    <record name="TableLayoutClass"
+            c:type="ClutterTableLayoutClass"
+            glib:is-gtype-struct-for="TableLayout"
+            version="1.4">
+      <doc xml:whitespace="preserve">The #ClutterTableLayoutClass structure contains only private
+data and should be accessed using the provided API</doc>
+      <field name="parent_class">
+        <type name="LayoutManagerClass" c:type="ClutterLayoutManagerClass"/>
+      </field>
+    </record>
+    <record name="TableLayoutPrivate"
+            c:type="ClutterTableLayoutPrivate"
+            disguised="1">
+    </record>
+    <constant name="Tabovedot" value="16785002">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="TaskPane" value="269025151">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Tcaron" value="427">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Tcedilla" value="478">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Terminal" value="269025152">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Terminate_Server" value="65237">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <class name="Text"
+           c:symbol-prefix="text"
+           c:type="ClutterText"
+           version="1.0"
+           parent="Actor"
+           glib:type-name="ClutterText"
+           glib:get-type="clutter_text_get_type"
+           glib:type-struct="TextClass">
+      <doc xml:whitespace="preserve">The #ClutterText struct contains only private data.</doc>
+      <implements name="Atk.ImplementorIface"/>
+      <implements name="Animatable"/>
+      <implements name="Scriptable"/>
+      <constructor name="new" c:identifier="clutter_text_new" version="1.0">
+        <doc xml:whitespace="preserve">Creates a new #ClutterText actor. This actor can be used to
+display and edit text.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the newly created #ClutterText actor</doc>
+          <type name="Actor" c:type="ClutterActor*"/>
+        </return-value>
+      </constructor>
+      <constructor name="new_full"
+                   c:identifier="clutter_text_new_full"
+                   version="1.0">
+        <doc xml:whitespace="preserve">Creates a new #ClutterText actor, using @font_name as the font
+description; @text will be used to set the contents of the actor;
+and @color will be used as the color to render @text.
+This function is equivalent to calling clutter_text_new(),
+clutter_text_set_font_name(), clutter_text_set_text() and
+clutter_text_set_color().</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the newly created #ClutterText actor</doc>
+          <type name="Actor" c:type="ClutterActor*"/>
+        </return-value>
+        <parameters>
+          <parameter name="font_name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a string with a font description</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="text" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the contents of the actor</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="color" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the color to be used to render @text</doc>
+            <type name="Color" c:type="ClutterColor*"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <constructor name="new_with_text"
+                   c:identifier="clutter_text_new_with_text"
+                   version="1.0">
+        <doc xml:whitespace="preserve">Creates a new #ClutterText actor, using @font_name as the font
+description; @text will be used to set the contents of the actor.
+This function is equivalent to calling clutter_text_new(),
+clutter_text_set_font_name(), and clutter_text_set_text().</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the newly created #ClutterText actor</doc>
+          <type name="Actor" c:type="ClutterActor*"/>
+        </return-value>
+        <parameters>
+          <parameter name="font_name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a string with a font description</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="text" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the contents of the actor</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <method name="activate"
+              c:identifier="clutter_text_activate"
+              version="1.0">
+        <doc xml:whitespace="preserve">Emits the #ClutterText::activate signal, if @self has been set
+as activatable using clutter_text_set_activatable().
+This function can be used to emit the ::activate signal inside
+a #ClutterActor::captured-event or #ClutterActor::key-press-event
+signal handlers before the default signal handler for the
+#ClutterText is invoked.
+and %FALSE otherwise</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if the ::activate signal has been emitted,</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+      </method>
+      <method name="delete_chars"
+              c:identifier="clutter_text_delete_chars"
+              version="1.0">
+        <doc xml:whitespace="preserve">Deletes @n_chars inside a #ClutterText actor, starting from the
+current cursor position.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="n_chars" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the number of characters to delete</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="delete_selection"
+              c:identifier="clutter_text_delete_selection"
+              version="1.0">
+        <doc xml:whitespace="preserve">Deletes the currently selected text
+This function is only useful in subclasses of #ClutterText
+is empty, and %FALSE otherwise</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if text was deleted or if the text actor</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+      </method>
+      <method name="delete_text"
+              c:identifier="clutter_text_delete_text"
+              version="1.0">
+        <doc xml:whitespace="preserve">Deletes the text inside a #ClutterText actor between @start_pos
+and @end_pos.
+The starting and ending positions are expressed in characters,
+not in bytes.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="start_pos" transfer-ownership="none">
+            <doc xml:whitespace="preserve">starting position</doc>
+            <type name="glong" c:type="gssize"/>
+          </parameter>
+          <parameter name="end_pos" transfer-ownership="none">
+            <doc xml:whitespace="preserve">ending position</doc>
+            <type name="glong" c:type="gssize"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_activatable"
+              c:identifier="clutter_text_get_activatable"
+              version="1.0">
+        <doc xml:whitespace="preserve">Retrieves whether a #ClutterText is activatable or not.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if the actor is activatable</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+      </method>
+      <method name="get_attributes"
+              c:identifier="clutter_text_get_attributes"
+              version="1.0">
+        <doc xml:whitespace="preserve">Gets the attribute list that was set on the #ClutterText actor
+clutter_text_set_attributes(), if any.
+returned value is owned by the #ClutterText and should not be unreferenced.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the attribute list, or %NULL if none was set. The</doc>
+          <type name="Pango.AttrList" c:type="PangoAttrList*"/>
+        </return-value>
+      </method>
+      <method name="get_chars"
+              c:identifier="clutter_text_get_chars"
+              version="1.0">
+        <doc xml:whitespace="preserve">Retrieves the contents of the #ClutterText actor between
+The positions are specified in characters, not in bytes.
+the text actor between the specified positions. Use g_free()
+to free the resources when done</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">a newly allocated string with the contents of</doc>
+          <type name="utf8" c:type="gchar*"/>
+        </return-value>
+        <parameters>
+          <parameter name="start_pos" transfer-ownership="none">
+            <doc xml:whitespace="preserve">start of text, in characters</doc>
+            <type name="glong" c:type="gssize"/>
+          </parameter>
+          <parameter name="end_pos" transfer-ownership="none">
+            <doc xml:whitespace="preserve">end of text, in characters</doc>
+            <type name="glong" c:type="gssize"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_color"
+              c:identifier="clutter_text_get_color"
+              version="1.0">
+        <doc xml:whitespace="preserve">Retrieves the text color as set by clutter_text_set_color().</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="color" transfer-ownership="none">
+            <doc xml:whitespace="preserve">return location for a #ClutterColor</doc>
+            <type name="Color" c:type="ClutterColor*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_cursor_color"
+              c:identifier="clutter_text_get_cursor_color"
+              version="1.0">
+        <doc xml:whitespace="preserve">Retrieves the color of the cursor of a #ClutterText actor.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="color" transfer-ownership="none">
+            <doc xml:whitespace="preserve">return location for a #ClutterColor</doc>
+            <type name="Color" c:type="ClutterColor*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_cursor_position"
+              c:identifier="clutter_text_get_cursor_position"
+              version="1.0">
+        <doc xml:whitespace="preserve">Retrieves the cursor position.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the cursor position, in characters</doc>
+          <type name="gint" c:type="gint"/>
+        </return-value>
+      </method>
+      <method name="get_cursor_size"
+              c:identifier="clutter_text_get_cursor_size"
+              version="1.0">
+        <doc xml:whitespace="preserve">Retrieves the size of the cursor of a #ClutterText actor.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the size of the cursor, in pixels</doc>
+          <type name="guint" c:type="guint"/>
+        </return-value>
+      </method>
+      <method name="get_cursor_visible"
+              c:identifier="clutter_text_get_cursor_visible"
+              version="1.0">
+        <doc xml:whitespace="preserve">Retrieves whether the cursor of a #ClutterText actor is visible.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if the cursor is visible</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+      </method>
+      <method name="get_editable"
+              c:identifier="clutter_text_get_editable"
+              version="1.0">
+        <doc xml:whitespace="preserve">Retrieves whether a #ClutterText is editable or not.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if the actor is editable</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+      </method>
+      <method name="get_ellipsize"
+              c:identifier="clutter_text_get_ellipsize"
+              version="1.0">
+        <doc xml:whitespace="preserve">Returns the ellipsizing position of a #ClutterText actor, as
+set by clutter_text_set_ellipsize().</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">#PangoEllipsizeMode</doc>
+          <type name="Pango.EllipsizeMode" c:type="PangoEllipsizeMode"/>
+        </return-value>
+      </method>
+      <method name="get_font_description"
+              c:identifier="clutter_text_get_font_description"
+              version="1.2">
+        <doc xml:whitespace="preserve">Retrieves the #PangoFontDescription used by @self
+by the #ClutterText actor and it should not be modified or freed</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">a #PangoFontDescription. The returned value is owned</doc>
+          <type name="Pango.FontDescription" c:type="PangoFontDescription*"/>
+        </return-value>
+      </method>
+      <method name="get_font_name"
+              c:identifier="clutter_text_get_font_name"
+              version="1.0">
+        <doc xml:whitespace="preserve">Retrieves the font name as set by clutter_text_set_font_name().
+string is owned by the #ClutterText actor and should not be
+modified or freed</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">a string containing the font name. The returned</doc>
+          <type name="utf8" c:type="gchar*"/>
+        </return-value>
+      </method>
+      <method name="get_justify"
+              c:identifier="clutter_text_get_justify"
+              version="0.6">
+        <doc xml:whitespace="preserve">Retrieves whether the #ClutterText actor should justify its contents
+on both margins.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if the text should be justified</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+      </method>
+      <method name="get_layout"
+              c:identifier="clutter_text_get_layout"
+              version="1.0">
+        <doc xml:whitespace="preserve">Retrieves the current #PangoLayout used by a #ClutterText actor.
+the #ClutterText actor and should not be modified or freed</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #PangoLayout. The returned object is owned by</doc>
+          <type name="Pango.Layout" c:type="PangoLayout*"/>
+        </return-value>
+      </method>
+      <method name="get_line_alignment"
+              c:identifier="clutter_text_get_line_alignment"
+              version="1.0">
+        <doc xml:whitespace="preserve">Retrieves the alignment of a #ClutterText, as set by
+clutter_text_set_line_alignment().</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #PangoAlignment</doc>
+          <type name="Pango.Alignment" c:type="PangoAlignment"/>
+        </return-value>
+      </method>
+      <method name="get_line_wrap"
+              c:identifier="clutter_text_get_line_wrap"
+              version="1.0">
+        <doc xml:whitespace="preserve">Retrieves the value set using clutter_text_set_line_wrap().
+its contents</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if the #ClutterText actor should wrap</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+      </method>
+      <method name="get_line_wrap_mode"
+              c:identifier="clutter_text_get_line_wrap_mode"
+              version="1.0">
+        <doc xml:whitespace="preserve">Retrieves the line wrap mode used by the #ClutterText actor.
+See clutter_text_set_line_wrap_mode ().</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the wrap mode used by the #ClutterText</doc>
+          <type name="Pango.WrapMode" c:type="PangoWrapMode"/>
+        </return-value>
+      </method>
+      <method name="get_max_length"
+              c:identifier="clutter_text_get_max_length"
+              version="1.0">
+        <doc xml:whitespace="preserve">Gets the maximum length of text that can be set into a text actor.
+See clutter_text_set_max_length().</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the maximum number of characters.</doc>
+          <type name="gint" c:type="gint"/>
+        </return-value>
+      </method>
+      <method name="get_password_char"
+              c:identifier="clutter_text_get_password_char"
+              version="1.0"
+              introspectable="0">
+        <doc xml:whitespace="preserve">Retrieves the character to use in place of the actual text
+as set by clutter_text_set_password_char().
+character is not set</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">a Unicode character or 0 if the password</doc>
+          <type name="gunichar" c:type="gunichar"/>
+        </return-value>
+      </method>
+      <method name="get_selectable"
+              c:identifier="clutter_text_get_selectable"
+              version="1.0">
+        <doc xml:whitespace="preserve">Retrieves whether a #ClutterText is selectable or not.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if the actor is selectable</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+      </method>
+      <method name="get_selection"
+              c:identifier="clutter_text_get_selection"
+              version="1.0">
+        <doc xml:whitespace="preserve">Retrieves the currently selected text.
+selected text, or %NULL. Use g_free() to free the returned
+string.</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">a newly allocated string containing the currently</doc>
+          <type name="utf8" c:type="gchar*"/>
+        </return-value>
+      </method>
+      <method name="get_selection_bound"
+              c:identifier="clutter_text_get_selection_bound"
+              version="1.0">
+        <doc xml:whitespace="preserve">Retrieves the other end of the selection of a #ClutterText actor,
+in characters from the current cursor position.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the position of the other end of the selection</doc>
+          <type name="gint" c:type="gint"/>
+        </return-value>
+      </method>
+      <method name="get_selection_color"
+              c:identifier="clutter_text_get_selection_color"
+              version="1.0">
+        <doc xml:whitespace="preserve">Retrieves the color of the selection of a #ClutterText actor.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="color" transfer-ownership="none">
+            <doc xml:whitespace="preserve">return location for a #ClutterColor</doc>
+            <type name="Color" c:type="ClutterColor*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_single_line_mode"
+              c:identifier="clutter_text_get_single_line_mode"
+              version="1.0">
+        <doc xml:whitespace="preserve">Retrieves whether the #ClutterText actor is in single line mode.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if the #ClutterText actor is in single line mode</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+      </method>
+      <method name="get_text"
+              c:identifier="clutter_text_get_text"
+              version="1.0">
+        <doc xml:whitespace="preserve">Retrieves a pointer to the current contents of a #ClutterText
+actor.
+If you need a copy of the contents for manipulating, either
+use g_strdup() on the returned string, or use:
+|[
+copy = clutter_text_get_chars (text, 0, -1);
+]|
+Which will return a newly allocated string.
+is owned by the #ClutterText actor and should never be
+modified or freed</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the contents of the actor. The returned string</doc>
+          <type name="utf8" c:type="gchar*"/>
+        </return-value>
+      </method>
+      <method name="get_use_markup"
+              c:identifier="clutter_text_get_use_markup"
+              version="1.0">
+        <doc xml:whitespace="preserve">Retrieves whether the contents of the #ClutterText actor should be
+parsed for the Pango text markup.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if the contents will be parsed for markup</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+      </method>
+      <method name="insert_text"
+              c:identifier="clutter_text_insert_text"
+              version="1.0">
+        <doc xml:whitespace="preserve">Inserts @text into a #ClutterActor at the given position.
+If @position is a negative number, the text will be appended
+at the end of the current contents of the #ClutterText.
+The position is expressed in characters, not in bytes.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="text" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the text to be inserted</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="position" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the position of the insertion, or -1</doc>
+            <type name="glong" c:type="gssize"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="insert_unichar"
+              c:identifier="clutter_text_insert_unichar"
+              version="1.0"
+              introspectable="0">
+        <doc xml:whitespace="preserve">Inserts @wc at the current cursor position of a
+#ClutterText actor.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="wc" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a Unicode character</doc>
+            <type name="gunichar" c:type="gunichar"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="position_to_coords"
+              c:identifier="clutter_text_position_to_coords"
+              version="1.0">
+        <doc xml:whitespace="preserve">Retrieves the coordinates of the given @position.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if the conversion was successful</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="position" transfer-ownership="none">
+            <doc xml:whitespace="preserve">position in characters</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="x"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:whitespace="preserve">return location for the X coordinate, or %NULL</doc>
+            <type name="gfloat" c:type="gfloat*"/>
+          </parameter>
+          <parameter name="y"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:whitespace="preserve">return location for the Y coordinate, or %NULL</doc>
+            <type name="gfloat" c:type="gfloat*"/>
+          </parameter>
+          <parameter name="line_height"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:whitespace="preserve">return location for the line height, or %NULL</doc>
+            <type name="gfloat" c:type="gfloat*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_activatable"
+              c:identifier="clutter_text_set_activatable"
+              version="1.0">
+        <doc xml:whitespace="preserve">Sets whether a #ClutterText actor should be activatable.
+An activatable #ClutterText actor will emit the #ClutterText::activate
+signal whenever the 'Enter' (or 'Return') key is pressed; if it is not
+activatable, a new line will be appended to the current content.
+An activatable #ClutterText must also be set as editable using
+clutter_text_set_editable().</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="activatable" transfer-ownership="none">
+            <doc xml:whitespace="preserve">whether the #ClutterText actor should be activatable</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_attributes"
+              c:identifier="clutter_text_set_attributes"
+              version="1.0">
+        <doc xml:whitespace="preserve">Sets the attributes list that are going to be applied to the
+#ClutterText contents.
+The #ClutterText actor will take a reference on the #PangoAttrList
+passed to this function.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="attrs" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #PangoAttrList or %NULL to unset the attributes</doc>
+            <type name="Pango.AttrList" c:type="PangoAttrList*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_color"
+              c:identifier="clutter_text_set_color"
+              version="1.0">
+        <doc xml:whitespace="preserve">Sets the color of the contents of a #ClutterText actor.
+The overall opacity of the #ClutterText actor will be the
+result of the alpha value of @color and the composited
+opacity of the actor itself on the scenegraph, as returned
+by clutter_actor_get_paint_opacity().</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="color" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #ClutterColor</doc>
+            <type name="Color" c:type="ClutterColor*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_cursor_color"
+              c:identifier="clutter_text_set_cursor_color"
+              version="1.0">
+        <doc xml:whitespace="preserve">Sets the color of the cursor of a #ClutterText actor.
+If @color is %NULL, the cursor color will be the same as the
+text color.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="color" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the color of the cursor, or %NULL to unset it</doc>
+            <type name="Color" c:type="ClutterColor*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_cursor_position"
+              c:identifier="clutter_text_set_cursor_position"
+              version="1.0">
+        <doc xml:whitespace="preserve">Sets the cursor of a #ClutterText actor at @position.
+The position is expressed in characters, not in bytes.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="position" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the new cursor position, in characters</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_cursor_size"
+              c:identifier="clutter_text_set_cursor_size"
+              version="1.0">
+        <doc xml:whitespace="preserve">Sets the size of the cursor of a #ClutterText. The cursor
+will only be visible if the #ClutterText:cursor-visible property
+is set to %TRUE.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="size" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the size of the cursor, in pixels, or -1 to use the default value</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_cursor_visible"
+              c:identifier="clutter_text_set_cursor_visible"
+              version="1.0">
+        <doc xml:whitespace="preserve">Sets whether the cursor of a #ClutterText actor should be
+visible or not.
+The color of the cursor will be the same as the text color
+unless clutter_text_set_cursor_color() has been called.
+The size of the cursor can be set using clutter_text_set_cursor_size().
+The position of the cursor can be changed programmatically using
+clutter_text_set_cursor_position().</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="cursor_visible" transfer-ownership="none">
+            <doc xml:whitespace="preserve">whether the cursor should be visible</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_editable"
+              c:identifier="clutter_text_set_editable"
+              version="1.0">
+        <doc xml:whitespace="preserve">Sets whether the #ClutterText actor should be editable.
+An editable #ClutterText with key focus set using
+clutter_actor_grab_key_focus() or clutter_stage_take_key_focus()
+will receive key events and will update its contents accordingly.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="editable" transfer-ownership="none">
+            <doc xml:whitespace="preserve">whether the #ClutterText should be editable</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_ellipsize"
+              c:identifier="clutter_text_set_ellipsize"
+              version="1.0">
+        <doc xml:whitespace="preserve">text if there is not enough space to render the entire contents
+of a #ClutterText actor</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="mode" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #PangoEllipsizeMode</doc>
+            <type name="Pango.EllipsizeMode" c:type="PangoEllipsizeMode"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_font_description"
+              c:identifier="clutter_text_set_font_description"
+              version="1.2">
+        <doc xml:whitespace="preserve">Sets @font_desc as the font description for a #ClutterText
+The #PangoFontDescription is copied by the #ClutterText actor
+so you can safely call pango_font_description_free() on it after
+calling this function.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="font_desc" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #PangoFontDescription</doc>
+            <type name="Pango.FontDescription" c:type="PangoFontDescription*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_font_name"
+              c:identifier="clutter_text_set_font_name"
+              version="1.0">
+        <doc xml:whitespace="preserve">Sets the font used by a #ClutterText. The @font_name string
+must either be %NULL, which means that the font name from the
+default #ClutterBackend will be used; or be something that can
+be parsed by the pango_font_description_from_string() function,
+like:
+|[
+clutter_text_set_font_name (text, "Sans 10pt");
+clutter_text_set_font_name (text, "Serif 16px");
+clutter_text_set_font_name (text, "Helvetica 10");
+]|</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="font_name" transfer-ownership="none" allow-none="1">
+            <doc xml:whitespace="preserve">a font name, or %NULL to set the default font name</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_justify"
+              c:identifier="clutter_text_set_justify"
+              version="1.0">
+        <doc xml:whitespace="preserve">Sets whether the text of the #ClutterText actor should be justified
+on both margins. This setting is ignored if Clutter is compiled
+against Pango &amp;lt; 1.18.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="justify" transfer-ownership="none">
+            <doc xml:whitespace="preserve">whether the text should be justified</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_line_alignment"
+              c:identifier="clutter_text_set_line_alignment"
+              version="1.0">
+        <doc xml:whitespace="preserve">Sets the way that the lines of a wrapped label are aligned with
+respect to each other. This does not affect the overall alignment
+of the label within its allocated or specified width.
+To align a #ClutterText actor you should add it to a container
+that supports alignment, or use the anchor point.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="alignment" transfer-ownership="none">
+            <doc xml:whitespace="preserve">A #PangoAlignment</doc>
+            <type name="Pango.Alignment" c:type="PangoAlignment"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_line_wrap"
+              c:identifier="clutter_text_set_line_wrap"
+              version="1.0">
+        <doc xml:whitespace="preserve">Sets whether the contents of a #ClutterText actor should wrap,
+if they don't fit the size assigned to the actor.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="line_wrap" transfer-ownership="none">
+            <doc xml:whitespace="preserve">whether the contents should wrap</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_line_wrap_mode"
+              c:identifier="clutter_text_set_line_wrap_mode"
+              version="1.0">
+        <doc xml:whitespace="preserve">If line wrapping is enabled (see clutter_text_set_line_wrap()) this
+function controls how the line wrapping is performed. The default is
+%PANGO_WRAP_WORD which means wrap on word boundaries.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="wrap_mode" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the line wrapping mode</doc>
+            <type name="Pango.WrapMode" c:type="PangoWrapMode"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_markup"
+              c:identifier="clutter_text_set_markup"
+              version="1.0">
+        <doc xml:whitespace="preserve">Sets @markup as the contents of a #ClutterText.
+This is a convenience function for setting a string containing
+Pango markup, and it is logically equivalent to:
+|[
+clutter_text_set_text (CLUTTER_TEXT (actor), markup);
+clutter_text_set_use_markup (CLUTTER_TEXT (actor), TRUE);
+]|</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="markup" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a string containing Pango markup. Passing %NULL is the same as passing "" (the empty string)</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_max_length"
+              c:identifier="clutter_text_set_max_length"
+              version="1.0">
+        <doc xml:whitespace="preserve">Sets the maximum allowed length of the contents of the actor. If the
+current contents are longer than the given length, then they will be
+truncated to fit.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="max" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the maximum number of characters allowed in the text actor; 0 to disable or -1 to set the length of the current string</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_password_char"
+              c:identifier="clutter_text_set_password_char"
+              version="1.0"
+              introspectable="0">
+        <doc xml:whitespace="preserve">Sets the character to use in place of the actual text in a
+password text actor.
+If @wc is 0 the text will be displayed as it is entered in the
+#ClutterText actor.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="wc" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a Unicode character, or 0 to unset the password character</doc>
+            <type name="gunichar" c:type="gunichar"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_preedit_string"
+              c:identifier="clutter_text_set_preedit_string"
+              version="1.2">
+        <doc xml:whitespace="preserve">Sets, or unsets, the pre-edit string. This function is useful
+for input methods to display a string (with eventual specific
+Pango attributes) before it is entered inside the #ClutterText
+buffer.
+The preedit string and attributes are ignored if the #ClutterText
+actor is not editable.
+This function should not be used by applications</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="preedit_str"
+                     transfer-ownership="none"
+                     allow-none="1">
+            <doc xml:whitespace="preserve">the pre-edit string, or %NULL to unset it</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="preedit_attrs"
+                     transfer-ownership="none"
+                     allow-none="1">
+            <doc xml:whitespace="preserve">the pre-edit string attributes</doc>
+            <type name="Pango.AttrList" c:type="PangoAttrList*"/>
+          </parameter>
+          <parameter name="cursor_pos" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the cursor position for the pre-edit string</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_selectable"
+              c:identifier="clutter_text_set_selectable"
+              version="1.0">
+        <doc xml:whitespace="preserve">Sets whether a #ClutterText actor should be selectable.
+A selectable #ClutterText will allow selecting its contents using
+the pointer or the keyboard.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="selectable" transfer-ownership="none">
+            <doc xml:whitespace="preserve">whether the #ClutterText actor should be selectable</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_selection"
+              c:identifier="clutter_text_set_selection"
+              version="1.0">
+        <doc xml:whitespace="preserve">Selects the region of text between @start_pos and @end_pos.
+This function changes the position of the cursor to match</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="start_pos" transfer-ownership="none">
+            <doc xml:whitespace="preserve">start of the selection, in characters</doc>
+            <type name="glong" c:type="gssize"/>
+          </parameter>
+          <parameter name="end_pos" transfer-ownership="none">
+            <doc xml:whitespace="preserve">end of the selection, in characters</doc>
+            <type name="glong" c:type="gssize"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_selection_bound"
+              c:identifier="clutter_text_set_selection_bound"
+              version="1.0">
+        <doc xml:whitespace="preserve">Sets the other end of the selection, starting from the current
+cursor position.
+If @selection_bound is -1, the selection unset.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="selection_bound" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the position of the end of the selection, in characters</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_selection_color"
+              c:identifier="clutter_text_set_selection_color"
+              version="1.0">
+        <doc xml:whitespace="preserve">Sets the color of the selection of a #ClutterText actor.
+If @color is %NULL, the selection color will be the same as the
+cursor color, or if no cursor color is set either then it will be
+the same as the text color.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="color" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the color of the selection, or %NULL to unset it</doc>
+            <type name="Color" c:type="ClutterColor*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_single_line_mode"
+              c:identifier="clutter_text_set_single_line_mode"
+              version="1.0">
+        <doc xml:whitespace="preserve">Sets whether a #ClutterText actor should be in single line mode
+or not. Only editable #ClutterText&lt;!-- --&gt;s can be in single line
+mode.
+A text actor in single line mode will not wrap text and will clip
+the the visible area to the predefined size. The contents of the
+text actor will scroll to display the end of the text if its length
+is bigger than the allocated width.
+When setting the single line mode the #ClutterText:activatable
+property is also set as a side effect. Instead of entering a new
+line character, the text actor will emit the #ClutterText::activate
+signal.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="single_line" transfer-ownership="none">
+            <doc xml:whitespace="preserve">whether to enable single line mode</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_text"
+              c:identifier="clutter_text_set_text"
+              version="1.0">
+        <doc xml:whitespace="preserve">Sets the contents of a #ClutterText actor.
+If the #ClutterText:use-markup property was set to %TRUE it
+will be reset to %FALSE as a side effect. If you want to
+maintain the #ClutterText:use-markup you should use the
+clutter_text_set_markup() function instead</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="text" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the text to set. Passing %NULL is the same as passing "" (the empty string)</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_use_markup"
+              c:identifier="clutter_text_set_use_markup"
+              version="1.0">
+        <doc xml:whitespace="preserve">Sets whether the contents of the #ClutterText actor contains markup
+in &lt;link linkend="PangoMarkupFormat"&gt;Pango's text markup language&lt;/link&gt;.
+Setting #ClutterText:use-markup on an editable #ClutterText will
+not have any effect except hiding the markup.
+See also #ClutterText:use-markup.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="setting" transfer-ownership="none">
+            <doc xml:whitespace="preserve">%TRUE if the text should be parsed for markup.</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <property name="activatable"
+                version="1.0"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">Toggles whether return invokes the activate signal or not.</doc>
+        <type name="gboolean"/>
+      </property>
+      <property name="attributes"
+                version="1.0"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">A list of #PangoStyleAttribute&lt;!-- --&gt;s to be applied to the
+contents of the #ClutterText actor.</doc>
+        <type name="Pango.AttrList"/>
+      </property>
+      <property name="color"
+                version="1.0"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">The color used to render the text.</doc>
+        <type name="Color"/>
+      </property>
+      <property name="cursor-color"
+                version="1.0"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">The color of the cursor.</doc>
+        <type name="Color"/>
+      </property>
+      <property name="cursor-color-set"
+                version="1.0"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">Will be set to %TRUE if #ClutterText:cursor-color has been set.</doc>
+        <type name="gboolean"/>
+      </property>
+      <property name="cursor-size"
+                version="1.0"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">The size of the cursor, in pixels. If set to -1 the size used will
+be the default cursor size of 2 pixels.</doc>
+        <type name="gint"/>
+      </property>
+      <property name="cursor-visible"
+                version="1.0"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">Whether the input cursor is visible or not, it will only be visible
+if both #ClutterText:cursor-visible and #ClutterText:editable are
+set to %TRUE.</doc>
+        <type name="gboolean"/>
+      </property>
+      <property name="editable"
+                version="1.0"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">Whether key events delivered to the actor causes editing.</doc>
+        <type name="gboolean"/>
+      </property>
+      <property name="ellipsize"
+                version="1.0"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">The preferred place to ellipsize the contents of the #ClutterText actor</doc>
+        <type name="Pango.EllipsizeMode"/>
+      </property>
+      <property name="font-description"
+                version="1.2"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">The #PangoFontDescription that should be used by the #ClutterText
+If you have a string describing the font then you should look at
+#ClutterText:font-name instead</doc>
+        <type name="Pango.FontDescription"/>
+      </property>
+      <property name="font-name"
+                version="1.0"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">The font to be used by the #ClutterText, as a string
+that can be parsed by pango_font_description_from_string().
+If set to %NULL, the default system font will be used instead.</doc>
+        <type name="utf8"/>
+      </property>
+      <property name="justify"
+                version="1.0"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">Whether the contents of the #ClutterText should be justified
+on both margins.</doc>
+        <type name="gboolean"/>
+      </property>
+      <property name="line-alignment"
+                version="1.0"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">The preferred alignment for the text. This property controls
+the alignment of multi-line paragraphs.</doc>
+        <type name="Pango.Alignment"/>
+      </property>
+      <property name="line-wrap"
+                version="1.0"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">Whether to wrap the lines of #ClutterText:text if the contents
+exceed the available allocation. The wrapping strategy is
+controlled by the #ClutterText:line-wrap-mode property.</doc>
+        <type name="gboolean"/>
+      </property>
+      <property name="line-wrap-mode"
+                version="1.0"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">If #ClutterText:line-wrap is set to %TRUE, this property will
+control how the text is wrapped.</doc>
+        <type name="Pango.WrapMode"/>
+      </property>
+      <property name="max-length"
+                version="1.0"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">The maximum length of the contents of the #ClutterText actor.</doc>
+        <type name="gint"/>
+      </property>
+      <property name="password-char"
+                version="1.0"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">If non-zero, the character that should be used in place of
+the actual text in a password text actor.</doc>
+        <type name="guint"/>
+      </property>
+      <property name="position"
+                version="1.0"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">The current input cursor position. -1 is taken to be the end of the text</doc>
+        <type name="gint"/>
+      </property>
+      <property name="selectable"
+                version="1.0"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">Whether it is possible to select text, either using the pointer
+or the keyboard.</doc>
+        <type name="gboolean"/>
+      </property>
+      <property name="selection-bound"
+                version="1.0"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">The current input cursor position. -1 is taken to be the end of the text</doc>
+        <type name="gint"/>
+      </property>
+      <property name="selection-color"
+                version="1.0"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">The color of the selection.</doc>
+        <type name="Color"/>
+      </property>
+      <property name="selection-color-set"
+                version="1.0"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">Will be set to %TRUE if #ClutterText:selection-color has been set.</doc>
+        <type name="gboolean"/>
+      </property>
+      <property name="single-line-mode"
+                version="1.0"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">Whether the #ClutterText actor should be in single line mode
+or not. A single line #ClutterText actor will only contain a
+single line of text, scrolling it in case its length is bigger
+than the allocated size.
+Setting this property will also set the #ClutterText:activatable
+property as a side-effect.
+The #ClutterText:single-line-mode property is used only if the
+#ClutterText:editable property is set to %TRUE.</doc>
+        <type name="gboolean"/>
+      </property>
+      <property name="text"
+                version="1.0"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">The text to render inside the actor.</doc>
+        <type name="utf8"/>
+      </property>
+      <property name="use-markup"
+                version="1.0"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">Whether the text includes Pango markup.
+For more informations about the Pango markup format, see
+pango_layout_set_markup() in the Pango documentation.
+&lt;note&gt;It is not possible to round-trip this property between
+%TRUE and %FALSE. Once a string with markup has been set on
+a #ClutterText actor with :use-markup set to %TRUE, the markup
+is stripped from the string.&lt;/note&gt;</doc>
+        <type name="gboolean"/>
+      </property>
+      <field name="parent_instance">
+        <type name="Actor" c:type="ClutterActor"/>
+      </field>
+      <field name="priv">
+        <type name="TextPrivate" c:type="ClutterTextPrivate*"/>
+      </field>
+      <glib:signal name="activate">
+        <return-value transfer-ownership="none">
+          <type name="none"/>
+        </return-value>
+      </glib:signal>
+      <glib:signal name="cursor-event" version="1.0">
+        <doc xml:whitespace="preserve">The ::cursor-event signal is emitted whenever the cursor position
+changes inside a #ClutterText actor. Inside @geometry it is stored
+the current position and size of the cursor, relative to the actor
+itself.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none"/>
+        </return-value>
+        <parameters>
+          <parameter name="object" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the coordinates of the cursor</doc>
+            <type name="Geometry"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="delete-text" version="1.2">
+        <doc xml:whitespace="preserve">This signal is emitted when text is deleted from the actor by
+the user. It is emitted before @self text changes.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none"/>
+        </return-value>
+        <parameters>
+          <parameter name="object" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the starting position</doc>
+            <type name="gint"/>
+          </parameter>
+          <parameter name="p0" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the end position</doc>
+            <type name="gint"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="insert-text" version="1.2">
+        <doc xml:whitespace="preserve">This signal is emitted when text is inserted into the actor by
+the user. It is emitted before @self text changes.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none"/>
+        </return-value>
+        <parameters>
+          <parameter name="object" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the new text to insert</doc>
+            <type name="utf8"/>
+          </parameter>
+          <parameter name="p0" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the length of the new text, in bytes, or -1 if new_text is nul-terminated</doc>
+            <type name="gint"/>
+          </parameter>
+          <parameter name="p1" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the position, in characters, at which to insert the new text. this is an in-out parameter.  After the signal emission is finished, it should point after the newly inserted text.</doc>
+            <type name="gpointer"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="text-changed" version="1.0">
+        <doc xml:whitespace="preserve">The ::text-changed signal is emitted after @actor's text changes</doc>
+        <return-value transfer-ownership="none">
+          <type name="none"/>
+        </return-value>
+      </glib:signal>
+    </class>
+    <record name="TextClass"
+            c:type="ClutterTextClass"
+            glib:is-gtype-struct-for="Text"
+            version="1.0">
+      <doc xml:whitespace="preserve">The #ClutterTextClass struct contains only private data.</doc>
+      <field name="parent_class">
+        <type name="ActorClass" c:type="ClutterActorClass"/>
+      </field>
+      <field name="text_changed">
+        <callback name="text_changed">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="self" transfer-ownership="none">
+              <type name="Text" c:type="ClutterText*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="activate">
+        <callback name="activate">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="self" transfer-ownership="none">
+              <type name="Text" c:type="ClutterText*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="cursor_event">
+        <callback name="cursor_event">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="self" transfer-ownership="none">
+              <type name="Text" c:type="ClutterText*"/>
+            </parameter>
+            <parameter name="geometry" transfer-ownership="none">
+              <type name="Geometry" c:type="ClutterGeometry*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="_clutter_reserved1" introspectable="0">
+        <callback name="_clutter_reserved1">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_reserved2" introspectable="0">
+        <callback name="_clutter_reserved2">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_reserved3" introspectable="0">
+        <callback name="_clutter_reserved3">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_reserved4" introspectable="0">
+        <callback name="_clutter_reserved4">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_reserved5" introspectable="0">
+        <callback name="_clutter_reserved5">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_reserved6" introspectable="0">
+        <callback name="_clutter_reserved6">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_reserved7" introspectable="0">
+        <callback name="_clutter_reserved7">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_reserved8" introspectable="0">
+        <callback name="_clutter_reserved8">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+    </record>
+    <enumeration name="TextDirection"
+                 version="1.2"
+                 glib:type-name="ClutterTextDirection"
+                 glib:get-type="clutter_text_direction_get_type"
+                 c:type="ClutterTextDirection">
+      <doc xml:whitespace="preserve">The text direction to be used by #ClutterActor&lt;!-- --&gt;s</doc>
+      <member name="default"
+              value="0"
+              c:identifier="CLUTTER_TEXT_DIRECTION_DEFAULT"
+              glib:nick="default"/>
+      <member name="ltr"
+              value="1"
+              c:identifier="CLUTTER_TEXT_DIRECTION_LTR"
+              glib:nick="ltr"/>
+      <member name="rtl"
+              value="2"
+              c:identifier="CLUTTER_TEXT_DIRECTION_RTL"
+              glib:nick="rtl"/>
+    </enumeration>
+    <record name="TextPrivate" c:type="ClutterTextPrivate" disguised="1">
+    </record>
+    <class name="Texture"
+           c:symbol-prefix="texture"
+           c:type="ClutterTexture"
+           version="0.1"
+           parent="Actor"
+           glib:type-name="ClutterTexture"
+           glib:get-type="clutter_texture_get_type"
+           glib:type-struct="TextureClass">
+      <doc xml:whitespace="preserve">The #ClutterTexture structure contains only private data
+and should be accessed using the provided API</doc>
+      <implements name="Atk.ImplementorIface"/>
+      <implements name="Animatable"/>
+      <implements name="Scriptable"/>
+      <constructor name="new" c:identifier="clutter_texture_new">
+        <doc xml:whitespace="preserve">Creates a new empty #ClutterTexture object.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">A newly created #ClutterTexture object.</doc>
+          <type name="Actor" c:type="ClutterActor*"/>
+        </return-value>
+      </constructor>
+      <constructor name="new_from_actor"
+                   c:identifier="clutter_texture_new_from_actor"
+                   version="0.6">
+        <doc xml:whitespace="preserve">Creates a new #ClutterTexture object with its source a prexisting
+actor (and associated children). The textures content will contain
+'live' redirected output of the actors scene.
+Note this function is intented as a utility call for uniformly applying
+shaders to groups and other potential visual effects. It requires that
+the %CLUTTER_FEATURE_OFFSCREEN feature is supported by the current backend
+and the target system.
+Some tips on usage:
+&lt;itemizedlist&gt;
+&lt;listitem&gt;
+&lt;para&gt;The source actor must be made visible (i.e by calling
+#clutter_actor_show).&lt;/para&gt;
+&lt;/listitem&gt;
+&lt;listitem&gt;
+&lt;para&gt;The source actor must have a parent in order for it to be
+allocated a size from the layouting mechanism. If the source
+actor does not have a parent when this function is called then
+the ClutterTexture will adopt it and allocate it at its
+preferred size. Using this you can clone an actor that is
+otherwise not displayed. Because of this feature if you do
+intend to display the source actor then you must make sure that
+the actor is parented before calling
+clutter_texture_new_from_actor() or that you unparent it before
+adding it to a container.&lt;/para&gt;
+&lt;/listitem&gt;
+&lt;listitem&gt;
+&lt;para&gt;When getting the image for the clone texture, Clutter
+will attempt to render the source actor exactly as it would
+appear if it was rendered on screen. The source actor's parent
+transformations are taken into account. Therefore if your
+source actor is rotated along the X or Y axes so that it has
+some depth, the texture will appear differently depending on
+the on-screen location of the source actor. While painting the
+source actor, Clutter will set up a temporary asymmetric
+perspective matrix as the projection matrix so that the source
+actor will be projected as if a small section of the screen was
+being viewed. Before version 0.8.2, an orthogonal identity
+projection was used which meant that the source actor would be
+clipped if any part of it was not on the zero Z-plane.&lt;/para&gt;
+&lt;/listitem&gt;
+&lt;listitem&gt;
+&lt;para&gt;Avoid reparenting the source with the created texture.&lt;/para&gt;
+&lt;/listitem&gt;
+&lt;listitem&gt;
+&lt;para&gt;A group can be padded with a transparent rectangle as to
+provide a border to contents for shader output (blurring text
+for example).&lt;/para&gt;
+&lt;/listitem&gt;
+&lt;listitem&gt;
+&lt;para&gt;The texture will automatically resize to contain a further
+transformed source. However, this involves overhead and can be
+avoided by placing the source actor in a bounding group
+sized large enough to contain any child tranformations.&lt;/para&gt;
+&lt;/listitem&gt;
+&lt;listitem&gt;
+&lt;para&gt;Uploading pixel data to the texture (e.g by using
+clutter_actor_set_from_file()) will destroy the offscreen texture data
+and end redirection.&lt;/para&gt;
+&lt;/listitem&gt;
+&lt;listitem&gt;
+&lt;para&gt;cogl_texture_get_data() with the handle returned by
+clutter_texture_get_cogl_texture() can be used to read the
+offscreen texture pixels into a pixbuf.&lt;/para&gt;
+&lt;/listitem&gt;
+&lt;/itemizedlist&gt;</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">A newly created #ClutterTexture object, or %NULL on failure.</doc>
+          <type name="Actor" c:type="ClutterActor*"/>
+        </return-value>
+        <parameters>
+          <parameter name="actor" transfer-ownership="none">
+            <doc xml:whitespace="preserve">A source #ClutterActor</doc>
+            <type name="Actor" c:type="ClutterActor*"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <constructor name="new_from_file"
+                   c:identifier="clutter_texture_new_from_file"
+                   version="0.8"
+                   throws="1">
+        <doc xml:whitespace="preserve">Creates a new ClutterTexture actor to display the image contained a
+file. If the image failed to load then NULL is returned and @error
+is set.
+error.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">A newly created #ClutterTexture object or NULL on</doc>
+          <type name="Actor" c:type="ClutterActor*"/>
+        </return-value>
+        <parameters>
+          <parameter name="filename" transfer-ownership="none">
+            <doc xml:whitespace="preserve">The name of an image file to load.</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <method name="get_base_size"
+              c:identifier="clutter_texture_get_base_size">
+        <doc xml:whitespace="preserve">Gets the size in pixels of the untransformed underlying image</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="width"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:whitespace="preserve">return location for the width, or %NULL</doc>
+            <type name="gint" c:type="gint*"/>
+          </parameter>
+          <parameter name="height"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:whitespace="preserve">return location for the height, or %NULL</doc>
+            <type name="gint" c:type="gint*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_cogl_material"
+              c:identifier="clutter_texture_get_cogl_material"
+              version="1.0">
+        <doc xml:whitespace="preserve">Returns a handle to the underlying COGL material used for drawing
+the actor.
+material is owned by the #ClutterTexture and it should not be
+unreferenced</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">a handle for a #CoglMaterial. The</doc>
+          <type name="Cogl.Handle" c:type="CoglHandle"/>
+        </return-value>
+      </method>
+      <method name="get_cogl_texture"
+              c:identifier="clutter_texture_get_cogl_texture"
+              version="0.8">
+        <doc xml:whitespace="preserve">Retrieves the handle to the underlying COGL texture used for drawing
+the actor. No extra reference is taken so if you need to keep the
+handle then you should call cogl_handle_ref() on it.
+The texture handle returned is the first layer of the material
+handle used by the #ClutterTexture. If you need to access the other
+layers you should use clutter_texture_get_cogl_material() instead
+and use the #CoglMaterial API.
+handle is owned by the #ClutterTexture and it should not be unreferenced</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #CoglHandle for the texture. The returned</doc>
+          <type name="Cogl.Handle" c:type="CoglHandle"/>
+        </return-value>
+      </method>
+      <method name="get_filter_quality"
+              c:identifier="clutter_texture_get_filter_quality">
+        <return-value transfer-ownership="none">
+          <type name="TextureQuality" c:type="ClutterTextureQuality"/>
+        </return-value>
+      </method>
+      <method name="get_keep_aspect_ratio"
+              c:identifier="clutter_texture_get_keep_aspect_ratio"
+              version="1.0">
+        <doc xml:whitespace="preserve">Retrieves the value set using clutter_texture_set_keep_aspect_ratio()
+aspect ratio of the underlying image</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if the #ClutterTexture should maintain the</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+      </method>
+      <method name="get_load_async"
+              c:identifier="clutter_texture_get_load_async"
+              version="1.0">
+        <doc xml:whitespace="preserve">Retrieves the value set using clutter_texture_set_load_async()
+disk asynchronously</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if the #ClutterTexture should load the data from</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+      </method>
+      <method name="get_load_data_async"
+              c:identifier="clutter_texture_get_load_data_async"
+              version="1.0">
+        <doc xml:whitespace="preserve">Retrieves the value set by clutter_texture_set_load_data_async()
+data from a file asynchronously</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if the #ClutterTexture should load the image</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+      </method>
+      <method name="get_max_tile_waste"
+              c:identifier="clutter_texture_get_max_tile_waste">
+        <return-value transfer-ownership="none">
+          <type name="gint" c:type="gint"/>
+        </return-value>
+      </method>
+      <method name="get_pick_with_alpha"
+              c:identifier="clutter_texture_get_pick_with_alpha"
+              version="1.4">
+        <doc xml:whitespace="preserve">Retrieves the value set by clutter_texture_set_load_data_async()
+using the alpha channel when picking.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if the #ClutterTexture should define its shape</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+      </method>
+      <method name="get_pixel_format"
+              c:identifier="clutter_texture_get_pixel_format"
+              version="1.0">
+        <doc xml:whitespace="preserve">Retrieves the pixel format used by @texture. This is
+equivalent to:
+|[
+handle = clutter_texture_get_pixel_format (texture);
+if (handle != COGL_INVALID_HANDLE)
+format = cogl_texture_get_format (handle);
+]|</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #CoglPixelFormat value</doc>
+          <type name="Cogl.PixelFormat" c:type="CoglPixelFormat"/>
+        </return-value>
+      </method>
+      <method name="get_repeat"
+              c:identifier="clutter_texture_get_repeat"
+              version="1.0">
+        <doc xml:whitespace="preserve">Retrieves the horizontal and vertical repeat values set
+using clutter_texture_set_repeat()</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="repeat_x"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:whitespace="preserve">return location for the horizontal repeat</doc>
+            <type name="gboolean" c:type="gboolean*"/>
+          </parameter>
+          <parameter name="repeat_y"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:whitespace="preserve">return location for the vertical repeat</doc>
+            <type name="gboolean" c:type="gboolean*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_sync_size"
+              c:identifier="clutter_texture_get_sync_size"
+              version="1.0">
+        <doc xml:whitespace="preserve">Retrieves the value set with clutter_texture_set_sync_size()
+preferred size of the underlying image data</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if the #ClutterTexture should have the same</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+      </method>
+      <method name="set_area_from_rgb_data"
+              c:identifier="clutter_texture_set_area_from_rgb_data"
+              version="0.6"
+              throws="1">
+        <doc xml:whitespace="preserve">Updates a sub-region of the pixel data in a #ClutterTexture.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE on success, %FALSE on failure.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="data" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Image data in RGB type colorspace.</doc>
+            <type name="guint8" c:type="guchar*"/>
+          </parameter>
+          <parameter name="has_alpha" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Set to TRUE if image data has an alpha channel.</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+          <parameter name="x" transfer-ownership="none">
+            <doc xml:whitespace="preserve">X coordinate of upper left corner of region to update.</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="y" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Y coordinate of upper left corner of region to update.</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="width" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Width in pixels of region to update.</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="height" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Height in pixels of region to update.</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="rowstride" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Distance in bytes between row starts on source buffer.</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="bpp" transfer-ownership="none">
+            <doc xml:whitespace="preserve">bytes per pixel (Currently only 3 and 4 supported, depending on @has_alpha)</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="flags" transfer-ownership="none">
+            <doc xml:whitespace="preserve">#ClutterTextureFlags</doc>
+            <type name="TextureFlags" c:type="ClutterTextureFlags"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_cogl_material"
+              c:identifier="clutter_texture_set_cogl_material"
+              version="0.8">
+        <doc xml:whitespace="preserve">Replaces the underlying Cogl material drawn by this actor with
+handle is no longer needed it should be deref'd with
+cogl_handle_unref. Texture data is attached to the material so
+calling this function also replaces the Cogl
+texture. #ClutterTexture requires that the material have a texture
+layer so you should set one on the material before calling this
+function.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="cogl_material" transfer-ownership="none">
+            <doc xml:whitespace="preserve">A CoglHandle for a material</doc>
+            <type name="Cogl.Handle" c:type="CoglHandle"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_cogl_texture"
+              c:identifier="clutter_texture_set_cogl_texture">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="cogl_tex" transfer-ownership="none">
+            <type name="Cogl.Handle" c:type="CoglHandle"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_filter_quality"
+              c:identifier="clutter_texture_set_filter_quality"
+              version="0.8">
+        <doc xml:whitespace="preserve">Sets the filter quality when scaling a texture. The quality is an
+enumeration currently the following values are supported:
+%CLUTTER_TEXTURE_QUALITY_LOW which is fast but only uses nearest neighbour
+interpolation. %CLUTTER_TEXTURE_QUALITY_MEDIUM which is computationally a
+bit more expensive (bilinear interpolation), and
+%CLUTTER_TEXTURE_QUALITY_HIGH which uses extra texture memory resources to
+improve scaled down rendering as well (by using mipmaps). The default value
+is %CLUTTER_TEXTURE_QUALITY_MEDIUM.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="filter_quality" transfer-ownership="none">
+            <doc xml:whitespace="preserve">new filter quality value</doc>
+            <type name="TextureQuality" c:type="ClutterTextureQuality"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_from_file"
+              c:identifier="clutter_texture_set_from_file"
+              version="0.8"
+              throws="1">
+        <doc xml:whitespace="preserve">Sets the #ClutterTexture image data from an image file. In case of
+failure, %FALSE is returned and @error is set.
+If #ClutterTexture:load-async is set to %TRUE, this function
+will return as soon as possible, and the actual image loading
+from disk will be performed asynchronously. #ClutterTexture::size-change
+will be emitten when the size of the texture is available and
+#ClutterTexture::load-finished will be emitted when the image has been
+loaded or if an error occurred.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if the image was successfully loaded and set</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="filename" transfer-ownership="none">
+            <doc xml:whitespace="preserve">The filename of the image in GLib file name encoding</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_from_rgb_data"
+              c:identifier="clutter_texture_set_from_rgb_data"
+              version="0.4."
+              throws="1">
+        <doc xml:whitespace="preserve">Sets #ClutterTexture image data.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE on success, %FALSE on failure.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="data" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Image data in RGBA type colorspace.</doc>
+            <type name="guint8" c:type="guchar*"/>
+          </parameter>
+          <parameter name="has_alpha" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Set to TRUE if image data has an alpha channel.</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+          <parameter name="width" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Width in pixels of image data.</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="height" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Height in pixels of image data</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="rowstride" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Distance in bytes between row starts.</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="bpp" transfer-ownership="none">
+            <doc xml:whitespace="preserve">bytes per pixel (Currently only 3 and 4 supported, depending on @has_alpha)</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="flags" transfer-ownership="none">
+            <doc xml:whitespace="preserve">#ClutterTextureFlags</doc>
+            <type name="TextureFlags" c:type="ClutterTextureFlags"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_from_yuv_data"
+              c:identifier="clutter_texture_set_from_yuv_data"
+              version="0.4"
+              throws="1">
+        <doc xml:whitespace="preserve">Sets a #ClutterTexture from YUV image data. If an error occurred,
+%FALSE is returned and @error is set.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if the texture was successfully updated</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="data" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Image data in YUV type colorspace.</doc>
+            <type name="guint8" c:type="guchar*"/>
+          </parameter>
+          <parameter name="width" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Width in pixels of image data.</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="height" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Height in pixels of image data</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="flags" transfer-ownership="none">
+            <doc xml:whitespace="preserve">#ClutterTextureFlags</doc>
+            <type name="TextureFlags" c:type="ClutterTextureFlags"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_keep_aspect_ratio"
+              c:identifier="clutter_texture_set_keep_aspect_ratio"
+              version="1.0">
+        <doc xml:whitespace="preserve">Sets whether @texture should have a preferred size maintaining
+the aspect ratio of the underlying image</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="keep_aspect" transfer-ownership="none">
+            <doc xml:whitespace="preserve">%TRUE to maintain aspect ratio</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_load_async"
+              c:identifier="clutter_texture_set_load_async"
+              version="1.0">
+        <doc xml:whitespace="preserve">Sets whether @texture should use a worker thread to load the data
+from disk asynchronously. Setting @load_async to %TRUE will make
+clutter_texture_set_from_file() return immediately.
+See the #ClutterTexture:load-async property documentation, and
+clutter_texture_set_load_data_async().</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="load_async" transfer-ownership="none">
+            <doc xml:whitespace="preserve">%TRUE if the texture should asynchronously load data from a filename</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_load_data_async"
+              c:identifier="clutter_texture_set_load_data_async"
+              version="1.0">
+        <doc xml:whitespace="preserve">Sets whether @texture should use a worker thread to load the data
+from disk asynchronously. Setting @load_async to %TRUE will make
+clutter_texture_set_from_file() block until the #ClutterTexture has
+determined the width and height of the image data.
+See the #ClutterTexture:load-async property documentation, and
+clutter_texture_set_load_async().</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="load_async" transfer-ownership="none">
+            <doc xml:whitespace="preserve">%TRUE if the texture should asynchronously load data from a filename</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_pick_with_alpha"
+              c:identifier="clutter_texture_set_pick_with_alpha"
+              version="1.4">
+        <doc xml:whitespace="preserve">Sets whether @texture should have it's shape defined by the alpha
+channel when picking.
+Be aware that this is a bit more costly than the default picking
+due to the texture lookup, extra test against the alpha value and
+the fact that it will also interrupt the batching of geometry done
+internally.
+Also there is currently no control over the threshold used to
+determine what value of alpha is considered pickable, and so only
+fully opaque parts of the texture will react to picking.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="pick_with_alpha" transfer-ownership="none">
+            <doc xml:whitespace="preserve">%TRUE if the alpha channel should affect the picking shape</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_repeat"
+              c:identifier="clutter_texture_set_repeat"
+              version="1.0">
+        <doc xml:whitespace="preserve">Sets whether the @texture should repeat horizontally or
+vertically when the actor size is bigger than the image size</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="repeat_x" transfer-ownership="none">
+            <doc xml:whitespace="preserve">%TRUE if the texture should repeat horizontally</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+          <parameter name="repeat_y" transfer-ownership="none">
+            <doc xml:whitespace="preserve">%TRUE if the texture should repeat vertically</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_sync_size"
+              c:identifier="clutter_texture_set_sync_size"
+              version="1.0">
+        <doc xml:whitespace="preserve">Sets whether @texture should have the same preferred size as the
+underlying image data.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="sync_size" transfer-ownership="none">
+            <doc xml:whitespace="preserve">%TRUE if the texture should have the same size of the underlying image data</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <property name="cogl-material"
+                introspectable="0"
+                writable="1"
+                transfer-ownership="none">
+        <type/>
+      </property>
+      <property name="cogl-texture"
+                introspectable="0"
+                writable="1"
+                transfer-ownership="none">
+        <type/>
+      </property>
+      <property name="disable-slicing"
+                writable="1"
+                construct-only="1"
+                transfer-ownership="none">
+        <type name="gboolean"/>
+      </property>
+      <property name="filename" writable="1" transfer-ownership="none">
+        <doc xml:whitespace="preserve">The path of the file containing the image data to be displayed by
+the texture.
+This property is unset when using the clutter_texture_set_from_*_data()
+family of functions.</doc>
+        <type name="utf8"/>
+      </property>
+      <property name="filter-quality"
+                writable="1"
+                construct="1"
+                transfer-ownership="none">
+        <type name="TextureQuality"/>
+      </property>
+      <property name="keep-aspect-ratio"
+                writable="1"
+                transfer-ownership="none">
+        <type name="gboolean"/>
+      </property>
+      <property name="load-async"
+                version="1.0"
+                readable="0"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">Tries to load a texture from a filename by using a local thread to perform
+the read operations. The initially created texture has dimensions 0x0 when
+the true size becomes available the #ClutterTexture::size-change signal is
+emitted and when the image has completed loading the
+#ClutterTexture::load-finished signal is emitted.
+Threading is only enabled if g_thread_init() has been called prior to
+clutter_init(), otherwise #ClutterTexture will use the main loop to load
+the image.
+The upload of the texture data on the GL pipeline is not asynchronous, as
+it must be performed from within the same thread that called
+clutter_main().</doc>
+        <type name="gboolean"/>
+      </property>
+      <property name="load-data-async"
+                version="1.0"
+                readable="0"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">Like #ClutterTexture:load-async but loads the width and height
+synchronously causing some blocking.</doc>
+        <type name="gboolean"/>
+      </property>
+      <property name="pick-with-alpha" writable="1" transfer-ownership="none">
+        <type name="gboolean"/>
+      </property>
+      <property name="pixel-format" transfer-ownership="none">
+        <type name="Cogl.PixelFormat"/>
+      </property>
+      <property name="repeat-x" writable="1" transfer-ownership="none">
+        <type name="gboolean"/>
+      </property>
+      <property name="repeat-y" writable="1" transfer-ownership="none">
+        <type name="gboolean"/>
+      </property>
+      <property name="sync-size" writable="1" transfer-ownership="none">
+        <type name="gboolean"/>
+      </property>
+      <property name="tile-waste" transfer-ownership="none">
+        <type name="gint"/>
+      </property>
+      <field name="parent">
+        <type name="Actor" c:type="ClutterActor"/>
+      </field>
+      <field name="priv">
+        <type name="TexturePrivate" c:type="ClutterTexturePrivate*"/>
+      </field>
+      <glib:signal name="load-finished" version="1.0">
+        <doc xml:whitespace="preserve">The ::load-finished signal is emitted when a texture load has
+completed. If there was an error during loading, @error will
+be set, otherwise it will be %NULL</doc>
+        <return-value transfer-ownership="none">
+          <type name="none"/>
+        </return-value>
+        <parameters>
+          <parameter name="object" transfer-ownership="none">
+            <doc xml:whitespace="preserve">A set error, or %NULL</doc>
+            <type name="gpointer"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="pixbuf-change">
+        <doc xml:whitespace="preserve">The ::pixbuf-change signal is emitted each time the pixbuf
+used by @texture changes.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none"/>
+        </return-value>
+      </glib:signal>
+      <glib:signal name="size-change">
+        <doc xml:whitespace="preserve">The ::size-change signal is emitted each time the size of the
+pixbuf used by @texture changes.  The new size is given as
+argument to the callback.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none"/>
+        </return-value>
+        <parameters>
+          <parameter name="object" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the width of the new texture</doc>
+            <type name="gint"/>
+          </parameter>
+          <parameter name="p0" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the height of the new texture</doc>
+            <type name="gint"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+    </class>
+    <record name="TextureClass"
+            c:type="ClutterTextureClass"
+            glib:is-gtype-struct-for="Texture"
+            version="0.1">
+      <doc xml:whitespace="preserve">The #ClutterTextureClass structure contains only private data</doc>
+      <field name="parent_class">
+        <type name="ActorClass" c:type="ClutterActorClass"/>
+      </field>
+      <field name="size_change">
+        <callback name="size_change">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="texture" transfer-ownership="none">
+              <type name="Texture" c:type="ClutterTexture*"/>
+            </parameter>
+            <parameter name="width" transfer-ownership="none">
+              <type name="gint" c:type="gint"/>
+            </parameter>
+            <parameter name="height" transfer-ownership="none">
+              <type name="gint" c:type="gint"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="pixbuf_change">
+        <callback name="pixbuf_change">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="texture" transfer-ownership="none">
+              <type name="Texture" c:type="ClutterTexture*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="load_finished">
+        <callback name="load_finished">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="texture" transfer-ownership="none">
+              <type name="Texture" c:type="ClutterTexture*"/>
+            </parameter>
+            <parameter name="error" transfer-ownership="none">
+              <type name="GLib.Error" c:type="GError*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="_clutter_texture1" introspectable="0">
+        <callback name="_clutter_texture1">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_texture2" introspectable="0">
+        <callback name="_clutter_texture2">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_texture3" introspectable="0">
+        <callback name="_clutter_texture3">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_texture4" introspectable="0">
+        <callback name="_clutter_texture4">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_texture5" introspectable="0">
+        <callback name="_clutter_texture5">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+    </record>
+    <enumeration name="TextureError"
+                 version="0.4"
+                 glib:type-name="ClutterTextureError"
+                 glib:get-type="clutter_texture_error_get_type"
+                 c:type="ClutterTextureError"
+                 glib:error-quark="clutter_texture_error_quark">
+      <doc xml:whitespace="preserve">Error enumeration for #ClutterTexture</doc>
+      <member name="out_of_memory"
+              value="0"
+              c:identifier="CLUTTER_TEXTURE_ERROR_OUT_OF_MEMORY"
+              glib:nick="out-of-memory"/>
+      <member name="no_yuv"
+              value="1"
+              c:identifier="CLUTTER_TEXTURE_ERROR_NO_YUV"
+              glib:nick="no-yuv"/>
+      <member name="bad_format"
+              value="2"
+              c:identifier="CLUTTER_TEXTURE_ERROR_BAD_FORMAT"
+              glib:nick="bad-format"/>
+    </enumeration>
+    <bitfield name="TextureFlags"
+              version="0.4"
+              glib:type-name="ClutterTextureFlags"
+              glib:get-type="clutter_texture_flags_get_type"
+              c:type="ClutterTextureFlags">
+      <doc xml:whitespace="preserve">Flags for clutter_texture_set_from_rgb_data() and
+clutter_texture_set_from_yuv_data().</doc>
+      <member name="none"
+              value="0"
+              c:identifier="CLUTTER_TEXTURE_NONE"
+              glib:nick="none"/>
+      <member name="rgb_flag_bgr"
+              value="2"
+              c:identifier="CLUTTER_TEXTURE_RGB_FLAG_BGR"
+              glib:nick="rgb-flag-bgr"/>
+      <member name="rgb_flag_premult"
+              value="4"
+              c:identifier="CLUTTER_TEXTURE_RGB_FLAG_PREMULT"
+              glib:nick="rgb-flag-premult"/>
+      <member name="yuv_flag_yuv2"
+              value="8"
+              c:identifier="CLUTTER_TEXTURE_YUV_FLAG_YUV2"
+              glib:nick="yuv-flag-yuv2"/>
+    </bitfield>
+    <record name="TexturePrivate" c:type="ClutterTexturePrivate" disguised="1">
+    </record>
+    <enumeration name="TextureQuality"
+                 version="0.8"
+                 glib:type-name="ClutterTextureQuality"
+                 glib:get-type="clutter_texture_quality_get_type"
+                 c:type="ClutterTextureQuality">
+      <doc xml:whitespace="preserve">Enumaration controlling the texture quality.</doc>
+      <member name="low"
+              value="0"
+              c:identifier="CLUTTER_TEXTURE_QUALITY_LOW"
+              glib:nick="low"/>
+      <member name="medium"
+              value="1"
+              c:identifier="CLUTTER_TEXTURE_QUALITY_MEDIUM"
+              glib:nick="medium"/>
+      <member name="high"
+              value="2"
+              c:identifier="CLUTTER_TEXTURE_QUALITY_HIGH"
+              glib:nick="high"/>
+    </enumeration>
+    <constant name="Thai_baht" value="3551">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Thai_bobaimai" value="3514">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Thai_chochan" value="3496">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Thai_chochang" value="3498">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Thai_choching" value="3497">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Thai_chochoe" value="3500">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Thai_dochada" value="3502">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Thai_dodek" value="3508">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Thai_fofa" value="3517">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Thai_fofan" value="3519">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Thai_hohip" value="3531">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Thai_honokhuk" value="3534">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Thai_khokhai" value="3490">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Thai_khokhon" value="3493">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Thai_khokhuat" value="3491">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Thai_khokhwai" value="3492">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Thai_khorakhang" value="3494">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Thai_kokai" value="3489">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Thai_lakkhangyao" value="3557">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Thai_lekchet" value="3575">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Thai_lekha" value="3573">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Thai_lekhok" value="3574">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Thai_lekkao" value="3577">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Thai_leknung" value="3569">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Thai_lekpaet" value="3576">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Thai_leksam" value="3571">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Thai_leksi" value="3572">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Thai_leksong" value="3570">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Thai_leksun" value="3568">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Thai_lochula" value="3532">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Thai_loling" value="3525">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Thai_lu" value="3526">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Thai_maichattawa" value="3563">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Thai_maiek" value="3560">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Thai_maihanakat" value="3537">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Thai_maihanakat_maitho" value="3550">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Thai_maitaikhu" value="3559">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Thai_maitho" value="3561">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Thai_maitri" value="3562">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Thai_maiyamok" value="3558">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Thai_moma" value="3521">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Thai_ngongu" value="3495">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Thai_nikhahit" value="3565">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Thai_nonen" value="3507">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Thai_nonu" value="3513">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Thai_oang" value="3533">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Thai_paiyannoi" value="3535">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Thai_phinthu" value="3546">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Thai_phophan" value="3518">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Thai_phophung" value="3516">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Thai_phosamphao" value="3520">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Thai_popla" value="3515">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Thai_rorua" value="3523">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Thai_ru" value="3524">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Thai_saraa" value="3536">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Thai_saraaa" value="3538">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Thai_saraae" value="3553">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Thai_saraaimaimalai" value="3556">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Thai_saraaimaimuan" value="3555">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Thai_saraam" value="3539">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Thai_sarae" value="3552">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Thai_sarai" value="3540">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Thai_saraii" value="3541">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Thai_sarao" value="3554">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Thai_sarau" value="3544">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Thai_saraue" value="3542">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Thai_sarauee" value="3543">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Thai_sarauu" value="3545">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Thai_sorusi" value="3529">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Thai_sosala" value="3528">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Thai_soso" value="3499">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Thai_sosua" value="3530">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Thai_thanthakhat" value="3564">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Thai_thonangmontho" value="3505">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Thai_thophuthao" value="3506">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Thai_thothahan" value="3511">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Thai_thothan" value="3504">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Thai_thothong" value="3512">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Thai_thothung" value="3510">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Thai_topatak" value="3503">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Thai_totao" value="3509">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Thai_wowaen" value="3527">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Thai_yoyak" value="3522">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Thai_yoying" value="3501">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Thorn" value="222">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Time" value="269025183">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <class name="Timeline"
+           c:symbol-prefix="timeline"
+           c:type="ClutterTimeline"
+           version="0.2"
+           parent="GObject.Object"
+           glib:type-name="ClutterTimeline"
+           glib:get-type="clutter_timeline_get_type"
+           glib:type-struct="TimelineClass">
+      <doc xml:whitespace="preserve">The #ClutterTimeline structure contains only private data
+and should be accessed using the provided API</doc>
+      <constructor name="new"
+                   c:identifier="clutter_timeline_new"
+                   version="0.6">
+        <doc xml:whitespace="preserve">Creates a new #ClutterTimeline with a duration of @msecs.
+g_object_unref() when done using it</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">the newly created #ClutterTimeline instance. Use</doc>
+          <type name="Timeline" c:type="ClutterTimeline*"/>
+        </return-value>
+        <parameters>
+          <parameter name="msecs" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Duration of the timeline in milliseconds</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <method name="add_marker_at_time"
+              c:identifier="clutter_timeline_add_marker_at_time"
+              version="0.8">
+        <doc xml:whitespace="preserve">Adds a named marker that will be hit when the timeline has been
+running for @msecs milliseconds. Markers are unique string
+identifiers for a given time. Once @timeline reaches
+attached to that time.
+A marker can be removed with clutter_timeline_remove_marker(). The
+timeline can be advanced to a marker using
+clutter_timeline_advance_to_marker().</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="marker_name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the unique name for this marker</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="msecs" transfer-ownership="none">
+            <doc xml:whitespace="preserve">position of the marker in milliseconds</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="advance" c:identifier="clutter_timeline_advance">
+        <doc xml:whitespace="preserve">Advance timeline to the requested point. The point is given as a
+time in milliseconds since the timeline started.
+&lt;note&gt;&lt;para&gt;The @timeline will not emit the #ClutterTimeline::new-frame
+signal for the given time. The first ::new-frame signal after the call to
+clutter_timeline_advance() will be emit the skipped markers.
+&lt;/para&gt;&lt;/note&gt;</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="msecs" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Time to advance to</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="advance_to_marker"
+              c:identifier="clutter_timeline_advance_to_marker"
+              version="0.8">
+        <doc xml:whitespace="preserve">Advances @timeline to the time of the given @marker_name.
+&lt;note&gt;&lt;para&gt;Like clutter_timeline_advance(), this function will not
+emit the #ClutterTimeline::new-frame for the time where @marker_name
+is set, nor it will emit #ClutterTimeline::marker-reached for</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="marker_name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the name of the marker</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="clone" c:identifier="clutter_timeline_clone" version="0.4">
+        <doc xml:whitespace="preserve">Create a new #ClutterTimeline instance which has property values
+matching that of supplied timeline. The cloned timeline will not
+be started and will not be positioned to the current position of
+from @timeline</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">a new #ClutterTimeline, cloned</doc>
+          <type name="Timeline" c:type="ClutterTimeline*"/>
+        </return-value>
+      </method>
+      <method name="do_tick" c:identifier="clutter_timeline_do_tick">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="tick_time" transfer-ownership="none">
+            <type name="GLib.TimeVal" c:type="GTimeVal*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_delay"
+              c:identifier="clutter_timeline_get_delay"
+              version="0.4">
+        <doc xml:whitespace="preserve">Retrieves the delay set using clutter_timeline_set_delay().</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the delay in milliseconds.</doc>
+          <type name="guint" c:type="guint"/>
+        </return-value>
+      </method>
+      <method name="get_delta"
+              c:identifier="clutter_timeline_get_delta"
+              version="0.6">
+        <doc xml:whitespace="preserve">Retrieves the amount of time elapsed since the last
+ClutterTimeline::new-frame signal.
+This function is only useful inside handlers for the ::new-frame
+signal, and its behaviour is undefined if the timeline is not
+playing.
+last frame</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the amount of time in milliseconds elapsed since the</doc>
+          <type name="guint" c:type="guint"/>
+        </return-value>
+      </method>
+      <method name="get_direction"
+              c:identifier="clutter_timeline_get_direction"
+              version="0.6">
+        <doc xml:whitespace="preserve">Retrieves the direction of the timeline set with
+clutter_timeline_set_direction().</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the direction of the timeline</doc>
+          <type name="TimelineDirection" c:type="ClutterTimelineDirection"/>
+        </return-value>
+      </method>
+      <method name="get_duration"
+              c:identifier="clutter_timeline_get_duration"
+              version="0.6">
+        <doc xml:whitespace="preserve">Retrieves the duration of a #ClutterTimeline in milliseconds.
+See clutter_timeline_set_duration().</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the duration of the timeline, in milliseconds.</doc>
+          <type name="guint" c:type="guint"/>
+        </return-value>
+      </method>
+      <method name="get_elapsed_time"
+              c:identifier="clutter_timeline_get_elapsed_time">
+        <doc xml:whitespace="preserve">Request the current time position of the timeline.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">current elapsed time in milliseconds.</doc>
+          <type name="guint" c:type="guint"/>
+        </return-value>
+      </method>
+      <method name="get_loop" c:identifier="clutter_timeline_get_loop">
+        <doc xml:whitespace="preserve">Gets whether @timeline is looping</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if the timeline is looping</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+      </method>
+      <method name="get_progress"
+              c:identifier="clutter_timeline_get_progress"
+              version="0.6">
+        <doc xml:whitespace="preserve">The position of the timeline in a [0, 1] interval.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the position of the timeline.</doc>
+          <type name="gdouble" c:type="gdouble"/>
+        </return-value>
+      </method>
+      <method name="has_marker"
+              c:identifier="clutter_timeline_has_marker"
+              version="0.8">
+        <doc xml:whitespace="preserve">Checks whether @timeline has a marker set with the given name.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if the marker was found</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="marker_name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the name of the marker</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="is_playing" c:identifier="clutter_timeline_is_playing">
+        <doc xml:whitespace="preserve">Queries state of a #ClutterTimeline.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if timeline is currently playing</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+      </method>
+      <method name="list_markers"
+              c:identifier="clutter_timeline_list_markers"
+              version="0.8">
+        <doc xml:whitespace="preserve">Retrieves the list of markers at time @msecs. If @frame_num is a
+negative integer, all the markers attached to @timeline will be
+returned.
+a newly allocated, %NULL terminated string array containing the names
+of the markers. Use g_strfreev() when done.</doc>
+        <return-value transfer-ownership="full">
+          <array length="1" c:type="gchar**">
+            <type name="utf8"/>
+          </array>
+        </return-value>
+        <parameters>
+          <parameter name="msecs" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the time to check, or -1</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="n_markers"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:whitespace="preserve">the number of markers returned</doc>
+            <type name="gulong" c:type="gsize*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="pause" c:identifier="clutter_timeline_pause">
+        <doc xml:whitespace="preserve">Pauses the #ClutterTimeline on current frame</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </method>
+      <method name="remove_marker"
+              c:identifier="clutter_timeline_remove_marker"
+              version="0.8">
+        <doc xml:whitespace="preserve">Removes @marker_name, if found, from @timeline.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="marker_name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the name of the marker to remove</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="rewind" c:identifier="clutter_timeline_rewind">
+        <doc xml:whitespace="preserve">Rewinds #ClutterTimeline to the first frame if its direction is
+%CLUTTER_TIMELINE_FORWARD and the last frame if it is
+%CLUTTER_TIMELINE_BACKWARD.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </method>
+      <method name="set_delay"
+              c:identifier="clutter_timeline_set_delay"
+              version="0.4">
+        <doc xml:whitespace="preserve">Sets the delay, in milliseconds, before @timeline should start.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="msecs" transfer-ownership="none">
+            <doc xml:whitespace="preserve">delay in milliseconds</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_direction"
+              c:identifier="clutter_timeline_set_direction"
+              version="0.6">
+        <doc xml:whitespace="preserve">Sets the direction of @timeline, either %CLUTTER_TIMELINE_FORWARD or
+%CLUTTER_TIMELINE_BACKWARD.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="direction" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the direction of the timeline</doc>
+            <type name="TimelineDirection" c:type="ClutterTimelineDirection"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_duration"
+              c:identifier="clutter_timeline_set_duration"
+              version="0.6">
+        <doc xml:whitespace="preserve">Sets the duration of the timeline, in milliseconds. The speed
+of the timeline depends on the ClutterTimeline:fps setting.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="msecs" transfer-ownership="none">
+            <doc xml:whitespace="preserve">duration of the timeline in milliseconds</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_loop" c:identifier="clutter_timeline_set_loop">
+        <doc xml:whitespace="preserve">Sets whether @timeline should loop.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="loop" transfer-ownership="none">
+            <doc xml:whitespace="preserve">%TRUE for enable looping</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="skip" c:identifier="clutter_timeline_skip">
+        <doc xml:whitespace="preserve">Advance timeline by the requested time in milliseconds</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="msecs" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Amount of time to skip</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="start" c:identifier="clutter_timeline_start">
+        <doc xml:whitespace="preserve">Starts the #ClutterTimeline playing.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </method>
+      <method name="stop" c:identifier="clutter_timeline_stop">
+        <doc xml:whitespace="preserve">Stops the #ClutterTimeline and moves to frame 0</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </method>
+      <property name="delay"
+                version="0.4"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">A delay, in milliseconds, that should be observed by the
+timeline before actually starting.</doc>
+        <type name="guint"/>
+      </property>
+      <property name="direction"
+                version="0.6"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">The direction of the timeline, either %CLUTTER_TIMELINE_FORWARD or
+%CLUTTER_TIMELINE_BACKWARD.</doc>
+        <type name="TimelineDirection"/>
+      </property>
+      <property name="duration"
+                version="0.6"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">Duration of the timeline in milliseconds, depending on the
+ClutterTimeline:fps value.</doc>
+        <type name="guint"/>
+      </property>
+      <property name="loop" writable="1" transfer-ownership="none">
+        <doc xml:whitespace="preserve">Whether the timeline should automatically rewind and restart.</doc>
+        <type name="gboolean"/>
+      </property>
+      <field name="parent">
+        <type name="GObject.Object" c:type="GObject"/>
+      </field>
+      <field name="priv">
+        <type name="TimelinePrivate" c:type="ClutterTimelinePrivate*"/>
+      </field>
+      <glib:signal name="completed">
+        <doc xml:whitespace="preserve">The ::completed signal is emitted when the timeline reaches the
+number of frames specified by the ClutterTimeline:num-frames property.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none"/>
+        </return-value>
+      </glib:signal>
+      <glib:signal name="marker-reached" version="0.8">
+        <doc xml:whitespace="preserve">The ::marker-reached signal is emitted each time a timeline
+reaches a marker set with
+clutter_timeline_add_marker_at_time(). This signal is detailed
+with the name of the marker as well, so it is possible to connect
+a callback to the ::marker-reached signal for a specific marker
+with:
+&lt;informalexample&gt;&lt;programlisting&gt;
+clutter_timeline_add_marker_at_time (timeline, "foo", 500);
+clutter_timeline_add_marker_at_time (timeline, "bar", 750);
+g_signal_connect (timeline, "marker-reached",
+G_CALLBACK (each_marker_reached), NULL);
+g_signal_connect (timeline, "marker-reached::foo",
+G_CALLBACK (foo_marker_reached), NULL);
+g_signal_connect (timeline, "marker-reached::bar",
+G_CALLBACK (bar_marker_reached), NULL);
+&lt;/programlisting&gt;&lt;/informalexample&gt;
+In the example, the first callback will be invoked for both
+the "foo" and "bar" marker, while the second and third callbacks
+will be invoked for the "foo" or "bar" markers, respectively.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none"/>
+        </return-value>
+        <parameters>
+          <parameter name="object" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the name of the marker reached</doc>
+            <type name="utf8"/>
+          </parameter>
+          <parameter name="p0" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the elapsed time</doc>
+            <type name="gint"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="new-frame">
+        <doc xml:whitespace="preserve">The ::new-frame signal is emitted for each timeline running
+timeline before a new frame is drawn to give animations a chance
+to update the scene.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none"/>
+        </return-value>
+        <parameters>
+          <parameter name="object" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the elapsed time between 0 and duration</doc>
+            <type name="gint"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="paused">
+        <doc xml:whitespace="preserve">The ::paused signal is emitted when clutter_timeline_pause() is invoked.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none"/>
+        </return-value>
+      </glib:signal>
+      <glib:signal name="started">
+        <doc xml:whitespace="preserve">The ::started signal is emitted when the timeline starts its run.
+This might be as soon as clutter_timeline_start() is invoked or
+after the delay set in the ClutterTimeline:delay property has
+expired.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none"/>
+        </return-value>
+      </glib:signal>
+    </class>
+    <record name="TimelineClass"
+            c:type="ClutterTimelineClass"
+            glib:is-gtype-struct-for="Timeline"
+            version="0.2">
+      <doc xml:whitespace="preserve">The #ClutterTimelineClass structure contains only private data</doc>
+      <field name="parent_class">
+        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
+      </field>
+      <field name="started">
+        <callback name="started">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="timeline" transfer-ownership="none">
+              <type name="Timeline" c:type="ClutterTimeline*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="completed">
+        <callback name="completed">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="timeline" transfer-ownership="none">
+              <type name="Timeline" c:type="ClutterTimeline*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="paused">
+        <callback name="paused">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="timeline" transfer-ownership="none">
+              <type name="Timeline" c:type="ClutterTimeline*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="new_frame">
+        <callback name="new_frame">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="timeline" transfer-ownership="none">
+              <type name="Timeline" c:type="ClutterTimeline*"/>
+            </parameter>
+            <parameter name="frame_num" transfer-ownership="none">
+              <type name="gint" c:type="gint"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="marker_reached">
+        <callback name="marker_reached">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="timeline" transfer-ownership="none">
+              <type name="Timeline" c:type="ClutterTimeline*"/>
+            </parameter>
+            <parameter name="marker_name" transfer-ownership="none">
+              <type name="utf8" c:type="gchar*"/>
+            </parameter>
+            <parameter name="frame_num" transfer-ownership="none">
+              <type name="gint" c:type="gint"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="_clutter_timeline_1" introspectable="0">
+        <callback name="_clutter_timeline_1">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_timeline_2" introspectable="0">
+        <callback name="_clutter_timeline_2">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_timeline_3" introspectable="0">
+        <callback name="_clutter_timeline_3">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_timeline_4" introspectable="0">
+        <callback name="_clutter_timeline_4">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_timeline_5" introspectable="0">
+        <callback name="_clutter_timeline_5">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+    </record>
+    <enumeration name="TimelineDirection"
+                 version="0.6"
+                 glib:type-name="ClutterTimelineDirection"
+                 glib:get-type="clutter_timeline_direction_get_type"
+                 c:type="ClutterTimelineDirection">
+      <doc xml:whitespace="preserve">The direction of a #ClutterTimeline</doc>
+      <member name="forward"
+              value="0"
+              c:identifier="CLUTTER_TIMELINE_FORWARD"
+              glib:nick="forward"/>
+      <member name="backward"
+              value="1"
+              c:identifier="CLUTTER_TIMELINE_BACKWARD"
+              glib:nick="backward"/>
+    </enumeration>
+    <record name="TimelinePrivate"
+            c:type="ClutterTimelinePrivate"
+            disguised="1">
+    </record>
+    <record name="TimeoutPool"
+            c:type="ClutterTimeoutPool"
+            disguised="1"
+            version="0.6"
+            introspectable="0">
+      <doc xml:whitespace="preserve">&lt;structname&gt;ClutterTimeoutPool&lt;/structname&gt; is an opaque structure
+whose members cannot be directly accessed.</doc>
+      <method name="add" c:identifier="clutter_timeout_pool_add" version="0.4">
+        <doc xml:whitespace="preserve">Sets a function to be called at regular intervals, and puts it inside
+the @pool. The function is repeatedly called until it returns %FALSE,
+at which point the timeout is automatically destroyed and the function
+won't be called again. If @notify is not %NULL, the @notify function
+will be called. The first call to @func will be at the end of @interval.
+Since Clutter 0.8 this will try to compensate for delays. For
+example, if @func takes half the interval time to execute then the
+function will be called again half the interval time after it
+finished. Before version 0.8 it would not fire until a full
+interval after the function completes so the delay between calls
+would be @interval * 1.5. This function does not however try to
+invoke the function multiple times to catch up missing frames if
+Use clutter_timeout_pool_remove() to stop the timeout.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the ID (greater than 0) of the timeout inside the pool.</doc>
+          <type name="guint" c:type="guint"/>
+        </return-value>
+        <parameters>
+          <parameter name="fps" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the time between calls to the function, in frames per second</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+          <parameter name="func"
+                     transfer-ownership="none"
+                     scope="notified"
+                     closure="2"
+                     destroy="3">
+            <doc xml:whitespace="preserve">function to call</doc>
+            <type name="GLib.SourceFunc" c:type="GSourceFunc"/>
+          </parameter>
+          <parameter name="data" transfer-ownership="none">
+            <doc xml:whitespace="preserve">data to pass to the function, or %NULL</doc>
+            <type name="gpointer" c:type="gpointer"/>
+          </parameter>
+          <parameter name="notify" transfer-ownership="none" scope="async">
+            <doc xml:whitespace="preserve">function to call when the timeout is removed, or %NULL</doc>
+            <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="remove"
+              c:identifier="clutter_timeout_pool_remove"
+              version="0.4">
+        <doc xml:whitespace="preserve">Removes a timeout function with @id from the timeout pool. The id
+is the same returned when adding a function to the timeout pool with
+clutter_timeout_pool_add().</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="id" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the id of the timeout to remove</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+    </record>
+    <constant name="ToDoList" value="269025055">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Tools" value="269025153">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="TopMenu" value="269025186">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="TouchpadToggle" value="269025193">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Touroku" value="65323">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Travel" value="269025154">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Tslash" value="940">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="U" value="85">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="UWB" value="269025174">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Uacute" value="218">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Ubelowdot" value="16785124">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Ubreve" value="733">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Ucircumflex" value="219">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Udiaeresis" value="220">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Udoubleacute" value="475">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Ugrave" value="217">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Uhook" value="16785126">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Uhorn" value="16777647">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Uhornacute" value="16785128">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Uhornbelowdot" value="16785136">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Uhorngrave" value="16785130">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Uhornhook" value="16785132">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Uhorntilde" value="16785134">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Ukrainian_GHE_WITH_UPTURN" value="1725">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Ukrainian_I" value="1718">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Ukrainian_IE" value="1716">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Ukrainian_YI" value="1719">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Ukrainian_ghe_with_upturn" value="1709">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Ukrainian_i" value="1702">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Ukrainian_ie" value="1700">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Ukrainian_yi" value="1703">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Ukranian_I" value="1718">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Ukranian_JE" value="1716">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Ukranian_YI" value="1719">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Ukranian_i" value="1702">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Ukranian_je" value="1700">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Ukranian_yi" value="1703">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Umacron" value="990">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Undo" value="65381">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Ungrab" value="269024800">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <enumeration name="UnitType"
+                 version="1.0"
+                 glib:type-name="ClutterUnitType"
+                 glib:get-type="clutter_unit_type_get_type"
+                 c:type="ClutterUnitType">
+      <doc xml:whitespace="preserve">The type of unit in which a value is expressed
+This enumeration might be expanded at later date</doc>
+      <member name="pixel"
+              value="0"
+              c:identifier="CLUTTER_UNIT_PIXEL"
+              glib:nick="pixel"/>
+      <member name="em"
+              value="1"
+              c:identifier="CLUTTER_UNIT_EM"
+              glib:nick="em"/>
+      <member name="mm"
+              value="2"
+              c:identifier="CLUTTER_UNIT_MM"
+              glib:nick="mm"/>
+      <member name="point"
+              value="3"
+              c:identifier="CLUTTER_UNIT_POINT"
+              glib:nick="point"/>
+      <member name="cm"
+              value="4"
+              c:identifier="CLUTTER_UNIT_CM"
+              glib:nick="cm"/>
+    </enumeration>
+    <record name="Units"
+            c:type="ClutterUnits"
+            version="1.0"
+            glib:type-name="ClutterUnits"
+            glib:get-type="clutter_units_get_type"
+            c:symbol-prefix="units">
+      <doc xml:whitespace="preserve">An opaque structure, to be used to store sizing and positioning
+values along with their unit.</doc>
+      <field name="unit_type" writable="1">
+        <type name="UnitType" c:type="ClutterUnitType"/>
+      </field>
+      <field name="value" writable="1">
+        <type name="gfloat" c:type="gfloat"/>
+      </field>
+      <field name="pixels" writable="1">
+        <type name="gfloat" c:type="gfloat"/>
+      </field>
+      <field name="pixels_set" writable="1">
+        <type name="guint" c:type="guint"/>
+      </field>
+      <field name="serial" writable="1">
+        <type name="gint32" c:type="gint32"/>
+      </field>
+      <field name="__padding_1" writable="1">
+        <type name="gint32" c:type="gint32"/>
+      </field>
+      <field name="__padding_2" writable="1">
+        <type name="gint64" c:type="gint64"/>
+      </field>
+      <method name="copy" c:identifier="clutter_units_copy" version="1.0">
+        <doc xml:whitespace="preserve">Copies @units
+#ClutterUnits structure. Use clutter_units_free() to free
+the allocated resources</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">the newly created copy of a</doc>
+          <type name="Units" c:type="ClutterUnits*"/>
+        </return-value>
+      </method>
+      <method name="free" c:identifier="clutter_units_free" version="1.0">
+        <doc xml:whitespace="preserve">Frees the resources allocated by @units
+You should only call this function on a #ClutterUnits
+created using clutter_units_copy()</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </method>
+      <method name="from_cm"
+              c:identifier="clutter_units_from_cm"
+              version="1.2">
+        <doc xml:whitespace="preserve">Stores a value in centimeters inside @units</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="cm" transfer-ownership="none">
+            <doc xml:whitespace="preserve">centimeters</doc>
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="from_em"
+              c:identifier="clutter_units_from_em"
+              version="1.0">
+        <doc xml:whitespace="preserve">Stores a value in em inside @units, using the default font
+name as returned by clutter_backend_get_font_name()</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="em" transfer-ownership="none">
+            <doc xml:whitespace="preserve">em</doc>
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="from_em_for_font"
+              c:identifier="clutter_units_from_em_for_font"
+              version="1.0">
+        <doc xml:whitespace="preserve">Stores a value in em inside @units using @font_name</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="font_name" transfer-ownership="none" allow-none="1">
+            <doc xml:whitespace="preserve">the font name and size</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="em" transfer-ownership="none">
+            <doc xml:whitespace="preserve">em</doc>
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="from_mm"
+              c:identifier="clutter_units_from_mm"
+              version="1.0">
+        <doc xml:whitespace="preserve">Stores a value in millimiters inside @units</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="mm" transfer-ownership="none">
+            <doc xml:whitespace="preserve">millimeters</doc>
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="from_pixels"
+              c:identifier="clutter_units_from_pixels"
+              version="1.0">
+        <doc xml:whitespace="preserve">Stores a value in pixels inside @units</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="px" transfer-ownership="none">
+            <doc xml:whitespace="preserve">pixels</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="from_pt"
+              c:identifier="clutter_units_from_pt"
+              version="1.0">
+        <doc xml:whitespace="preserve">Stores a value in typographic points inside @units</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="pt" transfer-ownership="none">
+            <doc xml:whitespace="preserve">typographic points</doc>
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="from_string"
+              c:identifier="clutter_units_from_string"
+              version="1.0">
+        <doc xml:whitespace="preserve">Parses a value and updates @units with it
+A #ClutterUnits expressed in string should match:
+|[
+| digit* sep digit+
+]|
+For instance, these are valid strings:
+|[
+10 px
+5.1 em
+24 pt
+12.6 mm
+.3 cm
+]|
+While these are not:
+|[
+42 cats
+omg!1!ponies
+]|
+&lt;note&gt;&lt;para&gt;If no unit is specified, pixels are assumed.&lt;/para&gt;&lt;/note&gt;
+and %FALSE otherwise</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if the string was successfully parsed,</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="str" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the string to convert</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_unit_type"
+              c:identifier="clutter_units_get_unit_type"
+              version="1.0">
+        <doc xml:whitespace="preserve">Retrieves the unit type of the value stored inside @units</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">a unit type</doc>
+          <type name="UnitType" c:type="ClutterUnitType"/>
+        </return-value>
+      </method>
+      <method name="get_unit_value"
+              c:identifier="clutter_units_get_unit_value"
+              version="1.0">
+        <doc xml:whitespace="preserve">Retrieves the value stored inside @units</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the value stored inside a #ClutterUnits</doc>
+          <type name="gfloat" c:type="gfloat"/>
+        </return-value>
+      </method>
+      <method name="to_pixels"
+              c:identifier="clutter_units_to_pixels"
+              version="1.0">
+        <doc xml:whitespace="preserve">Converts a value in #ClutterUnits to pixels</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the value in pixels</doc>
+          <type name="gfloat" c:type="gfloat"/>
+        </return-value>
+      </method>
+      <method name="to_string"
+              c:identifier="clutter_units_to_string"
+              version="1.0">
+        <doc xml:whitespace="preserve">Converts @units into a string
+See clutter_units_from_string() for the units syntax and for
+examples of output
+&lt;note&gt;Fractional values are truncated to the second decimal
+position for em, mm and cm, and to the first decimal position for
+typographic points. Pixels are integers.&lt;/note&gt;
+#ClutterUnits value. Use g_free() to free the string</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">a newly allocated string containing the encoded</doc>
+          <type name="utf8" c:type="gchar*"/>
+        </return-value>
+      </method>
+    </record>
+    <constant name="Uogonek" value="985">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Up" value="65362">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Uring" value="473">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="User1KB" value="269025157">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="User2KB" value="269025158">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="UserPB" value="269025156">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Utilde" value="989">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="V" value="86">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="VERSION" value="1.400000">
+      <type name="gdouble" c:type="gdouble"/>
+    </constant>
+    <constant name="VERSION_HEX" value="0">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="VERSION_S" value="1.4.0">
+      <type name="utf8" c:type="gchar*"/>
+    </constant>
+    <constant name="VendorHome" value="269025076">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <record name="Vertex"
+            c:type="ClutterVertex"
+            version="0.4"
+            glib:type-name="ClutterVertex"
+            glib:get-type="clutter_vertex_get_type"
+            c:symbol-prefix="vertex">
+      <doc xml:whitespace="preserve">Vertex of an actor in 3D space, expressed in pixels</doc>
+      <field name="x" writable="1">
+        <type name="gfloat" c:type="gfloat"/>
+      </field>
+      <field name="y" writable="1">
+        <type name="gfloat" c:type="gfloat"/>
+      </field>
+      <field name="z" writable="1">
+        <type name="gfloat" c:type="gfloat"/>
+      </field>
+      <constructor name="new" c:identifier="clutter_vertex_new" version="1.0">
+        <doc xml:whitespace="preserve">Creates a new #ClutterVertex for the point in 3D space
+identified by the 3 coordinates @x, @y, @z
+clutter_vertex_free() to free the resources</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">the newly allocate #ClutterVertex. Use</doc>
+          <type name="Vertex" c:type="ClutterVertex*"/>
+        </return-value>
+        <parameters>
+          <parameter name="x" transfer-ownership="none">
+            <doc xml:whitespace="preserve">X coordinate</doc>
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+          <parameter name="y" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Y coordinate</doc>
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+          <parameter name="z" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Z coordinate</doc>
+            <type name="gfloat" c:type="gfloat"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <method name="copy" c:identifier="clutter_vertex_copy" version="1.0">
+        <doc xml:whitespace="preserve">Copies @vertex
+clutter_vertex_free() to free the allocated resources</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">a newly allocated copy of #ClutterVertex. Use</doc>
+          <type name="Vertex" c:type="ClutterVertex*"/>
+        </return-value>
+      </method>
+      <method name="equal" c:identifier="clutter_vertex_equal" version="1.0">
+        <doc xml:whitespace="preserve">Compares @vertex_a and @vertex_b for equality</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if the passed #ClutterVertex are equal</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="vertex_b" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #ClutterVertex</doc>
+            <type name="Vertex" c:type="ClutterVertex*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="free" c:identifier="clutter_vertex_free" version="1.0">
+        <doc xml:whitespace="preserve">Frees a #ClutterVertex allocated using clutter_vertex_copy()</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </method>
+    </record>
+    <constant name="Video" value="269025159">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="View" value="269025185">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="VoidSymbol" value="16777215">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="W" value="87">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="WLAN" value="269025173">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="WWW" value="269025070">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Wacute" value="16785026">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="WakeUp" value="269025067">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Wcircumflex" value="16777588">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Wdiaeresis" value="16785028">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="WebCam" value="269025167">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Wgrave" value="16785024">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="WheelButton" value="269025160">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="WindowClear" value="269025109">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="WonSign" value="16785577">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Word" value="269025161">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="X" value="88">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Xabovedot" value="16785034">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Xfer" value="269025162">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Y" value="89">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Yacute" value="221">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Ybelowdot" value="16785140">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Ycircumflex" value="16777590">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Ydiaeresis" value="5054">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Yellow" value="269025189">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Ygrave" value="16785138">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Yhook" value="16785142">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Ytilde" value="16785144">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Z" value="90">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Zabovedot" value="431">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Zacute" value="428">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Zcaron" value="430">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Zen_Koho" value="65341">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Zenkaku" value="65320">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Zenkaku_Hankaku" value="65322">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ZoomIn" value="269025163">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ZoomOut" value="269025164">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Zstroke" value="16777653">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="a" value="97">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="aacute" value="225">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="abelowdot" value="16785057">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="abovedot" value="511">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="abreve" value="483">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="abreveacute" value="16785071">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="abrevebelowdot" value="16785079">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="abrevegrave" value="16785073">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="abrevehook" value="16785075">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="abrevetilde" value="16785077">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="acircumflex" value="226">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="acircumflexacute" value="16785061">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="acircumflexbelowdot" value="16785069">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="acircumflexgrave" value="16785063">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="acircumflexhook" value="16785065">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="acircumflextilde" value="16785067">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="acute" value="180">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="adiaeresis" value="228">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ae" value="230">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="agrave" value="224">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ahook" value="16785059">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="amacron" value="992">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ampersand" value="38">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="aogonek" value="433">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="apostrophe" value="39">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="approxeq" value="16785992">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="approximate" value="2248">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="aring" value="229">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="asciicircum" value="94">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="asciitilde" value="126">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="asterisk" value="42">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="at" value="64">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="atilde" value="227">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="b" value="98">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="babovedot" value="16784899">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="backslash" value="92">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ballotcross" value="2804">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="bar" value="124">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <function name="base_init" c:identifier="clutter_base_init">
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+    </function>
+    <constant name="because" value="16785973">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="blank" value="2527">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="botintegral" value="2213">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="botleftparens" value="2220">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="botleftsqbracket" value="2216">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="botleftsummation" value="2226">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="botrightparens" value="2222">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="botrightsqbracket" value="2218">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="botrightsummation" value="2230">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="bott" value="2550">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="botvertsummationconnector" value="2228">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braceleft" value="123">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braceright" value="125">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="bracketleft" value="91">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="bracketright" value="93">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_blank" value="16787456">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dot_1" value="65521">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dot_10" value="65530">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dot_2" value="65522">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dot_3" value="65523">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dot_4" value="65524">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dot_5" value="65525">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dot_6" value="65526">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dot_7" value="65527">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dot_8" value="65528">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dot_9" value="65529">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_1" value="16787457">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_12" value="16787459">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_123" value="16787463">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_1234" value="16787471">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_12345" value="16787487">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_123456" value="16787519">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_1234567" value="16787583">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_12345678" value="16787711">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_1234568" value="16787647">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_123457" value="16787551">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_1234578" value="16787679">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_123458" value="16787615">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_12346" value="16787503">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_123467" value="16787567">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_1234678" value="16787695">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_123468" value="16787631">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_12347" value="16787535">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_123478" value="16787663">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_12348" value="16787599">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_1235" value="16787479">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_12356" value="16787511">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_123567" value="16787575">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_1235678" value="16787703">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_123568" value="16787639">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_12357" value="16787543">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_123578" value="16787671">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_12358" value="16787607">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_1236" value="16787495">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_12367" value="16787559">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_123678" value="16787687">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_12368" value="16787623">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_1237" value="16787527">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_12378" value="16787655">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_1238" value="16787591">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_124" value="16787467">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_1245" value="16787483">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_12456" value="16787515">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_124567" value="16787579">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_1245678" value="16787707">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_124568" value="16787643">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_12457" value="16787547">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_124578" value="16787675">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_12458" value="16787611">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_1246" value="16787499">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_12467" value="16787563">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_124678" value="16787691">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_12468" value="16787627">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_1247" value="16787531">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_12478" value="16787659">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_1248" value="16787595">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_125" value="16787475">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_1256" value="16787507">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_12567" value="16787571">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_125678" value="16787699">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_12568" value="16787635">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_1257" value="16787539">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_12578" value="16787667">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_1258" value="16787603">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_126" value="16787491">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_1267" value="16787555">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_12678" value="16787683">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_1268" value="16787619">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_127" value="16787523">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_1278" value="16787651">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_128" value="16787587">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_13" value="16787461">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_134" value="16787469">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_1345" value="16787485">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_13456" value="16787517">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_134567" value="16787581">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_1345678" value="16787709">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_134568" value="16787645">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_13457" value="16787549">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_134578" value="16787677">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_13458" value="16787613">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_1346" value="16787501">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_13467" value="16787565">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_134678" value="16787693">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_13468" value="16787629">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_1347" value="16787533">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_13478" value="16787661">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_1348" value="16787597">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_135" value="16787477">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_1356" value="16787509">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_13567" value="16787573">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_135678" value="16787701">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_13568" value="16787637">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_1357" value="16787541">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_13578" value="16787669">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_1358" value="16787605">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_136" value="16787493">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_1367" value="16787557">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_13678" value="16787685">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_1368" value="16787621">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_137" value="16787525">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_1378" value="16787653">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_138" value="16787589">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_14" value="16787465">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_145" value="16787481">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_1456" value="16787513">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_14567" value="16787577">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_145678" value="16787705">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_14568" value="16787641">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_1457" value="16787545">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_14578" value="16787673">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_1458" value="16787609">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_146" value="16787497">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_1467" value="16787561">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_14678" value="16787689">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_1468" value="16787625">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_147" value="16787529">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_1478" value="16787657">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_148" value="16787593">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_15" value="16787473">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_156" value="16787505">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_1567" value="16787569">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_15678" value="16787697">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_1568" value="16787633">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_157" value="16787537">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_1578" value="16787665">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_158" value="16787601">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_16" value="16787489">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_167" value="16787553">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_1678" value="16787681">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_168" value="16787617">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_17" value="16787521">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_178" value="16787649">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_18" value="16787585">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_2" value="16787458">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_23" value="16787462">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_234" value="16787470">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_2345" value="16787486">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_23456" value="16787518">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_234567" value="16787582">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_2345678" value="16787710">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_234568" value="16787646">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_23457" value="16787550">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_234578" value="16787678">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_23458" value="16787614">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_2346" value="16787502">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_23467" value="16787566">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_234678" value="16787694">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_23468" value="16787630">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_2347" value="16787534">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_23478" value="16787662">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_2348" value="16787598">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_235" value="16787478">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_2356" value="16787510">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_23567" value="16787574">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_235678" value="16787702">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_23568" value="16787638">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_2357" value="16787542">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_23578" value="16787670">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_2358" value="16787606">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_236" value="16787494">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_2367" value="16787558">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_23678" value="16787686">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_2368" value="16787622">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_237" value="16787526">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_2378" value="16787654">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_238" value="16787590">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_24" value="16787466">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_245" value="16787482">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_2456" value="16787514">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_24567" value="16787578">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_245678" value="16787706">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_24568" value="16787642">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_2457" value="16787546">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_24578" value="16787674">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_2458" value="16787610">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_246" value="16787498">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_2467" value="16787562">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_24678" value="16787690">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_2468" value="16787626">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_247" value="16787530">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_2478" value="16787658">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_248" value="16787594">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_25" value="16787474">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_256" value="16787506">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_2567" value="16787570">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_25678" value="16787698">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_2568" value="16787634">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_257" value="16787538">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_2578" value="16787666">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_258" value="16787602">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_26" value="16787490">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_267" value="16787554">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_2678" value="16787682">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_268" value="16787618">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_27" value="16787522">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_278" value="16787650">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_28" value="16787586">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_3" value="16787460">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_34" value="16787468">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_345" value="16787484">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_3456" value="16787516">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_34567" value="16787580">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_345678" value="16787708">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_34568" value="16787644">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_3457" value="16787548">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_34578" value="16787676">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_3458" value="16787612">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_346" value="16787500">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_3467" value="16787564">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_34678" value="16787692">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_3468" value="16787628">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_347" value="16787532">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_3478" value="16787660">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_348" value="16787596">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_35" value="16787476">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_356" value="16787508">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_3567" value="16787572">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_35678" value="16787700">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_3568" value="16787636">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_357" value="16787540">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_3578" value="16787668">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_358" value="16787604">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_36" value="16787492">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_367" value="16787556">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_3678" value="16787684">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_368" value="16787620">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_37" value="16787524">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_378" value="16787652">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_38" value="16787588">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_4" value="16787464">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_45" value="16787480">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_456" value="16787512">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_4567" value="16787576">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_45678" value="16787704">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_4568" value="16787640">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_457" value="16787544">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_4578" value="16787672">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_458" value="16787608">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_46" value="16787496">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_467" value="16787560">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_4678" value="16787688">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_468" value="16787624">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_47" value="16787528">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_478" value="16787656">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_48" value="16787592">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_5" value="16787472">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_56" value="16787504">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_567" value="16787568">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_5678" value="16787696">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_568" value="16787632">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_57" value="16787536">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_578" value="16787664">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_58" value="16787600">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_6" value="16787488">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_67" value="16787552">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_678" value="16787680">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_68" value="16787616">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_7" value="16787520">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_78" value="16787648">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_8" value="16787584">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="breve" value="418">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="brokenbar" value="166">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="c" value="99">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="cabovedot" value="741">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="cacute" value="486">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <function name="cairo_set_source_color"
+              c:identifier="clutter_cairo_set_source_color"
+              version="1.0">
+      <doc xml:whitespace="preserve">Utility function for setting the source color of @cr using
+a #ClutterColor.</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="cr" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a Cairo context</doc>
+          <type name="cairo.Context" c:type="cairo_t*"/>
+        </parameter>
+        <parameter name="color" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #ClutterColor</doc>
+          <type name="Color" c:type="ClutterColor*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <constant name="careof" value="2744">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="caret" value="2812">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="caron" value="439">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ccaron" value="488">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ccedilla" value="231">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ccircumflex" value="742">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="cedilla" value="184">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="cent" value="162">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <function name="check_version"
+              c:identifier="clutter_check_version"
+              version="1.2">
+      <doc xml:whitespace="preserve">Run-time version check, to check the version the Clutter library
+that an application is currently linked against
+This is the run-time equivalent of the compile-time %CLUTTER_CHECK_VERSION
+pre-processor macro
+greater than (@major, @minor, @micro), and %FALSE otherwise</doc>
+      <return-value transfer-ownership="none">
+        <doc xml:whitespace="preserve">%TRUE if the version of the Clutter library is</doc>
+        <type name="gboolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="major" transfer-ownership="none">
+          <doc xml:whitespace="preserve">major version, like 1 in 1.2.3</doc>
+          <type name="guint" c:type="guint"/>
+        </parameter>
+        <parameter name="minor" transfer-ownership="none">
+          <doc xml:whitespace="preserve">minor version, like 2 in 1.2.3</doc>
+          <type name="guint" c:type="guint"/>
+        </parameter>
+        <parameter name="micro" transfer-ownership="none">
+          <doc xml:whitespace="preserve">micro version, like 3 in 1.2.3</doc>
+          <type name="guint" c:type="guint"/>
+        </parameter>
+      </parameters>
+    </function>
+    <constant name="checkerboard" value="2529">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="checkmark" value="2803">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="circle" value="3023">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <function name="clear_glyph_cache"
+              c:identifier="clutter_clear_glyph_cache"
+              version="0.8">
+      <doc xml:whitespace="preserve">Clears the internal cache of glyphs used by the Pango
+renderer. This will free up some memory and GL texture
+resources. The cache will be automatically refilled as more text is
+drawn.</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+    </function>
+    <constant name="club" value="2796">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="colon" value="58">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <function name="color_equal"
+              c:identifier="clutter_color_equal"
+              version="0.2">
+      <doc xml:whitespace="preserve">Compares two #ClutterColor&lt;!-- --&gt;s and checks if they are the same.
+This function can be passed to g_hash_table_new() as the @key_equal_func
+parameter, when using #ClutterColor&lt;!-- --&gt;s as keys in a #GHashTable.</doc>
+      <return-value transfer-ownership="none">
+        <doc xml:whitespace="preserve">%TRUE if the two colors are the same.</doc>
+        <type name="gboolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="v1" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #ClutterColor</doc>
+          <type name="gpointer" c:type="gconstpointer"/>
+        </parameter>
+        <parameter name="v2" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #ClutterColor</doc>
+          <type name="gpointer" c:type="gconstpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="color_hash"
+              c:identifier="clutter_color_hash"
+              version="1.0">
+      <doc xml:whitespace="preserve">Converts a #ClutterColor to a hash value.
+This function can be passed to g_hash_table_new() as the @hash_func
+parameter, when using #ClutterColor&lt;!-- --&gt;s as keys in a #GHashTable.</doc>
+      <return-value transfer-ownership="none">
+        <doc xml:whitespace="preserve">a hash value corresponding to the color</doc>
+        <type name="guint" c:type="guint"/>
+      </return-value>
+      <parameters>
+        <parameter name="v" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #ClutterColor</doc>
+          <type name="gpointer" c:type="gconstpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <constant name="comma" value="44">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <function name="container_class_find_child_property"
+              c:identifier="clutter_container_class_find_child_property"
+              version="0.8">
+      <doc xml:whitespace="preserve">Looks up the #GParamSpec for a child property of @klass.
+if no such property exist.</doc>
+      <return-value transfer-ownership="none">
+        <doc xml:whitespace="preserve">The #GParamSpec for the property or %NULL</doc>
+        <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
+      </return-value>
+      <parameters>
+        <parameter name="klass" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #GObjectClass implementing the #ClutterContainer interface.</doc>
+          <type name="GObject.ObjectClass" c:type="GObjectClass*"/>
+        </parameter>
+        <parameter name="property_name" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a property name.</doc>
+          <type name="utf8" c:type="gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="container_class_list_child_properties"
+              c:identifier="clutter_container_class_list_child_properties"
+              version="0.8">
+      <doc xml:whitespace="preserve">Returns an array of #GParamSpec for all child properties.
+of #GParamSpec&lt;!-- --&gt;s which should be freed after use.</doc>
+      <return-value transfer-ownership="full">
+        <doc xml:whitespace="preserve">an array</doc>
+        <array length="1" c:type="GParamSpec**">
+          <type name="GObject.ParamSpec"/>
+        </array>
+      </return-value>
+      <parameters>
+        <parameter name="klass" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #GObjectClass implementing the #ClutterContainer interface.</doc>
+          <type name="GObject.ObjectClass" c:type="GObjectClass*"/>
+        </parameter>
+        <parameter name="n_properties"
+                   direction="out"
+                   caller-allocates="0"
+                   transfer-ownership="full">
+          <doc xml:whitespace="preserve">return location for length of returned array.</doc>
+          <type name="guint" c:type="guint*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <constant name="containsas" value="16785931">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="copyright" value="169">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="cr" value="2532">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="crossinglines" value="2542">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="cuberoot" value="16785947">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="currency" value="164">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="cursor" value="2815">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="d" value="100">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="dabovedot" value="16784907">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="dagger" value="2801">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="dcaron" value="495">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="dead_A" value="65153">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="dead_E" value="65155">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="dead_I" value="65157">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="dead_O" value="65159">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="dead_U" value="65161">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="dead_a" value="65152">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="dead_abovecomma" value="65124">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="dead_abovedot" value="65110">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="dead_abovereversedcomma" value="65125">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="dead_abovering" value="65112">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="dead_acute" value="65105">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="dead_belowbreve" value="65131">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="dead_belowcircumflex" value="65129">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="dead_belowcomma" value="65134">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="dead_belowdiaeresis" value="65132">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="dead_belowdot" value="65120">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="dead_belowmacron" value="65128">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="dead_belowring" value="65127">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="dead_belowtilde" value="65130">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="dead_breve" value="65109">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="dead_capital_schwa" value="65163">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="dead_caron" value="65114">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="dead_cedilla" value="65115">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="dead_circumflex" value="65106">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="dead_currency" value="65135">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="dead_dasia" value="65125">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="dead_diaeresis" value="65111">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="dead_doubleacute" value="65113">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="dead_doublegrave" value="65126">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="dead_e" value="65154">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="dead_grave" value="65104">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="dead_hook" value="65121">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="dead_horn" value="65122">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="dead_i" value="65156">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="dead_invertedbreve" value="65133">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="dead_iota" value="65117">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="dead_macron" value="65108">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="dead_o" value="65158">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="dead_ogonek" value="65116">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="dead_perispomeni" value="65107">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="dead_psili" value="65124">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="dead_semivoiced_sound" value="65119">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="dead_small_schwa" value="65162">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="dead_stroke" value="65123">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="dead_tilde" value="65107">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="dead_u" value="65160">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="dead_voiced_sound" value="65118">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="decimalpoint" value="2749">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="degree" value="176">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="diaeresis" value="168">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="diamond" value="2797">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="digitspace" value="2725">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="dintegral" value="16785964">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="division" value="247">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <function name="do_event" c:identifier="clutter_do_event">
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="event" transfer-ownership="none">
+          <type name="Event" c:type="ClutterEvent*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <constant name="dollar" value="36">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="doubbaselinedot" value="2735">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="doubleacute" value="445">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="doubledagger" value="2802">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="doublelowquotemark" value="2814">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="downarrow" value="2302">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="downcaret" value="2984">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="downshoe" value="3030">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="downstile" value="3012">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="downtack" value="3010">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="dstroke" value="496">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="e" value="101">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="eabovedot" value="1004">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="eacute" value="233">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ebelowdot" value="16785081">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ecaron" value="492">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ecircumflex" value="234">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ecircumflexacute" value="16785087">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ecircumflexbelowdot" value="16785095">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ecircumflexgrave" value="16785089">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ecircumflexhook" value="16785091">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ecircumflextilde" value="16785093">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ediaeresis" value="235">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="egrave" value="232">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ehook" value="16785083">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="eightsubscript" value="16785544">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="eightsuperior" value="16785528">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="elementof" value="16785928">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ellipsis" value="2734">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="em3space" value="2723">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="em4space" value="2724">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="emacron" value="954">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="emdash" value="2729">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="emfilledcircle" value="2782">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="emfilledrect" value="2783">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="emopencircle" value="2766">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="emopenrectangle" value="2767">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="emptyset" value="16785925">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="emspace" value="2721">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="endash" value="2730">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="enfilledcircbullet" value="2790">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="enfilledsqbullet" value="2791">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="eng" value="959">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="enopencircbullet" value="2784">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="enopensquarebullet" value="2785">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="enspace" value="2722">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="eogonek" value="490">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="equal" value="61">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="eth" value="240">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="etilde" value="16785085">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <function name="event_get" c:identifier="clutter_event_get" version="0.4">
+      <doc xml:whitespace="preserve">Pops an event off the event queue. Applications should not need to call 
+this.</doc>
+      <return-value transfer-ownership="full">
+        <doc xml:whitespace="preserve">A #ClutterEvent or NULL if queue empty</doc>
+        <type name="Event" c:type="ClutterEvent*"/>
+      </return-value>
+    </function>
+    <function name="event_peek"
+              c:identifier="clutter_event_peek"
+              version="0.4">
+      <doc xml:whitespace="preserve">Returns a pointer to the first event from the event queue but 
+does not remove it.</doc>
+      <return-value transfer-ownership="none">
+        <doc xml:whitespace="preserve">A #ClutterEvent or NULL if queue empty.</doc>
+        <type name="Event" c:type="ClutterEvent*"/>
+      </return-value>
+    </function>
+    <function name="events_pending"
+              c:identifier="clutter_events_pending"
+              version="0.4">
+      <doc xml:whitespace="preserve">Checks if events are pending in the event queue.</doc>
+      <return-value transfer-ownership="none">
+        <doc xml:whitespace="preserve">TRUE if there are pending events, FALSE otherwise.</doc>
+        <type name="gboolean" c:type="gboolean"/>
+      </return-value>
+    </function>
+    <constant name="exclam" value="33">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="exclamdown" value="161">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="f" value="102">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="fabovedot" value="16784927">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <function name="feature_available"
+              c:identifier="clutter_feature_available"
+              version="0.1.1">
+      <doc xml:whitespace="preserve">Checks whether @feature is available.  @feature can be a logical
+OR of #ClutterFeatureFlags.</doc>
+      <return-value transfer-ownership="none">
+        <doc xml:whitespace="preserve">%TRUE if a feature is available</doc>
+        <type name="gboolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="feature" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #ClutterFeatureFlags</doc>
+          <type name="FeatureFlags" c:type="ClutterFeatureFlags"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="feature_get_all"
+              c:identifier="clutter_feature_get_all"
+              version="0.1.1">
+      <doc xml:whitespace="preserve">Returns all the supported features.</doc>
+      <return-value transfer-ownership="none">
+        <doc xml:whitespace="preserve">a logical OR of all the supported features.</doc>
+        <type name="FeatureFlags" c:type="ClutterFeatureFlags"/>
+      </return-value>
+    </function>
+    <constant name="femalesymbol" value="2808">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ff" value="2531">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="figdash" value="2747">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="filledlefttribullet" value="2780">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="filledrectbullet" value="2779">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="filledrighttribullet" value="2781">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="filledtribulletdown" value="2793">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="filledtribulletup" value="2792">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="fiveeighths" value="2757">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="fivesixths" value="2743">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="fivesubscript" value="16785541">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="fivesuperior" value="16785525">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="fourfifths" value="2741">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="foursubscript" value="16785540">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="foursuperior" value="16785524">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="fourthroot" value="16785948">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <function name="frame_source_add"
+              c:identifier="clutter_frame_source_add"
+              shadowed-by="frame_source_add_full"
+              version="0.8"
+              introspectable="0">
+      <doc xml:whitespace="preserve">Simple wrapper around clutter_frame_source_add_full().</doc>
+      <return-value transfer-ownership="none">
+        <doc xml:whitespace="preserve">the ID (greater than 0) of the event source.</doc>
+        <type name="guint" c:type="guint"/>
+      </return-value>
+      <parameters>
+        <parameter name="fps" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the number of times per second to call the function</doc>
+          <type name="guint" c:type="guint"/>
+        </parameter>
+        <parameter name="func" transfer-ownership="none" closure="2">
+          <doc xml:whitespace="preserve">function to call</doc>
+          <type name="GLib.SourceFunc" c:type="GSourceFunc"/>
+        </parameter>
+        <parameter name="data" transfer-ownership="none">
+          <doc xml:whitespace="preserve">data to pass to the function</doc>
+          <type name="gpointer" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="frame_source_add_full"
+              c:identifier="clutter_frame_source_add_full"
+              shadows="frame_source_add"
+              version="0.8">
+      <doc xml:whitespace="preserve">Sets a function to be called at regular intervals with the given
+priority.  The function is called repeatedly until it returns
+%FALSE, at which point the timeout is automatically destroyed and
+the function will not be called again.  The @notify function is
+called when the timeout is destroyed.  The first call to the
+function will be at the end of the first @interval.
+This function is similar to g_timeout_add_full() except that it
+will try to compensate for delays. For example, if @func takes half
+the interval time to execute then the function will be called again
+half the interval time after it finished. In contrast
+g_timeout_add_full() would not fire until a full interval after the
+function completes so the delay between calls would be 1.0 / @fps *
+1.5. This function does not however try to invoke the function
+multiple times to catch up missing frames if @func takes more than</doc>
+      <return-value transfer-ownership="none">
+        <doc xml:whitespace="preserve">the ID (greater than 0) of the event source.</doc>
+        <type name="guint" c:type="guint"/>
+      </return-value>
+      <parameters>
+        <parameter name="priority" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the priority of the frame source. Typically this will be in the range between %G_PRIORITY_DEFAULT and %G_PRIORITY_HIGH.</doc>
+          <type name="gint" c:type="gint"/>
+        </parameter>
+        <parameter name="fps" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the number of times per second to call the function</doc>
+          <type name="guint" c:type="guint"/>
+        </parameter>
+        <parameter name="func"
+                   transfer-ownership="none"
+                   scope="notified"
+                   closure="3"
+                   destroy="4">
+          <doc xml:whitespace="preserve">function to call</doc>
+          <type name="GLib.SourceFunc" c:type="GSourceFunc"/>
+        </parameter>
+        <parameter name="data" transfer-ownership="none">
+          <doc xml:whitespace="preserve">data to pass to the function</doc>
+          <type name="gpointer" c:type="gpointer"/>
+        </parameter>
+        <parameter name="notify" transfer-ownership="none" scope="async">
+          <doc xml:whitespace="preserve">function to call when the timeout source is removed</doc>
+          <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
+        </parameter>
+      </parameters>
+    </function>
+    <constant name="function" value="2294">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="g" value="103">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="gabovedot" value="757">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="gbreve" value="699">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="gcaron" value="16777703">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="gcedilla" value="955">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="gcircumflex" value="760">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <function name="get_accessibility_enabled"
+              c:identifier="clutter_get_accessibility_enabled"
+              version="1.4">
+      <doc xml:whitespace="preserve">Returns whether Clutter has accessibility support enabled.  As
+least, a value of TRUE means that there are a proper AtkUtil
+implementation available</doc>
+      <return-value transfer-ownership="none">
+        <doc xml:whitespace="preserve">%TRUE if Clutter has accessibility support enabled</doc>
+        <type name="gboolean" c:type="gboolean"/>
+      </return-value>
+    </function>
+    <function name="get_actor_by_gid"
+              c:identifier="clutter_get_actor_by_gid"
+              version="0.6">
+      <doc xml:whitespace="preserve">Retrieves the #ClutterActor with @id.
+The returned actor does not have its reference count increased.</doc>
+      <return-value transfer-ownership="none">
+        <doc xml:whitespace="preserve">the actor with the passed id or %NULL.</doc>
+        <type name="Actor" c:type="ClutterActor*"/>
+      </return-value>
+      <parameters>
+        <parameter name="id" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #ClutterActor ID.</doc>
+          <type name="guint32" c:type="guint32"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="get_current_event"
+              c:identifier="clutter_get_current_event"
+              version="1.2">
+      <doc xml:whitespace="preserve">If an event is currently being processed, return that event.
+This function is intended to be used to access event state
+that might not be exposed by higher-level widgets.  For
+example, to get the key modifier state from a Button 'clicked'
+event.</doc>
+      <return-value transfer-ownership="none">
+        <doc xml:whitespace="preserve">The current ClutterEvent, or %NULL if none</doc>
+        <type name="Event" c:type="ClutterEvent*"/>
+      </return-value>
+    </function>
+    <function name="get_current_event_time"
+              c:identifier="clutter_get_current_event_time"
+              version="1.0">
+      <doc xml:whitespace="preserve">Retrieves the timestamp of the last event, if there is an
+event or if the event has a timestamp.</doc>
+      <return-value transfer-ownership="none">
+        <doc xml:whitespace="preserve">the event timestamp, or %CLUTTER_CURRENT_TIME</doc>
+        <type name="guint32" c:type="guint32"/>
+      </return-value>
+    </function>
+    <function name="get_debug_enabled"
+              c:identifier="clutter_get_debug_enabled">
+      <doc xml:whitespace="preserve">Check if clutter has debugging turned on.</doc>
+      <return-value transfer-ownership="none">
+        <doc xml:whitespace="preserve">TRUE if debugging is turned on, FALSE otherwise.</doc>
+        <type name="gboolean" c:type="gboolean"/>
+      </return-value>
+    </function>
+    <function name="get_default_backend"
+              c:identifier="clutter_get_default_backend"
+              version="0.4">
+      <doc xml:whitespace="preserve">Retrieves the default #ClutterBackend used by Clutter. The
+#ClutterBackend holds backend-specific configuration options.
+not ref or unref the returned object. Applications should rarely
+need to use this.</doc>
+      <return-value transfer-ownership="none">
+        <doc xml:whitespace="preserve">the default backend. You should</doc>
+        <type name="Backend" c:type="ClutterBackend*"/>
+      </return-value>
+    </function>
+    <function name="get_default_frame_rate"
+              c:identifier="clutter_get_default_frame_rate"
+              version="0.6">
+      <doc xml:whitespace="preserve">Retrieves the default frame rate. See clutter_set_default_frame_rate().</doc>
+      <return-value transfer-ownership="none">
+        <doc xml:whitespace="preserve">the default frame rate</doc>
+        <type name="guint" c:type="guint"/>
+      </return-value>
+    </function>
+    <function name="get_default_text_direction"
+              c:identifier="clutter_get_default_text_direction"
+              version="1.2">
+      <doc xml:whitespace="preserve">Retrieves the default direction for the text. The text direction is
+determined by the locale and/or by the %CLUTTER_TEXT_DIRECTION environment
+variable
+The default text direction can be overridden on a per-actor basis by using
+clutter_actor_set_text_direction()</doc>
+      <return-value transfer-ownership="none">
+        <doc xml:whitespace="preserve">the default text direction</doc>
+        <type name="TextDirection" c:type="ClutterTextDirection"/>
+      </return-value>
+    </function>
+    <function name="get_font_flags"
+              c:identifier="clutter_get_font_flags"
+              version="1.0">
+      <doc xml:whitespace="preserve">Gets the current font flags for rendering text. See
+clutter_set_font_flags().</doc>
+      <return-value transfer-ownership="none">
+        <doc xml:whitespace="preserve">The font flags</doc>
+        <type name="FontFlags" c:type="ClutterFontFlags"/>
+      </return-value>
+    </function>
+    <function name="get_font_map"
+              c:identifier="clutter_get_font_map"
+              version="1.0">
+      <doc xml:whitespace="preserve">Retrieves the #PangoFontMap instance used by Clutter.
+You can use the global font map object with the COGL
+Pango API.
+value is owned by Clutter and it should never be unreferenced.</doc>
+      <return-value transfer-ownership="none">
+        <doc xml:whitespace="preserve">the #PangoFontMap instance. The returned</doc>
+        <type name="Pango.FontMap" c:type="PangoFontMap*"/>
+      </return-value>
+    </function>
+    <function name="get_input_device_for_id"
+              c:identifier="clutter_get_input_device_for_id"
+              version="0.8">
+      <doc xml:whitespace="preserve">Retrieves the #ClutterInputDevice from its @id. This is a convenience
+wrapper for clutter_device_manager_get_device() and it is functionally
+equivalent to:
+|[
+ClutterDeviceManager *manager;
+ClutterInputDevice *device;
+manager = clutter_device_manager_get_default ();
+device = clutter_device_manager_get_device (manager, id);
+]|</doc>
+      <return-value transfer-ownership="none">
+        <doc xml:whitespace="preserve">a #ClutterInputDevice, or %NULL</doc>
+        <type name="InputDevice" c:type="ClutterInputDevice*"/>
+      </return-value>
+      <parameters>
+        <parameter name="id" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the unique id for a device</doc>
+          <type name="gint" c:type="gint"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="get_keyboard_grab"
+              c:identifier="clutter_get_keyboard_grab"
+              version="0.6">
+      <doc xml:whitespace="preserve">Queries the current keyboard grab of clutter.</doc>
+      <return-value transfer-ownership="none">
+        <doc xml:whitespace="preserve">the actor currently holding the keyboard grab, or NULL if there is no grab.</doc>
+        <type name="Actor" c:type="ClutterActor*"/>
+      </return-value>
+    </function>
+    <function name="get_motion_events_enabled"
+              c:identifier="clutter_get_motion_events_enabled"
+              version="0.6">
+      <doc xml:whitespace="preserve">Gets whether the per-actor motion events are enabled.</doc>
+      <return-value transfer-ownership="none">
+        <doc xml:whitespace="preserve">%TRUE if the motion events are enabled</doc>
+        <type name="gboolean" c:type="gboolean"/>
+      </return-value>
+    </function>
+    <function name="get_option_group"
+              c:identifier="clutter_get_option_group"
+              version="0.2"
+              introspectable="0">
+      <doc xml:whitespace="preserve">Returns a #GOptionGroup for the command line arguments recognized
+by Clutter. You should add this group to your #GOptionContext with
+g_option_context_add_group(), if you are using g_option_context_parse()
+to parse your commandline arguments.
+Calling g_option_context_parse() with Clutter's #GOptionGroup will result
+in Clutter's initialization. That is, the following code:
+|[
+g_option_context_set_main_group (context, clutter_get_option_group ());
+res = g_option_context_parse (context, &amp;amp;argc, &amp;amp;argc, NULL);
+]|
+is functionally equivalent to:
+|[
+clutter_init (&amp;amp;argc, &amp;amp;argv);
+]|
+After g_option_context_parse() on a #GOptionContext containing the
+Clutter #GOptionGroup has returned %TRUE, Clutter is guaranteed to be
+initialized.
+recognized by Clutter</doc>
+      <return-value transfer-ownership="full">
+        <doc xml:whitespace="preserve">a #GOptionGroup for the commandline arguments</doc>
+        <type name="GLib.OptionGroup" c:type="GOptionGroup*"/>
+      </return-value>
+    </function>
+    <function name="get_option_group_without_init"
+              c:identifier="clutter_get_option_group_without_init"
+              version="0.8.2"
+              introspectable="0">
+      <doc xml:whitespace="preserve">Returns a #GOptionGroup for the command line arguments recognized
+by Clutter. You should add this group to your #GOptionContext with
+g_option_context_add_group(), if you are using g_option_context_parse()
+to parse your commandline arguments. Unlike clutter_get_option_group(),
+calling g_option_context_parse() with the #GOptionGroup returned by this
+function requires a subsequent explicit call to clutter_init(); use this
+function when needing to set foreign display connection with
+clutter_x11_set_display(), or with gtk_clutter_init().
+recognized by Clutter</doc>
+      <return-value transfer-ownership="full">
+        <doc xml:whitespace="preserve">a #GOptionGroup for the commandline arguments</doc>
+        <type name="GLib.OptionGroup" c:type="GOptionGroup*"/>
+      </return-value>
+    </function>
+    <function name="get_pointer_grab"
+              c:identifier="clutter_get_pointer_grab"
+              version="0.6">
+      <doc xml:whitespace="preserve">Queries the current pointer grab of clutter.</doc>
+      <return-value transfer-ownership="none">
+        <doc xml:whitespace="preserve">the actor currently holding the pointer grab, or NULL if there is no grab.</doc>
+        <type name="Actor" c:type="ClutterActor*"/>
+      </return-value>
+    </function>
+    <function name="get_script_id"
+              c:identifier="clutter_get_script_id"
+              version="0.6">
+      <doc xml:whitespace="preserve">Retrieves the Clutter script id, if any.
+a UI definition file. The returned string is owned by the object and
+should never be modified or freed.</doc>
+      <return-value transfer-ownership="none">
+        <doc xml:whitespace="preserve">the script id, or %NULL if @object was not defined inside</doc>
+        <type name="utf8" c:type="gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="gobject" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #GObject</doc>
+          <type name="GObject.Object" c:type="GObject*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="get_show_fps"
+              c:identifier="clutter_get_show_fps"
+              version="0.4">
+      <doc xml:whitespace="preserve">Returns whether Clutter should print out the frames per second on the
+console. You can enable this setting either using the
+&lt;literal&gt;CLUTTER_SHOW_FPS&lt;/literal&gt; environment variable or passing
+the &lt;literal&gt;--clutter-show-fps&lt;/literal&gt; command line argument. *</doc>
+      <return-value transfer-ownership="none">
+        <doc xml:whitespace="preserve">%TRUE if Clutter should show the FPS.</doc>
+        <type name="gboolean" c:type="gboolean"/>
+      </return-value>
+    </function>
+    <function name="get_timestamp" c:identifier="clutter_get_timestamp">
+      <doc xml:whitespace="preserve">Returns the approximate number of microseconds passed since clutter was
+intialised.</doc>
+      <return-value transfer-ownership="none">
+        <doc xml:whitespace="preserve">Number of microseconds since clutter_init() was called.</doc>
+        <type name="gulong" c:type="gulong"/>
+      </return-value>
+    </function>
+    <function name="grab_keyboard"
+              c:identifier="clutter_grab_keyboard"
+              version="0.6">
+      <doc xml:whitespace="preserve">Grabs keyboard events, after the grab is done keyboard
+events (#ClutterActor::key-press-event and #ClutterActor::key-release-event)
+are delivered to this actor directly. The source set in the event will be
+the actor that would have received the event if the keyboard grab was not
+in effect.
+Like pointer grabs, keyboard grabs should only be used as a last
+resource.
+See also clutter_stage_set_key_focus() and clutter_actor_grab_key_focus()
+to perform a "soft" key grab and assign key focus to a specific actor.</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="actor" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #ClutterActor</doc>
+          <type name="Actor" c:type="ClutterActor*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="grab_pointer"
+              c:identifier="clutter_grab_pointer"
+              version="0.6">
+      <doc xml:whitespace="preserve">Grabs pointer events, after the grab is done all pointer related events
+(press, motion, release, enter, leave and scroll) are delivered to this
+actor directly without passing through both capture and bubble phases of
+the event delivery chain. The source set in the event will be the actor
+that would have received the event if the pointer grab was not in effect.
+&lt;note&gt;&lt;para&gt;Grabs completely override the entire event delivery chain
+done by Clutter. Pointer grabs should only be used as a last resource;
+using the #ClutterActor::captured-event signal should always be the
+preferred way to intercept event delivery to reactive actors.&lt;/para&gt;&lt;/note&gt;
+If you wish to grab all the pointer events for a specific input device,
+you should use clutter_grab_pointer_for_device().</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="actor" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #ClutterActor</doc>
+          <type name="Actor" c:type="ClutterActor*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="grab_pointer_for_device"
+              c:identifier="clutter_grab_pointer_for_device"
+              version="0.8">
+      <doc xml:whitespace="preserve">Grabs all the pointer events coming from the device @id for @actor.
+If @id is -1 then this function is equivalent to clutter_grab_pointer().</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="actor" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #ClutterActor</doc>
+          <type name="Actor" c:type="ClutterActor*"/>
+        </parameter>
+        <parameter name="id" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a device id, or -1</doc>
+          <type name="gint" c:type="gint"/>
+        </parameter>
+      </parameters>
+    </function>
+    <constant name="grave" value="96">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="greater" value="62">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="greaterthanequal" value="2238">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="guillemotleft" value="171">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="guillemotright" value="187">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="h" value="104">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="hairspace" value="2728">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="hcircumflex" value="694">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="heart" value="2798">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="hebrew_aleph" value="3296">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="hebrew_ayin" value="3314">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="hebrew_bet" value="3297">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="hebrew_beth" value="3297">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="hebrew_chet" value="3303">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="hebrew_dalet" value="3299">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="hebrew_daleth" value="3299">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="hebrew_doublelowline" value="3295">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="hebrew_finalkaph" value="3306">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="hebrew_finalmem" value="3309">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="hebrew_finalnun" value="3311">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="hebrew_finalpe" value="3315">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="hebrew_finalzade" value="3317">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="hebrew_finalzadi" value="3317">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="hebrew_gimel" value="3298">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="hebrew_gimmel" value="3298">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="hebrew_he" value="3300">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="hebrew_het" value="3303">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="hebrew_kaph" value="3307">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="hebrew_kuf" value="3319">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="hebrew_lamed" value="3308">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="hebrew_mem" value="3310">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="hebrew_nun" value="3312">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="hebrew_pe" value="3316">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="hebrew_qoph" value="3319">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="hebrew_resh" value="3320">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="hebrew_samech" value="3313">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="hebrew_samekh" value="3313">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="hebrew_shin" value="3321">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="hebrew_taf" value="3322">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="hebrew_taw" value="3322">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="hebrew_tet" value="3304">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="hebrew_teth" value="3304">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="hebrew_waw" value="3301">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="hebrew_yod" value="3305">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="hebrew_zade" value="3318">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="hebrew_zadi" value="3318">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="hebrew_zain" value="3302">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="hebrew_zayin" value="3302">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="hexagram" value="2778">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="horizconnector" value="2211">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="horizlinescan1" value="2543">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="horizlinescan3" value="2544">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="horizlinescan5" value="2545">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="horizlinescan7" value="2546">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="horizlinescan9" value="2547">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="hstroke" value="689">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ht" value="2530">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="hyphen" value="173">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="i" value="105">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="iTouch" value="269025120">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="iacute" value="237">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ibelowdot" value="16785099">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ibreve" value="16777517">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="icircumflex" value="238">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="identical" value="2255">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="idiaeresis" value="239">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="idotless" value="697">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ifonlyif" value="2253">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="igrave" value="236">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ihook" value="16785097">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="imacron" value="1007">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="implies" value="2254">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="includedin" value="2266">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="includes" value="2267">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="infinity" value="2242">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <function name="init" c:identifier="clutter_init">
+      <doc xml:whitespace="preserve">It will initialise everything needed to operate with Clutter and
+parses some standard command line options. @argc and @argv are
+adjusted accordingly so your own code will never see those standard
+arguments.</doc>
+      <return-value transfer-ownership="none">
+        <doc xml:whitespace="preserve">1 on success, &lt; 0 on failure.</doc>
+        <type name="InitError" c:type="ClutterInitError"/>
+      </return-value>
+      <parameters>
+        <parameter name="argc"
+                   direction="inout"
+                   caller-allocates="0"
+                   transfer-ownership="full">
+          <doc xml:whitespace="preserve">The number of arguments in @argv</doc>
+          <type name="gint" c:type="int*"/>
+        </parameter>
+        <parameter name="argv"
+                   direction="inout"
+                   caller-allocates="0"
+                   transfer-ownership="full"
+                   allow-none="1">
+          <doc xml:whitespace="preserve">A pointer to an array of arguments.</doc>
+          <array length="0" c:type="char***">
+            <type name="utf8"/>
+          </array>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="init_error_quark" c:identifier="clutter_init_error_quark">
+      <return-value transfer-ownership="none">
+        <type name="GLib.Quark" c:type="GQuark"/>
+      </return-value>
+    </function>
+    <function name="init_with_args"
+              c:identifier="clutter_init_with_args"
+              version="0.2"
+              throws="1">
+      <doc xml:whitespace="preserve">This function does the same work as clutter_init(). Additionally,
+it allows you to add your own command line options, and it
+automatically generates nicely formatted &lt;option&gt;--help&lt;/option&gt;
+output. Note that your program will be terminated after writing
+out the help output. Also note that, in case of error, the
+error message will be placed inside @error instead of being
+printed on the display.
+initialised, or other values or #ClutterInitError in case of
+error.</doc>
+      <return-value transfer-ownership="none">
+        <doc xml:whitespace="preserve">%CLUTTER_INIT_SUCCESS if Clutter has been successfully</doc>
+        <type name="InitError" c:type="ClutterInitError"/>
+      </return-value>
+      <parameters>
+        <parameter name="argc"
+                   direction="inout"
+                   caller-allocates="0"
+                   transfer-ownership="full">
+          <doc xml:whitespace="preserve">a pointer to the number of command line arguments</doc>
+          <type name="gint" c:type="int*"/>
+        </parameter>
+        <parameter name="argv"
+                   direction="inout"
+                   caller-allocates="0"
+                   transfer-ownership="full"
+                   allow-none="1">
+          <doc xml:whitespace="preserve">a pointer to the array of command line arguments</doc>
+          <array length="0" c:type="char***">
+            <type name="utf8"/>
+          </array>
+        </parameter>
+        <parameter name="parameter_string"
+                   transfer-ownership="none"
+                   allow-none="1">
+          <doc xml:whitespace="preserve">a string which is displayed in the first line of &lt;option&gt;--help&lt;/option&gt; output, after &lt;literal&gt;&lt;replaceable&gt;programname&lt;/replaceable&gt; [OPTION...]&lt;/literal&gt;</doc>
+          <type name="utf8" c:type="char*"/>
+        </parameter>
+        <parameter name="entries" transfer-ownership="none" allow-none="1">
+          <doc xml:whitespace="preserve">a %NULL terminated array of #GOptionEntry&lt;!-- --&gt;s describing the options of your program</doc>
+          <type name="GLib.OptionEntry" c:type="GOptionEntry*"/>
+        </parameter>
+        <parameter name="translation_domain"
+                   transfer-ownership="none"
+                   allow-none="1">
+          <doc xml:whitespace="preserve">a translation domain to use for translating the &lt;option&gt;--help&lt;/option&gt; output for the options in</doc>
+          <type name="utf8" c:type="char*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <constant name="integral" value="2239">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="intersection" value="2268">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="iogonek" value="999">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="itilde" value="949">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="j" value="106">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="jcircumflex" value="700">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="jot" value="3018">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="k" value="107">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="kana_A" value="1201">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="kana_CHI" value="1217">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="kana_E" value="1204">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="kana_FU" value="1228">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="kana_HA" value="1226">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="kana_HE" value="1229">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="kana_HI" value="1227">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="kana_HO" value="1230">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="kana_HU" value="1228">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="kana_I" value="1202">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="kana_KA" value="1206">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="kana_KE" value="1209">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="kana_KI" value="1207">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="kana_KO" value="1210">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="kana_KU" value="1208">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="kana_MA" value="1231">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="kana_ME" value="1234">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="kana_MI" value="1232">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="kana_MO" value="1235">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="kana_MU" value="1233">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="kana_N" value="1245">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="kana_NA" value="1221">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="kana_NE" value="1224">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="kana_NI" value="1222">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="kana_NO" value="1225">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="kana_NU" value="1223">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="kana_O" value="1205">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="kana_RA" value="1239">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="kana_RE" value="1242">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="kana_RI" value="1240">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="kana_RO" value="1243">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="kana_RU" value="1241">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="kana_SA" value="1211">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="kana_SE" value="1214">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="kana_SHI" value="1212">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="kana_SO" value="1215">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="kana_SU" value="1213">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="kana_TA" value="1216">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="kana_TE" value="1219">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="kana_TI" value="1217">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="kana_TO" value="1220">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="kana_TSU" value="1218">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="kana_TU" value="1218">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="kana_U" value="1203">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="kana_WA" value="1244">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="kana_WO" value="1190">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="kana_YA" value="1236">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="kana_YO" value="1238">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="kana_YU" value="1237">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="kana_a" value="1191">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="kana_closingbracket" value="1187">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="kana_comma" value="1188">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="kana_conjunctive" value="1189">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="kana_e" value="1194">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="kana_fullstop" value="1185">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="kana_i" value="1192">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="kana_middledot" value="1189">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="kana_o" value="1195">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="kana_openingbracket" value="1186">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="kana_switch" value="65406">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="kana_tsu" value="1199">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="kana_tu" value="1199">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="kana_u" value="1193">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="kana_ya" value="1196">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="kana_yo" value="1198">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="kana_yu" value="1197">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="kappa" value="930">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="kcedilla" value="1011">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <function name="keysym_to_unicode"
+              c:identifier="clutter_keysym_to_unicode">
+      <doc xml:whitespace="preserve">Convert from a Clutter key symbol to the corresponding ISO10646 (Unicode)
+character.
+character.</doc>
+      <return-value transfer-ownership="none">
+        <doc xml:whitespace="preserve">a Unicode character, or 0 if there  is no corresponding</doc>
+        <type name="guint32" c:type="guint32"/>
+      </return-value>
+      <parameters>
+        <parameter name="keyval" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a key symbol</doc>
+          <type name="guint" c:type="guint"/>
+        </parameter>
+      </parameters>
+    </function>
+    <constant name="kra" value="930">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="l" value="108">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="lacute" value="485">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="latincross" value="2777">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="lbelowdot" value="16784951">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="lcaron" value="437">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="lcedilla" value="950">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="leftanglebracket" value="2748">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="leftarrow" value="2299">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="leftcaret" value="2979">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="leftdoublequotemark" value="2770">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="leftmiddlecurlybrace" value="2223">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="leftopentriangle" value="2764">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="leftpointer" value="2794">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="leftradical" value="2209">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="leftshoe" value="3034">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="leftsinglequotemark" value="2768">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="leftt" value="2548">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="lefttack" value="3036">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="less" value="60">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="lessthanequal" value="2236">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="lf" value="2533">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="logicaland" value="2270">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="logicalor" value="2271">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="lowleftcorner" value="2541">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="lowrightcorner" value="2538">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="lstroke" value="435">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="m" value="109">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="mabovedot" value="16784961">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="macron" value="175">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <function name="main" c:identifier="clutter_main">
+      <doc xml:whitespace="preserve">Starts the Clutter mainloop.</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+    </function>
+    <function name="main_level" c:identifier="clutter_main_level">
+      <doc xml:whitespace="preserve">Retrieves the depth of the Clutter mainloop.</doc>
+      <return-value transfer-ownership="none">
+        <doc xml:whitespace="preserve">The level of the mainloop.</doc>
+        <type name="gint" c:type="gint"/>
+      </return-value>
+    </function>
+    <function name="main_quit" c:identifier="clutter_main_quit">
+      <doc xml:whitespace="preserve">Terminates the Clutter mainloop.</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+    </function>
+    <constant name="malesymbol" value="2807">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="maltesecross" value="2800">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="marker" value="2751">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="masculine" value="186">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="minus" value="45">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="minutes" value="2774">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="mu" value="181">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="multiply" value="215">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="musicalflat" value="2806">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="musicalsharp" value="2805">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="n" value="110">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="nabla" value="2245">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="nacute" value="497">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ncaron" value="498">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ncedilla" value="1009">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ninesubscript" value="16785545">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ninesuperior" value="16785529">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="nl" value="2536">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="nobreakspace" value="160">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="notapproxeq" value="16785991">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="notelementof" value="16785929">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="notequal" value="2237">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="notidentical" value="16786018">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="notsign" value="172">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ntilde" value="241">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="numbersign" value="35">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="numerosign" value="1712">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="o" value="111">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="oacute" value="243">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="obarred" value="16777845">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="obelowdot" value="16785101">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ocaron" value="16777682">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ocircumflex" value="244">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ocircumflexacute" value="16785105">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ocircumflexbelowdot" value="16785113">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ocircumflexgrave" value="16785107">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ocircumflexhook" value="16785109">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ocircumflextilde" value="16785111">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="odiaeresis" value="246">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="odoubleacute" value="501">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="oe" value="5053">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ogonek" value="434">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ograve" value="242">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ohook" value="16785103">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ohorn" value="16777633">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ohornacute" value="16785115">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ohornbelowdot" value="16785123">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ohorngrave" value="16785117">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ohornhook" value="16785119">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ohorntilde" value="16785121">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="omacron" value="1010">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="oneeighth" value="2755">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="onefifth" value="2738">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="onehalf" value="189">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="onequarter" value="188">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="onesixth" value="2742">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="onesubscript" value="16785537">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="onesuperior" value="185">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="onethird" value="2736">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ooblique" value="248">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="openrectbullet" value="2786">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="openstar" value="2789">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="opentribulletdown" value="2788">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="opentribulletup" value="2787">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ordfeminine" value="170">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="oslash" value="248">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="otilde" value="245">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="overbar" value="3008">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="overline" value="1150">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="p" value="112">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="pabovedot" value="16784983">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="paragraph" value="182">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <function name="param_spec_color"
+              c:identifier="clutter_param_spec_color"
+              version="0.8.4"
+              introspectable="0">
+      <doc xml:whitespace="preserve">Creates a #GParamSpec for properties using #ClutterColor.</doc>
+      <return-value>
+        <doc xml:whitespace="preserve">the newly created #GParamSpec</doc>
+        <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
+      </return-value>
+      <parameters>
+        <parameter name="name" transfer-ownership="none">
+          <doc xml:whitespace="preserve">name of the property</doc>
+          <type name="utf8" c:type="gchar*"/>
+        </parameter>
+        <parameter name="nick" transfer-ownership="none">
+          <doc xml:whitespace="preserve">short name</doc>
+          <type name="utf8" c:type="gchar*"/>
+        </parameter>
+        <parameter name="blurb" transfer-ownership="none">
+          <doc xml:whitespace="preserve">description (can be translatable)</doc>
+          <type name="utf8" c:type="gchar*"/>
+        </parameter>
+        <parameter name="default_value" transfer-ownership="none">
+          <doc xml:whitespace="preserve">default value</doc>
+          <type name="Color" c:type="ClutterColor*"/>
+        </parameter>
+        <parameter name="flags" transfer-ownership="none">
+          <doc xml:whitespace="preserve">flags for the param spec</doc>
+          <type name="GObject.ParamFlags" c:type="GParamFlags"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="param_spec_fixed"
+              c:identifier="clutter_param_spec_fixed"
+              version="0.8"
+              introspectable="0">
+      <doc xml:whitespace="preserve">Creates a #GParamSpec for properties using #CoglFixed values</doc>
+      <return-value>
+        <doc xml:whitespace="preserve">the newly created #GParamSpec</doc>
+        <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
+      </return-value>
+      <parameters>
+        <parameter name="name" transfer-ownership="none">
+          <doc xml:whitespace="preserve">name of the property</doc>
+          <type name="utf8" c:type="gchar*"/>
+        </parameter>
+        <parameter name="nick" transfer-ownership="none">
+          <doc xml:whitespace="preserve">short name</doc>
+          <type name="utf8" c:type="gchar*"/>
+        </parameter>
+        <parameter name="blurb" transfer-ownership="none">
+          <doc xml:whitespace="preserve">description (can be translatable)</doc>
+          <type name="utf8" c:type="gchar*"/>
+        </parameter>
+        <parameter name="minimum" transfer-ownership="none">
+          <doc xml:whitespace="preserve">lower boundary</doc>
+          <type name="Cogl.Fixed" c:type="CoglFixed"/>
+        </parameter>
+        <parameter name="maximum" transfer-ownership="none">
+          <doc xml:whitespace="preserve">higher boundary</doc>
+          <type name="Cogl.Fixed" c:type="CoglFixed"/>
+        </parameter>
+        <parameter name="default_value" transfer-ownership="none">
+          <doc xml:whitespace="preserve">default value</doc>
+          <type name="Cogl.Fixed" c:type="CoglFixed"/>
+        </parameter>
+        <parameter name="flags" transfer-ownership="none">
+          <doc xml:whitespace="preserve">flags for the param spec</doc>
+          <type name="GObject.ParamFlags" c:type="GParamFlags"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="param_spec_units"
+              c:identifier="clutter_param_spec_units"
+              version="1.0"
+              introspectable="0">
+      <doc xml:whitespace="preserve">Creates a #GParamSpec for properties using #ClutterUnits.</doc>
+      <return-value>
+        <doc xml:whitespace="preserve">the newly created #GParamSpec</doc>
+        <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
+      </return-value>
+      <parameters>
+        <parameter name="name" transfer-ownership="none">
+          <doc xml:whitespace="preserve">name of the property</doc>
+          <type name="utf8" c:type="gchar*"/>
+        </parameter>
+        <parameter name="nick" transfer-ownership="none">
+          <doc xml:whitespace="preserve">short name</doc>
+          <type name="utf8" c:type="gchar*"/>
+        </parameter>
+        <parameter name="blurb" transfer-ownership="none">
+          <doc xml:whitespace="preserve">description (can be translatable)</doc>
+          <type name="utf8" c:type="gchar*"/>
+        </parameter>
+        <parameter name="default_type" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the default type for the #ClutterUnits</doc>
+          <type name="UnitType" c:type="ClutterUnitType"/>
+        </parameter>
+        <parameter name="minimum" transfer-ownership="none">
+          <doc xml:whitespace="preserve">lower boundary</doc>
+          <type name="gfloat" c:type="gfloat"/>
+        </parameter>
+        <parameter name="maximum" transfer-ownership="none">
+          <doc xml:whitespace="preserve">higher boundary</doc>
+          <type name="gfloat" c:type="gfloat"/>
+        </parameter>
+        <parameter name="default_value" transfer-ownership="none">
+          <doc xml:whitespace="preserve">default value</doc>
+          <type name="gfloat" c:type="gfloat"/>
+        </parameter>
+        <parameter name="flags" transfer-ownership="none">
+          <doc xml:whitespace="preserve">flags for the param spec</doc>
+          <type name="GObject.ParamFlags" c:type="GParamFlags"/>
+        </parameter>
+      </parameters>
+    </function>
+    <constant name="parenleft" value="40">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="parenright" value="41">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="partdifferential" value="16785922">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="partialderivative" value="2287">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="percent" value="37">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="period" value="46">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="periodcentered" value="183">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="phonographcopyright" value="2811">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="plus" value="43">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="plusminus" value="177">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="prescription" value="2772">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="prolongedsound" value="1200">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="punctspace" value="2726">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="q" value="113">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="quad" value="3020">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="question" value="63">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="questiondown" value="191">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="quotedbl" value="34">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="quoteleft" value="96">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="quoteright" value="39">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="r" value="114">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="racute" value="480">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="radical" value="2262">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="rcaron" value="504">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="rcedilla" value="947">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <function name="redraw" c:identifier="clutter_redraw">
+      <doc xml:whitespace="preserve">Forces a redraw of the entire stage. Applications should never use this
+function, but queue a redraw using clutter_actor_queue_redraw().
+This function should only be used by libraries integrating Clutter from
+within another toolkit.</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="stage" transfer-ownership="none">
+          <type name="Stage" c:type="ClutterStage*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <constant name="registered" value="174">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="rightanglebracket" value="2750">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="rightarrow" value="2301">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="rightcaret" value="2982">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="rightdoublequotemark" value="2771">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="rightmiddlecurlybrace" value="2224">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="rightmiddlesummation" value="2231">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="rightopentriangle" value="2765">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="rightpointer" value="2795">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="rightshoe" value="3032">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="rightsinglequotemark" value="2769">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="rightt" value="2549">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="righttack" value="3068">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="s" value="115">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="sabovedot" value="16784993">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="sacute" value="438">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="scaron" value="441">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="scedilla" value="442">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="schwa" value="16777817">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="scircumflex" value="766">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <function name="script_error_quark"
+              c:identifier="clutter_script_error_quark">
+      <return-value transfer-ownership="none">
+        <type name="GLib.Quark" c:type="GQuark"/>
+      </return-value>
+    </function>
+    <constant name="script_switch" value="65406">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="seconds" value="2775">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="section" value="167">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="semicolon" value="59">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="semivoicedsound" value="1247">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <function name="set_default_frame_rate"
+              c:identifier="clutter_set_default_frame_rate"
+              version="0.6">
+      <doc xml:whitespace="preserve">Sets the default frame rate. This frame rate will be used to limit
+the number of frames drawn if Clutter is not able to synchronize
+with the vertical refresh rate of the display. When synchronization
+is possible, this value is ignored.</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="frames_per_sec" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the new default frame rate</doc>
+          <type name="guint" c:type="guint"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="set_font_flags"
+              c:identifier="clutter_set_font_flags"
+              version="1.0">
+      <doc xml:whitespace="preserve">Sets the font quality options for subsequent text rendering
+operations.
+Using mipmapped textures will improve the quality for scaled down
+text but will use more texture memory.
+Enabling hinting improves text quality for static text but may
+introduce some artifacts if the text is animated.</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="flags" transfer-ownership="none">
+          <doc xml:whitespace="preserve">The new flags</doc>
+          <type name="FontFlags" c:type="ClutterFontFlags"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="set_motion_events_enabled"
+              c:identifier="clutter_set_motion_events_enabled"
+              version="0.6">
+      <doc xml:whitespace="preserve">Sets whether per-actor motion events should be enabled or not (the
+default is to enable them).
+If @enable is %FALSE the following events will not work:
+&lt;itemizedlist&gt;
+&lt;listitem&gt;&lt;para&gt;ClutterActor::motion-event, unless on the
+#ClutterStage&lt;/para&gt;&lt;/listitem&gt;
+&lt;listitem&gt;&lt;para&gt;ClutterActor::enter-event&lt;/para&gt;&lt;/listitem&gt;
+&lt;listitem&gt;&lt;para&gt;ClutterActor::leave-event&lt;/para&gt;&lt;/listitem&gt;
+&lt;/itemizedlist&gt;</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="enable" transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE to enable per-actor motion events</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </parameter>
+      </parameters>
+    </function>
+    <constant name="seveneighths" value="2758">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="sevensubscript" value="16785543">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="sevensuperior" value="16785527">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <function name="shader_error_quark"
+              c:identifier="clutter_shader_error_quark">
+      <return-value transfer-ownership="none">
+        <type name="GLib.Quark" c:type="GQuark"/>
+      </return-value>
+    </function>
+    <function name="shader_float_get_type"
+              c:identifier="clutter_shader_float_get_type">
+      <return-value transfer-ownership="none">
+        <type name="GType" c:type="GType"/>
+      </return-value>
+    </function>
+    <function name="shader_int_get_type"
+              c:identifier="clutter_shader_int_get_type">
+      <return-value transfer-ownership="none">
+        <type name="GType" c:type="GType"/>
+      </return-value>
+    </function>
+    <function name="shader_matrix_get_type"
+              c:identifier="clutter_shader_matrix_get_type">
+      <return-value transfer-ownership="none">
+        <type name="GType" c:type="GType"/>
+      </return-value>
+    </function>
+    <constant name="signaturemark" value="2762">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="signifblank" value="2732">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="similarequal" value="2249">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="singlelowquotemark" value="2813">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="sixsubscript" value="16785542">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="sixsuperior" value="16785526">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="slash" value="47">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="soliddiamond" value="2528">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="space" value="32">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="squareroot" value="16785946">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ssharp" value="223">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="sterling" value="163">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="stricteq" value="16786019">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="t" value="116">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="tabovedot" value="16785003">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="tcaron" value="443">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="tcedilla" value="510">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="telephone" value="2809">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="telephonerecorder" value="2810">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <function name="texture_error_quark"
+              c:identifier="clutter_texture_error_quark">
+      <return-value transfer-ownership="none">
+        <type name="GLib.Quark" c:type="GQuark"/>
+      </return-value>
+    </function>
+    <constant name="therefore" value="2240">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="thinspace" value="2727">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="thorn" value="254">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <function name="threads_add_frame_source"
+              c:identifier="clutter_threads_add_frame_source"
+              shadowed-by="threads_add_frame_source_full"
+              version="0.8"
+              introspectable="0">
+      <doc xml:whitespace="preserve">Simple wrapper around clutter_threads_add_frame_source_full().</doc>
+      <return-value transfer-ownership="none">
+        <doc xml:whitespace="preserve">the ID (greater than 0) of the event source.</doc>
+        <type name="guint" c:type="guint"/>
+      </return-value>
+      <parameters>
+        <parameter name="fps" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the number of times per second to call the function</doc>
+          <type name="guint" c:type="guint"/>
+        </parameter>
+        <parameter name="func" transfer-ownership="none" closure="2">
+          <doc xml:whitespace="preserve">function to call</doc>
+          <type name="GLib.SourceFunc" c:type="GSourceFunc"/>
+        </parameter>
+        <parameter name="data" transfer-ownership="none">
+          <doc xml:whitespace="preserve">data to pass to the function</doc>
+          <type name="gpointer" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="threads_add_frame_source_full"
+              c:identifier="clutter_threads_add_frame_source_full"
+              shadows="threads_add_frame_source"
+              version="0.8">
+      <doc xml:whitespace="preserve">Sets a function to be called at regular intervals holding the Clutter
+threads lock, with the given priority. The function is called repeatedly
+until it returns %FALSE, at which point the timeout is automatically
+removed and the function will not be called again. The @notify function
+is called when the timeout is removed.
+This function is similar to clutter_threads_add_timeout_full()
+except that it will try to compensate for delays. For example, if
+will be called again half the interval time after it finished. In
+contrast clutter_threads_add_timeout_full() would not fire until a
+full interval after the function completes so the delay between
+calls would be @interval * 1.5. This function does not however try
+to invoke the function multiple times to catch up missing frames if
+See also clutter_threads_add_idle_full().</doc>
+      <return-value transfer-ownership="none">
+        <doc xml:whitespace="preserve">the ID (greater than 0) of the event source.</doc>
+        <type name="guint" c:type="guint"/>
+      </return-value>
+      <parameters>
+        <parameter name="priority" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the priority of the frame source. Typically this will be in the range between #G_PRIORITY_DEFAULT and #G_PRIORITY_HIGH.</doc>
+          <type name="gint" c:type="gint"/>
+        </parameter>
+        <parameter name="fps" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the number of times per second to call the function</doc>
+          <type name="guint" c:type="guint"/>
+        </parameter>
+        <parameter name="func"
+                   transfer-ownership="none"
+                   scope="notified"
+                   closure="3"
+                   destroy="4">
+          <doc xml:whitespace="preserve">function to call</doc>
+          <type name="GLib.SourceFunc" c:type="GSourceFunc"/>
+        </parameter>
+        <parameter name="data" transfer-ownership="none">
+          <doc xml:whitespace="preserve">data to pass to the function</doc>
+          <type name="gpointer" c:type="gpointer"/>
+        </parameter>
+        <parameter name="notify" transfer-ownership="none" scope="async">
+          <doc xml:whitespace="preserve">function to call when the timeout source is removed</doc>
+          <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="threads_add_idle"
+              c:identifier="clutter_threads_add_idle"
+              shadowed-by="threads_add_idle_full"
+              version="0.4"
+              introspectable="0">
+      <doc xml:whitespace="preserve">Simple wrapper around clutter_threads_add_idle_full() using the
+default priority.</doc>
+      <return-value transfer-ownership="none">
+        <doc xml:whitespace="preserve">the ID (greater than 0) of the event source.</doc>
+        <type name="guint" c:type="guint"/>
+      </return-value>
+      <parameters>
+        <parameter name="func" transfer-ownership="none" closure="1">
+          <doc xml:whitespace="preserve">function to call</doc>
+          <type name="GLib.SourceFunc" c:type="GSourceFunc"/>
+        </parameter>
+        <parameter name="data" transfer-ownership="none">
+          <doc xml:whitespace="preserve">data to pass to the function</doc>
+          <type name="gpointer" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="threads_add_idle_full"
+              c:identifier="clutter_threads_add_idle_full"
+              shadows="threads_add_idle"
+              version="0.4">
+      <doc xml:whitespace="preserve">Adds a function to be called whenever there are no higher priority
+events pending. If the function returns %FALSE it is automatically
+removed from the list of event sources and will not be called again.
+This function can be considered a thread-safe variant of g_idle_add_full():
+it will call @function while holding the Clutter lock. It is logically
+equivalent to the following implementation:
+|[
+static gboolean
+idle_safe_callback (gpointer data)
+{
+SafeClosure *closure = data;
+gboolean res = FALSE;
+/&amp;ast; mark the critical section &amp;ast;/
+clutter_threads_enter();
+/&amp;ast; the callback does not need to acquire the Clutter
+&amp;ast; lock itself, as it is held by the this proxy handler
+&amp;ast;/
+res = closure-&gt;callback (closure-&gt;data);
+clutter_threads_leave();
+return res;
+}
+static gulong
+add_safe_idle (GSourceFunc callback,
+gpointer    data)
+{
+SafeClosure *closure = g_new0 (SafeClosure, 1);
+closure-&amp;gt;callback = callback;
+closure-&amp;gt;data = data;
+return g_add_idle_full (G_PRIORITY_DEFAULT_IDLE,
+idle_safe_callback,
+closure,
+g_free)
+}
+]|
+This function should be used by threaded applications to make sure
+that @func is emitted under the Clutter threads lock and invoked
+from the same thread that started the Clutter main loop. For instance,
+it can be used to update the UI using the results from a worker
+thread:
+|[
+static gboolean
+update_ui (gpointer data)
+{
+SomeClosure *closure = data;
+/&amp;ast; it is safe to call Clutter API from this function because
+&amp;ast; it is invoked from the same thread that started the main
+&amp;ast; loop and under the Clutter thread lock
+&amp;ast;/
+clutter_label_set_text (CLUTTER_LABEL (closure-&amp;gt;label),
+closure-&amp;gt;text);
+g_object_unref (closure-&amp;gt;label);
+g_free (closure);
+return FALSE;
+}
+/&amp;ast; within another thread &amp;ast;/
+closure = g_new0 (SomeClosure, 1);
+/&amp;ast; always take a reference on GObject instances &amp;ast;/
+closure-&amp;gt;label = g_object_ref (my_application-&amp;gt;label);
+closure-&amp;gt;text = g_strdup (processed_text_to_update_the_label);
+clutter_threads_add_idle_full (G_PRIORITY_HIGH_IDLE,
+update_ui,
+closure,
+NULL);
+]|</doc>
+      <return-value transfer-ownership="none">
+        <doc xml:whitespace="preserve">the ID (greater than 0) of the event source.</doc>
+        <type name="guint" c:type="guint"/>
+      </return-value>
+      <parameters>
+        <parameter name="priority" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the priority of the timeout source. Typically this will be in the range between #G_PRIORITY_DEFAULT_IDLE and #G_PRIORITY_HIGH_IDLE</doc>
+          <type name="gint" c:type="gint"/>
+        </parameter>
+        <parameter name="func"
+                   transfer-ownership="none"
+                   scope="notified"
+                   closure="2"
+                   destroy="3">
+          <doc xml:whitespace="preserve">function to call</doc>
+          <type name="GLib.SourceFunc" c:type="GSourceFunc"/>
+        </parameter>
+        <parameter name="data" transfer-ownership="none">
+          <doc xml:whitespace="preserve">data to pass to the function</doc>
+          <type name="gpointer" c:type="gpointer"/>
+        </parameter>
+        <parameter name="notify" transfer-ownership="none" scope="async">
+          <doc xml:whitespace="preserve">functio to call when the idle source is removed</doc>
+          <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="threads_add_repaint_func"
+              c:identifier="clutter_threads_add_repaint_func"
+              version="1.0">
+      <doc xml:whitespace="preserve">Adds a function to be called whenever Clutter is repainting a Stage.
+If the function returns %FALSE it is automatically removed from the
+list of repaint functions and will not be called again.
+This function is guaranteed to be called from within the same thread
+that called clutter_main(), and while the Clutter lock is being held.
+A repaint function is useful to ensure that an update of the scenegraph
+is performed before the scenegraph is repainted; for instance, uploading
+a frame from a video into a #ClutterTexture.
+When the repaint function is removed (either because it returned %FALSE
+or because clutter_threads_remove_repaint_func() has been called) the
+can use the returned integer to remove the repaint function by
+calling clutter_threads_remove_repaint_func().</doc>
+      <return-value transfer-ownership="none">
+        <doc xml:whitespace="preserve">the ID (greater than 0) of the repaint function. You</doc>
+        <type name="guint" c:type="guint"/>
+      </return-value>
+      <parameters>
+        <parameter name="func"
+                   transfer-ownership="none"
+                   scope="notified"
+                   closure="1"
+                   destroy="2">
+          <doc xml:whitespace="preserve">the function to be called within the paint cycle</doc>
+          <type name="GLib.SourceFunc" c:type="GSourceFunc"/>
+        </parameter>
+        <parameter name="data" transfer-ownership="none">
+          <doc xml:whitespace="preserve">data to be passed to the function, or %NULL</doc>
+          <type name="gpointer" c:type="gpointer"/>
+        </parameter>
+        <parameter name="notify" transfer-ownership="none" scope="async">
+          <doc xml:whitespace="preserve">function to be called when removing the repaint function, or %NULL</doc>
+          <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="threads_add_timeout"
+              c:identifier="clutter_threads_add_timeout"
+              shadowed-by="threads_add_timeout_full"
+              version="0.4"
+              introspectable="0">
+      <doc xml:whitespace="preserve">Simple wrapper around clutter_threads_add_timeout_full().</doc>
+      <return-value transfer-ownership="none">
+        <doc xml:whitespace="preserve">the ID (greater than 0) of the event source.</doc>
+        <type name="guint" c:type="guint"/>
+      </return-value>
+      <parameters>
+        <parameter name="interval" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the time between calls to the function, in milliseconds</doc>
+          <type name="guint" c:type="guint"/>
+        </parameter>
+        <parameter name="func" transfer-ownership="none" closure="2">
+          <doc xml:whitespace="preserve">function to call</doc>
+          <type name="GLib.SourceFunc" c:type="GSourceFunc"/>
+        </parameter>
+        <parameter name="data" transfer-ownership="none">
+          <doc xml:whitespace="preserve">data to pass to the function</doc>
+          <type name="gpointer" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="threads_add_timeout_full"
+              c:identifier="clutter_threads_add_timeout_full"
+              shadows="threads_add_timeout"
+              version="0.4">
+      <doc xml:whitespace="preserve">Sets a function to be called at regular intervals holding the Clutter
+threads lock, with the given priority. The function is called repeatedly
+until it returns %FALSE, at which point the timeout is automatically
+removed and the function will not be called again. The @notify function
+is called when the timeout is removed.
+The first call to the function will be at the end of the first @interval.
+It is important to note that, due to how the Clutter main loop is
+implemented, the timing will not be accurate and it will not try to
+"keep up" with the interval. A more reliable source is available
+using clutter_threads_add_frame_source_full(), which is also internally
+used by #ClutterTimeline.
+See also clutter_threads_add_idle_full().</doc>
+      <return-value transfer-ownership="none">
+        <doc xml:whitespace="preserve">the ID (greater than 0) of the event source.</doc>
+        <type name="guint" c:type="guint"/>
+      </return-value>
+      <parameters>
+        <parameter name="priority" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the priority of the timeout source. Typically this will be in the range between #G_PRIORITY_DEFAULT and #G_PRIORITY_HIGH.</doc>
+          <type name="gint" c:type="gint"/>
+        </parameter>
+        <parameter name="interval" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the time between calls to the function, in milliseconds</doc>
+          <type name="guint" c:type="guint"/>
+        </parameter>
+        <parameter name="func"
+                   transfer-ownership="none"
+                   scope="notified"
+                   closure="3"
+                   destroy="4">
+          <doc xml:whitespace="preserve">function to call</doc>
+          <type name="GLib.SourceFunc" c:type="GSourceFunc"/>
+        </parameter>
+        <parameter name="data" transfer-ownership="none">
+          <doc xml:whitespace="preserve">data to pass to the function</doc>
+          <type name="gpointer" c:type="gpointer"/>
+        </parameter>
+        <parameter name="notify" transfer-ownership="none" scope="async">
+          <doc xml:whitespace="preserve">function to call when the timeout source is removed</doc>
+          <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="threads_enter"
+              c:identifier="clutter_threads_enter"
+              version="0.4">
+      <doc xml:whitespace="preserve">Locks the Clutter thread lock.</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+    </function>
+    <function name="threads_init"
+              c:identifier="clutter_threads_init"
+              version="0.4">
+      <doc xml:whitespace="preserve">Initialises the Clutter threading mechanism, so that Clutter API can be
+called by multiple threads, using clutter_threads_enter() and
+clutter_threads_leave() to mark the critical sections.
+You must call g_thread_init() before this function.
+This function must be called before clutter_init().
+It is safe to call this function multiple times.</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+    </function>
+    <function name="threads_leave"
+              c:identifier="clutter_threads_leave"
+              version="0.4">
+      <doc xml:whitespace="preserve">Unlocks the Clutter thread lock.</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+    </function>
+    <function name="threads_remove_repaint_func"
+              c:identifier="clutter_threads_remove_repaint_func"
+              version="1.0">
+      <doc xml:whitespace="preserve">Removes the repaint function with @handle_id as its id</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="handle_id" transfer-ownership="none">
+          <doc xml:whitespace="preserve">an unsigned integer greater than zero</doc>
+          <type name="guint" c:type="guint"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="threads_set_lock_functions"
+              c:identifier="clutter_threads_set_lock_functions"
+              version="0.4"
+              introspectable="0">
+      <doc xml:whitespace="preserve">Allows the application to replace the standard method that
+Clutter uses to protect its data structures. Normally, Clutter
+creates a single #GMutex that is locked by clutter_threads_enter(),
+and released by clutter_threads_leave(); using this function an
+application provides, instead, a function @enter_fn that is
+called by clutter_threads_enter() and a function @leave_fn that is
+called by clutter_threads_leave().
+The functions must provide at least same locking functionality
+as the default implementation, but can also do extra application
+specific processing.
+As an example, consider an application that has its own recursive
+lock that when held, holds the Clutter lock as well. When Clutter
+unlocks the Clutter lock when entering a recursive main loop, the
+application must temporarily release its lock as well.
+Most threaded Clutter apps won't need to use this method.
+This method must be called before clutter_threads_init(), and cannot
+be called multiple times.</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="enter_fn" transfer-ownership="none">
+          <doc xml:whitespace="preserve">function called when aquiring the Clutter main lock</doc>
+          <type name="GObject.Callback" c:type="GCallback"/>
+        </parameter>
+        <parameter name="leave_fn" transfer-ownership="none">
+          <doc xml:whitespace="preserve">function called when releasing the Clutter main lock</doc>
+          <type name="GObject.Callback" c:type="GCallback"/>
+        </parameter>
+      </parameters>
+    </function>
+    <constant name="threeeighths" value="2756">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="threefifths" value="2740">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="threequarters" value="190">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="threesubscript" value="16785539">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="threesuperior" value="179">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <function name="timeout_pool_new"
+              c:identifier="clutter_timeout_pool_new"
+              version="0.4"
+              introspectable="0">
+      <doc xml:whitespace="preserve">Creates a new timeout pool source. A timeout pool should be used when
+multiple timeout functions, running at the same priority, are needed and
+the g_timeout_add() API might lead to starvation of the time slice of
+the main loop. A timeout pool allocates a single time slice of the main
+loop and runs every timeout function inside it. The timeout pool is
+always sorted, so that the extraction of the next timeout function is
+a constant time operation.
+is owned by the GLib default context and will be automatically
+destroyed when the context is destroyed. It is possible to force
+the destruction of the timeout pool using g_source_destroy()</doc>
+      <return-value>
+        <doc xml:whitespace="preserve">the newly created #ClutterTimeoutPool. The created pool</doc>
+        <type name="TimeoutPool" c:type="ClutterTimeoutPool*"/>
+      </return-value>
+      <parameters>
+        <parameter name="priority" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the priority of the timeout pool. Typically this will be #G_PRIORITY_DEFAULT</doc>
+          <type name="gint" c:type="gint"/>
+        </parameter>
+      </parameters>
+    </function>
+    <constant name="tintegral" value="16785965">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="topintegral" value="2212">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="topleftparens" value="2219">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="topleftradical" value="2210">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="topleftsqbracket" value="2215">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="topleftsummation" value="2225">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="toprightparens" value="2221">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="toprightsqbracket" value="2217">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="toprightsummation" value="2229">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="topt" value="2551">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="topvertsummationconnector" value="2227">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="trademark" value="2761">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="trademarkincircle" value="2763">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="tslash" value="956">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="twofifths" value="2739">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="twosubscript" value="16785538">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="twosuperior" value="178">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="twothirds" value="2737">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="u" value="117">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="uacute" value="250">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ubelowdot" value="16785125">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ubreve" value="765">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ucircumflex" value="251">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="udiaeresis" value="252">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="udoubleacute" value="507">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ugrave" value="249">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="uhook" value="16785127">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="uhorn" value="16777648">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="uhornacute" value="16785129">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="uhornbelowdot" value="16785137">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="uhorngrave" value="16785131">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="uhornhook" value="16785133">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="uhorntilde" value="16785135">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="umacron" value="1022">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="underbar" value="3014">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="underscore" value="95">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <function name="ungrab_keyboard"
+              c:identifier="clutter_ungrab_keyboard"
+              version="0.6">
+      <doc xml:whitespace="preserve">Removes an existing grab of the keyboard.</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+    </function>
+    <function name="ungrab_pointer"
+              c:identifier="clutter_ungrab_pointer"
+              version="0.6">
+      <doc xml:whitespace="preserve">Removes an existing grab of the pointer.</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+    </function>
+    <function name="ungrab_pointer_for_device"
+              c:identifier="clutter_ungrab_pointer_for_device"
+              version="0.8">
+      <doc xml:whitespace="preserve">Removes an existing grab of the pointer events for device @id.</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="id" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a device id</doc>
+          <type name="gint" c:type="gint"/>
+        </parameter>
+      </parameters>
+    </function>
+    <constant name="union" value="2269">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="uogonek" value="1017">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="uparrow" value="2300">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="upcaret" value="2985">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="upleftcorner" value="2540">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="uprightcorner" value="2539">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="upshoe" value="3011">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="upstile" value="3027">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="uptack" value="3022">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="uring" value="505">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <function name="util_next_p2"
+              c:identifier="clutter_util_next_p2"
+              deprecated="1.2">
+      <doc xml:whitespace="preserve">Calculates the nearest power of two, greater than or equal to @a.</doc>
+      <return-value transfer-ownership="none">
+        <doc xml:whitespace="preserve">The nearest power of two, greater or equal to @a.</doc>
+        <type name="gint" c:type="gint"/>
+      </return-value>
+      <parameters>
+        <parameter name="a" transfer-ownership="none">
+          <doc xml:whitespace="preserve">Value to get the next power</doc>
+          <type name="gint" c:type="gint"/>
+        </parameter>
+      </parameters>
+    </function>
+    <constant name="utilde" value="1021">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="v" value="118">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <function name="value_get_color"
+              c:identifier="clutter_value_get_color"
+              version="0.8.4">
+      <doc xml:whitespace="preserve">Gets the #ClutterColor contained in @value.</doc>
+      <return-value transfer-ownership="none">
+        <doc xml:whitespace="preserve">the color inside the passed #GValue</doc>
+        <type name="Color" c:type="ClutterColor*"/>
+      </return-value>
+      <parameters>
+        <parameter name="value" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #GValue initialized to #CLUTTER_TYPE_COLOR</doc>
+          <type name="GObject.Value" c:type="GValue*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="value_get_fixed"
+              c:identifier="clutter_value_get_fixed"
+              version="0.8">
+      <doc xml:whitespace="preserve">Gets the fixed point value stored inside @value.</doc>
+      <return-value transfer-ownership="none">
+        <doc xml:whitespace="preserve">the value inside the passed #GValue</doc>
+        <type name="Cogl.Fixed" c:type="CoglFixed"/>
+      </return-value>
+      <parameters>
+        <parameter name="value" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #GValue initialized to %COGL_TYPE_FIXED</doc>
+          <type name="GObject.Value" c:type="GValue*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="value_get_shader_float"
+              c:identifier="clutter_value_get_shader_float"
+              version="0.8">
+      <doc xml:whitespace="preserve">Retrieves the list of floating point values stored inside
+the passed #GValue. @value must have been initialized with
+%CLUTTER_TYPE_SHADER_FLOAT.
+The returned value is owned by the #GValue and should never
+be modified or freed.</doc>
+      <return-value transfer-ownership="none">
+        <doc xml:whitespace="preserve">the pointer to a list of floating point values.</doc>
+        <type name="gfloat" c:type="gfloat*"/>
+      </return-value>
+      <parameters>
+        <parameter name="value" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #GValue</doc>
+          <type name="GObject.Value" c:type="GValue*"/>
+        </parameter>
+        <parameter name="length" transfer-ownership="none">
+          <doc xml:whitespace="preserve">return location for the number of returned floating point values, or %NULL</doc>
+          <type name="gulong" c:type="gsize*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="value_get_shader_int"
+              c:identifier="clutter_value_get_shader_int"
+              version="0.8">
+      <doc xml:whitespace="preserve">Retrieves the list of integer values stored inside the passed
+#GValue. @value must have been initialized with
+%CLUTTER_TYPE_SHADER_INT.
+The returned value is owned by the #GValue and should never
+be modified or freed.</doc>
+      <return-value transfer-ownership="none">
+        <doc xml:whitespace="preserve">the pointer to a list of integer values.</doc>
+        <type name="gint" c:type="gint*"/>
+      </return-value>
+      <parameters>
+        <parameter name="value" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #GValue</doc>
+          <type name="GObject.Value" c:type="GValue*"/>
+        </parameter>
+        <parameter name="length" transfer-ownership="none">
+          <doc xml:whitespace="preserve">return location for the number of returned integer values, or %NULL</doc>
+          <type name="gulong" c:type="gsize*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="value_get_shader_matrix"
+              c:identifier="clutter_value_get_shader_matrix"
+              version="0.8">
+      <doc xml:whitespace="preserve">Retrieves a matrix of floating point values stored inside
+the passed #GValue. @value must have been initialized with
+%CLUTTER_TYPE_SHADER_MATRIX.
+of floating point values. The returned value is owned by the #GValue and
+should never be modified or freed.</doc>
+      <return-value transfer-ownership="none">
+        <doc xml:whitespace="preserve">the pointer to a matrix</doc>
+        <array length="1" c:type="gfloat*">
+          <type name="gfloat"/>
+        </array>
+      </return-value>
+      <parameters>
+        <parameter name="value" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #GValue</doc>
+          <type name="GObject.Value" c:type="GValue*"/>
+        </parameter>
+        <parameter name="length"
+                   direction="out"
+                   caller-allocates="0"
+                   transfer-ownership="full">
+          <doc xml:whitespace="preserve">return location for the number of returned floating point values, or %NULL</doc>
+          <type name="gulong" c:type="gsize*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="value_get_units"
+              c:identifier="clutter_value_get_units"
+              version="0.8">
+      <doc xml:whitespace="preserve">Gets the #ClutterUnit&lt;!-- --&gt;s contained in @value.</doc>
+      <return-value transfer-ownership="none">
+        <doc xml:whitespace="preserve">the units inside the passed #GValue</doc>
+        <type name="Units" c:type="ClutterUnits*"/>
+      </return-value>
+      <parameters>
+        <parameter name="value" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #GValue initialized to #CLUTTER_TYPE_UNIT</doc>
+          <type name="GObject.Value" c:type="GValue*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="value_set_color"
+              c:identifier="clutter_value_set_color"
+              version="0.8.4">
+      <doc xml:whitespace="preserve">Sets @value to @color.</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="value" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #GValue initialized to #CLUTTER_TYPE_COLOR</doc>
+          <type name="GObject.Value" c:type="GValue*"/>
+        </parameter>
+        <parameter name="color" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the color to set</doc>
+          <type name="Color" c:type="ClutterColor*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="value_set_fixed"
+              c:identifier="clutter_value_set_fixed"
+              version="0.8">
+      <doc xml:whitespace="preserve">Sets @value to @fixed_.</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="value" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #GValue initialized to %COGL_TYPE_FIXED</doc>
+          <type name="GObject.Value" c:type="GValue*"/>
+        </parameter>
+        <parameter name="fixed_" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the fixed point value to set</doc>
+          <type name="Cogl.Fixed" c:type="CoglFixed"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="value_set_shader_float"
+              c:identifier="clutter_value_set_shader_float"
+              version="0.8">
+      <doc xml:whitespace="preserve">Sets @floats as the contents of @value. The passed #GValue
+must have been initialized using %CLUTTER_TYPE_SHADER_FLOAT.</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="value" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #GValue</doc>
+          <type name="GObject.Value" c:type="GValue*"/>
+        </parameter>
+        <parameter name="size" transfer-ownership="none">
+          <doc xml:whitespace="preserve">number of floating point values in @floats</doc>
+          <type name="gint" c:type="gint"/>
+        </parameter>
+        <parameter name="floats" transfer-ownership="none">
+          <doc xml:whitespace="preserve">an array of floating point values</doc>
+          <type name="gfloat" c:type="gfloat*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="value_set_shader_int"
+              c:identifier="clutter_value_set_shader_int"
+              version="0.8">
+      <doc xml:whitespace="preserve">Sets @ints as the contents of @value. The passed #GValue
+must have been initialized using %CLUTTER_TYPE_SHADER_INT.</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="value" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #GValue</doc>
+          <type name="GObject.Value" c:type="GValue*"/>
+        </parameter>
+        <parameter name="size" transfer-ownership="none">
+          <doc xml:whitespace="preserve">number of integer values in @ints</doc>
+          <type name="gint" c:type="gint"/>
+        </parameter>
+        <parameter name="ints" transfer-ownership="none">
+          <doc xml:whitespace="preserve">an array of integer values</doc>
+          <type name="gint" c:type="gint*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="value_set_shader_matrix"
+              c:identifier="clutter_value_set_shader_matrix"
+              version="0.8">
+      <doc xml:whitespace="preserve">Sets @matrix as the contents of @value. The passed #GValue
+must have been initialized using %CLUTTER_TYPE_SHADER_MATRIX.</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="value" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #GValue</doc>
+          <type name="GObject.Value" c:type="GValue*"/>
+        </parameter>
+        <parameter name="size" transfer-ownership="none">
+          <doc xml:whitespace="preserve">number of floating point values in @floats</doc>
+          <type name="gint" c:type="gint"/>
+        </parameter>
+        <parameter name="matrix" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a matrix of floating point values</doc>
+          <type name="gfloat" c:type="gfloat*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="value_set_units"
+              c:identifier="clutter_value_set_units"
+              version="0.8">
+      <doc xml:whitespace="preserve">Sets @value to @units</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="value" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #GValue initialized to #CLUTTER_TYPE_UNIT</doc>
+          <type name="GObject.Value" c:type="GValue*"/>
+        </parameter>
+        <parameter name="units" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the units to set</doc>
+          <type name="Units" c:type="ClutterUnits*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <constant name="variation" value="2241">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="vertbar" value="2552">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="vertconnector" value="2214">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="voicedsound" value="1246">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="vt" value="2537">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="w" value="119">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="wacute" value="16785027">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="wcircumflex" value="16777589">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="wdiaeresis" value="16785029">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="wgrave" value="16785025">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="x" value="120">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="xabovedot" value="16785035">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="y" value="121">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="yacute" value="253">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ybelowdot" value="16785141">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ycircumflex" value="16777591">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ydiaeresis" value="255">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="yen" value="165">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ygrave" value="16785139">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="yhook" value="16785143">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ytilde" value="16785145">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="z" value="122">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="zabovedot" value="447">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="zacute" value="444">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="zcaron" value="446">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="zerosubscript" value="16785536">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="zerosuperior" value="16785520">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="zstroke" value="16777654">
+      <type name="gint" c:type="gint"/>
+    </constant>
+  </namespace>
+</repository>
diff --git a/unmaintained/clutter/authors.txt b/unmaintained/clutter/authors.txt
new file mode 100644 (file)
index 0000000..ce9bcc8
--- /dev/null
@@ -0,0 +1 @@
+Anton Gorenko
\ No newline at end of file
diff --git a/unmaintained/clutter/clutter.factor b/unmaintained/clutter/clutter.factor
new file mode 100644 (file)
index 0000000..a69a857
--- /dev/null
@@ -0,0 +1,5 @@
+! Copyright (C) 2010 Anton Gorenko.
+! See http://factorcode.org/license.txt for BSD license.
+USING: clutter.ffi ;
+IN: clutter
+
diff --git a/unmaintained/clutter/cogl/Cogl-1.0.gir b/unmaintained/clutter/cogl/Cogl-1.0.gir
new file mode 100644 (file)
index 0000000..95d199a
--- /dev/null
@@ -0,0 +1,7107 @@
+<?xml version="1.0"?>
+<!-- This file was automatically generated from C sources - DO NOT EDIT!
+To affect the contents of this file, edit the original C definitions,
+and/or use gtk-doc annotations.  -->
+<repository version="1.2"
+            xmlns="http://www.gtk.org/introspection/core/1.0"
+            xmlns:c="http://www.gtk.org/introspection/c/1.0"
+            xmlns:glib="http://www.gtk.org/introspection/glib/1.0">
+  <include name="GL" version="1.0"/>
+  <include name="GLib" version="2.0"/>
+  <include name="GObject" version="2.0"/>
+  <c:include name="cogl/cogl.h"/>
+  <namespace name="Cogl"
+             version="1.0"
+             shared-library="libclutter-glx-1.0.so.0"
+             c:identifier-prefixes="Cogl"
+             c:symbol-prefixes="cogl">
+    <alias name="Angle" c:type="CoglAngle">
+      <doc xml:whitespace="preserve">Integer representation of an angle such that 1024 corresponds to
+full circle (i.e., 2 * pi).</doc>
+      <type name="gint32" c:type="gint32"/>
+    </alias>
+    <alias name="Fixed" c:type="CoglFixed">
+      <doc xml:whitespace="preserve">Fixed point number using a (16.16) notation.</doc>
+      <type name="gint32" c:type="gint32"/>
+    </alias>
+    <alias name="Handle" c:type="CoglHandle">
+      <doc xml:whitespace="preserve">Type used for storing references to cogl objects, the CoglHandle is
+a fully opaque type without any public data members.</doc>
+      <type name="gpointer" c:type="gpointer"/>
+    </alias>
+    <constant name="AFIRST_BIT" value="64">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="A_BIT" value="16">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <enumeration name="AttributeType"
+                 version="1.0"
+                 glib:type-name="CoglAttributeType"
+                 glib:get-type="cogl_attribute_type_get_type"
+                 c:type="CoglAttributeType">
+      <doc xml:whitespace="preserve">Data types for the components of cogl_vertex_buffer_add()</doc>
+      <member name="byte"
+              value="5120"
+              c:identifier="COGL_ATTRIBUTE_TYPE_BYTE"
+              glib:nick="byte"/>
+      <member name="unsigned_byte"
+              value="5121"
+              c:identifier="COGL_ATTRIBUTE_TYPE_UNSIGNED_BYTE"
+              glib:nick="unsigned-byte"/>
+      <member name="short"
+              value="5122"
+              c:identifier="COGL_ATTRIBUTE_TYPE_SHORT"
+              glib:nick="short"/>
+      <member name="unsigned_short"
+              value="5123"
+              c:identifier="COGL_ATTRIBUTE_TYPE_UNSIGNED_SHORT"
+              glib:nick="unsigned-short"/>
+      <member name="float"
+              value="5126"
+              c:identifier="COGL_ATTRIBUTE_TYPE_FLOAT"
+              glib:nick="float"/>
+    </enumeration>
+    <constant name="BGR_BIT" value="32">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <record name="Bitmap" c:type="CoglBitmap" disguised="1">
+    </record>
+    <enumeration name="BitmapError"
+                 version="1.4"
+                 glib:type-name="CoglBitmapError"
+                 glib:get-type="cogl_bitmap_error_get_type"
+                 c:type="CoglBitmapError"
+                 glib:error-quark="cogl_bitmap_error_quark">
+      <doc xml:whitespace="preserve">Error codes that can be thrown when performing bitmap
+operations. Note that gdk_pixbuf_new_from_file() can also throw
+errors directly from the underlying image loading library. For
+example, if GdkPixbuf is used then errors #GdkPixbufError&lt;!-- --&gt;s
+will be used directly.</doc>
+      <member name="failed"
+              value="0"
+              c:identifier="COGL_BITMAP_ERROR_FAILED"
+              glib:nick="failed"/>
+      <member name="unknown_type"
+              value="1"
+              c:identifier="COGL_BITMAP_ERROR_UNKNOWN_TYPE"
+              glib:nick="unknown-type"/>
+      <member name="corrupt_image"
+              value="2"
+              c:identifier="COGL_BITMAP_ERROR_CORRUPT_IMAGE"
+              glib:nick="corrupt-image"/>
+    </enumeration>
+    <enumeration name="BlendStringError"
+                 version="1.0"
+                 glib:type-name="CoglBlendStringError"
+                 glib:get-type="cogl_blend_string_error_get_type"
+                 c:type="CoglBlendStringError"
+                 glib:error-quark="cogl_blend_string_error_quark">
+      <doc xml:whitespace="preserve">Error enumeration for the blend strings parser</doc>
+      <member name="parse_error"
+              value="0"
+              c:identifier="COGL_BLEND_STRING_ERROR_PARSE_ERROR"
+              glib:nick="parse-error"/>
+      <member name="argument_parse_error"
+              value="1"
+              c:identifier="COGL_BLEND_STRING_ERROR_ARGUMENT_PARSE_ERROR"
+              glib:nick="argument-parse-error"/>
+      <member name="invalid_error"
+              value="2"
+              c:identifier="COGL_BLEND_STRING_ERROR_INVALID_ERROR"
+              glib:nick="invalid-error"/>
+      <member name="gpu_unsupported_error"
+              value="3"
+              c:identifier="COGL_BLEND_STRING_ERROR_GPU_UNSUPPORTED_ERROR"
+              glib:nick="gpu-unsupported-error"/>
+    </enumeration>
+    <record name="Buffer" c:type="CoglBuffer" disguised="1">
+      <method name="get_size_EXP" c:identifier="cogl_buffer_get_size_EXP">
+        <return-value transfer-ownership="none">
+          <type name="guint" c:type="unsigned int"/>
+        </return-value>
+      </method>
+      <method name="get_update_hint_EXP"
+              c:identifier="cogl_buffer_get_update_hint_EXP">
+        <return-value transfer-ownership="none">
+          <type name="BufferUpdateHint" c:type="CoglBufferUpdateHint"/>
+        </return-value>
+      </method>
+      <method name="map_EXP" c:identifier="cogl_buffer_map_EXP">
+        <return-value transfer-ownership="none">
+          <type name="guint8" c:type="guint8*"/>
+        </return-value>
+        <parameters>
+          <parameter name="access" transfer-ownership="none">
+            <type name="BufferAccess" c:type="CoglBufferAccess"/>
+          </parameter>
+          <parameter name="hints" transfer-ownership="none">
+            <type name="BufferMapHint" c:type="CoglBufferMapHint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_data_EXP" c:identifier="cogl_buffer_set_data_EXP">
+        <return-value transfer-ownership="none">
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="offset" transfer-ownership="none">
+            <type name="gulong" c:type="gsize"/>
+          </parameter>
+          <parameter name="data" transfer-ownership="none">
+            <type name="guint8" c:type="guint8*"/>
+          </parameter>
+          <parameter name="size" transfer-ownership="none">
+            <type name="gulong" c:type="gsize"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_update_hint_EXP"
+              c:identifier="cogl_buffer_set_update_hint_EXP">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="hint" transfer-ownership="none">
+            <type name="BufferUpdateHint" c:type="CoglBufferUpdateHint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="unmap_EXP" c:identifier="cogl_buffer_unmap_EXP">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </method>
+    </record>
+    <bitfield name="BufferAccess"
+              version="1.2"
+              glib:type-name="CoglBufferAccess"
+              glib:get-type="cogl_buffer_access_get_type"
+              c:type="CoglBufferAccess">
+      <doc xml:whitespace="preserve">The access hints for cogl_buffer_set_update_hint()</doc>
+      <member name="read"
+              value="1"
+              c:identifier="COGL_BUFFER_ACCESS_READ"
+              glib:nick="read"/>
+      <member name="write"
+              value="2"
+              c:identifier="COGL_BUFFER_ACCESS_WRITE"
+              glib:nick="write"/>
+      <member name="read_write"
+              value="3"
+              c:identifier="COGL_BUFFER_ACCESS_READ_WRITE"
+              glib:nick="read-write"/>
+    </bitfield>
+    <bitfield name="BufferBit"
+              version="1.0"
+              glib:type-name="CoglBufferBit"
+              glib:get-type="cogl_buffer_bit_get_type"
+              c:type="CoglBufferBit">
+      <doc xml:whitespace="preserve">Types of auxiliary buffers</doc>
+      <member name="color"
+              value="1"
+              c:identifier="COGL_BUFFER_BIT_COLOR"
+              glib:nick="color"/>
+      <member name="depth"
+              value="2"
+              c:identifier="COGL_BUFFER_BIT_DEPTH"
+              glib:nick="depth"/>
+      <member name="stencil"
+              value="4"
+              c:identifier="COGL_BUFFER_BIT_STENCIL"
+              glib:nick="stencil"/>
+    </bitfield>
+    <bitfield name="BufferMapHint"
+              version="1.4"
+              glib:type-name="CoglBufferMapHint"
+              glib:get-type="cogl_buffer_map_hint_get_type"
+              c:type="CoglBufferMapHint">
+      <doc xml:whitespace="preserve">all the buffer's contents.
+Hints to Cogl about how you are planning to modify the data once it
+is mapped.</doc>
+      <member name="discard"
+              value="1"
+              c:identifier="COGL_BUFFER_MAP_HINT_DISCARD"
+              glib:nick="discard"/>
+    </bitfield>
+    <bitfield name="BufferTarget"
+              version="0.8"
+              glib:type-name="CoglBufferTarget"
+              glib:get-type="cogl_buffer_target_get_type"
+              c:type="CoglBufferTarget">
+      <doc xml:whitespace="preserve">Target flags for FBOs.</doc>
+      <member name="window_buffer"
+              value="2"
+              c:identifier="COGL_WINDOW_BUFFER"
+              glib:nick="window-buffer"/>
+      <member name="offscreen_buffer"
+              value="4"
+              c:identifier="COGL_OFFSCREEN_BUFFER"
+              glib:nick="offscreen-buffer"/>
+    </bitfield>
+    <enumeration name="BufferUpdateHint"
+                 version="1.2"
+                 glib:type-name="CoglBufferUpdateHint"
+                 glib:get-type="cogl_buffer_update_hint_get_type"
+                 c:type="CoglBufferUpdateHint">
+      <doc xml:whitespace="preserve">The update hint on a buffer allows the user to give some detail on how often
+the buffer data is going to be updated.</doc>
+      <member name="static"
+              value="0"
+              c:identifier="COGL_BUFFER_UPDATE_HINT_STATIC"
+              glib:nick="static"/>
+      <member name="dynamic"
+              value="1"
+              c:identifier="COGL_BUFFER_UPDATE_HINT_DYNAMIC"
+              glib:nick="dynamic"/>
+      <member name="stream"
+              value="2"
+              c:identifier="COGL_BUFFER_UPDATE_HINT_STREAM"
+              glib:nick="stream"/>
+    </enumeration>
+    <record name="Color" c:type="CoglColor" version="1.0">
+      <doc xml:whitespace="preserve">A structure for holding a color definition. The contents of
+the CoglColor structure are private and should never by accessed
+directly.</doc>
+      <field name="red" writable="1">
+        <type name="guint8" c:type="guint8"/>
+      </field>
+      <field name="green" writable="1">
+        <type name="guint8" c:type="guint8"/>
+      </field>
+      <field name="blue" writable="1">
+        <type name="guint8" c:type="guint8"/>
+      </field>
+      <field name="alpha" writable="1">
+        <type name="guint8" c:type="guint8"/>
+      </field>
+      <field name="padding0" writable="1">
+        <type name="guint32" c:type="guint32"/>
+      </field>
+      <field name="padding1" writable="1">
+        <type name="guint32" c:type="guint32"/>
+      </field>
+      <field name="padding2" writable="1">
+        <type name="guint32" c:type="guint32"/>
+      </field>
+      <method name="copy"
+              c:identifier="cogl_color_copy"
+              version="1.0"
+              introspectable="0">
+        <doc xml:whitespace="preserve">Creates a copy of @color
+to free the allocate resources</doc>
+        <return-value>
+          <doc xml:whitespace="preserve">a newly-allocated #CoglColor. Use cogl_color_free()</doc>
+          <type name="Color" c:type="CoglColor*"/>
+        </return-value>
+      </method>
+      <method name="free" c:identifier="cogl_color_free" version="1.0">
+        <doc xml:whitespace="preserve">Frees the resources allocated by cogl_color_new() and cogl_color_copy()</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </method>
+      <method name="get_alpha"
+              c:identifier="cogl_color_get_alpha"
+              version="1.0">
+        <doc xml:whitespace="preserve">Retrieves the alpha channel of @color as a fixed point
+value between 0 and %1.0.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the alpha channel of the passed color</doc>
+          <type name="gfloat" c:type="float"/>
+        </return-value>
+      </method>
+      <method name="get_alpha_byte"
+              c:identifier="cogl_color_get_alpha_byte"
+              version="1.0">
+        <doc xml:whitespace="preserve">Retrieves the alpha channel of @color as a byte value
+between 0 and 255</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the alpha channel of the passed color</doc>
+          <type name="guint8" c:type="unsigned char"/>
+        </return-value>
+      </method>
+      <method name="get_alpha_float"
+              c:identifier="cogl_color_get_alpha_float"
+              version="1.0">
+        <doc xml:whitespace="preserve">Retrieves the alpha channel of @color as a floating point
+value between 0.0 and 1.0</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the alpha channel of the passed color</doc>
+          <type name="gfloat" c:type="float"/>
+        </return-value>
+      </method>
+      <method name="get_blue" c:identifier="cogl_color_get_blue" version="1.0">
+        <doc xml:whitespace="preserve">Retrieves the blue channel of @color as a fixed point
+value between 0 and %1.0.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the blue channel of the passed color</doc>
+          <type name="gfloat" c:type="float"/>
+        </return-value>
+      </method>
+      <method name="get_blue_byte"
+              c:identifier="cogl_color_get_blue_byte"
+              version="1.0">
+        <doc xml:whitespace="preserve">Retrieves the blue channel of @color as a byte value
+between 0 and 255</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the blue channel of the passed color</doc>
+          <type name="guint8" c:type="unsigned char"/>
+        </return-value>
+      </method>
+      <method name="get_blue_float"
+              c:identifier="cogl_color_get_blue_float"
+              version="1.0">
+        <doc xml:whitespace="preserve">Retrieves the blue channel of @color as a floating point
+value between 0.0 and 1.0</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the blue channel of the passed color</doc>
+          <type name="gfloat" c:type="float"/>
+        </return-value>
+      </method>
+      <method name="get_green"
+              c:identifier="cogl_color_get_green"
+              version="1.0">
+        <doc xml:whitespace="preserve">Retrieves the green channel of @color as a fixed point
+value between 0 and %1.0.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the green channel of the passed color</doc>
+          <type name="gfloat" c:type="float"/>
+        </return-value>
+      </method>
+      <method name="get_green_byte"
+              c:identifier="cogl_color_get_green_byte"
+              version="1.0">
+        <doc xml:whitespace="preserve">Retrieves the green channel of @color as a byte value
+between 0 and 255</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the green channel of the passed color</doc>
+          <type name="guint8" c:type="unsigned char"/>
+        </return-value>
+      </method>
+      <method name="get_green_float"
+              c:identifier="cogl_color_get_green_float"
+              version="1.0">
+        <doc xml:whitespace="preserve">Retrieves the green channel of @color as a floating point
+value between 0.0 and 1.0</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the green channel of the passed color</doc>
+          <type name="gfloat" c:type="float"/>
+        </return-value>
+      </method>
+      <method name="get_red" c:identifier="cogl_color_get_red" version="1.0">
+        <doc xml:whitespace="preserve">Retrieves the red channel of @color as a fixed point
+value between 0 and %1.0.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the red channel of the passed color</doc>
+          <type name="gfloat" c:type="float"/>
+        </return-value>
+      </method>
+      <method name="get_red_byte"
+              c:identifier="cogl_color_get_red_byte"
+              version="1.0">
+        <doc xml:whitespace="preserve">Retrieves the red channel of @color as a byte value
+between 0 and 255</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the red channel of the passed color</doc>
+          <type name="guint8" c:type="unsigned char"/>
+        </return-value>
+      </method>
+      <method name="get_red_float"
+              c:identifier="cogl_color_get_red_float"
+              version="1.0">
+        <doc xml:whitespace="preserve">Retrieves the red channel of @color as a floating point
+value between 0.0 and 1.0</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the red channel of the passed color</doc>
+          <type name="gfloat" c:type="float"/>
+        </return-value>
+      </method>
+      <method name="init_from_4f"
+              c:identifier="cogl_color_init_from_4f"
+              version="1.4">
+        <doc xml:whitespace="preserve">Sets the values of the passed channels into a #CoglColor</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="red" transfer-ownership="none">
+            <doc xml:whitespace="preserve">value of the red channel, between 0 and %1.0</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+          <parameter name="green" transfer-ownership="none">
+            <doc xml:whitespace="preserve">value of the green channel, between 0 and %1.0</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+          <parameter name="blue" transfer-ownership="none">
+            <doc xml:whitespace="preserve">value of the blue channel, between 0 and %1.0</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+          <parameter name="alpha" transfer-ownership="none">
+            <doc xml:whitespace="preserve">value of the alpha channel, between 0 and %1.0</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="init_from_4fv"
+              c:identifier="cogl_color_init_from_4fv"
+              version="1.4">
+        <doc xml:whitespace="preserve">Sets the values of the passed channels into a #CoglColor</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="color_array" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a pointer to an array of 4 float color components</doc>
+            <type name="gfloat" c:type="float*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="init_from_4ub"
+              c:identifier="cogl_color_init_from_4ub"
+              version="1.4">
+        <doc xml:whitespace="preserve">Sets the values of the passed channels into a #CoglColor.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="red" transfer-ownership="none">
+            <doc xml:whitespace="preserve">value of the red channel, between 0 and 255</doc>
+            <type name="guint8" c:type="guint8"/>
+          </parameter>
+          <parameter name="green" transfer-ownership="none">
+            <doc xml:whitespace="preserve">value of the green channel, between 0 and 255</doc>
+            <type name="guint8" c:type="guint8"/>
+          </parameter>
+          <parameter name="blue" transfer-ownership="none">
+            <doc xml:whitespace="preserve">value of the blue channel, between 0 and 255</doc>
+            <type name="guint8" c:type="guint8"/>
+          </parameter>
+          <parameter name="alpha" transfer-ownership="none">
+            <doc xml:whitespace="preserve">value of the alpha channel, between 0 and 255</doc>
+            <type name="guint8" c:type="guint8"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="premultiply"
+              c:identifier="cogl_color_premultiply"
+              version="1.0">
+        <doc xml:whitespace="preserve">Converts a non-premultiplied color to a pre-multiplied color. For
+example, semi-transparent red is (1.0, 0, 0, 0.5) when non-premultiplied
+and (0.5, 0, 0, 0.5) when premultiplied.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </method>
+      <method name="set_alpha"
+              c:identifier="cogl_color_set_alpha"
+              version="1.4">
+        <doc xml:whitespace="preserve">Sets the alpha channel of @color to @alpha.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="alpha" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a float value between 0.0f and 1.0f</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_alpha_byte"
+              c:identifier="cogl_color_set_alpha_byte"
+              version="1.4">
+        <doc xml:whitespace="preserve">Sets the alpha channel of @color to @alpha.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="alpha" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a byte value between 0 and 255</doc>
+            <type name="guint8" c:type="unsigned char"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_alpha_float"
+              c:identifier="cogl_color_set_alpha_float"
+              version="1.4">
+        <doc xml:whitespace="preserve">Sets the alpha channel of @color to @alpha.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="alpha" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a float value between 0.0f and 1.0f</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_blue" c:identifier="cogl_color_set_blue" version="1.4">
+        <doc xml:whitespace="preserve">Sets the blue channel of @color to @blue.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="blue" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a float value between 0.0f and 1.0f</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_blue_byte"
+              c:identifier="cogl_color_set_blue_byte"
+              version="1.4">
+        <doc xml:whitespace="preserve">Sets the blue channel of @color to @blue.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="blue" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a byte value between 0 and 255</doc>
+            <type name="guint8" c:type="unsigned char"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_blue_float"
+              c:identifier="cogl_color_set_blue_float"
+              version="1.4">
+        <doc xml:whitespace="preserve">Sets the blue channel of @color to @blue.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="blue" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a float value between 0.0f and 1.0f</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_from_4f"
+              c:identifier="cogl_color_set_from_4f"
+              version="1.0"
+              deprecated="Use cogl_color_init_from_4f instead."
+              deprecated-version="1.4">
+        <doc xml:whitespace="preserve">Sets the values of the passed channels into a #CoglColor</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="red" transfer-ownership="none">
+            <doc xml:whitespace="preserve">value of the red channel, between 0 and %1.0</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+          <parameter name="green" transfer-ownership="none">
+            <doc xml:whitespace="preserve">value of the green channel, between 0 and %1.0</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+          <parameter name="blue" transfer-ownership="none">
+            <doc xml:whitespace="preserve">value of the blue channel, between 0 and %1.0</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+          <parameter name="alpha" transfer-ownership="none">
+            <doc xml:whitespace="preserve">value of the alpha channel, between 0 and %1.0</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_from_4ub"
+              c:identifier="cogl_color_set_from_4ub"
+              version="1.0"
+              deprecated="Use cogl_color_init_from_4ub instead."
+              deprecated-version="1.4">
+        <doc xml:whitespace="preserve">Sets the values of the passed channels into a #CoglColor.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="red" transfer-ownership="none">
+            <doc xml:whitespace="preserve">value of the red channel, between 0 and 255</doc>
+            <type name="guint8" c:type="guint8"/>
+          </parameter>
+          <parameter name="green" transfer-ownership="none">
+            <doc xml:whitespace="preserve">value of the green channel, between 0 and 255</doc>
+            <type name="guint8" c:type="guint8"/>
+          </parameter>
+          <parameter name="blue" transfer-ownership="none">
+            <doc xml:whitespace="preserve">value of the blue channel, between 0 and 255</doc>
+            <type name="guint8" c:type="guint8"/>
+          </parameter>
+          <parameter name="alpha" transfer-ownership="none">
+            <doc xml:whitespace="preserve">value of the alpha channel, between 0 and 255</doc>
+            <type name="guint8" c:type="guint8"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_green"
+              c:identifier="cogl_color_set_green"
+              version="1.4">
+        <doc xml:whitespace="preserve">Sets the green channel of @color to @green.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="green" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a float value between 0.0f and 1.0f</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_green_byte"
+              c:identifier="cogl_color_set_green_byte"
+              version="1.4">
+        <doc xml:whitespace="preserve">Sets the green channel of @color to @green.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="green" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a byte value between 0 and 255</doc>
+            <type name="guint8" c:type="unsigned char"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_green_float"
+              c:identifier="cogl_color_set_green_float"
+              version="1.4">
+        <doc xml:whitespace="preserve">Sets the green channel of @color to @green.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="green" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a float value between 0.0f and 1.0f</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_red" c:identifier="cogl_color_set_red" version="1.4">
+        <doc xml:whitespace="preserve">Sets the red channel of @color to @red.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="red" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a float value between 0.0f and 1.0f</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_red_byte"
+              c:identifier="cogl_color_set_red_byte"
+              version="1.4">
+        <doc xml:whitespace="preserve">Sets the red channel of @color to @red.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="red" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a byte value between 0 and 255</doc>
+            <type name="guint8" c:type="unsigned char"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_red_float"
+              c:identifier="cogl_color_set_red_float"
+              version="1.4">
+        <doc xml:whitespace="preserve">Sets the red channel of @color to @red.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="red" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a float value between 0.0f and 1.0f</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="unpremultiply"
+              c:identifier="cogl_color_unpremultiply"
+              version="1.4">
+        <doc xml:whitespace="preserve">Converts a pre-multiplied color to a non-premultiplied color. For
+example, semi-transparent red is (0.5, 0, 0, 0.5) when premultiplied
+and (1.0, 0, 0, 0.5) when non-premultiplied.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </method>
+    </record>
+    <enumeration name="DepthTestFunction"
+                 glib:type-name="CoglDepthTestFunction"
+                 glib:get-type="cogl_depth_test_function_get_type"
+                 c:type="CoglDepthTestFunction">
+      <doc xml:whitespace="preserve">When using depth testing one of these functions is used to compare
+the depth of an incoming fragment against the depth value currently
+stored in the depth buffer. The function is changed using
+cogl_material_set_depth_test_function().
+The test is only done when depth testing is explicitly enabled. (See
+cogl_material_set_depth_test_enabled())</doc>
+      <member name="never"
+              value="512"
+              c:identifier="COGL_DEPTH_TEST_FUNCTION_NEVER"
+              glib:nick="never"/>
+      <member name="less"
+              value="513"
+              c:identifier="COGL_DEPTH_TEST_FUNCTION_LESS"
+              glib:nick="less"/>
+      <member name="equal"
+              value="514"
+              c:identifier="COGL_DEPTH_TEST_FUNCTION_EQUAL"
+              glib:nick="equal"/>
+      <member name="lequal"
+              value="515"
+              c:identifier="COGL_DEPTH_TEST_FUNCTION_LEQUAL"
+              glib:nick="lequal"/>
+      <member name="greater"
+              value="516"
+              c:identifier="COGL_DEPTH_TEST_FUNCTION_GREATER"
+              glib:nick="greater"/>
+      <member name="notequal"
+              value="517"
+              c:identifier="COGL_DEPTH_TEST_FUNCTION_NOTEQUAL"
+              glib:nick="notequal"/>
+      <member name="gequal"
+              value="518"
+              c:identifier="COGL_DEPTH_TEST_FUNCTION_GEQUAL"
+              glib:nick="gequal"/>
+      <member name="always"
+              value="519"
+              c:identifier="COGL_DEPTH_TEST_FUNCTION_ALWAYS"
+              glib:nick="always"/>
+    </enumeration>
+    <enumeration name="DriverError"
+                 glib:type-name="CoglDriverError"
+                 glib:get-type="cogl_driver_error_get_type"
+                 c:type="CoglDriverError">
+      <member name="unknown_version"
+              value="0"
+              c:identifier="COGL_DRIVER_ERROR_UNKNOWN_VERSION"
+              glib:nick="unknown-version"/>
+      <member name="invalid_version"
+              value="1"
+              c:identifier="COGL_DRIVER_ERROR_INVALID_VERSION"
+              glib:nick="invalid-version"/>
+    </enumeration>
+    <enumeration name="Error"
+                 version="1.4"
+                 glib:type-name="CoglError"
+                 glib:get-type="cogl_error_get_type"
+                 c:type="CoglError">
+      <doc xml:whitespace="preserve">Error enumeration for Cogl
+The @COGL_ERROR_UNSUPPORTED error can be thrown for a variety of
+reasons. For example:
+&lt;itemizedlist&gt;
+&lt;listitem&gt;&lt;para&gt;You've tried to use a feature that is not
+advertised by cogl_get_features(). This could happen if you create
+a non-sliced texture with a non-power-of-two size when
+%COGL_FEATURE_TEXTURE_NPOT is not advertised.&lt;/para&gt;&lt;/listitem&gt;
+&lt;listitem&gt;&lt;para&gt;The GPU can not handle the configuration you have
+requested. An example might be if you try to use too many texture
+layers in a single #CoglMaterial&lt;/para&gt;&lt;/listitem&gt;
+&lt;listitem&gt;&lt;para&gt;The driver does not support some
+configuration.&lt;/para&gt;&lt;/listiem&gt;
+&lt;/itemizedlist&gt;
+Currently this is only used by Cogl API marked as experimental so
+this enum should also be considered experimental.</doc>
+      <member name="unsupported"
+              value="0"
+              c:identifier="COGL_ERROR_UNSUPPORTED"
+              glib:nick="unsupported"/>
+    </enumeration>
+    <constant name="FIXED_0_5" value="32768">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="FIXED_1" value="1">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="FIXED_2_PI" value="411775">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="FIXED_BITS" value="32">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="FIXED_EPSILON" value="1">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="FIXED_MAX" value="2147483647">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="FIXED_MIN" value="-2147483648">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="FIXED_PI" value="205887">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="FIXED_PI_2" value="102944">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="FIXED_PI_4" value="51472">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="FIXED_Q" value="-16">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <bitfield name="FeatureFlags"
+              version="0.8"
+              glib:type-name="CoglFeatureFlags"
+              glib:get-type="cogl_feature_flags_get_type"
+              c:type="CoglFeatureFlags">
+      <doc xml:whitespace="preserve">Flags for the supported features.</doc>
+      <member name="texture_rectangle"
+              value="2"
+              c:identifier="COGL_FEATURE_TEXTURE_RECTANGLE"
+              glib:nick="texture-rectangle"/>
+      <member name="texture_npot"
+              value="4"
+              c:identifier="COGL_FEATURE_TEXTURE_NPOT"
+              glib:nick="texture-npot"/>
+      <member name="texture_yuv"
+              value="8"
+              c:identifier="COGL_FEATURE_TEXTURE_YUV"
+              glib:nick="texture-yuv"/>
+      <member name="texture_read_pixels"
+              value="16"
+              c:identifier="COGL_FEATURE_TEXTURE_READ_PIXELS"
+              glib:nick="texture-read-pixels"/>
+      <member name="shaders_glsl"
+              value="32"
+              c:identifier="COGL_FEATURE_SHADERS_GLSL"
+              glib:nick="shaders-glsl"/>
+      <member name="offscreen"
+              value="64"
+              c:identifier="COGL_FEATURE_OFFSCREEN"
+              glib:nick="offscreen"/>
+      <member name="offscreen_multisample"
+              value="128"
+              c:identifier="COGL_FEATURE_OFFSCREEN_MULTISAMPLE"
+              glib:nick="offscreen-multisample"/>
+      <member name="offscreen_blit"
+              value="256"
+              c:identifier="COGL_FEATURE_OFFSCREEN_BLIT"
+              glib:nick="offscreen-blit"/>
+      <member name="four_clip_planes"
+              value="512"
+              c:identifier="COGL_FEATURE_FOUR_CLIP_PLANES"
+              glib:nick="four-clip-planes"/>
+      <member name="stencil_buffer"
+              value="1024"
+              c:identifier="COGL_FEATURE_STENCIL_BUFFER"
+              glib:nick="stencil-buffer"/>
+      <member name="vbos"
+              value="2048"
+              c:identifier="COGL_FEATURE_VBOS"
+              glib:nick="vbos"/>
+      <member name="pbos"
+              value="4096"
+              c:identifier="COGL_FEATURE_PBOS"
+              glib:nick="pbos"/>
+      <member name="unsigned_int_indices"
+              value="8192"
+              c:identifier="COGL_FEATURE_UNSIGNED_INT_INDICES"
+              glib:nick="unsigned-int-indices"/>
+      <member name="depth_range"
+              value="16384"
+              c:identifier="COGL_FEATURE_DEPTH_RANGE"
+              glib:nick="depth-range"/>
+      <member name="texture_npot_basic"
+              value="32768"
+              c:identifier="COGL_FEATURE_TEXTURE_NPOT_BASIC"
+              glib:nick="texture-npot-basic"/>
+      <member name="texture_npot_mipmap"
+              value="65536"
+              c:identifier="COGL_FEATURE_TEXTURE_NPOT_MIPMAP"
+              glib:nick="texture-npot-mipmap"/>
+      <member name="texture_npot_repeat"
+              value="131072"
+              c:identifier="COGL_FEATURE_TEXTURE_NPOT_REPEAT"
+              glib:nick="texture-npot-repeat"/>
+      <member name="point_sprite"
+              value="262144"
+              c:identifier="COGL_FEATURE_POINT_SPRITE"
+              glib:nick="point-sprite"/>
+      <member name="texture_3d"
+              value="524288"
+              c:identifier="COGL_FEATURE_TEXTURE_3D"
+              glib:nick="texture-3d"/>
+      <member name="shaders_arbfp"
+              value="1048576"
+              c:identifier="COGL_FEATURE_SHADERS_ARBFP"
+              glib:nick="shaders-arbfp"/>
+    </bitfield>
+    <enumeration name="FogMode"
+                 version="1.0"
+                 glib:type-name="CoglFogMode"
+                 glib:get-type="cogl_fog_mode_get_type"
+                 c:type="CoglFogMode">
+      <doc xml:whitespace="preserve">The fog mode determines the equation used to calculate the fogging blend
+factor while fogging is enabled. The simplest %COGL_FOG_MODE_LINEAR mode
+determines f as:
+|[
+f = end - eye_distance / end - start
+]|
+Where eye_distance is the distance of the current fragment in eye
+coordinates from the origin.</doc>
+      <member name="linear"
+              value="0"
+              c:identifier="COGL_FOG_MODE_LINEAR"
+              glib:nick="linear"/>
+      <member name="exponential"
+              value="1"
+              c:identifier="COGL_FOG_MODE_EXPONENTIAL"
+              glib:nick="exponential"/>
+      <member name="exponential_squared"
+              value="2"
+              c:identifier="COGL_FOG_MODE_EXPONENTIAL_SQUARED"
+              glib:nick="exponential-squared"/>
+    </enumeration>
+    <record name="Framebuffer" c:type="CoglFramebuffer" disguised="1">
+    </record>
+    <callback name="FuncPtr" c:type="CoglFuncPtr">
+      <doc xml:whitespace="preserve">The type used by cogl for function pointers, note that this type
+is used as a generic catch-all cast for function pointers and the
+actual arguments and return type may be different.</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+    </callback>
+    <enumeration name="IndicesType"
+                 glib:type-name="CoglIndicesType"
+                 glib:get-type="cogl_indices_type_get_type"
+                 c:type="CoglIndicesType">
+      <doc xml:whitespace="preserve">You should aim to use the smallest data type that gives you enough
+range, since it reduces the size of your index array and can help
+reduce the demand on memory bandwidth.
+Note that %COGL_INDICES_TYPE_UNSIGNED_INT is only supported if the
+%COGL_FEATURE_UNSIGNED_INT_INDICES feature is available. This
+should always be available on OpenGL but on OpenGL ES it will only
+be available if the GL_OES_element_index_uint extension is
+advertized.</doc>
+      <member name="byte"
+              value="0"
+              c:identifier="COGL_INDICES_TYPE_UNSIGNED_BYTE"
+              glib:nick="byte"/>
+      <member name="short"
+              value="1"
+              c:identifier="COGL_INDICES_TYPE_UNSIGNED_SHORT"
+              glib:nick="short"/>
+      <member name="int"
+              value="2"
+              c:identifier="COGL_INDICES_TYPE_UNSIGNED_INT"
+              glib:nick="int"/>
+    </enumeration>
+    <record name="Material" c:type="CoglMaterial" disguised="1">
+      <method name="copy"
+              c:identifier="cogl_material_copy"
+              version="1.2"
+              introspectable="0">
+        <doc xml:whitespace="preserve">Creates a new material with the configuration copied from the
+source material.
+We would strongly advise developers to always aim to use
+cogl_material_copy() instead of cogl_material_new() whenever there will
+be any similarity between two materials. Copying a material helps Cogl
+keep track of a materials ancestry which we may use to help minimize GPU
+state changes.</doc>
+        <return-value>
+          <doc xml:whitespace="preserve">a pointer to the newly allocated #CoglMaterial</doc>
+          <type name="Material" c:type="CoglMaterial*"/>
+        </return-value>
+      </method>
+      <method name="foreach_layer"
+              c:identifier="cogl_material_foreach_layer"
+              version="1.4"
+              introspectable="0">
+        <doc xml:whitespace="preserve">Iterates all the layer indices of the given @material.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="callback" transfer-ownership="none" closure="1">
+            <doc xml:whitespace="preserve">A #CoglMaterialLayerCallback to be called for each layer index</doc>
+            <type name="MaterialLayerCallback"
+                  c:type="CoglMaterialLayerCallback"/>
+          </parameter>
+          <parameter name="user_data" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Private data that will be passed to the callback</doc>
+            <type name="gpointer" c:type="void*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_ambient"
+              c:identifier="cogl_material_get_ambient"
+              version="1.0">
+        <doc xml:whitespace="preserve">Retrieves the current ambient color for @material</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="ambient" transfer-ownership="none">
+            <doc xml:whitespace="preserve">The location to store the ambient color</doc>
+            <type name="Color" c:type="CoglColor*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_color"
+              c:identifier="cogl_material_get_color"
+              version="1.0">
+        <doc xml:whitespace="preserve">Retrieves the current material color.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="color"
+                     direction="out"
+                     caller-allocates="1"
+                     transfer-ownership="none">
+            <doc xml:whitespace="preserve">The location to store the color</doc>
+            <type name="Color" c:type="CoglColor*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_depth_range"
+              c:identifier="cogl_material_get_depth_range">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="near_val" transfer-ownership="none">
+            <type name="gfloat" c:type="float*"/>
+          </parameter>
+          <parameter name="far_val" transfer-ownership="none">
+            <type name="gfloat" c:type="float*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_depth_test_enabled"
+              c:identifier="cogl_material_get_depth_test_enabled"
+              version="1.4">
+        <doc xml:whitespace="preserve">Gets the current depth test enabled state as previously set by
+cogl_material_set_depth_test_enabled().</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">The material's current depth test enabled state.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+      </method>
+      <method name="get_depth_test_function"
+              c:identifier="cogl_material_get_depth_test_function"
+              version="1.4">
+        <doc xml:whitespace="preserve">Gets the current depth test enable state as previously set via
+cogl_material_set_depth_test_enabled().</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">The current depth test enable state.</doc>
+          <type name="DepthTestFunction" c:type="CoglDepthTestFunction"/>
+        </return-value>
+      </method>
+      <method name="get_depth_writing_enabled"
+              c:identifier="cogl_material_get_depth_writing_enabled"
+              version="1.4">
+        <doc xml:whitespace="preserve">Gets the depth writing enable state as set by the corresponding
+cogl_material_set_depth_writing_enabled.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">The current depth writing enable state</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+      </method>
+      <method name="get_diffuse"
+              c:identifier="cogl_material_get_diffuse"
+              version="1.0">
+        <doc xml:whitespace="preserve">Retrieves the current diffuse color for @material</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="diffuse" transfer-ownership="none">
+            <doc xml:whitespace="preserve">The location to store the diffuse color</doc>
+            <type name="Color" c:type="CoglColor*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_emission"
+              c:identifier="cogl_material_get_emission"
+              version="1.0">
+        <doc xml:whitespace="preserve">Retrieves the materials current emission color.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="emission" transfer-ownership="none">
+            <doc xml:whitespace="preserve">The location to store the emission color</doc>
+            <type name="Color" c:type="CoglColor*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_layer_point_sprite_coords_enabled"
+              c:identifier="cogl_material_get_layer_point_sprite_coords_enabled"
+              version="1.4">
+        <doc xml:whitespace="preserve">Gets whether point sprite coordinate generation is enabled for this
+texture layer.
+point sprite coordinates.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">whether the texture coordinates will be replaced with</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="layer_index" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the layer number to check.</doc>
+            <type name="gint" c:type="int"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_layers" c:identifier="cogl_material_get_layers">
+        <doc xml:whitespace="preserve">This function lets you access a material's internal list of layers
+for iteration.
+&lt;note&gt;You should avoid using this API if possible since it was only
+made public by mistake and will be deprecated when we have
+suitable alternative.&lt;/note&gt;
+&lt;note&gt;It's important to understand that the list returned may not
+remain valid if you modify the material or any of the layers in any
+way and so you would have to re-get the list in that
+situation.&lt;/note&gt;
+list of #CoglMaterialLayer&lt;!-- --&gt;'s that can be passed to the
+cogl_material_layer_* functions. The list is owned by Cogl and it
+should not be modified or freed</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">A</doc>
+          <type name="GLib.List" c:type="GList*">
+            <type name="MaterialLayer"/>
+          </type>
+        </return-value>
+      </method>
+      <method name="get_n_layers"
+              c:identifier="cogl_material_get_n_layers"
+              version="1.0">
+        <doc xml:whitespace="preserve">Retrieves the number of layers defined for the given @material</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the number of layers</doc>
+          <type name="gint" c:type="int"/>
+        </return-value>
+      </method>
+      <method name="get_shininess"
+              c:identifier="cogl_material_get_shininess"
+              version="1.0">
+        <doc xml:whitespace="preserve">Retrieves the materials current emission color.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">The materials current shininess value</doc>
+          <type name="gfloat" c:type="float"/>
+        </return-value>
+      </method>
+      <method name="get_specular"
+              c:identifier="cogl_material_get_specular"
+              version="1.0">
+        <doc xml:whitespace="preserve">Retrieves the materials current specular color.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="specular" transfer-ownership="none">
+            <doc xml:whitespace="preserve">The location to store the specular color</doc>
+            <type name="Color" c:type="CoglColor*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_user_program"
+              c:identifier="cogl_material_get_user_program"
+              version="1.4"
+              introspectable="0">
+        <doc xml:whitespace="preserve">Queries what user program has been associated with the given</doc>
+        <return-value>
+          <doc xml:whitespace="preserve">The current user program or %COGL_INVALID_HANDLE.</doc>
+          <type name="Handle" c:type="CoglHandle"/>
+        </return-value>
+      </method>
+      <method name="remove_layer" c:identifier="cogl_material_remove_layer">
+        <doc xml:whitespace="preserve">This function removes a layer from your material</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="layer_index" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Specifies the layer you want to remove</doc>
+            <type name="gint" c:type="int"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_alpha_test_function"
+              c:identifier="cogl_material_set_alpha_test_function"
+              version="1.0">
+        <doc xml:whitespace="preserve">Before a primitive is blended with the framebuffer, it goes through an
+alpha test stage which lets you discard fragments based on the current
+alpha value. This function lets you change the function used to evaluate
+the alpha channel, and thus determine which fragments are discarded
+and which continue on to the blending stage.
+The default is %COGL_MATERIAL_ALPHA_FUNC_ALWAYS</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="alpha_func" transfer-ownership="none">
+            <doc xml:whitespace="preserve">A @CoglMaterialAlphaFunc constant</doc>
+            <type name="MaterialAlphaFunc" c:type="CoglMaterialAlphaFunc"/>
+          </parameter>
+          <parameter name="alpha_reference" transfer-ownership="none">
+            <doc xml:whitespace="preserve">A reference point that the chosen alpha function uses to compare incoming fragments to.</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_ambient"
+              c:identifier="cogl_material_set_ambient"
+              version="1.0">
+        <doc xml:whitespace="preserve">Sets the material's ambient color, in the standard OpenGL lighting
+model. The ambient color affects the overall color of the object.
+Since the diffuse color will be intense when the light hits the surface
+directly, the ambient will be most apparent where the light hits at a
+slant.
+The default value is (0.2, 0.2, 0.2, 1.0)</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="ambient" transfer-ownership="none">
+            <doc xml:whitespace="preserve">The components of the desired ambient color</doc>
+            <type name="Color" c:type="CoglColor*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_ambient_and_diffuse"
+              c:identifier="cogl_material_set_ambient_and_diffuse"
+              version="1.0">
+        <doc xml:whitespace="preserve">Conveniently sets the diffuse and ambient color of @material at the same
+time. See cogl_material_set_ambient() and cogl_material_set_diffuse().
+The default ambient color is (0.2, 0.2, 0.2, 1.0)
+The default diffuse color is (0.8, 0.8, 0.8, 1.0)</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="color" transfer-ownership="none">
+            <doc xml:whitespace="preserve">The components of the desired ambient and diffuse colors</doc>
+            <type name="Color" c:type="CoglColor*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_blend"
+              c:identifier="cogl_material_set_blend"
+              version="1.0"
+              throws="1">
+        <doc xml:whitespace="preserve">If not already familiar; please refer &lt;link linkend="cogl-Blend-Strings"&gt;here&lt;/link&gt;
+for an overview of what blend strings are, and their syntax.
+Blending occurs after the alpha test function, and combines fragments with
+the framebuffer.
+Currently the only blend function Cogl exposes is ADD(). So any valid
+blend statements will be of the form:
+|[
+&amp;lt;channel-mask&amp;gt;=ADD(SRC_COLOR*(&amp;lt;factor&amp;gt;), DST_COLOR*(&amp;lt;factor&amp;gt;))
+]|
+&lt;warning&gt;The brackets around blend factors are currently not
+optional!&lt;/warning&gt;
+This is the list of source-names usable as blend factors:
+&lt;itemizedlist&gt;
+&lt;listitem&gt;&lt;para&gt;SRC_COLOR: The color of the in comming fragment&lt;/para&gt;&lt;/listitem&gt;
+&lt;listitem&gt;&lt;para&gt;DST_COLOR: The color of the framebuffer&lt;/para&gt;&lt;/listitem&gt;
+&lt;listitem&gt;&lt;para&gt;CONSTANT: The constant set via cogl_material_set_blend_constant()&lt;/para&gt;&lt;/listitem&gt;
+&lt;/itemizedlist&gt;
+The source names can be used according to the
+&lt;link linkend="cogl-Blend-String-syntax"&gt;color-source and factor syntax&lt;/link&gt;,
+so for example "(1-SRC_COLOR[A])" would be a valid factor, as would
+"(CONSTANT[RGB])"
+These can also be used as factors:
+&lt;itemizedlist&gt;
+&lt;listitem&gt;0: (0, 0, 0, 0)&lt;/listitem&gt;
+&lt;listitem&gt;1: (1, 1, 1, 1)&lt;/listitem&gt;
+&lt;listitem&gt;SRC_ALPHA_SATURATE_FACTOR: (f,f,f,1) where f = MIN(SRC_COLOR[A],1-DST_COLOR[A])&lt;/listitem&gt;
+&lt;/itemizedlist&gt;
+&lt;note&gt;Remember; all color components are normalized to the range [0, 1]
+before computing the result of blending.&lt;/note&gt;
+&lt;example id="cogl-Blend-Strings-blend-unpremul"&gt;
+&lt;title&gt;Blend Strings/1&lt;/title&gt;
+&lt;para&gt;Blend a non-premultiplied source over a destination with
+premultiplied alpha:&lt;/para&gt;
+&lt;programlisting&gt;
+"RGB = ADD(SRC_COLOR*(SRC_COLOR[A]), DST_COLOR*(1-SRC_COLOR[A]))"
+"A   = ADD(SRC_COLOR, DST_COLOR*(1-SRC_COLOR[A]))"
+&lt;/programlisting&gt;
+&lt;/example&gt;
+&lt;example id="cogl-Blend-Strings-blend-premul"&gt;
+&lt;title&gt;Blend Strings/2&lt;/title&gt;
+&lt;para&gt;Blend a premultiplied source over a destination with
+premultiplied alpha&lt;/para&gt;
+&lt;programlisting&gt;
+"RGBA = ADD(SRC_COLOR, DST_COLOR*(1-SRC_COLOR[A]))"
+&lt;/programlisting&gt;
+&lt;/example&gt;
+The default blend string is:
+|[
+RGBA = ADD (SRC_COLOR, DST_COLOR*(1-SRC_COLOR[A]))
+]|
+That gives normal alpha-blending when the calculated color for the material
+is in premultiplied form.
+described blending is supported by the underlying driver/hardware. If
+there was an error, %FALSE is returned and @error is set accordingly (if
+present).</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if the blend string was successfully parsed, and the</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="blend_string" transfer-ownership="none">
+            <doc xml:whitespace="preserve">A &lt;link linkend="cogl-Blend-Strings"&gt;Cogl blend string&lt;/link&gt; describing the desired blend function.</doc>
+            <type name="utf8" c:type="char*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_blend_constant"
+              c:identifier="cogl_material_set_blend_constant"
+              version="1.0">
+        <doc xml:whitespace="preserve">When blending is setup to reference a CONSTANT blend factor then
+blending will depend on the constant set with this function.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="constant_color" transfer-ownership="none">
+            <doc xml:whitespace="preserve">The constant color you want</doc>
+            <type name="Color" c:type="CoglColor*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_color"
+              c:identifier="cogl_material_set_color"
+              version="1.0">
+        <doc xml:whitespace="preserve">Sets the basic color of the material, used when no lighting is enabled.
+Note that if you don't add any layers to the material then the color
+will be blended unmodified with the destination; the default blend
+semi-transparent red. See cogl_color_premultiply().
+The default value is (1.0, 1.0, 1.0, 1.0)</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="color" transfer-ownership="none">
+            <doc xml:whitespace="preserve">The components of the color</doc>
+            <type name="Color" c:type="CoglColor*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_color4f"
+              c:identifier="cogl_material_set_color4f"
+              version="1.0">
+        <doc xml:whitespace="preserve">Sets the basic color of the material, used when no lighting is enabled.
+The default value is (1.0, 1.0, 1.0, 1.0)</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="red" transfer-ownership="none">
+            <doc xml:whitespace="preserve">The red component</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+          <parameter name="green" transfer-ownership="none">
+            <doc xml:whitespace="preserve">The green component</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+          <parameter name="blue" transfer-ownership="none">
+            <doc xml:whitespace="preserve">The blue component</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+          <parameter name="alpha" transfer-ownership="none">
+            <doc xml:whitespace="preserve">The alpha component</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_color4ub"
+              c:identifier="cogl_material_set_color4ub"
+              version="1.0">
+        <doc xml:whitespace="preserve">Sets the basic color of the material, used when no lighting is enabled.
+The default value is (0xff, 0xff, 0xff, 0xff)</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="red" transfer-ownership="none">
+            <doc xml:whitespace="preserve">The red component</doc>
+            <type name="guint8" c:type="guint8"/>
+          </parameter>
+          <parameter name="green" transfer-ownership="none">
+            <doc xml:whitespace="preserve">The green component</doc>
+            <type name="guint8" c:type="guint8"/>
+          </parameter>
+          <parameter name="blue" transfer-ownership="none">
+            <doc xml:whitespace="preserve">The blue component</doc>
+            <type name="guint8" c:type="guint8"/>
+          </parameter>
+          <parameter name="alpha" transfer-ownership="none">
+            <doc xml:whitespace="preserve">The alpha component</doc>
+            <type name="guint8" c:type="guint8"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_depth_range"
+              c:identifier="cogl_material_set_depth_range"
+              version="1.4"
+              throws="1">
+        <doc xml:whitespace="preserve">Sets the range to map depth values in normalized device coordinates
+to before writing out to a depth buffer.
+After your geometry has be transformed, clipped and had perspective
+division applied placing it in normalized device
+coordinates all depth values between the near and far z clipping
+planes are in the range -1 to 1. Before writing any depth value to
+the depth buffer though the value is mapped into the range [0, 1].
+With this function you can change the range which depth values are
+mapped too although the range must still lye within the range [0,
+1].
+If your driver does not support this feature (for example you are
+using GLES 1 drivers) then this will return %FALSE and set an error
+if @error isn't NULL. You can check ahead of time for the
+%COGL_FEATURE_DEPTH_RANGE feature with cogl_features_available() to
+know if this function will succeed.
+By default normalized device coordinate depth values are mapped to
+the full range of depth buffer values, [0, 1].</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if driver support is available else %FALSE.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="near_val" transfer-ownership="none">
+            <doc xml:whitespace="preserve">The near component of the desired depth range which will be clamped to the range [0, 1]</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+          <parameter name="far_val" transfer-ownership="none">
+            <doc xml:whitespace="preserve">The far component of the desired depth range which will be clamped to the range [0, 1]</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_depth_test_enabled"
+              c:identifier="cogl_material_set_depth_test_enabled"
+              version="1.4">
+        <doc xml:whitespace="preserve">Enables or disables depth testing according to the value of
+If depth testing is enable then the #CoglDepthTestFunction set
+using cogl_material_set_depth_test_function() us used to evaluate
+the depth value of incoming fragments against the corresponding
+value stored in the current depth buffer, and if the test passes
+then the fragments depth value is used to update the depth buffer.
+(unless you have disabled depth writing via
+cogl_material_set_depth_writing_enabled ())
+By default depth testing is disabled.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="enable" transfer-ownership="none">
+            <doc xml:whitespace="preserve">The enable state you want</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_depth_test_function"
+              c:identifier="cogl_material_set_depth_test_function"
+              version="1.4">
+        <doc xml:whitespace="preserve">Sets the #CoglDepthTestFunction used to compare the depth value of
+an incoming fragment against the corresponding value in the current
+depth buffer.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="function" transfer-ownership="none">
+            <doc xml:whitespace="preserve">The #CoglDepthTestFunction to set</doc>
+            <type name="DepthTestFunction" c:type="CoglDepthTestFunction"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_depth_writing_enabled"
+              c:identifier="cogl_material_set_depth_writing_enabled"
+              version="1.4">
+        <doc xml:whitespace="preserve">Enables or disables depth buffer writing according to the value of
+between a fragment's depth value and the corresponding depth buffer
+value passes then the fragment's depth is written to the depth
+buffer unless writing is disabled here.
+By default depth writing is enabled</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="enable" transfer-ownership="none">
+            <doc xml:whitespace="preserve">The enable state you want</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_diffuse"
+              c:identifier="cogl_material_set_diffuse"
+              version="1.0">
+        <doc xml:whitespace="preserve">Sets the material's diffuse color, in the standard OpenGL lighting
+model. The diffuse color is most intense where the light hits the
+surface directly - perpendicular to the surface.
+The default value is (0.8, 0.8, 0.8, 1.0)</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="diffuse" transfer-ownership="none">
+            <doc xml:whitespace="preserve">The components of the desired diffuse color</doc>
+            <type name="Color" c:type="CoglColor*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_emission"
+              c:identifier="cogl_material_set_emission"
+              version="1.0">
+        <doc xml:whitespace="preserve">Sets the material's emissive color, in the standard OpenGL lighting
+model. It will look like the surface is a light source emitting this
+color.
+The default value is (0.0, 0.0, 0.0, 1.0)</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="emission" transfer-ownership="none">
+            <doc xml:whitespace="preserve">The components of the desired emissive color</doc>
+            <type name="Color" c:type="CoglColor*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_layer"
+              c:identifier="cogl_material_set_layer"
+              version="1.0">
+        <doc xml:whitespace="preserve">In addition to the standard OpenGL lighting model a Cogl material may have
+one or more layers comprised of textures that can be blended together in
+order, with a number of different texture combine modes. This function
+defines a new texture layer.
+The index values of multiple layers do not have to be consecutive; it is
+only their relative order that is important.
+&lt;note&gt;In the future, we may define other types of material layers, such
+as purely GLSL based layers.&lt;/note&gt;</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="layer_index" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the index of the layer</doc>
+            <type name="gint" c:type="int"/>
+          </parameter>
+          <parameter name="texture" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #CoglHandle for the layer object</doc>
+            <type name="Handle" c:type="CoglHandle"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_layer_combine"
+              c:identifier="cogl_material_set_layer_combine"
+              version="1.0"
+              throws="1">
+        <doc xml:whitespace="preserve">If not already familiar; you can refer
+&lt;link linkend="cogl-Blend-Strings"&gt;here&lt;/link&gt; for an overview of what blend
+strings are and there syntax.
+These are all the functions available for texture combining:
+&lt;itemizedlist&gt;
+&lt;listitem&gt;REPLACE(arg0) = arg0&lt;/listitem&gt;
+&lt;listitem&gt;MODULATE(arg0, arg1) = arg0 x arg1&lt;/listitem&gt;
+&lt;listitem&gt;ADD(arg0, arg1) = arg0 + arg1&lt;/listitem&gt;
+&lt;listitem&gt;ADD_SIGNED(arg0, arg1) = arg0 + arg1 - 0.5&lt;/listitem&gt;
+&lt;listitem&gt;INTERPOLATE(arg0, arg1, arg2) = arg0 x arg2 + arg1 x (1 - arg2)&lt;/listitem&gt;
+&lt;listitem&gt;SUBTRACT(arg0, arg1) = arg0 - arg1&lt;/listitem&gt;
+&lt;listitem&gt;
+&lt;programlisting&gt;
+DOT3_RGB(arg0, arg1) = 4 x ((arg0[R] - 0.5)) * (arg1[R] - 0.5) +
+(arg0[G] - 0.5)) * (arg1[G] - 0.5) +
+(arg0[B] - 0.5)) * (arg1[B] - 0.5))
+&lt;/programlisting&gt;
+&lt;/listitem&gt;
+&lt;listitem&gt;
+&lt;programlisting&gt;
+DOT3_RGBA(arg0, arg1) = 4 x ((arg0[R] - 0.5)) * (arg1[R] - 0.5) +
+(arg0[G] - 0.5)) * (arg1[G] - 0.5) +
+(arg0[B] - 0.5)) * (arg1[B] - 0.5))
+&lt;/programlisting&gt;
+&lt;/listitem&gt;
+&lt;/itemizedlist&gt;
+Refer to the
+&lt;link linkend="cogl-Blend-String-syntax"&gt;color-source syntax&lt;/link&gt; for
+describing the arguments. The valid source names for texture combining
+are:
+&lt;variablelist&gt;
+&lt;varlistentry&gt;
+&lt;term&gt;TEXTURE&lt;/term&gt;
+&lt;listitem&gt;Use the color from the current texture layer&lt;/listitem&gt;
+&lt;/varlistentry&gt;
+&lt;varlistentry&gt;
+&lt;term&gt;TEXTURE_0, TEXTURE_1, etc&lt;/term&gt;
+&lt;listitem&gt;Use the color from the specified texture layer&lt;/listitem&gt;
+&lt;/varlistentry&gt;
+&lt;varlistentry&gt;
+&lt;term&gt;CONSTANT&lt;/term&gt;
+&lt;listitem&gt;Use the color from the constant given with
+cogl_material_set_layer_constant()&lt;/listitem&gt;
+&lt;/varlistentry&gt;
+&lt;varlistentry&gt;
+&lt;term&gt;PRIMARY&lt;/term&gt;
+&lt;listitem&gt;Use the color of the material as set with
+cogl_material_set_color()&lt;/listitem&gt;
+&lt;/varlistentry&gt;
+&lt;varlistentry&gt;
+&lt;term&gt;PREVIOUS&lt;/term&gt;
+&lt;listitem&gt;Either use the texture color from the previous layer, or
+if this is layer 0, use the color of the material as set with
+cogl_material_set_color()&lt;/listitem&gt;
+&lt;/varlistentry&gt;
+&lt;/variablelist&gt;
+&lt;refsect2 id="cogl-Layer-Combine-Examples"&gt;
+&lt;title&gt;Layer Combine Examples&lt;/title&gt;
+&lt;para&gt;This is effectively what the default blending is:&lt;/para&gt;
+&lt;informalexample&gt;&lt;programlisting&gt;
+RGBA = MODULATE (PREVIOUS, TEXTURE)
+&lt;/programlisting&gt;&lt;/informalexample&gt;
+&lt;para&gt;This could be used to cross-fade between two images, using
+the alpha component of a constant as the interpolator. The constant
+color is given by calling cogl_material_set_layer_constant.&lt;/para&gt;
+&lt;informalexample&gt;&lt;programlisting&gt;
+RGBA = INTERPOLATE (PREVIOUS, TEXTURE, CONSTANT[A])
+&lt;/programlisting&gt;&lt;/informalexample&gt;
+&lt;/refsect2&gt;
+&lt;note&gt;You can't give a multiplication factor for arguments as you can
+with blending.&lt;/note&gt;
+described texture combining is supported by the underlying driver and
+or hardware. On failure, %FALSE is returned and @error is set</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if the blend string was successfully parsed, and the</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="layer_index" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Specifies the layer you want define a combine function for</doc>
+            <type name="gint" c:type="int"/>
+          </parameter>
+          <parameter name="blend_string" transfer-ownership="none">
+            <doc xml:whitespace="preserve">A &lt;link linkend="cogl-Blend-Strings"&gt;Cogl blend string&lt;/link&gt; describing the desired texture combine function.</doc>
+            <type name="utf8" c:type="char*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_layer_combine_constant"
+              c:identifier="cogl_material_set_layer_combine_constant"
+              version="1.0">
+        <doc xml:whitespace="preserve">When you are using the 'CONSTANT' color source in a layer combine
+description then you can use this function to define its value.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="layer_index" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Specifies the layer you want to specify a constant used for texture combining</doc>
+            <type name="gint" c:type="int"/>
+          </parameter>
+          <parameter name="constant" transfer-ownership="none">
+            <doc xml:whitespace="preserve">The constant color you want</doc>
+            <type name="Color" c:type="CoglColor*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_layer_filters"
+              c:identifier="cogl_material_set_layer_filters">
+        <doc xml:whitespace="preserve">Changes the decimation and interpolation filters used when a texture is
+drawn at other scales than 100%.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="layer_index" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the layer number to change.</doc>
+            <type name="gint" c:type="int"/>
+          </parameter>
+          <parameter name="min_filter" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the filter used when scaling a texture down.</doc>
+            <type name="MaterialFilter" c:type="CoglMaterialFilter"/>
+          </parameter>
+          <parameter name="mag_filter" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the filter used when magnifying a texture.</doc>
+            <type name="MaterialFilter" c:type="CoglMaterialFilter"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_layer_matrix"
+              c:identifier="cogl_material_set_layer_matrix">
+        <doc xml:whitespace="preserve">This function lets you set a matrix that can be used to e.g. translate
+and rotate a single layer of a material used to fill your geometry.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="layer_index" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the index for the layer inside @material</doc>
+            <type name="gint" c:type="int"/>
+          </parameter>
+          <parameter name="matrix" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the transformation matrix for the layer</doc>
+            <type name="Matrix" c:type="CoglMatrix*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_layer_point_sprite_coords_enabled"
+              c:identifier="cogl_material_set_layer_point_sprite_coords_enabled"
+              version="1.4"
+              throws="1">
+        <doc xml:whitespace="preserve">When rendering points, if @enable is %TRUE then the texture
+coordinates for this layer will be replaced with coordinates that
+vary from 0.0 to 1.0 across the primitive. The top left of the
+point will have the coordinates 0.0,0.0 and the bottom right will
+have 1.0,1.0. If @enable is %FALSE then the coordinates will be
+fixed for the entire point.
+This function will only work if %COGL_FEATURE_POINT_SPRITE is
+available. If the feature is not available then the function will
+return %FALSE and set @error.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if the function succeeds, %FALSE otherwise.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="layer_index" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the layer number to change.</doc>
+            <type name="gint" c:type="int"/>
+          </parameter>
+          <parameter name="enable" transfer-ownership="none">
+            <doc xml:whitespace="preserve">whether to enable point sprite coord generation.</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_layer_wrap_mode"
+              c:identifier="cogl_material_set_layer_wrap_mode"
+              version="1.4">
+        <doc xml:whitespace="preserve">Sets the wrap mode for all three coordinates of texture lookups on
+this layer. This is equivalent to calling
+cogl_material_set_layer_wrap_mode_s(),
+cogl_material_set_layer_wrap_mode_t() and
+cogl_material_set_layer_wrap_mode_p() separately.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="layer_index" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the layer number to change.</doc>
+            <type name="gint" c:type="int"/>
+          </parameter>
+          <parameter name="mode" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the new wrap mode</doc>
+            <type name="MaterialWrapMode" c:type="CoglMaterialWrapMode"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_layer_wrap_mode_p"
+              c:identifier="cogl_material_set_layer_wrap_mode_p"
+              version="1.4">
+        <doc xml:whitespace="preserve">Sets the wrap mode for the 'p' coordinate of texture lookups on
+this layer. 'p' is the third coordinate.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="layer_index" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the layer number to change.</doc>
+            <type name="gint" c:type="int"/>
+          </parameter>
+          <parameter name="mode" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the new wrap mode</doc>
+            <type name="MaterialWrapMode" c:type="CoglMaterialWrapMode"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_layer_wrap_mode_s"
+              c:identifier="cogl_material_set_layer_wrap_mode_s"
+              version="1.4">
+        <doc xml:whitespace="preserve">Sets the wrap mode for the 's' coordinate of texture lookups on this layer.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="layer_index" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the layer number to change.</doc>
+            <type name="gint" c:type="int"/>
+          </parameter>
+          <parameter name="mode" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the new wrap mode</doc>
+            <type name="MaterialWrapMode" c:type="CoglMaterialWrapMode"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_layer_wrap_mode_t"
+              c:identifier="cogl_material_set_layer_wrap_mode_t"
+              version="1.4">
+        <doc xml:whitespace="preserve">Sets the wrap mode for the 't' coordinate of texture lookups on this layer.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="layer_index" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the layer number to change.</doc>
+            <type name="gint" c:type="int"/>
+          </parameter>
+          <parameter name="mode" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the new wrap mode</doc>
+            <type name="MaterialWrapMode" c:type="CoglMaterialWrapMode"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_shininess"
+              c:identifier="cogl_material_set_shininess"
+              version="1.0">
+        <doc xml:whitespace="preserve">Sets the shininess of the material, in the standard OpenGL lighting
+model, which determines the size of the specular highlights. A
+higher @shininess will produce smaller highlights which makes the
+object appear more shiny.
+The default value is 0.0</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="shininess" transfer-ownership="none">
+            <doc xml:whitespace="preserve">The desired shininess; must be &gt;= 0.0</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_specular"
+              c:identifier="cogl_material_set_specular"
+              version="1.0">
+        <doc xml:whitespace="preserve">Sets the material's specular color, in the standard OpenGL lighting
+model. The intensity of the specular color depends on the viewport
+position, and is brightest along the lines of reflection.
+The default value is (0.0, 0.0, 0.0, 1.0)</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="specular" transfer-ownership="none">
+            <doc xml:whitespace="preserve">The components of the desired specular color</doc>
+            <type name="Color" c:type="CoglColor*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_user_program"
+              c:identifier="cogl_material_set_user_program"
+              version="1.4">
+        <doc xml:whitespace="preserve">Associates a linked CoglProgram with the given material so that the
+program can take full control of vertex and/or fragment processing.
+This is an example of how it can be used to associate an ARBfp
+program with a #CoglMaterial:
+|[
+CoglHandle shader;
+CoglHandle program;
+CoglMaterial *material;
+shader = cogl_create_shader (COGL_SHADER_TYPE_FRAGMENT);
+cogl_shader_source (shader,
+"!!ARBfp1.0\n"
+"MOV result.color,fragment.color;\n"
+"END\n");
+cogl_shader_compile (shader);
+program = cogl_create_program ();
+cogl_program_attach_shader (program, shader);
+cogl_program_link (program);
+material = cogl_material_new ();
+cogl_material_set_user_program (material, program);
+cogl_set_source_color4ub (0xff, 0x00, 0x00, 0xff);
+cogl_rectangle (0, 0, 100, 100);
+]|
+It is possibly worth keeping in mind that this API is not part of
+the long term design for how we want to expose shaders to Cogl
+developers (We are planning on deprecating the cogl_program and
+cogl_shader APIs in favour of a "snippet" framework) but in the
+meantime we hope this will handle most practical GLSL and ARBfp
+requirements.
+Also remember you need to check for either the
+%COGL_FEATURE_SHADERS_GLSL or %COGL_FEATURE_SHADERS_ARBFP before
+using the cogl_program or cogl_shader API.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="program" transfer-ownership="none">
+            <doc xml:whitespace="preserve">A #CoglHandle to a linked CoglProgram</doc>
+            <type name="Handle" c:type="CoglHandle"/>
+          </parameter>
+        </parameters>
+      </method>
+    </record>
+    <enumeration name="MaterialAlphaFunc"
+                 glib:type-name="CoglMaterialAlphaFunc"
+                 glib:get-type="cogl_material_alpha_func_get_type"
+                 c:type="CoglMaterialAlphaFunc">
+      <doc xml:whitespace="preserve">Alpha testing happens before blending primitives with the framebuffer and
+gives an opportunity to discard fragments based on a comparison with the
+incoming alpha value and a reference alpha value. The #CoglMaterialAlphaFunc
+determines how the comparison is done.</doc>
+      <member name="never"
+              value="512"
+              c:identifier="COGL_MATERIAL_ALPHA_FUNC_NEVER"
+              glib:nick="never"/>
+      <member name="less"
+              value="513"
+              c:identifier="COGL_MATERIAL_ALPHA_FUNC_LESS"
+              glib:nick="less"/>
+      <member name="equal"
+              value="514"
+              c:identifier="COGL_MATERIAL_ALPHA_FUNC_EQUAL"
+              glib:nick="equal"/>
+      <member name="lequal"
+              value="515"
+              c:identifier="COGL_MATERIAL_ALPHA_FUNC_LEQUAL"
+              glib:nick="lequal"/>
+      <member name="greater"
+              value="516"
+              c:identifier="COGL_MATERIAL_ALPHA_FUNC_GREATER"
+              glib:nick="greater"/>
+      <member name="notequal"
+              value="517"
+              c:identifier="COGL_MATERIAL_ALPHA_FUNC_NOTEQUAL"
+              glib:nick="notequal"/>
+      <member name="gequal"
+              value="518"
+              c:identifier="COGL_MATERIAL_ALPHA_FUNC_GEQUAL"
+              glib:nick="gequal"/>
+      <member name="always"
+              value="519"
+              c:identifier="COGL_MATERIAL_ALPHA_FUNC_ALWAYS"
+              glib:nick="always"/>
+    </enumeration>
+    <enumeration name="MaterialFilter"
+                 glib:type-name="CoglMaterialFilter"
+                 glib:get-type="cogl_material_filter_get_type"
+                 c:type="CoglMaterialFilter">
+      <doc xml:whitespace="preserve">Texture filtering is used whenever the current pixel maps either to more
+than one texture element (texel) or less than one. These filter enums
+correspond to different strategies used to come up with a pixel color, by
+possibly referring to multiple neighbouring texels and taking a weighted
+average or simply using the nearest texel.</doc>
+      <member name="nearest"
+              value="9728"
+              c:identifier="COGL_MATERIAL_FILTER_NEAREST"
+              glib:nick="nearest"/>
+      <member name="linear"
+              value="9729"
+              c:identifier="COGL_MATERIAL_FILTER_LINEAR"
+              glib:nick="linear"/>
+      <member name="nearest_mipmap_nearest"
+              value="9984"
+              c:identifier="COGL_MATERIAL_FILTER_NEAREST_MIPMAP_NEAREST"
+              glib:nick="nearest-mipmap-nearest"/>
+      <member name="linear_mipmap_nearest"
+              value="9985"
+              c:identifier="COGL_MATERIAL_FILTER_LINEAR_MIPMAP_NEAREST"
+              glib:nick="linear-mipmap-nearest"/>
+      <member name="nearest_mipmap_linear"
+              value="9986"
+              c:identifier="COGL_MATERIAL_FILTER_NEAREST_MIPMAP_LINEAR"
+              glib:nick="nearest-mipmap-linear"/>
+      <member name="linear_mipmap_linear"
+              value="9987"
+              c:identifier="COGL_MATERIAL_FILTER_LINEAR_MIPMAP_LINEAR"
+              glib:nick="linear-mipmap-linear"/>
+    </enumeration>
+    <record name="MaterialLayer" c:type="CoglMaterialLayer" disguised="1">
+      <method name="get_mag_filter"
+              c:identifier="cogl_material_layer_get_mag_filter">
+        <doc xml:whitespace="preserve">Queries the currently set downscaling filter for a material later</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the current downscaling filter</doc>
+          <type name="MaterialFilter" c:type="CoglMaterialFilter"/>
+        </return-value>
+      </method>
+      <method name="get_min_filter"
+              c:identifier="cogl_material_layer_get_min_filter">
+        <doc xml:whitespace="preserve">Queries the currently set downscaling filter for a material layer</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the current downscaling filter</doc>
+          <type name="MaterialFilter" c:type="CoglMaterialFilter"/>
+        </return-value>
+      </method>
+      <method name="get_texture"
+              c:identifier="cogl_material_layer_get_texture">
+        <doc xml:whitespace="preserve">Extracts a texture handle for a specific layer.
+&lt;note&gt;In the future Cogl may support purely GLSL based layers; for those
+layers this function which will likely return %COGL_INVALID_HANDLE if you
+try to get the texture handle from them. Considering this scenario, you
+should call cogl_material_layer_get_type() first in order check it is of
+type %COGL_MATERIAL_LAYER_TYPE_TEXTURE before calling this function.&lt;/note&gt;</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #CoglHandle for the texture inside the layer</doc>
+          <type name="Handle" c:type="CoglHandle"/>
+        </return-value>
+      </method>
+      <method name="get_wrap_mode_p"
+              c:identifier="cogl_material_layer_get_wrap_mode_p"
+              version="1.4">
+        <doc xml:whitespace="preserve">Gets the wrap mode for the 'p' coordinate of texture lookups on
+this layer. 'p' is the third coordinate.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the wrap mode value for the p coordinate.</doc>
+          <type name="MaterialWrapMode" c:type="CoglMaterialWrapMode"/>
+        </return-value>
+      </method>
+      <method name="get_wrap_mode_s"
+              c:identifier="cogl_material_layer_get_wrap_mode_s"
+              version="1.4">
+        <doc xml:whitespace="preserve">Gets the wrap mode for the 's' coordinate of texture lookups on this layer.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the wrap mode value for the s coordinate.</doc>
+          <type name="MaterialWrapMode" c:type="CoglMaterialWrapMode"/>
+        </return-value>
+      </method>
+      <method name="get_wrap_mode_t"
+              c:identifier="cogl_material_layer_get_wrap_mode_t"
+              version="1.4">
+        <doc xml:whitespace="preserve">Gets the wrap mode for the 't' coordinate of texture lookups on this layer.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the wrap mode value for the t coordinate.</doc>
+          <type name="MaterialWrapMode" c:type="CoglMaterialWrapMode"/>
+        </return-value>
+      </method>
+    </record>
+    <callback name="MaterialLayerCallback"
+              c:type="CoglMaterialLayerCallback"
+              version="1.4">
+      <doc xml:whitespace="preserve">The callback prototype used with cogl_material_foreach_layer() for
+iterating all the layers of a @material.</doc>
+      <return-value transfer-ownership="none">
+        <type name="gboolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="material" transfer-ownership="none">
+          <doc xml:whitespace="preserve">The #CoglMaterial whos layers are being iterated</doc>
+          <type name="Material" c:type="CoglMaterial*"/>
+        </parameter>
+        <parameter name="layer_index" transfer-ownership="none">
+          <doc xml:whitespace="preserve">The current layer index</doc>
+          <type name="gint" c:type="int"/>
+        </parameter>
+        <parameter name="user_data" transfer-ownership="none" closure="2">
+          <doc xml:whitespace="preserve">The private data passed to cogl_material_foreach_layer()</doc>
+          <type name="gpointer" c:type="void*"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <enumeration name="MaterialLayerType"
+                 version="1.0"
+                 glib:type-name="CoglMaterialLayerType"
+                 glib:get-type="cogl_material_layer_type_get_type"
+                 c:type="CoglMaterialLayerType">
+      <doc xml:whitespace="preserve">Available types of layers for a #CoglMaterial. This enumeration
+might be expanded in later versions.</doc>
+      <member name="texture"
+              value="0"
+              c:identifier="COGL_MATERIAL_LAYER_TYPE_TEXTURE"
+              glib:nick="texture"/>
+    </enumeration>
+    <enumeration name="MaterialWrapMode"
+                 version="1.4"
+                 glib:type-name="CoglMaterialWrapMode"
+                 glib:get-type="cogl_material_wrap_mode_get_type"
+                 c:type="CoglMaterialWrapMode">
+      <doc xml:whitespace="preserve">The wrap mode specifies what happens when texture coordinates
+outside the range 0→1 are used. Note that if the filter mode is
+anything but %COGL_MATERIAL_FILTER_NEAREST then texels outside the
+range 0→1 might be used even when the coordinate is exactly 0 or 1
+because OpenGL will try to sample neighbouring pixels. For example
+if you are trying to render the full texture then you may get
+artifacts around the edges when the pixels from the other side are
+merged in if the wrap mode is set to repeat.</doc>
+      <member name="repeat"
+              value="10497"
+              c:identifier="COGL_MATERIAL_WRAP_MODE_REPEAT"
+              glib:nick="repeat"/>
+      <member name="clamp_to_edge"
+              value="33071"
+              c:identifier="COGL_MATERIAL_WRAP_MODE_CLAMP_TO_EDGE"
+              glib:nick="clamp-to-edge"/>
+      <member name="automatic"
+              value="519"
+              c:identifier="COGL_MATERIAL_WRAP_MODE_AUTOMATIC"
+              glib:nick="automatic"/>
+    </enumeration>
+    <record name="Matrix" c:type="CoglMatrix">
+      <doc xml:whitespace="preserve">A CoglMatrix holds a 4x4 transform matrix. This is a single precision,
+column-major matrix which means it is compatible with what OpenGL expects.
+A CoglMatrix can represent transforms such as, rotations, scaling,
+translation, sheering, and linear projections. You can combine these
+transforms by multiplying multiple matrices in the order you want them
+applied.
+The transformation of a vertex (x, y, z, w) by a CoglMatrix is given by:
+|[
+x_new = xx * x + xy * y + xz * z + xw * w
+y_new = yx * x + yy * y + yz * z + yw * w
+z_new = zx * x + zy * y + zz * z + zw * w
+w_new = wx * x + wy * y + wz * z + ww * w
+]|
+Where w is normally 1
+&lt;note&gt;You must consider the members of the CoglMatrix structure read only,
+and all matrix modifications must be done via the cogl_matrix API. This
+allows Cogl to annotate the matrices internally. Violation of this will give
+undefined results. If you need to initialize a matrix with a constant other
+than the identity matrix you can use cogl_matrix_init_from_array().&lt;/note&gt;</doc>
+      <field name="xx" writable="1">
+        <type name="gfloat" c:type="float"/>
+      </field>
+      <field name="yx" writable="1">
+        <type name="gfloat" c:type="float"/>
+      </field>
+      <field name="zx" writable="1">
+        <type name="gfloat" c:type="float"/>
+      </field>
+      <field name="wx" writable="1">
+        <type name="gfloat" c:type="float"/>
+      </field>
+      <field name="xy" writable="1">
+        <type name="gfloat" c:type="float"/>
+      </field>
+      <field name="yy" writable="1">
+        <type name="gfloat" c:type="float"/>
+      </field>
+      <field name="zy" writable="1">
+        <type name="gfloat" c:type="float"/>
+      </field>
+      <field name="wy" writable="1">
+        <type name="gfloat" c:type="float"/>
+      </field>
+      <field name="xz" writable="1">
+        <type name="gfloat" c:type="float"/>
+      </field>
+      <field name="yz" writable="1">
+        <type name="gfloat" c:type="float"/>
+      </field>
+      <field name="zz" writable="1">
+        <type name="gfloat" c:type="float"/>
+      </field>
+      <field name="wz" writable="1">
+        <type name="gfloat" c:type="float"/>
+      </field>
+      <field name="xw" writable="1">
+        <type name="gfloat" c:type="float"/>
+      </field>
+      <field name="yw" writable="1">
+        <type name="gfloat" c:type="float"/>
+      </field>
+      <field name="zw" writable="1">
+        <type name="gfloat" c:type="float"/>
+      </field>
+      <field name="ww" writable="1">
+        <type name="gfloat" c:type="float"/>
+      </field>
+      <field name="inv" writable="1">
+        <array zero-terminated="0" c:type="gfloat" fixed-size="16">
+          <type name="gfloat" c:type="float"/>
+        </array>
+      </field>
+      <field name="type" writable="1">
+        <type name="guint" c:type="unsigned"/>
+      </field>
+      <field name="flags" writable="1">
+        <type name="guint" c:type="unsigned"/>
+      </field>
+      <field name="_padding3" writable="1">
+        <type name="guint" c:type="unsigned"/>
+      </field>
+      <method name="frustum" c:identifier="cogl_matrix_frustum">
+        <doc xml:whitespace="preserve">Multiplies @matrix by the given frustum perspective matrix.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="left" transfer-ownership="none">
+            <doc xml:whitespace="preserve">coord of left vertical clipping plane</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+          <parameter name="right" transfer-ownership="none">
+            <doc xml:whitespace="preserve">coord of right vertical clipping plane</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+          <parameter name="bottom" transfer-ownership="none">
+            <doc xml:whitespace="preserve">coord of bottom horizontal clipping plane</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+          <parameter name="top" transfer-ownership="none">
+            <doc xml:whitespace="preserve">coord of top horizontal clipping plane</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+          <parameter name="z_near" transfer-ownership="none">
+            <doc xml:whitespace="preserve">positive distance to near depth clipping plane</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+          <parameter name="z_far" transfer-ownership="none">
+            <doc xml:whitespace="preserve">positive distance to far depth clipping plane</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_array" c:identifier="cogl_matrix_get_array">
+        <doc xml:whitespace="preserve">Casts @matrix to a float array which can be directly passed to OpenGL.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">a pointer to the float array</doc>
+          <type name="gfloat" c:type="float*"/>
+        </return-value>
+      </method>
+      <method name="get_inverse"
+              c:identifier="cogl_matrix_get_inverse"
+              version="1.2">
+        <doc xml:whitespace="preserve">Gets the inverse transform of a given matrix and uses it to initialize
+a new #CoglMatrix.
+&lt;note&gt;Although the first parameter is annotated as const to indicate
+that the transform it represents isn't modified this function may
+technically save a copy of the inverse transform within the given
+#CoglMatrix so that subsequent requests for the inverse transform may
+avoid costly inversion calculations.&lt;/note&gt;
+for degenerate transformations that can't be inverted (in this case the</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if the inverse was successfully calculated or %FALSE</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="inverse"
+                     direction="out"
+                     caller-allocates="1"
+                     transfer-ownership="none">
+            <doc xml:whitespace="preserve">The destination for a 4x4 inverse transformation matrix</doc>
+            <type name="Matrix" c:type="CoglMatrix*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="init_from_array"
+              c:identifier="cogl_matrix_init_from_array">
+        <doc xml:whitespace="preserve">Initializes @matrix with the contents of @array</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="array" transfer-ownership="none">
+            <doc xml:whitespace="preserve">A linear array of 16 floats (column-major order)</doc>
+            <type name="gfloat" c:type="float*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="init_identity" c:identifier="cogl_matrix_init_identity">
+        <doc xml:whitespace="preserve">Resets matrix to the identity matrix:
+|[
+.xx=1; .xy=0; .xz=0; .xw=0;
+.yx=0; .yy=1; .yz=0; .yw=0;
+.zx=0; .zy=0; .zz=1; .zw=0;
+.wx=0; .wy=0; .wz=0; .ww=1;
+]|</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </method>
+      <method name="multiply" c:identifier="cogl_matrix_multiply">
+        <doc xml:whitespace="preserve">Multiplies the two supplied matrices together and stores
+the resulting matrix inside @result</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="a" transfer-ownership="none">
+            <doc xml:whitespace="preserve">A 4x4 transformation matrix</doc>
+            <type name="Matrix" c:type="CoglMatrix*"/>
+          </parameter>
+          <parameter name="b" transfer-ownership="none">
+            <doc xml:whitespace="preserve">A 4x4 transformation matrix</doc>
+            <type name="Matrix" c:type="CoglMatrix*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="ortho" c:identifier="cogl_matrix_ortho">
+        <doc xml:whitespace="preserve">Multiplies @matrix by a parallel projection matrix.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="left" transfer-ownership="none">
+            <doc xml:whitespace="preserve">The coordinate for the left clipping plane</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+          <parameter name="right" transfer-ownership="none">
+            <doc xml:whitespace="preserve">The coordinate for the right clipping plane</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+          <parameter name="bottom" transfer-ownership="none">
+            <doc xml:whitespace="preserve">The coordinate for the bottom clipping plane</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+          <parameter name="top" transfer-ownership="none">
+            <doc xml:whitespace="preserve">The coordinate for the top clipping plane</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+          <parameter name="z_near" transfer-ownership="none">
+            <doc xml:whitespace="preserve">The coordinate for the near clipping plane (may be negative if the plane is behind the viewer)</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+          <parameter name="z_far" transfer-ownership="none">
+            <doc xml:whitespace="preserve">The coordinate for the far clipping plane (may be negative if the plane is behind the viewer)</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="perspective" c:identifier="cogl_matrix_perspective">
+        <doc xml:whitespace="preserve">Multiplies @matrix by the described perspective matrix
+&lt;note&gt;You should be careful not to have to great a @z_far / @z_near ratio
+since that will reduce the effectiveness of depth testing since there wont
+be enough precision to identify the depth of objects near to each
+other.&lt;/note&gt;</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="fov_y" transfer-ownership="none">
+            <doc xml:whitespace="preserve">A field of view angle for the Y axis</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+          <parameter name="aspect" transfer-ownership="none">
+            <doc xml:whitespace="preserve">The ratio of width to height determining the field of view angle for the x axis.</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+          <parameter name="z_near" transfer-ownership="none">
+            <doc xml:whitespace="preserve">The distance to the near clip plane. Never pass 0 and always pass a positive number.</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+          <parameter name="z_far" transfer-ownership="none">
+            <doc xml:whitespace="preserve">The distance to the far clip plane. (Should always be positive)</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="rotate" c:identifier="cogl_matrix_rotate">
+        <doc xml:whitespace="preserve">Multiplies @matrix with a rotation matrix that applies a rotation
+of @angle degrees around the specified 3D vector.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="angle" transfer-ownership="none">
+            <doc xml:whitespace="preserve">The angle you want to rotate in degrees</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+          <parameter name="x" transfer-ownership="none">
+            <doc xml:whitespace="preserve">X component of your rotation vector</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+          <parameter name="y" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Y component of your rotation vector</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+          <parameter name="z" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Z component of your rotation vector</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="scale" c:identifier="cogl_matrix_scale">
+        <doc xml:whitespace="preserve">Multiplies @matrix with a transform matrix that scales along the X,
+Y and Z axis.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="sx" transfer-ownership="none">
+            <doc xml:whitespace="preserve">The X scale factor</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+          <parameter name="sy" transfer-ownership="none">
+            <doc xml:whitespace="preserve">The Y scale factor</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+          <parameter name="sz" transfer-ownership="none">
+            <doc xml:whitespace="preserve">The Z scale factor</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="transform_point"
+              c:identifier="cogl_matrix_transform_point">
+        <doc xml:whitespace="preserve">Transforms a point whos position is given and returned as four float
+components.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="x"
+                     direction="inout"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:whitespace="preserve">The X component of your points position</doc>
+            <type name="gfloat" c:type="float*"/>
+          </parameter>
+          <parameter name="y"
+                     direction="inout"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:whitespace="preserve">The Y component of your points position</doc>
+            <type name="gfloat" c:type="float*"/>
+          </parameter>
+          <parameter name="z"
+                     direction="inout"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:whitespace="preserve">The Z component of your points position</doc>
+            <type name="gfloat" c:type="float*"/>
+          </parameter>
+          <parameter name="w"
+                     direction="inout"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:whitespace="preserve">The W component of your points position</doc>
+            <type name="gfloat" c:type="float*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="translate" c:identifier="cogl_matrix_translate">
+        <doc xml:whitespace="preserve">Multiplies @matrix with a transform matrix that translates along
+the X, Y and Z axis.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="x" transfer-ownership="none">
+            <doc xml:whitespace="preserve">The X translation you want to apply</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+          <parameter name="y" transfer-ownership="none">
+            <doc xml:whitespace="preserve">The Y translation you want to apply</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+          <parameter name="z" transfer-ownership="none">
+            <doc xml:whitespace="preserve">The Z translation you want to apply</doc>
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+        </parameters>
+      </method>
+    </record>
+    <record name="Object" c:type="CoglObject" disguised="1">
+      <method name="get_user_data"
+              c:identifier="cogl_object_get_user_data"
+              version="1.4"
+              introspectable="0">
+        <doc xml:whitespace="preserve">Finds the user data previously associated with @object using
+the given @key. If no user data has been associated with @object
+for the given @key this function returns NULL.
+the given @key; or NULL if no associated data is found.</doc>
+        <return-value>
+          <doc xml:whitespace="preserve">The user data previously associated with @object using</doc>
+          <type name="gpointer" c:type="void*"/>
+        </return-value>
+        <parameters>
+          <parameter name="key" transfer-ownership="none">
+            <doc xml:whitespace="preserve">The address of a #CoglUserDataKey which provides a unique value with which to index the private data.</doc>
+            <type name="UserDataKey" c:type="CoglUserDataKey*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_user_data"
+              c:identifier="cogl_object_set_user_data"
+              version="1.4"
+              introspectable="0">
+        <doc xml:whitespace="preserve">Associates some private @user_data with a given #CoglObject. To
+later remove the association call cogl_object_set_user_data() with
+the same @key but NULL for the @user_data.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="key" transfer-ownership="none">
+            <doc xml:whitespace="preserve">The address of a #CoglUserDataKey which provides a unique value with which to index the private data.</doc>
+            <type name="UserDataKey" c:type="CoglUserDataKey*"/>
+          </parameter>
+          <parameter name="user_data" transfer-ownership="none">
+            <doc xml:whitespace="preserve">The data to associate with the given object, or NULL to remove a previous association.</doc>
+            <type name="gpointer" c:type="void*"/>
+          </parameter>
+          <parameter name="destroy" transfer-ownership="none">
+            <doc xml:whitespace="preserve">A #CoglUserDataDestroyCallback to call if the object is destroyed or if the association is removed by later setting NULL data for the same key.</doc>
+            <type name="UserDataDestroyCallback"
+                  c:type="CoglUserDataDestroyCallback"/>
+          </parameter>
+        </parameters>
+      </method>
+    </record>
+    <constant name="PIXEL_FORMAT_24" value="2">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="PIXEL_FORMAT_32" value="3">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="PREMULT_BIT" value="128">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <record name="Path" c:type="CoglPath" disguised="1">
+      <method name="copy" c:identifier="cogl_path_copy" introspectable="0">
+        <doc xml:whitespace="preserve">Returns a new copy of the path in @path. The new path has a
+reference count of 1 so you should unref it with
+cogl_object_unref() if you no longer need it.
+Internally the path will share the data until one of the paths is
+modified so copying paths should be relatively cheap.</doc>
+        <return-value>
+          <doc xml:whitespace="preserve">a copy of the path in @path.</doc>
+          <type name="Path" c:type="CoglPath*"/>
+        </return-value>
+      </method>
+    </record>
+    <enumeration name="PathFillRule"
+                 version="1.4"
+                 glib:type-name="CoglPathFillRule"
+                 glib:get-type="cogl_path_fill_rule_get_type"
+                 c:type="CoglPathFillRule">
+      <doc xml:whitespace="preserve">#CoglPathFillRule is used to determine how a path is filled. There
+are two options - 'non-zero' and 'even-odd'. To work out whether any
+point will be filled imagine drawing an infinetely long line in any
+direction from that point. The number of times and the direction
+that the edges of the path crosses this line determines whether the
+line is filled as described below. Any open sub paths are treated
+as if there was an extra line joining the first point and the last
+point.
+The default fill rule is %COGL_PATH_FILL_RULE_EVEN_ODD. The fill
+rule is attached to the current path so preserving a path with
+cogl_get_path() also preserves the fill rule. Calling
+cogl_path_new() resets the current fill rule to the default.
+&lt;figure id="fill-rule-non-zero"&gt;
+&lt;title&gt;Example of filling various paths using the non-zero rule&lt;/title&gt;
+&lt;graphic fileref="fill-rule-non-zero.png" format="PNG"/&gt;
+&lt;/figure&gt;
+&lt;figure id="fill-rule-even-odd"&gt;
+&lt;title&gt;Example of filling various paths using the even-odd rule&lt;/title&gt;
+&lt;graphic fileref="fill-rule-even-odd.png" format="PNG"/&gt;
+&lt;/figure&gt;</doc>
+      <member name="non_zero"
+              value="0"
+              c:identifier="COGL_PATH_FILL_RULE_NON_ZERO"
+              glib:nick="non-zero"/>
+      <member name="even_odd"
+              value="1"
+              c:identifier="COGL_PATH_FILL_RULE_EVEN_ODD"
+              glib:nick="even-odd"/>
+    </enumeration>
+    <record name="PixelArray" c:type="CoglPixelArray" disguised="1">
+    </record>
+    <enumeration name="PixelFormat"
+                 version="0.8"
+                 glib:type-name="CoglPixelFormat"
+                 glib:get-type="cogl_pixel_format_get_type"
+                 c:type="CoglPixelFormat">
+      <doc xml:whitespace="preserve">Pixel formats used by COGL. For the formats with a byte per
+component, the order of the components specify the order in
+increasing memory addresses. So for example
+%COGL_PIXEL_FORMAT_RGB_888 would have the red component in the
+lowest address, green in the next address and blue after that
+regardless of the endinanness of the system.
+For the 16-bit formats the component order specifies the order
+within a 16-bit number from most significant bit to least
+significant. So for %COGL_PIXEL_FORMAT_RGB_565, the red component
+would be in bits 11-15, the green component would be in 6-11 and
+the blue component would be in 1-5. Therefore the order in memory
+depends on the endianness of the system.
+When uploading a texture %COGL_PIXEL_FORMAT_ANY can be used as the
+internal format. Cogl will try to pick the best format to use
+internally and convert the texture data if necessary.</doc>
+      <member name="any"
+              value="0"
+              c:identifier="COGL_PIXEL_FORMAT_ANY"
+              glib:nick="any"/>
+      <member name="a_8"
+              value="17"
+              c:identifier="COGL_PIXEL_FORMAT_A_8"
+              glib:nick="a-8"/>
+      <member name="rgb_565"
+              value="4"
+              c:identifier="COGL_PIXEL_FORMAT_RGB_565"
+              glib:nick="rgb-565"/>
+      <member name="rgba_4444"
+              value="21"
+              c:identifier="COGL_PIXEL_FORMAT_RGBA_4444"
+              glib:nick="rgba-4444"/>
+      <member name="rgba_5551"
+              value="22"
+              c:identifier="COGL_PIXEL_FORMAT_RGBA_5551"
+              glib:nick="rgba-5551"/>
+      <member name="yuv"
+              value="7"
+              c:identifier="COGL_PIXEL_FORMAT_YUV"
+              glib:nick="yuv"/>
+      <member name="g_8"
+              value="8"
+              c:identifier="COGL_PIXEL_FORMAT_G_8"
+              glib:nick="g-8"/>
+      <member name="rgb_888"
+              value="2"
+              c:identifier="COGL_PIXEL_FORMAT_RGB_888"
+              glib:nick="rgb-888"/>
+      <member name="bgr_888"
+              value="34"
+              c:identifier="COGL_PIXEL_FORMAT_BGR_888"
+              glib:nick="bgr-888"/>
+      <member name="rgba_8888"
+              value="19"
+              c:identifier="COGL_PIXEL_FORMAT_RGBA_8888"
+              glib:nick="rgba-8888"/>
+      <member name="bgra_8888"
+              value="51"
+              c:identifier="COGL_PIXEL_FORMAT_BGRA_8888"
+              glib:nick="bgra-8888"/>
+      <member name="argb_8888"
+              value="83"
+              c:identifier="COGL_PIXEL_FORMAT_ARGB_8888"
+              glib:nick="argb-8888"/>
+      <member name="abgr_8888"
+              value="115"
+              c:identifier="COGL_PIXEL_FORMAT_ABGR_8888"
+              glib:nick="abgr-8888"/>
+      <member name="rgba_8888_pre"
+              value="147"
+              c:identifier="COGL_PIXEL_FORMAT_RGBA_8888_PRE"
+              glib:nick="rgba-8888-pre"/>
+      <member name="bgra_8888_pre"
+              value="179"
+              c:identifier="COGL_PIXEL_FORMAT_BGRA_8888_PRE"
+              glib:nick="bgra-8888-pre"/>
+      <member name="argb_8888_pre"
+              value="211"
+              c:identifier="COGL_PIXEL_FORMAT_ARGB_8888_PRE"
+              glib:nick="argb-8888-pre"/>
+      <member name="abgr_8888_pre"
+              value="243"
+              c:identifier="COGL_PIXEL_FORMAT_ABGR_8888_PRE"
+              glib:nick="abgr-8888-pre"/>
+      <member name="rgba_4444_pre"
+              value="149"
+              c:identifier="COGL_PIXEL_FORMAT_RGBA_4444_PRE"
+              glib:nick="rgba-4444-pre"/>
+      <member name="rgba_5551_pre"
+              value="150"
+              c:identifier="COGL_PIXEL_FORMAT_RGBA_5551_PRE"
+              glib:nick="rgba-5551-pre"/>
+    </enumeration>
+    <constant name="RADIANS_TO_DEGREES" value="3754936">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <bitfield name="ReadPixelsFlags"
+              version="1.0"
+              glib:type-name="CoglReadPixelsFlags"
+              glib:get-type="cogl_read_pixels_flags_get_type"
+              c:type="CoglReadPixelsFlags">
+      <doc xml:whitespace="preserve">Flags for cogl_read_pixels()</doc>
+      <member name="color_buffer"
+              value="1"
+              c:identifier="COGL_READ_PIXELS_COLOR_BUFFER"
+              glib:nick="color-buffer"/>
+    </bitfield>
+    <constant name="SQRTI_ARG_10_PERCENT" value="5590">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="SQRTI_ARG_5_PERCENT" value="210">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="SQRTI_ARG_MAX" value="4194303">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <enumeration name="ShaderType"
+                 version="1.0"
+                 glib:type-name="CoglShaderType"
+                 glib:get-type="cogl_shader_type_get_type"
+                 c:type="CoglShaderType">
+      <doc xml:whitespace="preserve">Types of shaders</doc>
+      <member name="vertex"
+              value="0"
+              c:identifier="COGL_SHADER_TYPE_VERTEX"
+              glib:nick="vertex"/>
+      <member name="fragment"
+              value="1"
+              c:identifier="COGL_SHADER_TYPE_FRAGMENT"
+              glib:nick="fragment"/>
+    </enumeration>
+    <constant name="TEXTURE_MAX_WASTE" value="127">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <bitfield name="TextureFlags"
+              version="1.0"
+              glib:type-name="CoglTextureFlags"
+              glib:get-type="cogl_texture_flags_get_type"
+              c:type="CoglTextureFlags">
+      <doc xml:whitespace="preserve">Flags to pass to the cogl_texture_new_* family of functions.</doc>
+      <member name="none"
+              value="0"
+              c:identifier="COGL_TEXTURE_NONE"
+              glib:nick="none"/>
+      <member name="no_auto_mipmap"
+              value="1"
+              c:identifier="COGL_TEXTURE_NO_AUTO_MIPMAP"
+              glib:nick="no-auto-mipmap"/>
+      <member name="no_slicing"
+              value="2"
+              c:identifier="COGL_TEXTURE_NO_SLICING"
+              glib:nick="no-slicing"/>
+      <member name="no_atlas"
+              value="4"
+              c:identifier="COGL_TEXTURE_NO_ATLAS"
+              glib:nick="no-atlas"/>
+    </bitfield>
+    <enumeration name="TexturePixmapX11ReportLevel"
+                 glib:type-name="CoglTexturePixmapX11ReportLevel"
+                 glib:get-type="cogl_texture_pixmap_x11_report_level_get_type"
+                 c:type="CoglTexturePixmapX11ReportLevel">
+      <member name="raw_rectangles"
+              value="0"
+              c:identifier="COGL_TEXTURE_PIXMAP_X11_DAMAGE_RAW_RECTANGLES"
+              glib:nick="raw-rectangles"/>
+      <member name="delta_rectangles"
+              value="1"
+              c:identifier="COGL_TEXTURE_PIXMAP_X11_DAMAGE_DELTA_RECTANGLES"
+              glib:nick="delta-rectangles"/>
+      <member name="bounding_box"
+              value="2"
+              c:identifier="COGL_TEXTURE_PIXMAP_X11_DAMAGE_BOUNDING_BOX"
+              glib:nick="bounding-box"/>
+      <member name="non_empty"
+              value="3"
+              c:identifier="COGL_TEXTURE_PIXMAP_X11_DAMAGE_NON_EMPTY"
+              glib:nick="non-empty"/>
+    </enumeration>
+    <record name="TextureVertex" c:type="CoglTextureVertex">
+      <doc xml:whitespace="preserve">Used to specify vertex information when calling cogl_polygon()</doc>
+      <field name="x" writable="1">
+        <type name="gfloat" c:type="float"/>
+      </field>
+      <field name="y" writable="1">
+        <type name="gfloat" c:type="float"/>
+      </field>
+      <field name="z" writable="1">
+        <type name="gfloat" c:type="float"/>
+      </field>
+      <field name="tx" writable="1">
+        <type name="gfloat" c:type="float"/>
+      </field>
+      <field name="ty" writable="1">
+        <type name="gfloat" c:type="float"/>
+      </field>
+      <field name="color" writable="1">
+        <type name="Color" c:type="CoglColor"/>
+      </field>
+    </record>
+    <constant name="UNORDERED_MASK" value="15">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="UNPREMULT_MASK" value="127">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <callback name="UserDataDestroyCallback"
+              c:type="CoglUserDataDestroyCallback"
+              version="1.4">
+      <doc xml:whitespace="preserve">When associating private data with a #CoglObject a callback can be
+given which will be called either if the object is destroyed or if
+cogl_object_set_user_data() is called with NULL user_data for the
+same key.</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="user_data" transfer-ownership="none" closure="0">
+          <doc xml:whitespace="preserve">The data whos association with a #CoglObject has been destoyed.</doc>
+          <type name="gpointer" c:type="void*"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <record name="UserDataKey" c:type="CoglUserDataKey" version="1.4">
+      <doc xml:whitespace="preserve">A #CoglUserDataKey is used to declare a key for attaching data to a
+#CoglObject using cogl_object_set_user_data. The typedef only exists as a
+formality to make code self documenting since only the unique address of a
+#CoglUserDataKey is used.
+Typically you would declare a static #CoglUserDataKey and set private data
+on an object something like this:
+|[
+static CoglUserDataKey path_private_key;
+static void
+destroy_path_private_cb (void *data)
+{
+g_free (data);
+}
+static void
+my_path_set_data (CoglPath *path, void *data)
+{
+cogl_object_set_user_data (COGL_OBJECT (path),
+&amp;private_key,
+data,
+destroy_path_private_cb);
+}
+]|</doc>
+      <field name="unused" writable="1">
+        <type name="gint" c:type="int"/>
+      </field>
+    </record>
+    <record name="Vector3" c:type="CoglVector3">
+      <field name="x" writable="1">
+        <type name="gfloat" c:type="float"/>
+      </field>
+      <field name="y" writable="1">
+        <type name="gfloat" c:type="float"/>
+      </field>
+      <field name="z" writable="1">
+        <type name="gfloat" c:type="float"/>
+      </field>
+      <method name="add_EXP" c:identifier="cogl_vector3_add_EXP">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="a" transfer-ownership="none">
+            <type name="Vector3" c:type="CoglVector3*"/>
+          </parameter>
+          <parameter name="b" transfer-ownership="none">
+            <type name="Vector3" c:type="CoglVector3*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="copy_EXP"
+              c:identifier="cogl_vector3_copy_EXP"
+              introspectable="0">
+        <return-value>
+          <type name="Vector3" c:type="CoglVector3*"/>
+        </return-value>
+      </method>
+      <method name="cross_product_EXP"
+              c:identifier="cogl_vector3_cross_product_EXP">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="u" transfer-ownership="none">
+            <type name="Vector3" c:type="CoglVector3*"/>
+          </parameter>
+          <parameter name="v" transfer-ownership="none">
+            <type name="Vector3" c:type="CoglVector3*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="distance_EXP" c:identifier="cogl_vector3_distance_EXP">
+        <return-value transfer-ownership="none">
+          <type name="gfloat" c:type="float"/>
+        </return-value>
+        <parameters>
+          <parameter name="b" transfer-ownership="none">
+            <type name="Vector3" c:type="CoglVector3*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="divide_scalar_EXP"
+              c:identifier="cogl_vector3_divide_scalar_EXP">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="scalar" transfer-ownership="none">
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="dot_product_EXP"
+              c:identifier="cogl_vector3_dot_product_EXP">
+        <return-value transfer-ownership="none">
+          <type name="gfloat" c:type="float"/>
+        </return-value>
+        <parameters>
+          <parameter name="b" transfer-ownership="none">
+            <type name="Vector3" c:type="CoglVector3*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="equal_with_epsilon_EXP"
+              c:identifier="cogl_vector3_equal_with_epsilon_EXP">
+        <return-value transfer-ownership="none">
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="vector1" transfer-ownership="none">
+            <type name="Vector3" c:type="CoglVector3*"/>
+          </parameter>
+          <parameter name="epsilon" transfer-ownership="none">
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="free_EXP" c:identifier="cogl_vector3_free_EXP">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </method>
+      <method name="init_EXP" c:identifier="cogl_vector3_init_EXP">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="x" transfer-ownership="none">
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+          <parameter name="y" transfer-ownership="none">
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+          <parameter name="z" transfer-ownership="none">
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="init_zero_EXP" c:identifier="cogl_vector3_init_zero_EXP">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </method>
+      <method name="invert_EXP" c:identifier="cogl_vector3_invert_EXP">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </method>
+      <method name="magnitude_EXP" c:identifier="cogl_vector3_magnitude_EXP">
+        <return-value transfer-ownership="none">
+          <type name="gfloat" c:type="float"/>
+        </return-value>
+      </method>
+      <method name="multiply_scalar_EXP"
+              c:identifier="cogl_vector3_multiply_scalar_EXP">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="scalar" transfer-ownership="none">
+            <type name="gfloat" c:type="float"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="normalize_EXP" c:identifier="cogl_vector3_normalize_EXP">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </method>
+      <method name="subtract_EXP" c:identifier="cogl_vector3_subtract_EXP">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="a" transfer-ownership="none">
+            <type name="Vector3" c:type="CoglVector3*"/>
+          </parameter>
+          <parameter name="b" transfer-ownership="none">
+            <type name="Vector3" c:type="CoglVector3*"/>
+          </parameter>
+        </parameters>
+      </method>
+    </record>
+    <enumeration name="VerticesMode"
+                 version="1.0"
+                 glib:type-name="CoglVerticesMode"
+                 glib:get-type="cogl_vertices_mode_get_type"
+                 c:type="CoglVerticesMode">
+      <doc xml:whitespace="preserve">How vertices passed to cogl_vertex_buffer_draw() and
+cogl_vertex_buffer_draw_elements() should be interpreted</doc>
+      <member name="points"
+              value="0"
+              c:identifier="COGL_VERTICES_MODE_POINTS"
+              glib:nick="points"/>
+      <member name="line_strip"
+              value="3"
+              c:identifier="COGL_VERTICES_MODE_LINE_STRIP"
+              glib:nick="line-strip"/>
+      <member name="line_loop"
+              value="2"
+              c:identifier="COGL_VERTICES_MODE_LINE_LOOP"
+              glib:nick="line-loop"/>
+      <member name="lines"
+              value="1"
+              c:identifier="COGL_VERTICES_MODE_LINES"
+              glib:nick="lines"/>
+      <member name="triangle_strip"
+              value="5"
+              c:identifier="COGL_VERTICES_MODE_TRIANGLE_STRIP"
+              glib:nick="triangle-strip"/>
+      <member name="triangle_fan"
+              value="6"
+              c:identifier="COGL_VERTICES_MODE_TRIANGLE_FAN"
+              glib:nick="triangle-fan"/>
+      <member name="triangles"
+              value="4"
+              c:identifier="COGL_VERTICES_MODE_TRIANGLES"
+              glib:nick="triangles"/>
+    </enumeration>
+    <function name="angle_cos" c:identifier="cogl_angle_cos" version="1.0">
+      <doc xml:whitespace="preserve">Computes the cosine of @angle</doc>
+      <return-value transfer-ownership="none">
+        <doc xml:whitespace="preserve">the cosine of the passed angle</doc>
+        <type name="Fixed" c:type="CoglFixed"/>
+      </return-value>
+      <parameters>
+        <parameter name="angle" transfer-ownership="none">
+          <doc xml:whitespace="preserve">an angle expressed using #CoglAngle</doc>
+          <type name="Angle" c:type="CoglAngle"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="angle_sin" c:identifier="cogl_angle_sin" version="1.0">
+      <doc xml:whitespace="preserve">Computes the sine of @angle</doc>
+      <return-value transfer-ownership="none">
+        <doc xml:whitespace="preserve">the sine of the passed angle</doc>
+        <type name="Fixed" c:type="CoglFixed"/>
+      </return-value>
+      <parameters>
+        <parameter name="angle" transfer-ownership="none">
+          <doc xml:whitespace="preserve">an angle expressed using #CoglAngle</doc>
+          <type name="Angle" c:type="CoglAngle"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="angle_tan" c:identifier="cogl_angle_tan" version="1.0">
+      <doc xml:whitespace="preserve">Computes the tangent of @angle</doc>
+      <return-value transfer-ownership="none">
+        <doc xml:whitespace="preserve">the tangent of the passed angle</doc>
+        <type name="Fixed" c:type="CoglFixed"/>
+      </return-value>
+      <parameters>
+        <parameter name="angle" transfer-ownership="none">
+          <doc xml:whitespace="preserve">an angle expressed using #CoglAngle</doc>
+          <type name="Angle" c:type="CoglAngle"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="begin_gl" c:identifier="cogl_begin_gl" version="1.0">
+      <doc xml:whitespace="preserve">We do not advise nor reliably support the interleaving of raw GL drawing and
+Cogl drawing functions, but if you insist, cogl_begin_gl() and cogl_end_gl()
+provide a simple mechanism that may at least give you a fighting chance of
+succeeding.
+through the modification of GL state; that will never be reliably supported,
+but if you are trying to do something like:
+|[
+{
+- setup some OpenGL state.
+- draw using OpenGL (e.g. glDrawArrays() )
+- reset modified OpenGL state.
+- continue using Cogl to draw
+}
+]|
+You should surround blocks of drawing using raw GL with cogl_begin_gl()
+and cogl_end_gl():
+|[
+{
+cogl_begin_gl ();
+- setup some OpenGL state.
+- draw using OpenGL (e.g. glDrawArrays() )
+- reset modified OpenGL state.
+cogl_end_gl ();
+- continue using Cogl to draw
+}
+]|
+Don't ever try and do:
+|[
+{
+- setup some OpenGL state.
+- use Cogl to draw
+- reset modified OpenGL state.
+}
+]|
+When the internals of Cogl evolves, this is very liable to break.
+This function will flush all batched primitives, and subsequently flush
+all internal Cogl state to OpenGL as if it were going to draw something
+itself.
+The result is that the OpenGL modelview matrix will be setup; the state
+corresponding to the current source material will be set up and other world
+state such as backface culling, depth and fogging enabledness will be sent
+to OpenGL.
+&lt;note&gt;No special material state is flushed, so if you want Cogl to setup a
+simplified material state it is your responsibility to set a simple source
+material before calling cogl_begin_gl(). E.g. by calling
+cogl_set_source_color4ub().&lt;/note&gt;
+&lt;note&gt;It is your responsibility to restore any OpenGL state that you modify
+to how it was after calling cogl_begin_gl() if you don't do this then the
+result of further Cogl calls is undefined.&lt;/note&gt;
+&lt;note&gt;You can not nest begin/end blocks.&lt;/note&gt;
+Again we would like to stress, we do not advise the use of this API and if
+possible we would prefer to improve Cogl than have developers require raw
+OpenGL.</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+    </function>
+    <function name="bitmap_error_quark" c:identifier="cogl_bitmap_error_quark">
+      <return-value transfer-ownership="none">
+        <type name="GLib.Quark" c:type="GQuark"/>
+      </return-value>
+    </function>
+    <function name="bitmap_get_size_from_file"
+              c:identifier="cogl_bitmap_get_size_from_file"
+              version="1.0">
+      <doc xml:whitespace="preserve">Parses an image file enough to extract the width and height
+of the bitmap.</doc>
+      <return-value transfer-ownership="none">
+        <doc xml:whitespace="preserve">%TRUE if the image was successfully parsed</doc>
+        <type name="gboolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="filename" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the file to check</doc>
+          <type name="utf8" c:type="char*"/>
+        </parameter>
+        <parameter name="width"
+                   direction="out"
+                   caller-allocates="0"
+                   transfer-ownership="full">
+          <doc xml:whitespace="preserve">return location for the bitmap width, or %NULL</doc>
+          <type name="gint" c:type="int*"/>
+        </parameter>
+        <parameter name="height"
+                   direction="out"
+                   caller-allocates="0"
+                   transfer-ownership="full">
+          <doc xml:whitespace="preserve">return location for the bitmap height, or %NULL</doc>
+          <type name="gint" c:type="int*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="bitmap_new_from_file"
+              c:identifier="cogl_bitmap_new_from_file"
+              version="1.0"
+              introspectable="0"
+              throws="1">
+      <doc xml:whitespace="preserve">Loads an image file from disk. This function can be safely called from
+within a thread.
+%NULL if loading the image failed.</doc>
+      <return-value>
+        <doc xml:whitespace="preserve">a #CoglBitmap to the new loaded image data, or</doc>
+        <type name="Bitmap" c:type="CoglBitmap*"/>
+      </return-value>
+      <parameters>
+        <parameter name="filename" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the file to load.</doc>
+          <type name="utf8" c:type="char*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="blend_string_error_quark"
+              c:identifier="cogl_blend_string_error_quark">
+      <return-value transfer-ownership="none">
+        <type name="GLib.Quark" c:type="GQuark"/>
+      </return-value>
+    </function>
+    <function name="check_extension"
+              c:identifier="cogl_check_extension"
+              deprecated="OpenGL is an implementation detail for Cogl and so it&apos;s"
+              deprecated-version="1.2">
+      <doc xml:whitespace="preserve">Check whether @name occurs in list of extensions in @ext.
+not appropriate to expose OpenGL extensions through the Cogl API. This
+function can be replaced by the following equivalent code:
+|[
+]|</doc>
+      <return-value transfer-ownership="none">
+        <doc xml:whitespace="preserve">%TRUE if the extension occurs in the list, %FALSE otherwise.</doc>
+        <type name="gboolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="name" transfer-ownership="none">
+          <doc xml:whitespace="preserve">extension to check for</doc>
+          <type name="utf8" c:type="char*"/>
+        </parameter>
+        <parameter name="ext" transfer-ownership="none">
+          <doc xml:whitespace="preserve">list of extensions</doc>
+          <type name="utf8" c:type="char*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="clear" c:identifier="cogl_clear">
+      <doc xml:whitespace="preserve">Clears all the auxiliary buffers identified in the @buffers mask, and if
+that includes the color buffer then the specified @color is used.</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="color" transfer-ownership="none">
+          <doc xml:whitespace="preserve">Background color to clear to</doc>
+          <type name="Color" c:type="CoglColor*"/>
+        </parameter>
+        <parameter name="buffers" transfer-ownership="none">
+          <doc xml:whitespace="preserve">A mask of #CoglBufferBit&lt;!-- --&gt;'s identifying which auxiliary buffers to clear</doc>
+          <type name="gulong" c:type="unsigned long"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="clip_ensure"
+              c:identifier="cogl_clip_ensure"
+              version="1.0"
+              deprecated="Calling this function has no effect"
+              deprecated-version="1.2">
+      <doc xml:whitespace="preserve">Ensures that the current clipping region has been set in GL. This
+will automatically be called before any Cogl primitives but it
+maybe be neccessary to call if you are using raw GL calls with
+clipping.</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+    </function>
+    <function name="clip_pop" c:identifier="cogl_clip_pop">
+      <doc xml:whitespace="preserve">Reverts the clipping region to the state before the last call to
+cogl_clip_push().</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+    </function>
+    <function name="clip_push"
+              c:identifier="cogl_clip_push"
+              deprecated="The x, y, width, height arguments are inconsistent"
+              deprecated-version="1.2">
+      <doc xml:whitespace="preserve">Specifies a rectangular clipping area for all subsequent drawing
+operations. Any drawing commands that extend outside the rectangle
+will be clipped so that only the portion inside the rectangle will
+be displayed. The rectangle dimensions are transformed by the
+current model-view matrix.
+The rectangle is intersected with the current clip region. To undo
+the effect of this function, call cogl_clip_pop().
+with other API that specify rectangles in model space, and when used
+with a coordinate space that puts the origin at the center and y+
+extending up, it's awkward to use. Please use cogl_clip_push_rectangle()
+instead</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="x_offset" transfer-ownership="none">
+          <doc xml:whitespace="preserve">left edge of the clip rectangle</doc>
+          <type name="gfloat" c:type="float"/>
+        </parameter>
+        <parameter name="y_offset" transfer-ownership="none">
+          <doc xml:whitespace="preserve">top edge of the clip rectangle</doc>
+          <type name="gfloat" c:type="float"/>
+        </parameter>
+        <parameter name="width" transfer-ownership="none">
+          <doc xml:whitespace="preserve">width of the clip rectangle</doc>
+          <type name="gfloat" c:type="float"/>
+        </parameter>
+        <parameter name="height" transfer-ownership="none">
+          <doc xml:whitespace="preserve">height of the clip rectangle</doc>
+          <type name="gfloat" c:type="float"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="clip_push_from_path"
+              c:identifier="cogl_clip_push_from_path"
+              version="1.0">
+      <doc xml:whitespace="preserve">Sets a new clipping area using the current path. The current path
+is then cleared. The clipping area is intersected with the previous
+clipping area. To restore the previous clipping area, call
+cogl_clip_pop().</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+    </function>
+    <function name="clip_push_from_path_preserve"
+              c:identifier="cogl_clip_push_from_path_preserve"
+              version="1.0">
+      <doc xml:whitespace="preserve">Sets a new clipping area using the current path. The current path
+is then cleared. The clipping area is intersected with the previous
+clipping area. To restore the previous clipping area, call
+cogl_clip_pop().</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+    </function>
+    <function name="clip_push_rectangle"
+              c:identifier="cogl_clip_push_rectangle"
+              version="1.2">
+      <doc xml:whitespace="preserve">Specifies a rectangular clipping area for all subsequent drawing
+operations. Any drawing commands that extend outside the rectangle
+will be clipped so that only the portion inside the rectangle will
+be displayed. The rectangle dimensions are transformed by the
+current model-view matrix.
+The rectangle is intersected with the current clip region. To undo
+the effect of this function, call cogl_clip_pop().</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="x0" transfer-ownership="none">
+          <doc xml:whitespace="preserve">x coordinate for top left corner of the clip rectangle</doc>
+          <type name="gfloat" c:type="float"/>
+        </parameter>
+        <parameter name="y0" transfer-ownership="none">
+          <doc xml:whitespace="preserve">y coordinate for top left corner of the clip rectangle</doc>
+          <type name="gfloat" c:type="float"/>
+        </parameter>
+        <parameter name="x1" transfer-ownership="none">
+          <doc xml:whitespace="preserve">x coordinate for bottom right corner of the clip rectangle</doc>
+          <type name="gfloat" c:type="float"/>
+        </parameter>
+        <parameter name="y1" transfer-ownership="none">
+          <doc xml:whitespace="preserve">y coordinate for bottom right corner of the clip rectangle</doc>
+          <type name="gfloat" c:type="float"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="clip_push_window_rect"
+              c:identifier="cogl_clip_push_window_rect"
+              deprecated="Use cogl_clip_push_window_rectangle() instead"
+              deprecated-version="1.2">
+      <doc xml:whitespace="preserve">Specifies a rectangular clipping area for all subsequent drawing
+operations. Any drawing commands that extend outside the rectangle
+will be clipped so that only the portion inside the rectangle will
+be displayed. The rectangle dimensions are not transformed by the
+current model-view matrix.
+The rectangle is intersected with the current clip region. To undo
+the effect of this function, call cogl_clip_pop().</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="x_offset" transfer-ownership="none">
+          <doc xml:whitespace="preserve">left edge of the clip rectangle in window coordinates</doc>
+          <type name="gfloat" c:type="float"/>
+        </parameter>
+        <parameter name="y_offset" transfer-ownership="none">
+          <doc xml:whitespace="preserve">top edge of the clip rectangle in window coordinates</doc>
+          <type name="gfloat" c:type="float"/>
+        </parameter>
+        <parameter name="width" transfer-ownership="none">
+          <doc xml:whitespace="preserve">width of the clip rectangle</doc>
+          <type name="gfloat" c:type="float"/>
+        </parameter>
+        <parameter name="height" transfer-ownership="none">
+          <doc xml:whitespace="preserve">height of the clip rectangle</doc>
+          <type name="gfloat" c:type="float"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="clip_push_window_rectangle"
+              c:identifier="cogl_clip_push_window_rectangle"
+              version="1.2">
+      <doc xml:whitespace="preserve">Specifies a rectangular clipping area for all subsequent drawing
+operations. Any drawing commands that extend outside the rectangle
+will be clipped so that only the portion inside the rectangle will
+be displayed. The rectangle dimensions are not transformed by the
+current model-view matrix.
+The rectangle is intersected with the current clip region. To undo
+the effect of this function, call cogl_clip_pop().</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="x_offset" transfer-ownership="none">
+          <doc xml:whitespace="preserve">left edge of the clip rectangle in window coordinates</doc>
+          <type name="gint" c:type="int"/>
+        </parameter>
+        <parameter name="y_offset" transfer-ownership="none">
+          <doc xml:whitespace="preserve">top edge of the clip rectangle in window coordinates</doc>
+          <type name="gint" c:type="int"/>
+        </parameter>
+        <parameter name="width" transfer-ownership="none">
+          <doc xml:whitespace="preserve">width of the clip rectangle</doc>
+          <type name="gint" c:type="int"/>
+        </parameter>
+        <parameter name="height" transfer-ownership="none">
+          <doc xml:whitespace="preserve">height of the clip rectangle</doc>
+          <type name="gint" c:type="int"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="clip_stack_restore"
+              c:identifier="cogl_clip_stack_restore"
+              version="0.8.2"
+              deprecated="This was originally added to allow us to restore"
+              deprecated-version="1.2">
+      <doc xml:whitespace="preserve">Restore the state of the clipping stack that was previously saved
+by cogl_clip_stack_save().
+the clip stack when switching back from an offscreen framebuffer,
+but it's not necessary anymore given that framebuffers now own
+separate clip stacks which will be automatically switched between
+when a new buffer is set. Calling this function has no effect</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+    </function>
+    <function name="clip_stack_save"
+              c:identifier="cogl_clip_stack_save"
+              version="0.8.2"
+              deprecated="This was originally added to allow us to save the"
+              deprecated-version="1.2">
+      <doc xml:whitespace="preserve">Save the entire state of the clipping stack and then clear all
+clipping. The previous state can be returned to with
+cogl_clip_stack_restore(). Each call to cogl_clip_push() after this
+must be matched by a call to cogl_clip_pop() before calling
+cogl_clip_stack_restore().
+clip stack when switching to an offscreen framebuffer, but it's
+not necessary anymore given that framebuffers now own separate
+clip stacks which will be automatically switched between when a
+new buffer is set. Calling this function has no effect</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+    </function>
+    <function name="color_equal" c:identifier="cogl_color_equal" version="1.0">
+      <doc xml:whitespace="preserve">Compares two #CoglColor&lt;!-- --&gt;s and checks if they are the same.
+This function can be passed to g_hash_table_new() as the @key_equal_func
+parameter, when using #CoglColor&lt;!-- --&gt;s as keys in a #GHashTable.</doc>
+      <return-value transfer-ownership="none">
+        <doc xml:whitespace="preserve">%TRUE if the two colors are the same.</doc>
+        <type name="gboolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="v1" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #CoglColor</doc>
+          <type name="gpointer" c:type="gconstpointer"/>
+        </parameter>
+        <parameter name="v2" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #CoglColor</doc>
+          <type name="gpointer" c:type="gconstpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="color_new"
+              c:identifier="cogl_color_new"
+              version="1.0"
+              introspectable="0">
+      <doc xml:whitespace="preserve">Creates a new (empty) color
+to free the allocated resources</doc>
+      <return-value>
+        <doc xml:whitespace="preserve">a newly-allocated #CoglColor. Use cogl_color_free()</doc>
+        <type name="Color" c:type="CoglColor*"/>
+      </return-value>
+    </function>
+    <function name="create_program"
+              c:identifier="cogl_create_program"
+              introspectable="0">
+      <doc xml:whitespace="preserve">Create a new cogl program object that can be used to replace parts of the GL
+rendering pipeline with custom code.</doc>
+      <return-value>
+        <doc xml:whitespace="preserve">a new cogl program.</doc>
+        <type name="Handle" c:type="CoglHandle"/>
+      </return-value>
+    </function>
+    <function name="create_shader"
+              c:identifier="cogl_create_shader"
+              introspectable="0">
+      <doc xml:whitespace="preserve">Create a new shader handle, use #cogl_shader_source to set the source code
+to be used on it.</doc>
+      <return-value>
+        <doc xml:whitespace="preserve">a new shader handle.</doc>
+        <type name="Handle" c:type="CoglHandle"/>
+      </return-value>
+      <parameters>
+        <parameter name="shader_type" transfer-ownership="none">
+          <doc xml:whitespace="preserve">COGL_SHADER_TYPE_VERTEX or COGL_SHADER_TYPE_FRAGMENT.</doc>
+          <type name="ShaderType" c:type="CoglShaderType"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="disable_fog" c:identifier="cogl_disable_fog">
+      <doc xml:whitespace="preserve">This function disables fogging, so primitives drawn afterwards will not be
+blended with any previously set fog color.</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+    </function>
+    <function name="double_to_fixed" c:identifier="cogl_double_to_fixed">
+      <return-value transfer-ownership="none">
+        <type name="Fixed" c:type="CoglFixed"/>
+      </return-value>
+      <parameters>
+        <parameter name="value" transfer-ownership="none">
+          <type name="gdouble" c:type="double"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="double_to_int" c:identifier="cogl_double_to_int">
+      <return-value transfer-ownership="none">
+        <type name="gint" c:type="int"/>
+      </return-value>
+      <parameters>
+        <parameter name="value" transfer-ownership="none">
+          <type name="gdouble" c:type="double"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="double_to_uint" c:identifier="cogl_double_to_uint">
+      <return-value transfer-ownership="none">
+        <type name="guint" c:type="unsigned int"/>
+      </return-value>
+      <parameters>
+        <parameter name="value" transfer-ownership="none">
+          <type name="gdouble" c:type="double"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="end_gl" c:identifier="cogl_end_gl" version="1.0">
+      <doc xml:whitespace="preserve">This is the counterpart to cogl_begin_gl() used to delimit blocks of drawing
+code using raw OpenGL. Please refer to cogl_begin_gl() for full details.</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+    </function>
+    <function name="features_available" c:identifier="cogl_features_available">
+      <doc xml:whitespace="preserve">Checks whether the given COGL features are available. Multiple
+features can be checked for by or-ing them together with the '|'
+operator. %TRUE is only returned if all of the requested features
+are available.</doc>
+      <return-value transfer-ownership="none">
+        <doc xml:whitespace="preserve">%TRUE if the features are available, %FALSE otherwise.</doc>
+        <type name="gboolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="features" transfer-ownership="none">
+          <doc xml:whitespace="preserve">A bitmask of features to check for</doc>
+          <type name="FeatureFlags" c:type="CoglFeatureFlags"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="fixed_atan" c:identifier="cogl_fixed_atan" version="1.0">
+      <doc xml:whitespace="preserve">Computes the arc tangent of @a.</doc>
+      <return-value transfer-ownership="none">
+        <doc xml:whitespace="preserve">the arc tangent of the passed value, in fixed point notation</doc>
+        <type name="Fixed" c:type="CoglFixed"/>
+      </return-value>
+      <parameters>
+        <parameter name="a" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #CoglFixed number</doc>
+          <type name="Fixed" c:type="CoglFixed"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="fixed_atan2" c:identifier="cogl_fixed_atan2" version="1.0">
+      <doc xml:whitespace="preserve">Computes the arc tangent of @a / @b but uses the sign of both
+arguments to return the angle in right quadrant.
+notation</doc>
+      <return-value transfer-ownership="none">
+        <doc xml:whitespace="preserve">the arc tangent of the passed fraction, in fixed point</doc>
+        <type name="Fixed" c:type="CoglFixed"/>
+      </return-value>
+      <parameters>
+        <parameter name="a" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the numerator as a #CoglFixed number</doc>
+          <type name="Fixed" c:type="CoglFixed"/>
+        </parameter>
+        <parameter name="b" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the denominator as a #CoglFixed number</doc>
+          <type name="Fixed" c:type="CoglFixed"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="fixed_cos" c:identifier="cogl_fixed_cos" version="1.0">
+      <doc xml:whitespace="preserve">Computes the cosine of @angle.</doc>
+      <return-value transfer-ownership="none">
+        <doc xml:whitespace="preserve">the cosine of the passed angle, in fixed point notation</doc>
+        <type name="Fixed" c:type="CoglFixed"/>
+      </return-value>
+      <parameters>
+        <parameter name="angle" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #CoglFixed number</doc>
+          <type name="Fixed" c:type="CoglFixed"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="fixed_div" c:identifier="cogl_fixed_div">
+      <return-value transfer-ownership="none">
+        <type name="Fixed" c:type="CoglFixed"/>
+      </return-value>
+      <parameters>
+        <parameter name="a" transfer-ownership="none">
+          <type name="Fixed" c:type="CoglFixed"/>
+        </parameter>
+        <parameter name="b" transfer-ownership="none">
+          <type name="Fixed" c:type="CoglFixed"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="fixed_get_type" c:identifier="cogl_fixed_get_type">
+      <return-value transfer-ownership="none">
+        <type name="GType" c:type="GType"/>
+      </return-value>
+    </function>
+    <function name="fixed_log2" c:identifier="cogl_fixed_log2" version="1.0">
+      <doc xml:whitespace="preserve">Calculates base 2 logarithm.
+This function is some 2.5 times faster on x86, and over 12 times faster on
+fpu-less arm, than using libc log().</doc>
+      <return-value transfer-ownership="none">
+        <doc xml:whitespace="preserve">base 2 logarithm.</doc>
+        <type name="Fixed" c:type="CoglFixed"/>
+      </return-value>
+      <parameters>
+        <parameter name="x" transfer-ownership="none">
+          <doc xml:whitespace="preserve">value to calculate base 2 logarithm from</doc>
+          <type name="guint" c:type="unsigned int"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="fixed_mul" c:identifier="cogl_fixed_mul">
+      <return-value transfer-ownership="none">
+        <type name="Fixed" c:type="CoglFixed"/>
+      </return-value>
+      <parameters>
+        <parameter name="a" transfer-ownership="none">
+          <type name="Fixed" c:type="CoglFixed"/>
+        </parameter>
+        <parameter name="b" transfer-ownership="none">
+          <type name="Fixed" c:type="CoglFixed"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="fixed_mul_div" c:identifier="cogl_fixed_mul_div">
+      <return-value transfer-ownership="none">
+        <type name="Fixed" c:type="CoglFixed"/>
+      </return-value>
+      <parameters>
+        <parameter name="a" transfer-ownership="none">
+          <type name="Fixed" c:type="CoglFixed"/>
+        </parameter>
+        <parameter name="b" transfer-ownership="none">
+          <type name="Fixed" c:type="CoglFixed"/>
+        </parameter>
+        <parameter name="c" transfer-ownership="none">
+          <type name="Fixed" c:type="CoglFixed"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="fixed_pow" c:identifier="cogl_fixed_pow" version="1.0">
+      <doc xml:whitespace="preserve">Calculates @x to the @y power.</doc>
+      <return-value transfer-ownership="none">
+        <doc xml:whitespace="preserve">the power of @x to the @y</doc>
+        <type name="guint" c:type="unsigned int"/>
+      </return-value>
+      <parameters>
+        <parameter name="x" transfer-ownership="none">
+          <doc xml:whitespace="preserve">base</doc>
+          <type name="guint" c:type="unsigned int"/>
+        </parameter>
+        <parameter name="y" transfer-ownership="none">
+          <doc xml:whitespace="preserve">#CoglFixed exponent</doc>
+          <type name="Fixed" c:type="CoglFixed"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="fixed_pow2" c:identifier="cogl_fixed_pow2" version="1.0">
+      <doc xml:whitespace="preserve">Calculates 2 to the @x power.
+This function is around 11 times faster on x86, and around 22 times faster
+on fpu-less arm than libc pow(2, x).</doc>
+      <return-value transfer-ownership="none">
+        <doc xml:whitespace="preserve">the power of 2 to the passed value</doc>
+        <type name="guint" c:type="unsigned int"/>
+      </return-value>
+      <parameters>
+        <parameter name="x" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #CoglFixed number</doc>
+          <type name="Fixed" c:type="CoglFixed"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="fixed_sin" c:identifier="cogl_fixed_sin" version="1.0">
+      <doc xml:whitespace="preserve">Computes the sine of @angle.</doc>
+      <return-value transfer-ownership="none">
+        <doc xml:whitespace="preserve">the sine of the passed angle, in fixed point notation</doc>
+        <type name="Fixed" c:type="CoglFixed"/>
+      </return-value>
+      <parameters>
+        <parameter name="angle" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #CoglFixed number</doc>
+          <type name="Fixed" c:type="CoglFixed"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="fixed_sqrt" c:identifier="cogl_fixed_sqrt" version="1.0">
+      <doc xml:whitespace="preserve">Computes the square root of @x.
+notation</doc>
+      <return-value transfer-ownership="none">
+        <doc xml:whitespace="preserve">the square root of the passed value, in floating point</doc>
+        <type name="Fixed" c:type="CoglFixed"/>
+      </return-value>
+      <parameters>
+        <parameter name="x" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #CoglFixed number</doc>
+          <type name="Fixed" c:type="CoglFixed"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="fixed_tan" c:identifier="cogl_fixed_tan" version="1.0">
+      <doc xml:whitespace="preserve">Computes the tangent of @angle.</doc>
+      <return-value transfer-ownership="none">
+        <doc xml:whitespace="preserve">the tangent of the passed angle, in fixed point notation</doc>
+        <type name="Fixed" c:type="CoglFixed"/>
+      </return-value>
+      <parameters>
+        <parameter name="angle" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #CoglFixed number</doc>
+          <type name="Fixed" c:type="CoglFixed"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="flush" c:identifier="cogl_flush" version="1.0">
+      <doc xml:whitespace="preserve">This function should only need to be called in exceptional circumstances.
+As an optimization Cogl drawing functions may batch up primitives
+internally, so if you are trying to use raw GL outside of Cogl you stand a
+better chance of being successful if you ask Cogl to flush any batched
+geometry before making your state changes.
+It only ensure that the underlying driver is issued all the commands
+necessary to draw the batched primitives. It provides no guarantees about
+when the driver will complete the rendering.
+This provides no guarantees about the GL state upon returning and to avoid
+confusing Cogl you should aim to restore any changes you make before
+resuming use of Cogl.
+If you are making state changes with the intention of affecting Cogl drawing
+primitives you are 100% on your own since you stand a good chance of
+conflicting with Cogl internals. For example clutter-gst which currently
+uses direct GL calls to bind ARBfp programs will very likely break when Cogl
+starts to use ARBfb programs itself for the material API.</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+    </function>
+    <function name="frustum" c:identifier="cogl_frustum" version="0.8.2">
+      <doc xml:whitespace="preserve">Replaces the current projection matrix with a perspective matrix
+for the given viewing frustum.</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="left" transfer-ownership="none">
+          <doc xml:whitespace="preserve">Left clipping plane</doc>
+          <type name="gfloat" c:type="float"/>
+        </parameter>
+        <parameter name="right" transfer-ownership="none">
+          <doc xml:whitespace="preserve">Right clipping plane</doc>
+          <type name="gfloat" c:type="float"/>
+        </parameter>
+        <parameter name="bottom" transfer-ownership="none">
+          <doc xml:whitespace="preserve">Bottom clipping plane</doc>
+          <type name="gfloat" c:type="float"/>
+        </parameter>
+        <parameter name="top" transfer-ownership="none">
+          <doc xml:whitespace="preserve">Top clipping plane</doc>
+          <type name="gfloat" c:type="float"/>
+        </parameter>
+        <parameter name="z_near" transfer-ownership="none">
+          <doc xml:whitespace="preserve">Nearest visible point</doc>
+          <type name="gfloat" c:type="float"/>
+        </parameter>
+        <parameter name="z_far" transfer-ownership="none">
+          <doc xml:whitespace="preserve">Furthest visible point along the z-axis</doc>
+          <type name="gfloat" c:type="float"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="get_backface_culling_enabled"
+              c:identifier="cogl_get_backface_culling_enabled">
+      <doc xml:whitespace="preserve">Queries if backface culling has been enabled via
+cogl_set_backface_culling_enabled()</doc>
+      <return-value transfer-ownership="none">
+        <doc xml:whitespace="preserve">%TRUE if backface culling is enabled, and %FALSE otherwise</doc>
+        <type name="gboolean" c:type="gboolean"/>
+      </return-value>
+    </function>
+    <function name="get_bitmasks" c:identifier="cogl_get_bitmasks">
+      <doc xml:whitespace="preserve">Gets the number of bitplanes used for each of the color components
+in the color buffer. Pass %NULL for any of the arguments if the
+value is not required.</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="red"
+                   direction="out"
+                   caller-allocates="0"
+                   transfer-ownership="full">
+          <doc xml:whitespace="preserve">Return location for the number of red bits or %NULL</doc>
+          <type name="gint" c:type="int*"/>
+        </parameter>
+        <parameter name="green"
+                   direction="out"
+                   caller-allocates="0"
+                   transfer-ownership="full">
+          <doc xml:whitespace="preserve">Return location for the number of green bits or %NULL</doc>
+          <type name="gint" c:type="int*"/>
+        </parameter>
+        <parameter name="blue"
+                   direction="out"
+                   caller-allocates="0"
+                   transfer-ownership="full">
+          <doc xml:whitespace="preserve">Return location for the number of blue bits or %NULL</doc>
+          <type name="gint" c:type="int*"/>
+        </parameter>
+        <parameter name="alpha"
+                   direction="out"
+                   caller-allocates="0"
+                   transfer-ownership="full">
+          <doc xml:whitespace="preserve">Return location for the number of alpha bits or %NULL</doc>
+          <type name="gint" c:type="int*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="get_depth_test_enabled"
+              c:identifier="cogl_get_depth_test_enabled"
+              deprecated="Use cogl_material_get_depth_test_enabled()"
+              deprecated-version="1.4">
+      <doc xml:whitespace="preserve">Queries if depth testing has been enabled via cogl_set_depth_test_enable()
+instead.</doc>
+      <return-value transfer-ownership="none">
+        <doc xml:whitespace="preserve">%TRUE if depth testing is enabled, and %FALSE otherwise</doc>
+        <type name="gboolean" c:type="gboolean"/>
+      </return-value>
+    </function>
+    <function name="get_features"
+              c:identifier="cogl_get_features"
+              version="0.8">
+      <doc xml:whitespace="preserve">Returns all of the features supported by COGL.</doc>
+      <return-value transfer-ownership="none">
+        <doc xml:whitespace="preserve">A logical OR of all the supported COGL features.</doc>
+        <type name="FeatureFlags" c:type="CoglFeatureFlags"/>
+      </return-value>
+    </function>
+    <function name="get_modelview_matrix"
+              c:identifier="cogl_get_modelview_matrix">
+      <doc xml:whitespace="preserve">Stores the current model-view matrix in @matrix.</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="matrix"
+                   direction="out"
+                   caller-allocates="1"
+                   transfer-ownership="none">
+          <doc xml:whitespace="preserve">return location for the model-view matrix</doc>
+          <type name="Matrix" c:type="CoglMatrix*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="get_option_group"
+              c:identifier="cogl_get_option_group"
+              version="1.0"
+              introspectable="0">
+      <doc xml:whitespace="preserve">Retrieves the #GOptionGroup used by COGL to parse the command
+line options. Clutter uses this to handle the COGL command line
+options during its initialization process.</doc>
+      <return-value>
+        <doc xml:whitespace="preserve">a #GOptionGroup</doc>
+        <type name="GLib.OptionGroup" c:type="GOptionGroup*"/>
+      </return-value>
+    </function>
+    <function name="get_path"
+              c:identifier="cogl_get_path"
+              version="1.4"
+              introspectable="0">
+      <doc xml:whitespace="preserve">Gets a pointer to the current path. The path can later be used
+again by calling cogl_path_set(). Note that the path isn't copied
+so if you later call any functions to add to the path it will
+affect the returned object too. No reference is taken on the path
+so if you want to retain it you should take your own reference with
+cogl_object_ref().</doc>
+      <return-value>
+        <doc xml:whitespace="preserve">a pointer to the current path.</doc>
+        <type name="Path" c:type="CoglPath*"/>
+      </return-value>
+    </function>
+    <function name="get_proc_address"
+              c:identifier="cogl_get_proc_address"
+              introspectable="0">
+      <doc xml:whitespace="preserve">Gets a pointer to a given GL or GL ES extension function. This acts
+as a wrapper around glXGetProcAddress() or whatever is the
+appropriate function for the current backend.
+function is not available.</doc>
+      <return-value>
+        <doc xml:whitespace="preserve">a pointer to the requested function or %NULL if the</doc>
+        <type name="FuncPtr" c:type="CoglFuncPtr"/>
+      </return-value>
+      <parameters>
+        <parameter name="name" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the name of the function.</doc>
+          <type name="utf8" c:type="char*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="get_projection_matrix"
+              c:identifier="cogl_get_projection_matrix">
+      <doc xml:whitespace="preserve">Stores the current projection matrix in @matrix.</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="matrix"
+                   direction="out"
+                   caller-allocates="1"
+                   transfer-ownership="none">
+          <doc xml:whitespace="preserve">return location for the projection matrix</doc>
+          <type name="Matrix" c:type="CoglMatrix*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="get_viewport" c:identifier="cogl_get_viewport">
+      <doc xml:whitespace="preserve">Stores the current viewport in @v. @v[0] and @v[1] get the x and y
+position of the viewport and @v[2] and @v[3] get the width and
+height.</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="v"
+                   direction="out"
+                   caller-allocates="0"
+                   transfer-ownership="full">
+          <doc xml:whitespace="preserve">pointer to a 4 element array of #float&lt;!-- --&gt;s to receive the viewport dimensions.</doc>
+          <array c:type="float" fixed-size="4">
+            <type name="gfloat"/>
+          </array>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="handle_get_type" c:identifier="cogl_handle_get_type">
+      <return-value transfer-ownership="none">
+        <type name="GType" c:type="GType"/>
+      </return-value>
+    </function>
+    <function name="handle_ref" c:identifier="cogl_handle_ref">
+      <doc xml:whitespace="preserve">Increases the reference count of @handle by 1</doc>
+      <return-value transfer-ownership="none">
+        <doc xml:whitespace="preserve">the handle, with its reference count increased</doc>
+        <type name="Handle" c:type="CoglHandle"/>
+      </return-value>
+      <parameters>
+        <parameter name="handle" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #CoglHandle</doc>
+          <type name="Handle" c:type="CoglHandle"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="handle_unref" c:identifier="cogl_handle_unref">
+      <doc xml:whitespace="preserve">Drecreases the reference count of @handle by 1; if the reference
+count reaches 0, the resources allocated by @handle will be freed</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="handle" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #CoglHandle</doc>
+          <type name="Handle" c:type="CoglHandle"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="is_bitmap" c:identifier="cogl_is_bitmap" version="1.0">
+      <doc xml:whitespace="preserve">Checks whether @handle is a #CoglHandle for a bitmap
+and %FALSE otherwise</doc>
+      <return-value transfer-ownership="none">
+        <doc xml:whitespace="preserve">%TRUE if the passed handle represents a bitmap,</doc>
+        <type name="gboolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="handle" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #CoglHandle for a bitmap</doc>
+          <type name="Handle" c:type="CoglHandle"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="is_buffer_EXP" c:identifier="cogl_is_buffer_EXP">
+      <return-value transfer-ownership="none">
+        <type name="gboolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="object" transfer-ownership="none">
+          <type name="gpointer" c:type="void*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="is_material" c:identifier="cogl_is_material">
+      <doc xml:whitespace="preserve">Gets whether the given handle references an existing material object.
+%FALSE otherwise</doc>
+      <return-value transfer-ownership="none">
+        <doc xml:whitespace="preserve">%TRUE if the handle references a #CoglMaterial,</doc>
+        <type name="gboolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="handle" transfer-ownership="none">
+          <doc xml:whitespace="preserve">A CoglHandle</doc>
+          <type name="Handle" c:type="CoglHandle"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="is_offscreen" c:identifier="cogl_is_offscreen">
+      <doc xml:whitespace="preserve">Determines whether the given #CoglHandle references an offscreen buffer
+object.
+%FALSE otherwise</doc>
+      <return-value transfer-ownership="none">
+        <doc xml:whitespace="preserve">%TRUE if the handle references an offscreen buffer,</doc>
+        <type name="gboolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="handle" transfer-ownership="none">
+          <doc xml:whitespace="preserve">A CoglHandle for an offscreen buffer</doc>
+          <type name="Handle" c:type="CoglHandle"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="is_path" c:identifier="cogl_is_path">
+      <doc xml:whitespace="preserve">Gets whether the given handle references an existing path object.
+%FALSE otherwise</doc>
+      <return-value transfer-ownership="none">
+        <doc xml:whitespace="preserve">%TRUE if the handle references a #CoglPath,</doc>
+        <type name="gboolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="handle" transfer-ownership="none">
+          <doc xml:whitespace="preserve">A CoglHandle</doc>
+          <type name="Handle" c:type="CoglHandle"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="is_pixel_array_EXP" c:identifier="cogl_is_pixel_array_EXP">
+      <return-value transfer-ownership="none">
+        <type name="gboolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="object" transfer-ownership="none">
+          <type name="gpointer" c:type="void*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="is_program" c:identifier="cogl_is_program">
+      <doc xml:whitespace="preserve">Gets whether the given handle references an existing program object.
+%FALSE otherwise</doc>
+      <return-value transfer-ownership="none">
+        <doc xml:whitespace="preserve">%TRUE if the handle references a program,</doc>
+        <type name="gboolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="handle" transfer-ownership="none">
+          <doc xml:whitespace="preserve">A CoglHandle</doc>
+          <type name="Handle" c:type="CoglHandle"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="is_shader" c:identifier="cogl_is_shader">
+      <doc xml:whitespace="preserve">Gets whether the given handle references an existing shader object.
+%FALSE otherwise</doc>
+      <return-value transfer-ownership="none">
+        <doc xml:whitespace="preserve">%TRUE if the handle references a shader,</doc>
+        <type name="gboolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="handle" transfer-ownership="none">
+          <doc xml:whitespace="preserve">A CoglHandle</doc>
+          <type name="Handle" c:type="CoglHandle"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="is_texture" c:identifier="cogl_is_texture">
+      <doc xml:whitespace="preserve">Gets whether the given handle references an existing texture object.
+%FALSE otherwise</doc>
+      <return-value transfer-ownership="none">
+        <doc xml:whitespace="preserve">%TRUE if the handle references a texture, and</doc>
+        <type name="gboolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="handle" transfer-ownership="none">
+          <doc xml:whitespace="preserve">A CoglHandle</doc>
+          <type name="Handle" c:type="CoglHandle"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="is_texture_3d_EXP" c:identifier="cogl_is_texture_3d_EXP">
+      <return-value transfer-ownership="none">
+        <type name="gboolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="handle" transfer-ownership="none">
+          <type name="Handle" c:type="CoglHandle"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="is_texture_pixmap_x11_EXP"
+              c:identifier="cogl_is_texture_pixmap_x11_EXP">
+      <return-value transfer-ownership="none">
+        <type name="gboolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="handle" transfer-ownership="none">
+          <type name="Handle" c:type="CoglHandle"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="is_vertex_buffer"
+              c:identifier="cogl_is_vertex_buffer"
+              version="1.0">
+      <doc xml:whitespace="preserve">Checks whether @handle is a Vertex Buffer Object
+otherwise</doc>
+      <return-value transfer-ownership="none">
+        <doc xml:whitespace="preserve">%TRUE if the handle is a VBO, and %FALSE</doc>
+        <type name="gboolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="handle" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #CoglHandle for a vertex buffer object</doc>
+          <type name="Handle" c:type="CoglHandle"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="is_vertex_buffer_indices"
+              c:identifier="cogl_is_vertex_buffer_indices"
+              version="1.4">
+      <doc xml:whitespace="preserve">Checks whether @handle is a handle to the indices for a vertex
+buffer object
+otherwise</doc>
+      <return-value transfer-ownership="none">
+        <doc xml:whitespace="preserve">%TRUE if the handle is indices, and %FALSE</doc>
+        <type name="gboolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="handle" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #CoglHandle</doc>
+          <type name="Handle" c:type="CoglHandle"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="material_get_point_size"
+              c:identifier="cogl_material_get_point_size"
+              version="1.4">
+      <doc xml:whitespace="preserve">Get the size of points drawn when %COGL_VERTICES_MODE_POINTS is
+used with the vertex buffer API.</doc>
+      <return-value transfer-ownership="none">
+        <doc xml:whitespace="preserve">the point size of the material.</doc>
+        <type name="gfloat" c:type="float"/>
+      </return-value>
+      <parameters>
+        <parameter name="material" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #CoglHandle to a material.</doc>
+          <type name="Handle" c:type="CoglHandle"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="material_layer_get_type"
+              c:identifier="cogl_material_layer_get_type">
+      <doc xml:whitespace="preserve">Retrieves the type of the layer
+Currently there is only one type of layer defined:
+%COGL_MATERIAL_LAYER_TYPE_TEXTURE, but considering we may add purely GLSL
+based layers in the future, you should write code that checks the type
+first.</doc>
+      <return-value transfer-ownership="none">
+        <doc xml:whitespace="preserve">the type of the layer</doc>
+        <type name="MaterialLayerType" c:type="CoglMaterialLayerType"/>
+      </return-value>
+      <parameters>
+        <parameter name="layer" transfer-ownership="none">
+          <doc xml:whitespace="preserve">A #CoglMaterialLayer object</doc>
+          <type name="MaterialLayer" c:type="CoglMaterialLayer*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="material_new"
+              c:identifier="cogl_material_new"
+              introspectable="0">
+      <doc xml:whitespace="preserve">Allocates and initializes a blank white material</doc>
+      <return-value>
+        <doc xml:whitespace="preserve">a pointer to a new #CoglMaterial</doc>
+        <type name="Material" c:type="CoglMaterial*"/>
+      </return-value>
+    </function>
+    <function name="material_ref"
+              c:identifier="cogl_material_ref"
+              version="1.0"
+              introspectable="0"
+              deprecated="Use cogl_object_ref() instead"
+              deprecated-version="1.2">
+      <doc xml:whitespace="preserve">Increment the reference count for a #CoglMaterial.</doc>
+      <return-value>
+        <doc xml:whitespace="preserve">the @material.</doc>
+        <type name="Handle" c:type="CoglHandle"/>
+      </return-value>
+      <parameters>
+        <parameter name="handle" transfer-ownership="none">
+          <type name="Handle" c:type="CoglHandle"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="material_set_point_size"
+              c:identifier="cogl_material_set_point_size"
+              version="1.4">
+      <doc xml:whitespace="preserve">Changes the size of points drawn when %COGL_VERTICES_MODE_POINTS is
+used with the vertex buffer API. Note that typically the GPU will
+only support a limited minimum and maximum range of point sizes. If
+the chosen point size is outside that range then the nearest value
+within that range will be used instead. The size of a point is in
+screen space so it will be the same regardless of any
+transformations. The default point size is 1.0.</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="material" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #CoglHandle to a material.</doc>
+          <type name="Handle" c:type="CoglHandle"/>
+        </parameter>
+        <parameter name="point_size" transfer-ownership="none">
+          <type name="gfloat" c:type="float"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="material_unref"
+              c:identifier="cogl_material_unref"
+              version="1.0"
+              deprecated="Use cogl_object_unref() instead"
+              deprecated-version="1.2">
+      <doc xml:whitespace="preserve">Decrement the reference count for a #CoglMaterial.</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="handle" transfer-ownership="none">
+          <type name="Handle" c:type="CoglHandle"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="matrix_equal"
+              c:identifier="cogl_matrix_equal"
+              version="1.4">
+      <doc xml:whitespace="preserve">Compares two matrices to see if they represent the same
+transformation. Although internally the matrices may have different
+annotations associated with them and may potentially have a cached
+inverse matrix these are not considered in the comparison.</doc>
+      <return-value transfer-ownership="none">
+        <type name="gboolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="v1" transfer-ownership="none">
+          <doc xml:whitespace="preserve">A 4x4 transformation matrix</doc>
+          <type name="gpointer" c:type="gconstpointer"/>
+        </parameter>
+        <parameter name="v2" transfer-ownership="none">
+          <doc xml:whitespace="preserve">A 4x4 transformation matrix</doc>
+          <type name="gpointer" c:type="gconstpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="object_ref"
+              c:identifier="cogl_object_ref"
+              introspectable="0">
+      <doc xml:whitespace="preserve">Increases the reference count of @handle by 1</doc>
+      <return-value>
+        <doc xml:whitespace="preserve">the @object, with its reference count increased</doc>
+        <type name="gpointer" c:type="void*"/>
+      </return-value>
+      <parameters>
+        <parameter name="object" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #CoglObject</doc>
+          <type name="gpointer" c:type="void*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="object_unref" c:identifier="cogl_object_unref">
+      <doc xml:whitespace="preserve">Drecreases the reference count of @object by 1; if the reference
+count reaches 0, the resources allocated by @object will be freed</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="object" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #CoglObject</doc>
+          <type name="gpointer" c:type="void*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="offscreen_new_to_texture"
+              c:identifier="cogl_offscreen_new_to_texture">
+      <doc xml:whitespace="preserve">This creates an offscreen buffer object using the given texture as the
+primary color buffer. It doesn't just initialize the contents of the
+offscreen buffer with the texture; they are tightly bound so that
+drawing to the offscreen buffer effectivly updates the contents of the
+given texture. You don't need to destroy the offscreen buffer before
+you can use the texture again.
+buffer or %COGL_INVALID_HANDLE if it wasn't possible to create the
+buffer.</doc>
+      <return-value transfer-ownership="full">
+        <doc xml:whitespace="preserve">a #CoglHandle for the new offscreen</doc>
+        <type name="Handle" c:type="CoglHandle"/>
+      </return-value>
+      <parameters>
+        <parameter name="handle" transfer-ownership="none">
+          <doc xml:whitespace="preserve">A CoglHandle for a Cogl texture</doc>
+          <type name="Handle" c:type="CoglHandle"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="offscreen_ref"
+              c:identifier="cogl_offscreen_ref"
+              deprecated="cogl_handle_ref() should be used in new code."
+              deprecated-version="1.2">
+      <doc xml:whitespace="preserve">Increments the reference count on the offscreen buffer.</doc>
+      <return-value transfer-ownership="none">
+        <doc xml:whitespace="preserve">For convenience it returns the given CoglHandle</doc>
+        <type name="Handle" c:type="CoglHandle"/>
+      </return-value>
+      <parameters>
+        <parameter name="handle" transfer-ownership="none">
+          <doc xml:whitespace="preserve">A CoglHandle for an offscreen buffer</doc>
+          <type name="Handle" c:type="CoglHandle"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="offscreen_unref"
+              c:identifier="cogl_offscreen_unref"
+              deprecated="cogl_handle_unref() should be used in new code."
+              deprecated-version="1.2">
+      <doc xml:whitespace="preserve">Decreases the reference count for the offscreen buffer and frees it when
+the count reaches 0.</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="handle" transfer-ownership="none">
+          <doc xml:whitespace="preserve">A CoglHandle for an offscreen buffer</doc>
+          <type name="Handle" c:type="CoglHandle"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="ortho" c:identifier="cogl_ortho" version="1.0">
+      <doc xml:whitespace="preserve">Replaces the current projection matrix with an orthographic projection
+matrix. See &lt;xref linkend="cogl-ortho-matrix"/&gt; to see how the matrix is
+calculated.
+&lt;figure id="cogl-ortho-matrix"&gt;
+&lt;title&gt;&lt;/title&gt;
+&lt;graphic fileref="cogl_ortho.png" format="PNG"/&gt;
+&lt;/figure&gt;
+&lt;note&gt;This function copies the arguments from OpenGL's glOrtho() even
+though they are unnecessarily confusing due to the z near and z far
+arguments actually being a "distance" from the origin, where
+negative values are behind the viewer, instead of coordinates for
+the z clipping planes which would have been consistent with the
+left, right bottom and top arguments.&lt;/note&gt;</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="left" transfer-ownership="none">
+          <doc xml:whitespace="preserve">The coordinate for the left clipping plane</doc>
+          <type name="gfloat" c:type="float"/>
+        </parameter>
+        <parameter name="right" transfer-ownership="none">
+          <doc xml:whitespace="preserve">The coordinate for the right clipping plane</doc>
+          <type name="gfloat" c:type="float"/>
+        </parameter>
+        <parameter name="bottom" transfer-ownership="none">
+          <doc xml:whitespace="preserve">The coordinate for the bottom clipping plane</doc>
+          <type name="gfloat" c:type="float"/>
+        </parameter>
+        <parameter name="top" transfer-ownership="none">
+          <doc xml:whitespace="preserve">The coordinate for the top clipping plane</doc>
+          <type name="gfloat" c:type="float"/>
+        </parameter>
+        <parameter name="near" transfer-ownership="none">
+          <doc xml:whitespace="preserve">The &lt;emphasis&gt;distance&lt;/emphasis&gt; to the near clipping plane (negative if the plane is behind the viewer)</doc>
+          <type name="gfloat" c:type="float"/>
+        </parameter>
+        <parameter name="far" transfer-ownership="none">
+          <doc xml:whitespace="preserve">The &lt;emphasis&gt;distance&lt;/emphasis&gt; for the far clipping plane (negative if the plane is behind the viewer)</doc>
+          <type name="gfloat" c:type="float"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="path_arc" c:identifier="cogl_path_arc">
+      <doc xml:whitespace="preserve">Adds an elliptical arc segment to the current path. A straight line
+segment will link the current pen location with the first vertex
+of the arc. If you perform a move_to to the arcs start just before
+drawing it you create a free standing arc.
+The angles are measured in degrees where 0° is in the direction of
+the positive X axis and 90° is in the direction of the positive Y
+axis. The angle of the arc begins at @angle_1 and heads towards
+otherwise it will increase).</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="center_x" transfer-ownership="none">
+          <doc xml:whitespace="preserve">X coordinate of the elliptical arc center</doc>
+          <type name="gfloat" c:type="float"/>
+        </parameter>
+        <parameter name="center_y" transfer-ownership="none">
+          <doc xml:whitespace="preserve">Y coordinate of the elliptical arc center</doc>
+          <type name="gfloat" c:type="float"/>
+        </parameter>
+        <parameter name="radius_x" transfer-ownership="none">
+          <doc xml:whitespace="preserve">X radius of the elliptical arc</doc>
+          <type name="gfloat" c:type="float"/>
+        </parameter>
+        <parameter name="radius_y" transfer-ownership="none">
+          <doc xml:whitespace="preserve">Y radius of the elliptical arc</doc>
+          <type name="gfloat" c:type="float"/>
+        </parameter>
+        <parameter name="angle_1" transfer-ownership="none">
+          <doc xml:whitespace="preserve">Angle in degrees at which the arc begin</doc>
+          <type name="gfloat" c:type="float"/>
+        </parameter>
+        <parameter name="angle_2" transfer-ownership="none">
+          <doc xml:whitespace="preserve">Angle in degrees at which the arc ends</doc>
+          <type name="gfloat" c:type="float"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="path_close" c:identifier="cogl_path_close">
+      <doc xml:whitespace="preserve">Closes the path being constructed by adding a straight line segment
+to it that ends at the first vertex of the path.</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+    </function>
+    <function name="path_curve_to" c:identifier="cogl_path_curve_to">
+      <doc xml:whitespace="preserve">Adds a cubic bezier curve segment to the current path with the given
+second, third and fourth control points and using current pen location
+as the first control point.</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="x_1" transfer-ownership="none">
+          <doc xml:whitespace="preserve">X coordinate of the second bezier control point</doc>
+          <type name="gfloat" c:type="float"/>
+        </parameter>
+        <parameter name="y_1" transfer-ownership="none">
+          <doc xml:whitespace="preserve">Y coordinate of the second bezier control point</doc>
+          <type name="gfloat" c:type="float"/>
+        </parameter>
+        <parameter name="x_2" transfer-ownership="none">
+          <doc xml:whitespace="preserve">X coordinate of the third bezier control point</doc>
+          <type name="gfloat" c:type="float"/>
+        </parameter>
+        <parameter name="y_2" transfer-ownership="none">
+          <doc xml:whitespace="preserve">Y coordinate of the third bezier control point</doc>
+          <type name="gfloat" c:type="float"/>
+        </parameter>
+        <parameter name="x_3" transfer-ownership="none">
+          <doc xml:whitespace="preserve">X coordinate of the fourth bezier control point</doc>
+          <type name="gfloat" c:type="float"/>
+        </parameter>
+        <parameter name="y_3" transfer-ownership="none">
+          <doc xml:whitespace="preserve">Y coordinate of the fourth bezier control point</doc>
+          <type name="gfloat" c:type="float"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="path_ellipse" c:identifier="cogl_path_ellipse">
+      <doc xml:whitespace="preserve">Constructs an ellipse shape. If there is an existing path this will
+start a new disjoint sub-path.</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="center_x" transfer-ownership="none">
+          <doc xml:whitespace="preserve">X coordinate of the ellipse center</doc>
+          <type name="gfloat" c:type="float"/>
+        </parameter>
+        <parameter name="center_y" transfer-ownership="none">
+          <doc xml:whitespace="preserve">Y coordinate of the ellipse center</doc>
+          <type name="gfloat" c:type="float"/>
+        </parameter>
+        <parameter name="radius_x" transfer-ownership="none">
+          <doc xml:whitespace="preserve">X radius of the ellipse</doc>
+          <type name="gfloat" c:type="float"/>
+        </parameter>
+        <parameter name="radius_y" transfer-ownership="none">
+          <doc xml:whitespace="preserve">Y radius of the ellipse</doc>
+          <type name="gfloat" c:type="float"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="path_fill" c:identifier="cogl_path_fill">
+      <doc xml:whitespace="preserve">Fills the interior of the constructed shape using the current
+drawing color. The current path is then cleared. To use the path
+again, call cogl_path_fill_preserve() instead.
+The interior of the shape is determined using the fill rule of the
+path. See %CoglPathFillRule for details.</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+    </function>
+    <function name="path_fill_preserve"
+              c:identifier="cogl_path_fill_preserve"
+              version="1.0">
+      <doc xml:whitespace="preserve">Fills the interior of the constructed shape using the current
+drawing color and preserves the path to be used again. See
+cogl_path_fill() for a description what is considered the interior
+of the shape.</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+    </function>
+    <function name="path_get_fill_rule"
+              c:identifier="cogl_path_get_fill_rule"
+              version="1.4">
+      <doc xml:whitespace="preserve">Retrieves the fill rule set using cogl_path_set_fill_rule().</doc>
+      <return-value transfer-ownership="none">
+        <doc xml:whitespace="preserve">the fill rule that is used for the current path.</doc>
+        <type name="PathFillRule" c:type="CoglPathFillRule"/>
+      </return-value>
+    </function>
+    <function name="path_line" c:identifier="cogl_path_line">
+      <doc xml:whitespace="preserve">Constructs a straight line shape starting and ending at the given
+coordinates. If there is an existing path this will start a new
+disjoint sub-path.</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="x_1" transfer-ownership="none">
+          <doc xml:whitespace="preserve">X coordinate of the start line vertex</doc>
+          <type name="gfloat" c:type="float"/>
+        </parameter>
+        <parameter name="y_1" transfer-ownership="none">
+          <doc xml:whitespace="preserve">Y coordinate of the start line vertex</doc>
+          <type name="gfloat" c:type="float"/>
+        </parameter>
+        <parameter name="x_2" transfer-ownership="none">
+          <doc xml:whitespace="preserve">X coordinate of the end line vertex</doc>
+          <type name="gfloat" c:type="float"/>
+        </parameter>
+        <parameter name="y_2" transfer-ownership="none">
+          <doc xml:whitespace="preserve">Y coordinate of the end line vertex</doc>
+          <type name="gfloat" c:type="float"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="path_line_to" c:identifier="cogl_path_line_to">
+      <doc xml:whitespace="preserve">Adds a straight line segment to the current path that ends at the
+given coordinates.</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="x" transfer-ownership="none">
+          <doc xml:whitespace="preserve">X coordinate of the end line vertex</doc>
+          <type name="gfloat" c:type="float"/>
+        </parameter>
+        <parameter name="y" transfer-ownership="none">
+          <doc xml:whitespace="preserve">Y coordinate of the end line vertex</doc>
+          <type name="gfloat" c:type="float"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="path_move_to" c:identifier="cogl_path_move_to">
+      <doc xml:whitespace="preserve">Moves the pen to the given location. If there is an existing path
+this will start a new disjoint subpath.</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="x" transfer-ownership="none">
+          <doc xml:whitespace="preserve">X coordinate of the pen location to move to.</doc>
+          <type name="gfloat" c:type="float"/>
+        </parameter>
+        <parameter name="y" transfer-ownership="none">
+          <doc xml:whitespace="preserve">Y coordinate of the pen location to move to.</doc>
+          <type name="gfloat" c:type="float"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="path_new" c:identifier="cogl_path_new" version="1.0">
+      <doc xml:whitespace="preserve">Clears the current path and starts a new one. Creating a new path
+also resets the fill rule to the default which is
+%COGL_PATH_FILL_RULE_EVEN_ODD.</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+    </function>
+    <function name="path_polygon" c:identifier="cogl_path_polygon">
+      <doc xml:whitespace="preserve">Constructs a polygonal shape of the given number of vertices. If
+there is an existing path this will start a new disjoint sub-path.
+The coords array must contain 2 * num_points values. The first value
+represents the X coordinate of the first vertex, the second value
+represents the Y coordinate of the first vertex, continuing in the same
+fashion for the rest of the vertices.</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="coords" transfer-ownership="none">
+          <doc xml:whitespace="preserve">A pointer to the first element of an array of fixed-point values that specify the vertex coordinates.</doc>
+          <array c:type="float*">
+            <type name="gfloat"/>
+          </array>
+        </parameter>
+        <parameter name="num_points" transfer-ownership="none">
+          <doc xml:whitespace="preserve">The total number of vertices.</doc>
+          <type name="gint" c:type="int"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="path_polyline" c:identifier="cogl_path_polyline">
+      <doc xml:whitespace="preserve">Constructs a series of straight line segments, starting from the
+first given vertex coordinate. If there is an existing path this
+will start a new disjoint sub-path. Each subsequent segment starts
+where the previous one ended and ends at the next given vertex
+coordinate.
+The coords array must contain 2 * num_points values. The first value
+represents the X coordinate of the first vertex, the second value
+represents the Y coordinate of the first vertex, continuing in the same
+fashion for the rest of the vertices. (num_points - 1) segments will
+be constructed.</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="coords" transfer-ownership="none">
+          <doc xml:whitespace="preserve">A pointer to the first element of an array of fixed-point values that specify the vertex coordinates.</doc>
+          <array c:type="float*">
+            <type name="gfloat"/>
+          </array>
+        </parameter>
+        <parameter name="num_points" transfer-ownership="none">
+          <doc xml:whitespace="preserve">The total number of vertices.</doc>
+          <type name="gint" c:type="int"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="path_rectangle" c:identifier="cogl_path_rectangle">
+      <doc xml:whitespace="preserve">Constructs a rectangular shape at the given coordinates. If there
+is an existing path this will start a new disjoint sub-path.</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="x_1" transfer-ownership="none">
+          <doc xml:whitespace="preserve">X coordinate of the top-left corner.</doc>
+          <type name="gfloat" c:type="float"/>
+        </parameter>
+        <parameter name="y_1" transfer-ownership="none">
+          <doc xml:whitespace="preserve">Y coordinate of the top-left corner.</doc>
+          <type name="gfloat" c:type="float"/>
+        </parameter>
+        <parameter name="x_2" transfer-ownership="none">
+          <doc xml:whitespace="preserve">X coordinate of the bottom-right corner.</doc>
+          <type name="gfloat" c:type="float"/>
+        </parameter>
+        <parameter name="y_2" transfer-ownership="none">
+          <doc xml:whitespace="preserve">Y coordinate of the bottom-right corner.</doc>
+          <type name="gfloat" c:type="float"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="path_rel_curve_to" c:identifier="cogl_path_rel_curve_to">
+      <doc xml:whitespace="preserve">Adds a cubic bezier curve segment to the current path with the given
+second, third and fourth control points and using current pen location
+as the first control point. The given coordinates are relative to the
+current pen location.</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="x_1" transfer-ownership="none">
+          <doc xml:whitespace="preserve">X coordinate of the second bezier control point</doc>
+          <type name="gfloat" c:type="float"/>
+        </parameter>
+        <parameter name="y_1" transfer-ownership="none">
+          <doc xml:whitespace="preserve">Y coordinate of the second bezier control point</doc>
+          <type name="gfloat" c:type="float"/>
+        </parameter>
+        <parameter name="x_2" transfer-ownership="none">
+          <doc xml:whitespace="preserve">X coordinate of the third bezier control point</doc>
+          <type name="gfloat" c:type="float"/>
+        </parameter>
+        <parameter name="y_2" transfer-ownership="none">
+          <doc xml:whitespace="preserve">Y coordinate of the third bezier control point</doc>
+          <type name="gfloat" c:type="float"/>
+        </parameter>
+        <parameter name="x_3" transfer-ownership="none">
+          <doc xml:whitespace="preserve">X coordinate of the fourth bezier control point</doc>
+          <type name="gfloat" c:type="float"/>
+        </parameter>
+        <parameter name="y_3" transfer-ownership="none">
+          <doc xml:whitespace="preserve">Y coordinate of the fourth bezier control point</doc>
+          <type name="gfloat" c:type="float"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="path_rel_line_to" c:identifier="cogl_path_rel_line_to">
+      <doc xml:whitespace="preserve">Adds a straight line segment to the current path that ends at the
+given coordinates relative to the current pen location.</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="x" transfer-ownership="none">
+          <doc xml:whitespace="preserve">X offset from the current pen location of the end line vertex</doc>
+          <type name="gfloat" c:type="float"/>
+        </parameter>
+        <parameter name="y" transfer-ownership="none">
+          <doc xml:whitespace="preserve">Y offset from the current pen location of the end line vertex</doc>
+          <type name="gfloat" c:type="float"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="path_rel_move_to" c:identifier="cogl_path_rel_move_to">
+      <doc xml:whitespace="preserve">Moves the pen to the given offset relative to the current pen
+location. If there is an existing path this will start a new
+disjoint subpath.</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="x" transfer-ownership="none">
+          <doc xml:whitespace="preserve">X offset from the current pen location to move the pen to.</doc>
+          <type name="gfloat" c:type="float"/>
+        </parameter>
+        <parameter name="y" transfer-ownership="none">
+          <doc xml:whitespace="preserve">Y offset from the current pen location to move the pen to.</doc>
+          <type name="gfloat" c:type="float"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="path_round_rectangle"
+              c:identifier="cogl_path_round_rectangle">
+      <doc xml:whitespace="preserve">Constructs a rectangular shape with rounded corners. If there is an
+existing path this will start a new disjoint sub-path.</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="x_1" transfer-ownership="none">
+          <doc xml:whitespace="preserve">X coordinate of the top-left corner.</doc>
+          <type name="gfloat" c:type="float"/>
+        </parameter>
+        <parameter name="y_1" transfer-ownership="none">
+          <doc xml:whitespace="preserve">Y coordinate of the top-left corner.</doc>
+          <type name="gfloat" c:type="float"/>
+        </parameter>
+        <parameter name="x_2" transfer-ownership="none">
+          <doc xml:whitespace="preserve">X coordinate of the bottom-right corner.</doc>
+          <type name="gfloat" c:type="float"/>
+        </parameter>
+        <parameter name="y_2" transfer-ownership="none">
+          <doc xml:whitespace="preserve">Y coordinate of the bottom-right corner.</doc>
+          <type name="gfloat" c:type="float"/>
+        </parameter>
+        <parameter name="radius" transfer-ownership="none">
+          <doc xml:whitespace="preserve">Radius of the corner arcs.</doc>
+          <type name="gfloat" c:type="float"/>
+        </parameter>
+        <parameter name="arc_step" transfer-ownership="none">
+          <doc xml:whitespace="preserve">Angle increment resolution for subdivision of the corner arcs.</doc>
+          <type name="gfloat" c:type="float"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="path_set_fill_rule"
+              c:identifier="cogl_path_set_fill_rule"
+              version="1.4">
+      <doc xml:whitespace="preserve">Sets the fill rule of the current path to @fill_rule. This will
+affect how the path is filled when cogl_path_fill() is later
+called. Note that the fill rule state is attached to the path so
+calling cogl_get_path() will preserve the fill rule and calling
+cogl_path_new() will reset the fill rule back to the default.</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="fill_rule" transfer-ownership="none">
+          <doc xml:whitespace="preserve">The new fill rule.</doc>
+          <type name="PathFillRule" c:type="CoglPathFillRule"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="path_stroke" c:identifier="cogl_path_stroke">
+      <doc xml:whitespace="preserve">Strokes the constructed shape using the current drawing color and a
+width of 1 pixel (regardless of the current transformation
+matrix). To current path is then cleared. To use the path again,
+call cogl_path_stroke_preserve() instead.</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+    </function>
+    <function name="path_stroke_preserve"
+              c:identifier="cogl_path_stroke_preserve"
+              version="1.0">
+      <doc xml:whitespace="preserve">Strokes the constructed shape using the current drawing color and
+preserves the path to be used again.</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+    </function>
+    <function name="perspective" c:identifier="cogl_perspective">
+      <doc xml:whitespace="preserve">Replaces the current projection matrix with a perspective matrix
+based on the provided values.</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="fovy" transfer-ownership="none">
+          <doc xml:whitespace="preserve">Vertical of view angle in degrees.</doc>
+          <type name="gfloat" c:type="float"/>
+        </parameter>
+        <parameter name="aspect" transfer-ownership="none">
+          <doc xml:whitespace="preserve">Aspect ratio of diesplay</doc>
+          <type name="gfloat" c:type="float"/>
+        </parameter>
+        <parameter name="z_near" transfer-ownership="none">
+          <doc xml:whitespace="preserve">Nearest visible point</doc>
+          <type name="gfloat" c:type="float"/>
+        </parameter>
+        <parameter name="z_far" transfer-ownership="none">
+          <doc xml:whitespace="preserve">Furthest visible point along the z-axis</doc>
+          <type name="gfloat" c:type="float"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="pixel_array_new_with_size_EXP"
+              c:identifier="cogl_pixel_array_new_with_size_EXP"
+              introspectable="0">
+      <return-value>
+        <type name="PixelArray" c:type="CoglPixelArray*"/>
+      </return-value>
+      <parameters>
+        <parameter name="width" transfer-ownership="none">
+          <type name="guint" c:type="unsigned int"/>
+        </parameter>
+        <parameter name="height" transfer-ownership="none">
+          <type name="guint" c:type="unsigned int"/>
+        </parameter>
+        <parameter name="format" transfer-ownership="none">
+          <type name="PixelFormat" c:type="CoglPixelFormat"/>
+        </parameter>
+        <parameter name="stride" transfer-ownership="none">
+          <type name="guint" c:type="unsigned int*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="polygon" c:identifier="cogl_polygon" version="1.0">
+      <doc xml:whitespace="preserve">Draws a convex polygon using the current source material to fill / texture
+with according to the texture coordinates passed.
+If @use_color is %TRUE then the color will be changed for each vertex using
+the value specified in the color member of #CoglTextureVertex. This can be
+used for example to make the texture fade out by setting the alpha value of
+the color.
+All of the texture coordinates must be in the range [0,1] and repeating the
+texture is not supported.
+Because of the way this function is implemented it will currently
+only work if either the texture is not sliced or the backend is not
+OpenGL ES and the minifying and magnifying functions are both set
+to COGL_MATERIAL_FILTER_NEAREST.</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="vertices" transfer-ownership="none">
+          <doc xml:whitespace="preserve">An array of #CoglTextureVertex structs</doc>
+          <type name="TextureVertex" c:type="CoglTextureVertex*"/>
+        </parameter>
+        <parameter name="n_vertices" transfer-ownership="none">
+          <doc xml:whitespace="preserve">The length of the vertices array</doc>
+          <type name="guint" c:type="unsigned int"/>
+        </parameter>
+        <parameter name="use_color" transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if the color member of #CoglTextureVertex should be used</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="pop_draw_buffer"
+              c:identifier="cogl_pop_draw_buffer"
+              deprecated="The draw buffer API was replaced with a framebuffer API"
+              deprecated-version="1.2">
+      <doc xml:whitespace="preserve">Restore cogl_set_draw_buffer() state.</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+    </function>
+    <function name="pop_framebuffer"
+              c:identifier="cogl_pop_framebuffer"
+              version="1.2">
+      <doc xml:whitespace="preserve">Restores the framebuffer that was previously at the top of the stack.
+All subsequent drawing will be redirected to this framebuffer.</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+    </function>
+    <function name="pop_matrix" c:identifier="cogl_pop_matrix">
+      <doc xml:whitespace="preserve">Restores the current model-view matrix from the matrix stack.</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+    </function>
+    <function name="program_attach_shader"
+              c:identifier="cogl_program_attach_shader">
+      <doc xml:whitespace="preserve">Attaches a shader to a program object, a program can have one vertex shader
+and one fragment shader attached.</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="program_handle" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #CoglHandle for a shdaer program.</doc>
+          <type name="Handle" c:type="CoglHandle"/>
+        </parameter>
+        <parameter name="shader_handle" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #CoglHandle for a vertex of fragment shader.</doc>
+          <type name="Handle" c:type="CoglHandle"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="program_get_uniform_location"
+              c:identifier="cogl_program_get_uniform_location">
+      <doc xml:whitespace="preserve">Retrieve the location (offset) of a uniform variable in a shader program,
+a uniform is a variable that is constant for all vertices/fragments for a
+shader object and is possible to modify as an external parameter.
+This uniform can be set using cogl_program_uniform_1f() when the
+program is in use.</doc>
+      <return-value transfer-ownership="none">
+        <doc xml:whitespace="preserve">the offset of a uniform in a specified program.</doc>
+        <type name="gint" c:type="int"/>
+      </return-value>
+      <parameters>
+        <parameter name="handle" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #CoglHandle for a shader program.</doc>
+          <type name="Handle" c:type="CoglHandle"/>
+        </parameter>
+        <parameter name="uniform_name" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the name of a uniform.</doc>
+          <type name="utf8" c:type="char*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="program_link" c:identifier="cogl_program_link">
+      <doc xml:whitespace="preserve">Links a program making it ready for use.</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="handle" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #CoglHandle for a shader program.</doc>
+          <type name="Handle" c:type="CoglHandle"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="program_ref"
+              c:identifier="cogl_program_ref"
+              introspectable="0">
+      <doc xml:whitespace="preserve">Add an extra reference to a program.</doc>
+      <return-value>
+        <doc xml:whitespace="preserve">@handle</doc>
+        <type name="Handle" c:type="CoglHandle"/>
+      </return-value>
+      <parameters>
+        <parameter name="handle" transfer-ownership="none">
+          <doc xml:whitespace="preserve">A #CoglHandle to a program.</doc>
+          <type name="Handle" c:type="CoglHandle"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="program_set_uniform_1f"
+              c:identifier="cogl_program_set_uniform_1f"
+              version="1.4">
+      <doc xml:whitespace="preserve">Changes the value of a floating point uniform for the given linked</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="program" transfer-ownership="none">
+          <doc xml:whitespace="preserve">A #CoglHandle for a linked program</doc>
+          <type name="Handle" c:type="CoglHandle"/>
+        </parameter>
+        <parameter name="uniform_location" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the uniform location retrieved from cogl_program_get_uniform_location().</doc>
+          <type name="gint" c:type="int"/>
+        </parameter>
+        <parameter name="value" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the new value of the uniform.</doc>
+          <type name="gfloat" c:type="float"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="program_set_uniform_1i"
+              c:identifier="cogl_program_set_uniform_1i"
+              version="1.4">
+      <doc xml:whitespace="preserve">Changes the value of an integer uniform for the given linked</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="program" transfer-ownership="none">
+          <doc xml:whitespace="preserve">A #CoglHandle for a linked program</doc>
+          <type name="Handle" c:type="CoglHandle"/>
+        </parameter>
+        <parameter name="uniform_location" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the uniform location retrieved from cogl_program_get_uniform_location().</doc>
+          <type name="gint" c:type="int"/>
+        </parameter>
+        <parameter name="value" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the new value of the uniform.</doc>
+          <type name="gint" c:type="int"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="program_set_uniform_float"
+              c:identifier="cogl_program_set_uniform_float"
+              version="1.4">
+      <doc xml:whitespace="preserve">Changes the value of a float vector uniform, or uniform array for
+the given linked @program.</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="program" transfer-ownership="none">
+          <doc xml:whitespace="preserve">A #CoglHandle for a linked program</doc>
+          <type name="Handle" c:type="CoglHandle"/>
+        </parameter>
+        <parameter name="uniform_location" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the uniform location retrieved from cogl_program_get_uniform_location().</doc>
+          <type name="gint" c:type="int"/>
+        </parameter>
+        <parameter name="n_components" transfer-ownership="none">
+          <doc xml:whitespace="preserve">The number of components for the uniform. For example with glsl you'd use 3 for a vec3 or 4 for a vec4.</doc>
+          <type name="gint" c:type="int"/>
+        </parameter>
+        <parameter name="count" transfer-ownership="none">
+          <doc xml:whitespace="preserve">For uniform arrays this is the array length otherwise just pass 1</doc>
+          <type name="gint" c:type="int"/>
+        </parameter>
+        <parameter name="value" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the new value of the uniform[s].</doc>
+          <array length="3" c:type="float*">
+            <type name="gfloat"/>
+          </array>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="program_set_uniform_int"
+              c:identifier="cogl_program_set_uniform_int"
+              version="1.4">
+      <doc xml:whitespace="preserve">Changes the value of a int vector uniform, or uniform array for
+the given linked @program.</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="program" transfer-ownership="none">
+          <doc xml:whitespace="preserve">A #CoglHandle for a linked program</doc>
+          <type name="Handle" c:type="CoglHandle"/>
+        </parameter>
+        <parameter name="uniform_location" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the uniform location retrieved from cogl_program_get_uniform_location().</doc>
+          <type name="gint" c:type="int"/>
+        </parameter>
+        <parameter name="n_components" transfer-ownership="none">
+          <doc xml:whitespace="preserve">The number of components for the uniform. For example with glsl you'd use 3 for a vec3 or 4 for a vec4.</doc>
+          <type name="gint" c:type="int"/>
+        </parameter>
+        <parameter name="count" transfer-ownership="none">
+          <doc xml:whitespace="preserve">For uniform arrays this is the array length otherwise just pass 1</doc>
+          <type name="gint" c:type="int"/>
+        </parameter>
+        <parameter name="value" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the new value of the uniform[s].</doc>
+          <array length="3" c:type="int*">
+            <type name="gint"/>
+          </array>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="program_set_uniform_matrix"
+              c:identifier="cogl_program_set_uniform_matrix"
+              version="1.4">
+      <doc xml:whitespace="preserve">Changes the value of a matrix uniform, or uniform array in the
+given linked @program.</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="program" transfer-ownership="none">
+          <doc xml:whitespace="preserve">A #CoglHandle for a linked program</doc>
+          <type name="Handle" c:type="CoglHandle"/>
+        </parameter>
+        <parameter name="uniform_location" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the uniform location retrieved from cogl_program_get_uniform_location().</doc>
+          <type name="gint" c:type="int"/>
+        </parameter>
+        <parameter name="dimensions" transfer-ownership="none">
+          <doc xml:whitespace="preserve">The dimensions of the matrix. So for for example pass 2 for a 2x2 matrix or 3 for 3x3.</doc>
+          <type name="gint" c:type="int"/>
+        </parameter>
+        <parameter name="count" transfer-ownership="none">
+          <doc xml:whitespace="preserve">For uniform arrays this is the array length otherwise just pass 1</doc>
+          <type name="gint" c:type="int"/>
+        </parameter>
+        <parameter name="transpose" transfer-ownership="none">
+          <doc xml:whitespace="preserve">Whether to transpose the matrix when setting the uniform.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </parameter>
+        <parameter name="value" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the new value of the uniform.</doc>
+          <array length="3" c:type="float*">
+            <type name="gfloat"/>
+          </array>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="program_uniform_1f"
+              c:identifier="cogl_program_uniform_1f"
+              deprecated="Use cogl_program_set_uniform_1f() instead."
+              deprecated-version="1.4">
+      <doc xml:whitespace="preserve">Changes the value of a floating point uniform in the currently
+used (see cogl_program_use()) shader program.</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="uniform_no" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the uniform to set.</doc>
+          <type name="gint" c:type="int"/>
+        </parameter>
+        <parameter name="value" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the new value of the uniform.</doc>
+          <type name="gfloat" c:type="float"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="program_uniform_1i"
+              c:identifier="cogl_program_uniform_1i"
+              deprecated="Use cogl_program_set_uniform_1i() instead."
+              deprecated-version="1.4">
+      <doc xml:whitespace="preserve">Changes the value of an integer uniform in the currently
+used (see cogl_program_use()) shader program.</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="uniform_no" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the uniform to set.</doc>
+          <type name="gint" c:type="int"/>
+        </parameter>
+        <parameter name="value" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the new value of the uniform.</doc>
+          <type name="gint" c:type="int"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="program_uniform_float"
+              c:identifier="cogl_program_uniform_float"
+              deprecated="Use cogl_program_set_uniform_float() instead."
+              deprecated-version="1.4">
+      <doc xml:whitespace="preserve">Changes the value of a float vector uniform, or uniform array in the
+currently used (see cogl_program_use()) shader program.</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="uniform_no" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the uniform to set.</doc>
+          <type name="gint" c:type="int"/>
+        </parameter>
+        <parameter name="size" transfer-ownership="none">
+          <doc xml:whitespace="preserve">Size of float vector.</doc>
+          <type name="gint" c:type="int"/>
+        </parameter>
+        <parameter name="count" transfer-ownership="none">
+          <doc xml:whitespace="preserve">Size of array of uniforms.</doc>
+          <type name="gint" c:type="int"/>
+        </parameter>
+        <parameter name="value" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the new value of the uniform.</doc>
+          <array length="2" c:type="float*">
+            <type name="gfloat"/>
+          </array>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="program_uniform_int"
+              c:identifier="cogl_program_uniform_int">
+      <doc xml:whitespace="preserve">Changes the value of a int vector uniform, or uniform array in the
+currently used (see cogl_program_use()) shader program.</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="uniform_no" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the uniform to set.</doc>
+          <type name="gint" c:type="int"/>
+        </parameter>
+        <parameter name="size" transfer-ownership="none">
+          <doc xml:whitespace="preserve">Size of int vector.</doc>
+          <type name="gint" c:type="int"/>
+        </parameter>
+        <parameter name="count" transfer-ownership="none">
+          <doc xml:whitespace="preserve">Size of array of uniforms.</doc>
+          <type name="gint" c:type="int"/>
+        </parameter>
+        <parameter name="value" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the new value of the uniform.</doc>
+          <array length="2" c:type="int*">
+            <type name="gint"/>
+          </array>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="program_uniform_matrix"
+              c:identifier="cogl_program_uniform_matrix">
+      <doc xml:whitespace="preserve">Changes the value of a matrix uniform, or uniform array in the
+currently used (see cogl_program_use()) shader program. The @size
+parameter is used to determine the square size of the matrix.</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="uniform_no" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the uniform to set.</doc>
+          <type name="gint" c:type="int"/>
+        </parameter>
+        <parameter name="size" transfer-ownership="none">
+          <doc xml:whitespace="preserve">Size of matrix.</doc>
+          <type name="gint" c:type="int"/>
+        </parameter>
+        <parameter name="count" transfer-ownership="none">
+          <doc xml:whitespace="preserve">Size of array of uniforms.</doc>
+          <type name="gint" c:type="int"/>
+        </parameter>
+        <parameter name="transpose" transfer-ownership="none">
+          <doc xml:whitespace="preserve">Whether to transpose the matrix when setting the uniform.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </parameter>
+        <parameter name="value" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the new value of the uniform.</doc>
+          <array length="2" c:type="float*">
+            <type name="gfloat"/>
+          </array>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="program_unref" c:identifier="cogl_program_unref">
+      <doc xml:whitespace="preserve">Removes a reference to a program. If it was the last reference the
+program object will be destroyed.</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="handle" transfer-ownership="none">
+          <doc xml:whitespace="preserve">A #CoglHandle to a program.</doc>
+          <type name="Handle" c:type="CoglHandle"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="program_use" c:identifier="cogl_program_use">
+      <doc xml:whitespace="preserve">Activate a specific shader program replacing that part of the GL
+rendering pipeline, if passed in %COGL_INVALID_HANDLE the default
+behavior of GL is reinstated.</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="handle" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #CoglHandle for a shader program or %COGL_INVALID_HANDLE.</doc>
+          <type name="Handle" c:type="CoglHandle"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="push_draw_buffer"
+              c:identifier="cogl_push_draw_buffer"
+              deprecated="The draw buffer API was replaced with a framebuffer API"
+              deprecated-version="1.2">
+      <doc xml:whitespace="preserve">Save cogl_set_draw_buffer() state.</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+    </function>
+    <function name="push_framebuffer"
+              c:identifier="cogl_push_framebuffer"
+              version="1.2">
+      <doc xml:whitespace="preserve">Redirects all subsequent drawing to the specified framebuffer. This can
+either be an offscreen buffer created with cogl_offscreen_new_to_texture ()
+or in the future it may be an onscreen framebuffer too.
+You should understand that a framebuffer owns the following state:
+&lt;itemizedlist&gt;
+&lt;listitem&gt;&lt;simpara&gt;The projection matrix&lt;/simpara&gt;&lt;/listitem&gt;
+&lt;listitem&gt;&lt;simpara&gt;The modelview matrix stack&lt;/simpara&gt;&lt;/listitem&gt;
+&lt;listitem&gt;&lt;simpara&gt;The viewport&lt;/simpara&gt;&lt;/listitem&gt;
+&lt;listitem&gt;&lt;simpara&gt;The clip stack&lt;/simpara&gt;&lt;/listitem&gt;
+&lt;/itemizedlist&gt;
+So these items will automatically be saved and restored when you
+push and pop between different framebuffers.
+Also remember a newly allocated framebuffer will have an identity matrix for
+the projection and modelview matrices which gives you a coordinate space
+like OpenGL with (-1, -1) corresponding to the top left of the viewport,
+(1, 1) corresponding to the bottom right and +z coming out towards the
+viewer.
+If you want to set up a coordinate space like Clutter does with (0, 0)
+corresponding to the top left and (framebuffer_width, framebuffer_height)
+corresponding to the bottom right you can do so like this:
+|[
+static void
+setup_viewport (unsigned int width,
+unsigned int height,
+float fovy,
+float aspect,
+float z_near,
+float z_far)
+{
+float z_camera;
+CoglMatrix projection_matrix;
+CoglMatrix mv_matrix;
+cogl_set_viewport (0, 0, width, height);
+cogl_perspective (fovy, aspect, z_near, z_far);
+cogl_get_projection_matrix (&amp;amp;projection_matrix);
+z_camera = 0.5 * projection_matrix.xx;
+cogl_matrix_init_identity (&amp;amp;mv_matrix);
+cogl_matrix_translate (&amp;amp;mv_matrix, -0.5f, -0.5f, -z_camera);
+cogl_matrix_scale (&amp;amp;mv_matrix, 1.0f / width, -1.0f / height, 1.0f / width);
+cogl_matrix_translate (&amp;amp;mv_matrix, 0.0f, -1.0 * height, 0.0f);
+cogl_set_modelview_matrix (&amp;amp;mv_matrix);
+}
+static void
+my_init_framebuffer (ClutterStage *stage,
+CoglFramebuffer *framebuffer,
+unsigned int framebuffer_width,
+unsigned int framebuffer_height)
+{
+ClutterPerspective perspective;
+clutter_stage_get_perspective (stage, &amp;perspective);
+cogl_push_framebuffer (framebuffer);
+setup_viewport (framebuffer_width,
+framebuffer_height,
+perspective.fovy,
+perspective.aspect,
+perspective.z_near,
+perspective.z_far);
+}
+]|
+The previous framebuffer can be restored by calling cogl_pop_framebuffer()</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="buffer" transfer-ownership="none">
+          <doc xml:whitespace="preserve">A #CoglFramebuffer object, either onscreen or offscreen.</doc>
+          <type name="Framebuffer" c:type="CoglFramebuffer*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="push_matrix" c:identifier="cogl_push_matrix">
+      <doc xml:whitespace="preserve">Stores the current model-view matrix on the matrix stack. The matrix
+can later be restored with cogl_pop_matrix().</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+    </function>
+    <function name="read_pixels" c:identifier="cogl_read_pixels">
+      <doc xml:whitespace="preserve">This reads a rectangle of pixels from the current framebuffer where
+position (0, 0) is the top left. The pixel at (x, y) is the first
+read, and the data is returned with a rowstride of (width * 4).
+Currently Cogl assumes that the framebuffer is in a premultiplied
+format so if @format is non-premultiplied it will convert it. To
+read the pixel values without any conversion you should either
+specify a format that doesn't use an alpha channel or use one of
+the formats ending in PRE.</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="x" transfer-ownership="none">
+          <doc xml:whitespace="preserve">The window x position to start reading from</doc>
+          <type name="gint" c:type="int"/>
+        </parameter>
+        <parameter name="y" transfer-ownership="none">
+          <doc xml:whitespace="preserve">The window y position to start reading from</doc>
+          <type name="gint" c:type="int"/>
+        </parameter>
+        <parameter name="width" transfer-ownership="none">
+          <doc xml:whitespace="preserve">The width of the rectangle you want to read</doc>
+          <type name="gint" c:type="int"/>
+        </parameter>
+        <parameter name="height" transfer-ownership="none">
+          <doc xml:whitespace="preserve">The height of the rectangle you want to read</doc>
+          <type name="gint" c:type="int"/>
+        </parameter>
+        <parameter name="source" transfer-ownership="none">
+          <doc xml:whitespace="preserve">Identifies which auxillary buffer you want to read (only COGL_READ_PIXELS_COLOR_BUFFER supported currently)</doc>
+          <type name="ReadPixelsFlags" c:type="CoglReadPixelsFlags"/>
+        </parameter>
+        <parameter name="format" transfer-ownership="none">
+          <doc xml:whitespace="preserve">The pixel format you want the result in (only COGL_PIXEL_FORMAT_RGBA_8888 supported currently)</doc>
+          <type name="PixelFormat" c:type="CoglPixelFormat"/>
+        </parameter>
+        <parameter name="pixels" transfer-ownership="none">
+          <doc xml:whitespace="preserve">The location to write the pixel data.</doc>
+          <type name="guint8" c:type="guint8*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="rectangle" c:identifier="cogl_rectangle">
+      <doc xml:whitespace="preserve">Fills a rectangle at the given coordinates with the current source material</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="x_1" transfer-ownership="none">
+          <doc xml:whitespace="preserve">X coordinate of the top-left corner</doc>
+          <type name="gfloat" c:type="float"/>
+        </parameter>
+        <parameter name="y_1" transfer-ownership="none">
+          <doc xml:whitespace="preserve">Y coordinate of the top-left corner</doc>
+          <type name="gfloat" c:type="float"/>
+        </parameter>
+        <parameter name="x_2" transfer-ownership="none">
+          <doc xml:whitespace="preserve">X coordinate of the bottom-right corner</doc>
+          <type name="gfloat" c:type="float"/>
+        </parameter>
+        <parameter name="y_2" transfer-ownership="none">
+          <doc xml:whitespace="preserve">Y coordinate of the bottom-right corner</doc>
+          <type name="gfloat" c:type="float"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="rectangle_with_multitexture_coords"
+              c:identifier="cogl_rectangle_with_multitexture_coords"
+              version="1.0">
+      <doc xml:whitespace="preserve">This function draws a rectangle using the current source material to
+texture or fill with. As a material may contain multiple texture layers
+this interface lets you supply texture coordinates for each layer of the
+material.
+The first pair of coordinates are for the first layer (with the smallest
+layer index) and if you supply less texture coordinates than there are
+layers in the current source material then default texture coordinates
+(0.0, 0.0, 1.0, 1.0) are generated.</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="x1" transfer-ownership="none">
+          <doc xml:whitespace="preserve">x coordinate upper left on screen.</doc>
+          <type name="gfloat" c:type="float"/>
+        </parameter>
+        <parameter name="y1" transfer-ownership="none">
+          <doc xml:whitespace="preserve">y coordinate upper left on screen.</doc>
+          <type name="gfloat" c:type="float"/>
+        </parameter>
+        <parameter name="x2" transfer-ownership="none">
+          <doc xml:whitespace="preserve">x coordinate lower right on screen.</doc>
+          <type name="gfloat" c:type="float"/>
+        </parameter>
+        <parameter name="y2" transfer-ownership="none">
+          <doc xml:whitespace="preserve">y coordinate lower right on screen.</doc>
+          <type name="gfloat" c:type="float"/>
+        </parameter>
+        <parameter name="tex_coords" transfer-ownership="none">
+          <doc xml:whitespace="preserve">An array containing groups of 4 float values: [tx1, ty1, tx2, ty2] that are interpreted as two texture coordinates; one for the upper left texel, and one for the lower right texel. Each value should be between 0.0 and 1.0, where the coordinate (0.0, 0.0) represents the top left of the texture, and (1.0, 1.0) the bottom right.</doc>
+          <array c:type="float*">
+            <type name="gfloat"/>
+          </array>
+        </parameter>
+        <parameter name="tex_coords_len" transfer-ownership="none">
+          <doc xml:whitespace="preserve">The length of the tex_coords array. (e.g. for one layer and one group of texture coordinates, this would be 4)</doc>
+          <type name="gint" c:type="int"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="rectangle_with_texture_coords"
+              c:identifier="cogl_rectangle_with_texture_coords"
+              version="1.0">
+      <doc xml:whitespace="preserve">Draw a rectangle using the current material and supply texture coordinates
+to be used for the first texture layer of the material. To draw the entire
+texture pass in @tx1=0.0 @ty1=0.0 @tx2=1.0 @ty2=1.0.</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="x1" transfer-ownership="none">
+          <doc xml:whitespace="preserve">x coordinate upper left on screen.</doc>
+          <type name="gfloat" c:type="float"/>
+        </parameter>
+        <parameter name="y1" transfer-ownership="none">
+          <doc xml:whitespace="preserve">y coordinate upper left on screen.</doc>
+          <type name="gfloat" c:type="float"/>
+        </parameter>
+        <parameter name="x2" transfer-ownership="none">
+          <doc xml:whitespace="preserve">x coordinate lower right on screen.</doc>
+          <type name="gfloat" c:type="float"/>
+        </parameter>
+        <parameter name="y2" transfer-ownership="none">
+          <doc xml:whitespace="preserve">y coordinate lower right on screen.</doc>
+          <type name="gfloat" c:type="float"/>
+        </parameter>
+        <parameter name="tx1" transfer-ownership="none">
+          <doc xml:whitespace="preserve">x part of texture coordinate to use for upper left pixel</doc>
+          <type name="gfloat" c:type="float"/>
+        </parameter>
+        <parameter name="ty1" transfer-ownership="none">
+          <doc xml:whitespace="preserve">y part of texture coordinate to use for upper left pixel</doc>
+          <type name="gfloat" c:type="float"/>
+        </parameter>
+        <parameter name="tx2" transfer-ownership="none">
+          <doc xml:whitespace="preserve">x part of texture coordinate to use for lower right pixel</doc>
+          <type name="gfloat" c:type="float"/>
+        </parameter>
+        <parameter name="ty2" transfer-ownership="none">
+          <doc xml:whitespace="preserve">y part of texture coordinate to use for left pixel</doc>
+          <type name="gfloat" c:type="float"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="rectangles" c:identifier="cogl_rectangles" version="1.0">
+      <doc xml:whitespace="preserve">Draws a series of rectangles in the same way that
+cogl_rectangle() does. In some situations it can give a
+significant performance boost to use this function rather than
+calling cogl_rectangle() separately for each rectangle.
+parameters x1, y1, x2, and y2, and have the same
+meaning as in cogl_rectangle().</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="verts" transfer-ownership="none">
+          <doc xml:whitespace="preserve">an array of vertices</doc>
+          <array c:type="float*">
+            <type name="gfloat"/>
+          </array>
+        </parameter>
+        <parameter name="n_rects" transfer-ownership="none">
+          <doc xml:whitespace="preserve">number of rectangles to draw</doc>
+          <type name="guint" c:type="unsigned int"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="rectangles_with_texture_coords"
+              c:identifier="cogl_rectangles_with_texture_coords"
+              version="0.8.6">
+      <doc xml:whitespace="preserve">Draws a series of rectangles in the same way that
+cogl_rectangle_with_texture_coords() does. In some situations it can give a
+significant performance boost to use this function rather than
+calling cogl_rectangle_with_texture_coords() separately for each rectangle.
+parameters x1, y1, x2, y2, tx1, ty1, tx2 and ty2 and have the same
+meaning as in cogl_rectangle_with_texture_coords().</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="verts" transfer-ownership="none">
+          <doc xml:whitespace="preserve">an array of vertices</doc>
+          <array c:type="float*">
+            <type name="gfloat"/>
+          </array>
+        </parameter>
+        <parameter name="n_rects" transfer-ownership="none">
+          <doc xml:whitespace="preserve">number of rectangles to draw</doc>
+          <type name="guint" c:type="unsigned int"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="rotate" c:identifier="cogl_rotate">
+      <doc xml:whitespace="preserve">Multiplies the current model-view matrix by one that rotates the
+model around the vertex specified by @x, @y and @z. The rotation
+follows the right-hand thumb rule so for example rotating by 10
+degrees about the vertex (0, 0, 1) causes a small counter-clockwise
+rotation.</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="angle" transfer-ownership="none">
+          <doc xml:whitespace="preserve">Angle in degrees to rotate.</doc>
+          <type name="gfloat" c:type="float"/>
+        </parameter>
+        <parameter name="x" transfer-ownership="none">
+          <doc xml:whitespace="preserve">X-component of vertex to rotate around.</doc>
+          <type name="gfloat" c:type="float"/>
+        </parameter>
+        <parameter name="y" transfer-ownership="none">
+          <doc xml:whitespace="preserve">Y-component of vertex to rotate around.</doc>
+          <type name="gfloat" c:type="float"/>
+        </parameter>
+        <parameter name="z" transfer-ownership="none">
+          <doc xml:whitespace="preserve">Z-component of vertex to rotate around.</doc>
+          <type name="gfloat" c:type="float"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="scale" c:identifier="cogl_scale">
+      <doc xml:whitespace="preserve">Multiplies the current model-view matrix by one that scales the x,
+y and z axes by the given values.</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="x" transfer-ownership="none">
+          <doc xml:whitespace="preserve">Amount to scale along the x-axis</doc>
+          <type name="gfloat" c:type="float"/>
+        </parameter>
+        <parameter name="y" transfer-ownership="none">
+          <doc xml:whitespace="preserve">Amount to scale along the y-axis</doc>
+          <type name="gfloat" c:type="float"/>
+        </parameter>
+        <parameter name="z" transfer-ownership="none">
+          <doc xml:whitespace="preserve">Amount to scale along the z-axis</doc>
+          <type name="gfloat" c:type="float"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="set_backface_culling_enabled"
+              c:identifier="cogl_set_backface_culling_enabled">
+      <doc xml:whitespace="preserve">Sets whether textures positioned so that their backface is showing
+should be hidden. This can be used to efficiently draw two-sided
+textures or fully closed cubes without enabling depth testing. This
+only affects calls to the cogl_rectangle* family of functions and
+cogl_vertex_buffer_draw*. Backface culling is disabled by default.</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="setting" transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE to enable backface culling or %FALSE to disable.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="set_depth_test_enabled"
+              c:identifier="cogl_set_depth_test_enabled"
+              deprecated="Use cogl_material_set_depth_test_enabled()"
+              deprecated-version="1.4">
+      <doc xml:whitespace="preserve">Sets whether depth testing is enabled. If it is disabled then the
+order that actors are layered on the screen depends solely on the
+order specified using clutter_actor_raise() and
+clutter_actor_lower(), otherwise it will also take into account the
+actor's depth. Depth testing is disabled by default.
+instead.</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="setting" transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE to enable depth testing or %FALSE to disable.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="set_draw_buffer"
+              c:identifier="cogl_set_draw_buffer"
+              deprecated="The target argument was redundant since we could look at"
+              deprecated-version="1.2">
+      <doc xml:whitespace="preserve">Redirects all subsequent drawing to the specified framebuffer. This
+can either be an offscreen buffer created with
+cogl_offscreen_new_to_texture () or you can revert to your original
+on screen window buffer.
+the type of CoglHandle given instead.</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="target" transfer-ownership="none">
+          <doc xml:whitespace="preserve">A #CoglBufferTarget that specifies what kind of framebuffer you are setting as the render target.</doc>
+          <type name="BufferTarget" c:type="CoglBufferTarget"/>
+        </parameter>
+        <parameter name="offscreen" transfer-ownership="none">
+          <doc xml:whitespace="preserve">If you are setting a framebuffer of type COGL_OFFSCREEN_BUFFER then this is a CoglHandle for the offscreen buffer.</doc>
+          <type name="Handle" c:type="CoglHandle"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="set_fog" c:identifier="cogl_set_fog">
+      <doc xml:whitespace="preserve">Enables fogging. Fogging causes vertices that are further away from the eye
+to be rendered with a different color. The color is determined according to
+the chosen fog mode; at it's simplest the color is linearly interpolated so
+that vertices at @z_near are drawn fully with their original color and
+vertices at @z_far are drawn fully with @fog_color. Fogging will remain
+enabled until you call cogl_disable_fog().
+&lt;note&gt;The fogging functions only work correctly when primitives use
+unmultiplied alpha colors. By default Cogl will premultiply textures
+and cogl_set_source_color() will premultiply colors, so unless you
+explicitly load your textures requesting an unmultiplied internal format
+and use cogl_material_set_color() you can only use fogging with fully
+opaque primitives. This might improve in the future when we can depend
+on fragment shaders.&lt;/note&gt;</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="fog_color" transfer-ownership="none">
+          <doc xml:whitespace="preserve">The color of the fog</doc>
+          <type name="Color" c:type="CoglColor*"/>
+        </parameter>
+        <parameter name="mode" transfer-ownership="none">
+          <doc xml:whitespace="preserve">A #CoglFogMode that determines the equation used to calculate the fogging blend factor.</doc>
+          <type name="FogMode" c:type="CoglFogMode"/>
+        </parameter>
+        <parameter name="density" transfer-ownership="none">
+          <doc xml:whitespace="preserve">Used by %COGL_FOG_MODE_EXPONENTIAL and by %COGL_FOG_MODE_EXPONENTIAL_SQUARED equations.</doc>
+          <type name="gfloat" c:type="float"/>
+        </parameter>
+        <parameter name="z_near" transfer-ownership="none">
+          <doc xml:whitespace="preserve">Position along Z axis where no fogging should be applied</doc>
+          <type name="gfloat" c:type="float"/>
+        </parameter>
+        <parameter name="z_far" transfer-ownership="none">
+          <doc xml:whitespace="preserve">Position along Z axis where full fogging should be applied</doc>
+          <type name="gfloat" c:type="float"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="set_framebuffer"
+              c:identifier="cogl_set_framebuffer"
+              version="1.2">
+      <doc xml:whitespace="preserve">This redirects all subsequent drawing to the specified framebuffer. This can
+either be an offscreen buffer created with cogl_offscreen_new_to_texture ()
+or in the future it may be an onscreen framebuffers too.</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="buffer" transfer-ownership="none">
+          <doc xml:whitespace="preserve">A #CoglFramebuffer object, either onscreen or offscreen.</doc>
+          <type name="Framebuffer" c:type="CoglFramebuffer*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="set_modelview_matrix"
+              c:identifier="cogl_set_modelview_matrix">
+      <doc xml:whitespace="preserve">Loads @matrix as the new model-view matrix.</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="matrix" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the new model-view matrix</doc>
+          <type name="Matrix" c:type="CoglMatrix*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="set_path" c:identifier="cogl_set_path" version="1.4">
+      <doc xml:whitespace="preserve">Replaces the current path with @path. A reference is taken on the
+object so if you no longer need the path you should unref with
+cogl_object_unref().</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="path" transfer-ownership="none">
+          <doc xml:whitespace="preserve">A #CoglPath object</doc>
+          <type name="Path" c:type="CoglPath*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="set_projection_matrix"
+              c:identifier="cogl_set_projection_matrix">
+      <doc xml:whitespace="preserve">Loads matrix as the new projection matrix.</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="matrix" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the new projection matrix</doc>
+          <type name="Matrix" c:type="CoglMatrix*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="set_source" c:identifier="cogl_set_source" version="1.0">
+      <doc xml:whitespace="preserve">This function sets the source material that will be used to fill subsequent
+geometry emitted via the cogl API.
+&lt;note&gt;In the future we may add the ability to set a front facing material,
+and a back facing material, in which case this function will set both to the
+same.&lt;/note&gt;</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="material" transfer-ownership="none">
+          <doc xml:whitespace="preserve">A #CoglHandle for a material</doc>
+          <type name="Handle" c:type="CoglHandle"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="set_source_color"
+              c:identifier="cogl_set_source_color"
+              version="1.0">
+      <doc xml:whitespace="preserve">This is a convenience function for creating a solid fill source material
+from the given color. This color will be used for any subsequent drawing
+operation.
+The color will be premultiplied by Cogl, so the color should be
+semi-transparent red.
+See also cogl_set_source_color4ub() and cogl_set_source_color4f()
+if you already have the color components.</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="color" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #CoglColor</doc>
+          <type name="Color" c:type="CoglColor*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="set_source_color4f"
+              c:identifier="cogl_set_source_color4f"
+              version="1.0">
+      <doc xml:whitespace="preserve">This is a convenience function for creating a solid fill source material
+from the given color using normalized values for each component. This color
+will be used for any subsequent drawing operation.
+The value for each component is a fixed point number in the range
+between 0 and %1.0. If the values passed in are outside that
+range, they will be clamped.</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="red" transfer-ownership="none">
+          <doc xml:whitespace="preserve">value of the red channel, between 0 and %1.0</doc>
+          <type name="gfloat" c:type="float"/>
+        </parameter>
+        <parameter name="green" transfer-ownership="none">
+          <doc xml:whitespace="preserve">value of the green channel, between 0 and %1.0</doc>
+          <type name="gfloat" c:type="float"/>
+        </parameter>
+        <parameter name="blue" transfer-ownership="none">
+          <doc xml:whitespace="preserve">value of the blue channel, between 0 and %1.0</doc>
+          <type name="gfloat" c:type="float"/>
+        </parameter>
+        <parameter name="alpha" transfer-ownership="none">
+          <doc xml:whitespace="preserve">value of the alpha channel, between 0 and %1.0</doc>
+          <type name="gfloat" c:type="float"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="set_source_color4ub"
+              c:identifier="cogl_set_source_color4ub"
+              version="1.0">
+      <doc xml:whitespace="preserve">This is a convenience function for creating a solid fill source material
+from the given color using unsigned bytes for each component. This
+color will be used for any subsequent drawing operation.
+The value for each component is an unsigned byte in the range
+between 0 and 255.</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="red" transfer-ownership="none">
+          <doc xml:whitespace="preserve">value of the red channel, between 0 and 255</doc>
+          <type name="guint8" c:type="guint8"/>
+        </parameter>
+        <parameter name="green" transfer-ownership="none">
+          <doc xml:whitespace="preserve">value of the green channel, between 0 and 255</doc>
+          <type name="guint8" c:type="guint8"/>
+        </parameter>
+        <parameter name="blue" transfer-ownership="none">
+          <doc xml:whitespace="preserve">value of the blue channel, between 0 and 255</doc>
+          <type name="guint8" c:type="guint8"/>
+        </parameter>
+        <parameter name="alpha" transfer-ownership="none">
+          <doc xml:whitespace="preserve">value of the alpha channel, between 0 and 255</doc>
+          <type name="guint8" c:type="guint8"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="set_source_texture"
+              c:identifier="cogl_set_source_texture"
+              version="1.0">
+      <doc xml:whitespace="preserve">This is a convenience function for creating a material with the first
+layer set to #texture_handle and setting that material as the source with
+cogl_set_source.
+and cogl_set_source_texture. If you need to blend a texture with a color then
+you can create a simple material like this:
+&lt;programlisting&gt;
+material = cogl_material_new ();
+cogl_material_set_color4ub (material, 0xff, 0x00, 0x00, 0x80);
+cogl_material_set_layer (material, 0, tex_handle);
+cogl_set_source (material);
+&lt;/programlisting&gt;</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="texture_handle" transfer-ownership="none">
+          <doc xml:whitespace="preserve">The Cogl texture you want as your source</doc>
+          <type name="Handle" c:type="CoglHandle"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="set_viewport"
+              c:identifier="cogl_set_viewport"
+              version="1.2">
+      <doc xml:whitespace="preserve">Replaces the current viewport with the given values.</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="x" transfer-ownership="none">
+          <doc xml:whitespace="preserve">X offset of the viewport</doc>
+          <type name="gint" c:type="int"/>
+        </parameter>
+        <parameter name="y" transfer-ownership="none">
+          <doc xml:whitespace="preserve">Y offset of the viewport</doc>
+          <type name="gint" c:type="int"/>
+        </parameter>
+        <parameter name="width" transfer-ownership="none">
+          <doc xml:whitespace="preserve">Width of the viewport</doc>
+          <type name="gint" c:type="int"/>
+        </parameter>
+        <parameter name="height" transfer-ownership="none">
+          <doc xml:whitespace="preserve">Height of the viewport</doc>
+          <type name="gint" c:type="int"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="shader_compile" c:identifier="cogl_shader_compile">
+      <doc xml:whitespace="preserve">Compiles the shader, no return value, but the shader is now ready for
+linking into a program.</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="handle" transfer-ownership="none">
+          <doc xml:whitespace="preserve">#CoglHandle for a shader.</doc>
+          <type name="Handle" c:type="CoglHandle"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="shader_get_info_log"
+              c:identifier="cogl_shader_get_info_log">
+      <doc xml:whitespace="preserve">Retrieves the information log for a coglobject, can be used in conjunction
+with cogl_shader_get_parameteriv() to retrieve the compiler warnings/error
+messages that caused a shader to not compile correctly, mainly useful for
+debugging purposes.
+g_free() to free it</doc>
+      <return-value transfer-ownership="full">
+        <doc xml:whitespace="preserve">a newly allocated string containing the info log. Use</doc>
+        <type name="utf8" c:type="char*"/>
+      </return-value>
+      <parameters>
+        <parameter name="handle" transfer-ownership="none">
+          <doc xml:whitespace="preserve">#CoglHandle for a shader.</doc>
+          <type name="Handle" c:type="CoglHandle"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="shader_get_type" c:identifier="cogl_shader_get_type">
+      <doc xml:whitespace="preserve">Retrieves the type of a shader #CoglHandle
+or %COGL_SHADER_TYPE_FRAGMENT if the shader is a frament processor</doc>
+      <return-value transfer-ownership="none">
+        <doc xml:whitespace="preserve">%COGL_SHADER_TYPE_VERTEX if the shader is a vertex processor</doc>
+        <type name="ShaderType" c:type="CoglShaderType"/>
+      </return-value>
+      <parameters>
+        <parameter name="handle" transfer-ownership="none">
+          <doc xml:whitespace="preserve">#CoglHandle for a shader.</doc>
+          <type name="Handle" c:type="CoglHandle"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="shader_is_compiled" c:identifier="cogl_shader_is_compiled">
+      <doc xml:whitespace="preserve">Retrieves whether a shader #CoglHandle has been compiled</doc>
+      <return-value transfer-ownership="none">
+        <doc xml:whitespace="preserve">%TRUE if the shader object has sucessfully be compiled</doc>
+        <type name="gboolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="handle" transfer-ownership="none">
+          <doc xml:whitespace="preserve">#CoglHandle for a shader.</doc>
+          <type name="Handle" c:type="CoglHandle"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="shader_ref"
+              c:identifier="cogl_shader_ref"
+              introspectable="0">
+      <doc xml:whitespace="preserve">Add an extra reference to a shader.</doc>
+      <return-value>
+        <doc xml:whitespace="preserve">@handle</doc>
+        <type name="Handle" c:type="CoglHandle"/>
+      </return-value>
+      <parameters>
+        <parameter name="handle" transfer-ownership="none">
+          <doc xml:whitespace="preserve">A #CoglHandle to a shader.</doc>
+          <type name="Handle" c:type="CoglHandle"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="shader_source" c:identifier="cogl_shader_source">
+      <doc xml:whitespace="preserve">Replaces the current GLSL source associated with a shader with a new
+one.</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="shader" transfer-ownership="none">
+          <doc xml:whitespace="preserve">#CoglHandle for a shader.</doc>
+          <type name="Handle" c:type="CoglHandle"/>
+        </parameter>
+        <parameter name="source" transfer-ownership="none">
+          <doc xml:whitespace="preserve">GLSL shader source.</doc>
+          <type name="utf8" c:type="char*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="shader_unref" c:identifier="cogl_shader_unref">
+      <doc xml:whitespace="preserve">Removes a reference to a shader. If it was the last reference the
+shader object will be destroyed.</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="handle" transfer-ownership="none">
+          <doc xml:whitespace="preserve">A #CoglHandle to a shader.</doc>
+          <type name="Handle" c:type="CoglHandle"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="sqrti" c:identifier="cogl_sqrti" version="1.0">
+      <doc xml:whitespace="preserve">Very fast fixed point implementation of square root for integers.
+This function is at least 6x faster than clib sqrt() on x86, and (this is
+not a typo!) about 500x faster on ARM without FPU. It's error is less than
+5% for arguments smaller than %COGL_SQRTI_ARG_5_PERCENT and less than 10%
+for narguments smaller than %COGL_SQRTI_ARG_10_PERCENT. The maximum
+argument that can be passed to this function is %COGL_SQRTI_ARG_MAX.</doc>
+      <return-value transfer-ownership="none">
+        <doc xml:whitespace="preserve">integer square root.</doc>
+        <type name="gint" c:type="int"/>
+      </return-value>
+      <parameters>
+        <parameter name="x" transfer-ownership="none">
+          <doc xml:whitespace="preserve">integer value</doc>
+          <type name="gint" c:type="int"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="texture_3d_new_from_data_EXP"
+              c:identifier="cogl_texture_3d_new_from_data_EXP"
+              introspectable="0"
+              throws="1">
+      <return-value>
+        <type name="Handle" c:type="CoglHandle"/>
+      </return-value>
+      <parameters>
+        <parameter name="width" transfer-ownership="none">
+          <type name="guint" c:type="unsigned int"/>
+        </parameter>
+        <parameter name="height" transfer-ownership="none">
+          <type name="guint" c:type="unsigned int"/>
+        </parameter>
+        <parameter name="depth" transfer-ownership="none">
+          <type name="guint" c:type="unsigned int"/>
+        </parameter>
+        <parameter name="flags" transfer-ownership="none">
+          <type name="TextureFlags" c:type="CoglTextureFlags"/>
+        </parameter>
+        <parameter name="format" transfer-ownership="none">
+          <type name="PixelFormat" c:type="CoglPixelFormat"/>
+        </parameter>
+        <parameter name="internal_format" transfer-ownership="none">
+          <type name="PixelFormat" c:type="CoglPixelFormat"/>
+        </parameter>
+        <parameter name="rowstride" transfer-ownership="none">
+          <type name="guint" c:type="unsigned int"/>
+        </parameter>
+        <parameter name="image_stride" transfer-ownership="none">
+          <type name="guint" c:type="unsigned int"/>
+        </parameter>
+        <parameter name="data" transfer-ownership="none">
+          <type name="guint8" c:type="guint8*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="texture_3d_new_with_size_EXP"
+              c:identifier="cogl_texture_3d_new_with_size_EXP"
+              introspectable="0"
+              throws="1">
+      <return-value>
+        <type name="Handle" c:type="CoglHandle"/>
+      </return-value>
+      <parameters>
+        <parameter name="width" transfer-ownership="none">
+          <type name="guint" c:type="unsigned int"/>
+        </parameter>
+        <parameter name="height" transfer-ownership="none">
+          <type name="guint" c:type="unsigned int"/>
+        </parameter>
+        <parameter name="depth" transfer-ownership="none">
+          <type name="guint" c:type="unsigned int"/>
+        </parameter>
+        <parameter name="flags" transfer-ownership="none">
+          <type name="TextureFlags" c:type="CoglTextureFlags"/>
+        </parameter>
+        <parameter name="internal_format" transfer-ownership="none">
+          <type name="PixelFormat" c:type="CoglPixelFormat"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="texture_get_data" c:identifier="cogl_texture_get_data">
+      <doc xml:whitespace="preserve">Copies the pixel data from a cogl texture to system memory.
+is not valid</doc>
+      <return-value transfer-ownership="none">
+        <doc xml:whitespace="preserve">the size of the texture data in bytes, or 0 if the texture</doc>
+        <type name="gint" c:type="int"/>
+      </return-value>
+      <parameters>
+        <parameter name="handle" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #CoglHandle for a texture.</doc>
+          <type name="Handle" c:type="CoglHandle"/>
+        </parameter>
+        <parameter name="format" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the #CoglPixelFormat to store the texture as.</doc>
+          <type name="PixelFormat" c:type="CoglPixelFormat"/>
+        </parameter>
+        <parameter name="rowstride" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the rowstride of @data or retrieved from texture if none is specified.</doc>
+          <type name="guint" c:type="unsigned int"/>
+        </parameter>
+        <parameter name="data" transfer-ownership="none">
+          <doc xml:whitespace="preserve">memory location to write contents of buffer, or %NULL if we're only querying the data size through the return value.</doc>
+          <type name="guint8" c:type="guint8*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="texture_get_format" c:identifier="cogl_texture_get_format">
+      <doc xml:whitespace="preserve">Queries the #CoglPixelFormat of a cogl texture.</doc>
+      <return-value transfer-ownership="none">
+        <doc xml:whitespace="preserve">the #CoglPixelFormat of the GPU side texture</doc>
+        <type name="PixelFormat" c:type="CoglPixelFormat"/>
+      </return-value>
+      <parameters>
+        <parameter name="handle" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #CoglHandle for a texture.</doc>
+          <type name="Handle" c:type="CoglHandle"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="texture_get_gl_texture"
+              c:identifier="cogl_texture_get_gl_texture">
+      <doc xml:whitespace="preserve">Queries the GL handles for a GPU side texture through its #CoglHandle.
+If the texture is spliced the data for the first sub texture will be
+queried.
+if the handle was invalid</doc>
+      <return-value transfer-ownership="none">
+        <doc xml:whitespace="preserve">%TRUE if the handle was successfully retrieved, %FALSE</doc>
+        <type name="gboolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="handle" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #CoglHandle for a texture.</doc>
+          <type name="Handle" c:type="CoglHandle"/>
+        </parameter>
+        <parameter name="out_gl_handle"
+                   direction="out"
+                   caller-allocates="1"
+                   transfer-ownership="none"
+                   allow-none="1">
+          <doc xml:whitespace="preserve">pointer to return location for the textures GL handle, or %NULL.</doc>
+          <type name="GL.uint" c:type="GLuint*"/>
+        </parameter>
+        <parameter name="out_gl_target"
+                   direction="out"
+                   caller-allocates="1"
+                   transfer-ownership="none"
+                   allow-none="1">
+          <doc xml:whitespace="preserve">pointer to return location for the GL target type, or %NULL.</doc>
+          <type name="GL.enum" c:type="GLenum*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="texture_get_height" c:identifier="cogl_texture_get_height">
+      <doc xml:whitespace="preserve">Queries the height of a cogl texture.</doc>
+      <return-value transfer-ownership="none">
+        <doc xml:whitespace="preserve">the height of the GPU side texture in pixels</doc>
+        <type name="guint" c:type="unsigned int"/>
+      </return-value>
+      <parameters>
+        <parameter name="handle" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #CoglHandle for a texture.</doc>
+          <type name="Handle" c:type="CoglHandle"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="texture_get_max_waste"
+              c:identifier="cogl_texture_get_max_waste">
+      <doc xml:whitespace="preserve">Queries the maximum wasted (unused) pixels in one dimension of a GPU side
+texture.</doc>
+      <return-value transfer-ownership="none">
+        <doc xml:whitespace="preserve">the maximum waste</doc>
+        <type name="gint" c:type="int"/>
+      </return-value>
+      <parameters>
+        <parameter name="handle" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #CoglHandle for a texture.</doc>
+          <type name="Handle" c:type="CoglHandle"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="texture_get_rowstride"
+              c:identifier="cogl_texture_get_rowstride">
+      <doc xml:whitespace="preserve">Queries the rowstride of a cogl texture.</doc>
+      <return-value transfer-ownership="none">
+        <doc xml:whitespace="preserve">the offset in bytes between each consequetive row of pixels</doc>
+        <type name="guint" c:type="unsigned int"/>
+      </return-value>
+      <parameters>
+        <parameter name="handle" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #CoglHandle for a texture.</doc>
+          <type name="Handle" c:type="CoglHandle"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="texture_get_width" c:identifier="cogl_texture_get_width">
+      <doc xml:whitespace="preserve">Queries the width of a cogl texture.</doc>
+      <return-value transfer-ownership="none">
+        <doc xml:whitespace="preserve">the width of the GPU side texture in pixels</doc>
+        <type name="guint" c:type="unsigned int"/>
+      </return-value>
+      <parameters>
+        <parameter name="handle" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #CoglHandle for a texture.</doc>
+          <type name="Handle" c:type="CoglHandle"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="texture_is_sliced" c:identifier="cogl_texture_is_sliced">
+      <doc xml:whitespace="preserve">Queries if a texture is sliced (stored as multiple GPU side tecture
+objects).
+is stored as a single GPU texture</doc>
+      <return-value transfer-ownership="none">
+        <doc xml:whitespace="preserve">%TRUE if the texture is sliced, %FALSE if the texture</doc>
+        <type name="gboolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="handle" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #CoglHandle for a texture.</doc>
+          <type name="Handle" c:type="CoglHandle"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="texture_new_from_bitmap"
+              c:identifier="cogl_texture_new_from_bitmap"
+              version="1.0"
+              introspectable="0">
+      <doc xml:whitespace="preserve">Creates a COGL texture from a CoglBitmap.
+%COGL_INVALID_HANDLE on failure</doc>
+      <return-value>
+        <doc xml:whitespace="preserve">a #CoglHandle to the newly created texture or</doc>
+        <type name="Handle" c:type="CoglHandle"/>
+      </return-value>
+      <parameters>
+        <parameter name="bmp_handle" transfer-ownership="none">
+          <doc xml:whitespace="preserve">A CoglBitmap handle</doc>
+          <type name="Handle" c:type="CoglHandle"/>
+        </parameter>
+        <parameter name="flags" transfer-ownership="none">
+          <doc xml:whitespace="preserve">Optional flags for the texture, or %COGL_TEXTURE_NONE</doc>
+          <type name="TextureFlags" c:type="CoglTextureFlags"/>
+        </parameter>
+        <parameter name="internal_format" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the #CoglPixelFormat to use for the GPU storage of the texture</doc>
+          <type name="PixelFormat" c:type="CoglPixelFormat"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="texture_new_from_buffer"
+              c:identifier="cogl_texture_new_from_buffer"
+              version="1.2"
+              introspectable="0">
+      <doc xml:whitespace="preserve">Creates a new texture using the buffer specified by @handle. If the buffer
+has been created using cogl_pixel_buffer_new_for_size() it's possible to omit
+the height and width values already specified at creation time.
+failure</doc>
+      <return-value>
+        <doc xml:whitespace="preserve">a #CoglHandle to the new texture or %COGL_INVALID_HANDLE on</doc>
+        <type name="Handle" c:type="CoglHandle"/>
+      </return-value>
+      <parameters>
+        <parameter name="buffer" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the #CoglHandle of a pixel buffer</doc>
+          <type name="Handle" c:type="CoglHandle"/>
+        </parameter>
+        <parameter name="width" transfer-ownership="none">
+          <doc xml:whitespace="preserve">width of texture in pixels or 0</doc>
+          <type name="guint" c:type="unsigned int"/>
+        </parameter>
+        <parameter name="height" transfer-ownership="none">
+          <doc xml:whitespace="preserve">height of texture in pixels or 0</doc>
+          <type name="guint" c:type="unsigned int"/>
+        </parameter>
+        <parameter name="flags" transfer-ownership="none">
+          <doc xml:whitespace="preserve">optional flags for the texture, or %COGL_TEXTURE_NONE</doc>
+          <type name="TextureFlags" c:type="CoglTextureFlags"/>
+        </parameter>
+        <parameter name="format" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the #CoglPixelFormat the buffer is stored in in RAM</doc>
+          <type name="PixelFormat" c:type="CoglPixelFormat"/>
+        </parameter>
+        <parameter name="internal_format" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the #CoglPixelFormat that will be used for storing the buffer on the GPU. If %COGL_PIXEL_FORMAT_ANY is given then a premultiplied format similar to the format of the source data will be used. The default blending equations of Cogl expect premultiplied color data; the main use of passing a non-premultiplied format here is if you have non-premultiplied source data and are going to adjust the blend mode (see cogl_material_set_blend()) or use the data for something other than straight blending</doc>
+          <type name="PixelFormat" c:type="CoglPixelFormat"/>
+        </parameter>
+        <parameter name="rowstride" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the memory offset in bytes between the starts of scanlines in @data. If 0 is given the row stride will be deduced from</doc>
+          <type name="guint" c:type="unsigned int"/>
+        </parameter>
+        <parameter name="offset" transfer-ownership="none">
+          <doc xml:whitespace="preserve">offset in bytes in @buffer from where the texture data starts</doc>
+          <type name="guint" c:type="unsigned int"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="texture_new_from_buffer_EXP"
+              c:identifier="cogl_texture_new_from_buffer_EXP"
+              introspectable="0">
+      <return-value>
+        <type name="Handle" c:type="CoglHandle"/>
+      </return-value>
+      <parameters>
+        <parameter name="buffer" transfer-ownership="none">
+          <type name="Handle" c:type="CoglHandle"/>
+        </parameter>
+        <parameter name="width" transfer-ownership="none">
+          <type name="guint" c:type="unsigned int"/>
+        </parameter>
+        <parameter name="height" transfer-ownership="none">
+          <type name="guint" c:type="unsigned int"/>
+        </parameter>
+        <parameter name="flags" transfer-ownership="none">
+          <type name="TextureFlags" c:type="CoglTextureFlags"/>
+        </parameter>
+        <parameter name="format" transfer-ownership="none">
+          <type name="PixelFormat" c:type="CoglPixelFormat"/>
+        </parameter>
+        <parameter name="internal_format" transfer-ownership="none">
+          <type name="PixelFormat" c:type="CoglPixelFormat"/>
+        </parameter>
+        <parameter name="rowstride" transfer-ownership="none">
+          <type name="guint" c:type="unsigned int"/>
+        </parameter>
+        <parameter name="offset" transfer-ownership="none">
+          <type name="guint" c:type="unsigned int"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="texture_new_from_data"
+              c:identifier="cogl_texture_new_from_data"
+              version="0.8"
+              introspectable="0">
+      <doc xml:whitespace="preserve">Creates a new COGL texture based on data residing in memory.
+%COGL_INVALID_HANDLE on failure</doc>
+      <return-value>
+        <doc xml:whitespace="preserve">a #CoglHandle to the newly created texture or</doc>
+        <type name="Handle" c:type="CoglHandle"/>
+      </return-value>
+      <parameters>
+        <parameter name="width" transfer-ownership="none">
+          <doc xml:whitespace="preserve">width of texture in pixels</doc>
+          <type name="guint" c:type="unsigned int"/>
+        </parameter>
+        <parameter name="height" transfer-ownership="none">
+          <doc xml:whitespace="preserve">height of texture in pixels</doc>
+          <type name="guint" c:type="unsigned int"/>
+        </parameter>
+        <parameter name="flags" transfer-ownership="none">
+          <doc xml:whitespace="preserve">Optional flags for the texture, or %COGL_TEXTURE_NONE</doc>
+          <type name="TextureFlags" c:type="CoglTextureFlags"/>
+        </parameter>
+        <parameter name="format" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the #CoglPixelFormat the buffer is stored in in RAM</doc>
+          <type name="PixelFormat" c:type="CoglPixelFormat"/>
+        </parameter>
+        <parameter name="internal_format" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the #CoglPixelFormat that will be used for storing the buffer on the GPU. If COGL_PIXEL_FORMAT_ANY is given then a premultiplied format similar to the format of the source data will be used. The default blending equations of Cogl expect premultiplied color data; the main use of passing a non-premultiplied format here is if you have non-premultiplied source data and are going to adjust the blend mode (see cogl_material_set_blend()) or use the data for something other than straight blending.</doc>
+          <type name="PixelFormat" c:type="CoglPixelFormat"/>
+        </parameter>
+        <parameter name="rowstride" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the memory offset in bytes between the starts of scanlines in @data</doc>
+          <type name="guint" c:type="unsigned int"/>
+        </parameter>
+        <parameter name="data" transfer-ownership="none">
+          <doc xml:whitespace="preserve">pointer the memory region where the source buffer resides</doc>
+          <type name="guint8" c:type="guint8*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="texture_new_from_file"
+              c:identifier="cogl_texture_new_from_file"
+              version="0.8"
+              introspectable="0"
+              throws="1">
+      <doc xml:whitespace="preserve">Creates a COGL texture from an image file.
+%COGL_INVALID_HANDLE on failure</doc>
+      <return-value>
+        <doc xml:whitespace="preserve">a #CoglHandle to the newly created texture or</doc>
+        <type name="Handle" c:type="CoglHandle"/>
+      </return-value>
+      <parameters>
+        <parameter name="filename" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the file to load</doc>
+          <type name="utf8" c:type="char*"/>
+        </parameter>
+        <parameter name="flags" transfer-ownership="none">
+          <doc xml:whitespace="preserve">Optional flags for the texture, or %COGL_TEXTURE_NONE</doc>
+          <type name="TextureFlags" c:type="CoglTextureFlags"/>
+        </parameter>
+        <parameter name="internal_format" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the #CoglPixelFormat to use for the GPU storage of the texture. If %COGL_PIXEL_FORMAT_ANY is given then a premultiplied format similar to the format of the source data will be used. The default blending equations of Cogl expect premultiplied color data; the main use of passing a non-premultiplied format here is if you have non-premultiplied source data and are going to adjust the blend mode (see cogl_material_set_blend()) or use the data for something other than straight blending.</doc>
+          <type name="PixelFormat" c:type="CoglPixelFormat"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="texture_new_from_foreign"
+              c:identifier="cogl_texture_new_from_foreign"
+              version="0.8"
+              introspectable="0">
+      <doc xml:whitespace="preserve">Creates a COGL texture based on an existing OpenGL texture; the
+width, height and format are passed along since it is not always
+possible to query these from OpenGL.
+The waste arguments allow you to create a Cogl texture that maps to
+a region smaller than the real OpenGL texture. For instance if your
+hardware only supports power-of-two textures you may load a
+non-power-of-two image into a larger power-of-two texture and use
+the waste arguments to tell Cogl which region should be mapped to
+the texture coordinate range [0:1].
+%COGL_INVALID_HANDLE on failure</doc>
+      <return-value>
+        <doc xml:whitespace="preserve">a #CoglHandle to the newly created texture or</doc>
+        <type name="Handle" c:type="CoglHandle"/>
+      </return-value>
+      <parameters>
+        <parameter name="gl_handle" transfer-ownership="none">
+          <doc xml:whitespace="preserve">opengl handle of foreign texture.</doc>
+          <type name="GL.uint" c:type="GLuint"/>
+        </parameter>
+        <parameter name="gl_target" transfer-ownership="none">
+          <doc xml:whitespace="preserve">opengl target type of foreign texture</doc>
+          <type name="GL.enum" c:type="GLenum"/>
+        </parameter>
+        <parameter name="width" transfer-ownership="none">
+          <doc xml:whitespace="preserve">width of foreign texture</doc>
+          <type name="GL.uint" c:type="GLuint"/>
+        </parameter>
+        <parameter name="height" transfer-ownership="none">
+          <doc xml:whitespace="preserve">height of foreign texture.</doc>
+          <type name="GL.uint" c:type="GLuint"/>
+        </parameter>
+        <parameter name="x_pot_waste" transfer-ownership="none">
+          <doc xml:whitespace="preserve">horizontal waste on the right hand edge of the texture.</doc>
+          <type name="GL.uint" c:type="GLuint"/>
+        </parameter>
+        <parameter name="y_pot_waste" transfer-ownership="none">
+          <doc xml:whitespace="preserve">vertical waste on the bottom edge of the texture.</doc>
+          <type name="GL.uint" c:type="GLuint"/>
+        </parameter>
+        <parameter name="format" transfer-ownership="none">
+          <doc xml:whitespace="preserve">format of the foreign texture.</doc>
+          <type name="PixelFormat" c:type="CoglPixelFormat"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="texture_new_from_sub_texture"
+              c:identifier="cogl_texture_new_from_sub_texture"
+              version="1.2"
+              introspectable="0">
+      <doc xml:whitespace="preserve">Creates a new texture which represents a subregion of another
+texture. The GL resources will be shared so that no new texture
+data is actually allocated.
+Sub textures have undefined behaviour texture coordinates outside
+of the range [0,1] are used. They also do not work with
+CoglVertexBuffers.
+The sub texture will keep a reference to the full texture so you do
+not need to keep one separately if you only want to use the sub
+texture.</doc>
+      <return-value>
+        <doc xml:whitespace="preserve">a #CoglHandle to the new texture.</doc>
+        <type name="Handle" c:type="CoglHandle"/>
+      </return-value>
+      <parameters>
+        <parameter name="full_texture" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #CoglHandle to an existing texture</doc>
+          <type name="Handle" c:type="CoglHandle"/>
+        </parameter>
+        <parameter name="sub_x" transfer-ownership="none">
+          <doc xml:whitespace="preserve">X coordinate of the top-left of the subregion</doc>
+          <type name="gint" c:type="int"/>
+        </parameter>
+        <parameter name="sub_y" transfer-ownership="none">
+          <doc xml:whitespace="preserve">Y coordinate of the top-left of the subregion</doc>
+          <type name="gint" c:type="int"/>
+        </parameter>
+        <parameter name="sub_width" transfer-ownership="none">
+          <doc xml:whitespace="preserve">Width in pixels of the subregion</doc>
+          <type name="gint" c:type="int"/>
+        </parameter>
+        <parameter name="sub_height" transfer-ownership="none">
+          <doc xml:whitespace="preserve">Height in pixels of the subregion</doc>
+          <type name="gint" c:type="int"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="texture_new_with_size"
+              c:identifier="cogl_texture_new_with_size"
+              version="0.8"
+              introspectable="0">
+      <doc xml:whitespace="preserve">Creates a new COGL texture with the specified dimensions and pixel format.
+%COGL_INVALID_HANDLE on failure</doc>
+      <return-value>
+        <doc xml:whitespace="preserve">a #CoglHandle to the newly created texture or</doc>
+        <type name="Handle" c:type="CoglHandle"/>
+      </return-value>
+      <parameters>
+        <parameter name="width" transfer-ownership="none">
+          <doc xml:whitespace="preserve">width of texture in pixels.</doc>
+          <type name="guint" c:type="unsigned int"/>
+        </parameter>
+        <parameter name="height" transfer-ownership="none">
+          <doc xml:whitespace="preserve">height of texture in pixels.</doc>
+          <type name="guint" c:type="unsigned int"/>
+        </parameter>
+        <parameter name="flags" transfer-ownership="none">
+          <doc xml:whitespace="preserve">Optional flags for the texture, or %COGL_TEXTURE_NONE</doc>
+          <type name="TextureFlags" c:type="CoglTextureFlags"/>
+        </parameter>
+        <parameter name="internal_format" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the #CoglPixelFormat to use for the GPU storage of the texture.</doc>
+          <type name="PixelFormat" c:type="CoglPixelFormat"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="texture_pixmap_x11_is_using_tfp_extension_EXP"
+              c:identifier="cogl_texture_pixmap_x11_is_using_tfp_extension_EXP">
+      <return-value transfer-ownership="none">
+        <type name="gboolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="handle" transfer-ownership="none">
+          <type name="Handle" c:type="CoglHandle"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="texture_pixmap_x11_new_EXP"
+              c:identifier="cogl_texture_pixmap_x11_new_EXP"
+              introspectable="0">
+      <return-value>
+        <type name="Handle" c:type="CoglHandle"/>
+      </return-value>
+      <parameters>
+        <parameter name="pixmap" transfer-ownership="none">
+          <type name="guint32" c:type="guint32"/>
+        </parameter>
+        <parameter name="automatic_updates" transfer-ownership="none">
+          <type name="gboolean" c:type="gboolean"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="texture_pixmap_x11_set_damage_object_EXP"
+              c:identifier="cogl_texture_pixmap_x11_set_damage_object_EXP">
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="handle" transfer-ownership="none">
+          <type name="Handle" c:type="CoglHandle"/>
+        </parameter>
+        <parameter name="damage" transfer-ownership="none">
+          <type name="guint32" c:type="guint32"/>
+        </parameter>
+        <parameter name="report_level" transfer-ownership="none">
+          <type name="TexturePixmapX11ReportLevel"
+                c:type="CoglTexturePixmapX11ReportLevel"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="texture_pixmap_x11_update_area_EXP"
+              c:identifier="cogl_texture_pixmap_x11_update_area_EXP">
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="handle" transfer-ownership="none">
+          <type name="Handle" c:type="CoglHandle"/>
+        </parameter>
+        <parameter name="x" transfer-ownership="none">
+          <type name="gint" c:type="int"/>
+        </parameter>
+        <parameter name="y" transfer-ownership="none">
+          <type name="gint" c:type="int"/>
+        </parameter>
+        <parameter name="width" transfer-ownership="none">
+          <type name="gint" c:type="int"/>
+        </parameter>
+        <parameter name="height" transfer-ownership="none">
+          <type name="gint" c:type="int"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="texture_ref"
+              c:identifier="cogl_texture_ref"
+              introspectable="0"
+              deprecated="Use cogl_handle_ref() instead"
+              deprecated-version="1.2">
+      <doc xml:whitespace="preserve">Increment the reference count for a cogl texture.</doc>
+      <return-value>
+        <doc xml:whitespace="preserve">the @handle.</doc>
+        <type name="Handle" c:type="CoglHandle"/>
+      </return-value>
+      <parameters>
+        <parameter name="handle" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a @CoglHandle.</doc>
+          <type name="Handle" c:type="CoglHandle"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="texture_set_region" c:identifier="cogl_texture_set_region">
+      <doc xml:whitespace="preserve">Sets the pixels in a rectangular subregion of @handle from an in-memory
+buffer containing pixel data.
+%FALSE otherwise</doc>
+      <return-value transfer-ownership="none">
+        <doc xml:whitespace="preserve">%TRUE if the subregion upload was successful, and</doc>
+        <type name="gboolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="handle" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #CoglHandle.</doc>
+          <type name="Handle" c:type="CoglHandle"/>
+        </parameter>
+        <parameter name="src_x" transfer-ownership="none">
+          <doc xml:whitespace="preserve">upper left coordinate to use from source data.</doc>
+          <type name="gint" c:type="int"/>
+        </parameter>
+        <parameter name="src_y" transfer-ownership="none">
+          <doc xml:whitespace="preserve">upper left coordinate to use from source data.</doc>
+          <type name="gint" c:type="int"/>
+        </parameter>
+        <parameter name="dst_x" transfer-ownership="none">
+          <doc xml:whitespace="preserve">upper left destination horizontal coordinate.</doc>
+          <type name="gint" c:type="int"/>
+        </parameter>
+        <parameter name="dst_y" transfer-ownership="none">
+          <doc xml:whitespace="preserve">upper left destination vertical coordinate.</doc>
+          <type name="gint" c:type="int"/>
+        </parameter>
+        <parameter name="dst_width" transfer-ownership="none">
+          <doc xml:whitespace="preserve">width of destination region to write.</doc>
+          <type name="guint" c:type="unsigned int"/>
+        </parameter>
+        <parameter name="dst_height" transfer-ownership="none">
+          <doc xml:whitespace="preserve">height of destination region to write.</doc>
+          <type name="guint" c:type="unsigned int"/>
+        </parameter>
+        <parameter name="width" transfer-ownership="none">
+          <doc xml:whitespace="preserve">width of source data buffer.</doc>
+          <type name="gint" c:type="int"/>
+        </parameter>
+        <parameter name="height" transfer-ownership="none">
+          <doc xml:whitespace="preserve">height of source data buffer.</doc>
+          <type name="gint" c:type="int"/>
+        </parameter>
+        <parameter name="format" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the #CoglPixelFormat used in the source buffer.</doc>
+          <type name="PixelFormat" c:type="CoglPixelFormat"/>
+        </parameter>
+        <parameter name="rowstride" transfer-ownership="none">
+          <doc xml:whitespace="preserve">rowstride of source buffer (computed from width if none specified)</doc>
+          <type name="guint" c:type="unsigned int"/>
+        </parameter>
+        <parameter name="data" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the actual pixel data.</doc>
+          <type name="guint8" c:type="guint8*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="texture_unref"
+              c:identifier="cogl_texture_unref"
+              deprecated="Use cogl_handle_unref() instead"
+              deprecated-version="1.2">
+      <doc xml:whitespace="preserve">Decrement the reference count for a cogl texture.</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="handle" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a @CoglHandle.</doc>
+          <type name="Handle" c:type="CoglHandle"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="transform" c:identifier="cogl_transform" version="1.4">
+      <doc xml:whitespace="preserve">Multiplies the current model-view matrix by the given matrix.</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="matrix" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the matrix to multiply with the current model-view</doc>
+          <type name="Matrix" c:type="CoglMatrix*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="translate" c:identifier="cogl_translate">
+      <doc xml:whitespace="preserve">Multiplies the current model-view matrix by one that translates the
+model along all three axes according to the given values.</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="x" transfer-ownership="none">
+          <doc xml:whitespace="preserve">Distance to translate along the x-axis</doc>
+          <type name="gfloat" c:type="float"/>
+        </parameter>
+        <parameter name="y" transfer-ownership="none">
+          <doc xml:whitespace="preserve">Distance to translate along the y-axis</doc>
+          <type name="gfloat" c:type="float"/>
+        </parameter>
+        <parameter name="z" transfer-ownership="none">
+          <doc xml:whitespace="preserve">Distance to translate along the z-axis</doc>
+          <type name="gfloat" c:type="float"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="vector3_equal_EXP" c:identifier="cogl_vector3_equal_EXP">
+      <return-value transfer-ownership="none">
+        <type name="gboolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="v1" transfer-ownership="none">
+          <type name="gpointer" c:type="gconstpointer"/>
+        </parameter>
+        <parameter name="v2" transfer-ownership="none">
+          <type name="gpointer" c:type="gconstpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="vertex_buffer_add" c:identifier="cogl_vertex_buffer_add">
+      <doc xml:whitespace="preserve">Adds an attribute to a buffer.
+You either can use one of the built-in names such as "gl_Vertex", or
+"gl_MultiTexCoord0" to add standard attributes, like positions, colors
+and normals, or you can add custom attributes for use in shaders.
+The number of vertices declared when calling cogl_vertex_buffer_new()
+determines how many attribute values will be read from the supplied
+The data for your attribute isn't copied anywhere until you call
+cogl_vertex_buffer_submit(), or issue a draw call which automatically
+submits pending attribute changes. so the supplied pointer must remain
+valid until then. If you are updating an existing attribute (done by
+re-adding it) then you still need to re-call cogl_vertex_buffer_submit()
+to commit the changes to the GPU. Be carefull to minimize the number
+of calls to cogl_vertex_buffer_submit(), though.
+&lt;note&gt;If you are interleving attributes it is assumed that each interleaved
+attribute starts no farther than +- stride bytes from the other attributes
+it is interleved with. I.e. this is ok:
+&lt;programlisting&gt;
+|-0-0-0-0-0-0-0-0-0-0|
+&lt;/programlisting&gt;
+This is not ok:
+&lt;programlisting&gt;
+|- - - - -0-0-0-0-0-0 0 0 0 0|
+&lt;/programlisting&gt;
+(Though you can have multiple groups of interleved attributes)&lt;/note&gt;</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="handle" transfer-ownership="none">
+          <doc xml:whitespace="preserve">A vertex buffer handle</doc>
+          <type name="Handle" c:type="CoglHandle"/>
+        </parameter>
+        <parameter name="attribute_name" transfer-ownership="none">
+          <doc xml:whitespace="preserve">The name of your attribute. It should be a valid GLSL variable name and standard attribute types must use one of following built-in names: (Note: they correspond to the built-in names of GLSL) &lt;itemizedlist&gt; &lt;listitem&gt;"gl_Color"&lt;/listitem&gt; &lt;listitem&gt;"gl_Normal"&lt;/listitem&gt; &lt;listitem&gt;"gl_MultiTexCoord0, gl_MultiTexCoord1, ..."&lt;/listitem&gt; &lt;listitem&gt;"gl_Vertex"&lt;/listitem&gt; &lt;/itemizedlist&gt; To support adding multiple variations of the same attribute the name can have a detail component, E.g. "gl_Color::active" or "gl_Color::inactive"</doc>
+          <type name="utf8" c:type="char*"/>
+        </parameter>
+        <parameter name="n_components" transfer-ownership="none">
+          <doc xml:whitespace="preserve">The number of components per attribute and must be 1, 2, 3 or 4</doc>
+          <type name="guint8" c:type="guint8"/>
+        </parameter>
+        <parameter name="type" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #CoglAttributeType specifying the data type of each component.</doc>
+          <type name="AttributeType" c:type="CoglAttributeType"/>
+        </parameter>
+        <parameter name="normalized" transfer-ownership="none">
+          <doc xml:whitespace="preserve">If %TRUE, this specifies that values stored in an integer format should be mapped into the range [-1.0, 1.0] or [0.0, 1.0] for unsigned values. If %FALSE they are converted to floats directly.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </parameter>
+        <parameter name="stride" transfer-ownership="none">
+          <doc xml:whitespace="preserve">This specifies the number of bytes from the start of one attribute value to the start of the next value (for the same attribute). So, for example, with a position interleved with color like this: XYRGBAXYRGBAXYRGBA, then if each letter represents a byte, the stride for both attributes is 6. The special value 0 means the values are stored sequentially in memory.</doc>
+          <type name="guint16" c:type="guint16"/>
+        </parameter>
+        <parameter name="pointer" transfer-ownership="none">
+          <doc xml:whitespace="preserve">This addresses the first attribute in the vertex array. This must remain valid until you either call cogl_vertex_buffer_submit() or issue a draw call.</doc>
+          <type name="gpointer" c:type="void*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="vertex_buffer_delete"
+              c:identifier="cogl_vertex_buffer_delete">
+      <doc xml:whitespace="preserve">Deletes an attribute from a buffer. You will need to call
+cogl_vertex_buffer_submit() or issue a draw call to commit this
+change to the GPU.</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="handle" transfer-ownership="none">
+          <doc xml:whitespace="preserve">A vertex buffer handle</doc>
+          <type name="Handle" c:type="CoglHandle"/>
+        </parameter>
+        <parameter name="attribute_name" transfer-ownership="none">
+          <doc xml:whitespace="preserve">The name of a previously added attribute</doc>
+          <type name="utf8" c:type="char*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="vertex_buffer_disable"
+              c:identifier="cogl_vertex_buffer_disable">
+      <doc xml:whitespace="preserve">Disables a previosuly added attribute.
+Since it can be costly to add and remove new attributes to buffers; to make
+individual buffers more reuseable it is possible to enable and disable
+attributes before using a buffer for drawing.
+You don't need to call cogl_vertex_buffer_submit() after using this
+function.</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="handle" transfer-ownership="none">
+          <doc xml:whitespace="preserve">A vertex buffer handle</doc>
+          <type name="Handle" c:type="CoglHandle"/>
+        </parameter>
+        <parameter name="attribute_name" transfer-ownership="none">
+          <doc xml:whitespace="preserve">The name of the attribute you want to disable</doc>
+          <type name="utf8" c:type="char*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="vertex_buffer_draw" c:identifier="cogl_vertex_buffer_draw">
+      <doc xml:whitespace="preserve">Allows you to draw geometry using all or a subset of the
+vertices in a vertex buffer.
+Any un-submitted attribute changes are automatically submitted before
+drawing.</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="handle" transfer-ownership="none">
+          <doc xml:whitespace="preserve">A vertex buffer handle</doc>
+          <type name="Handle" c:type="CoglHandle"/>
+        </parameter>
+        <parameter name="mode" transfer-ownership="none">
+          <doc xml:whitespace="preserve">A #CoglVerticesMode specifying how the vertices should be interpreted.</doc>
+          <type name="VerticesMode" c:type="CoglVerticesMode"/>
+        </parameter>
+        <parameter name="first" transfer-ownership="none">
+          <doc xml:whitespace="preserve">Specifies the index of the first vertex you want to draw with</doc>
+          <type name="gint" c:type="int"/>
+        </parameter>
+        <parameter name="count" transfer-ownership="none">
+          <doc xml:whitespace="preserve">Specifies the number of vertices you want to draw.</doc>
+          <type name="gint" c:type="int"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="vertex_buffer_draw_elements"
+              c:identifier="cogl_vertex_buffer_draw_elements">
+      <doc xml:whitespace="preserve">This function lets you use an array of indices to specify the vertices
+within your vertex buffer that you want to draw. The indices themselves
+are created by calling cogl_vertex_buffer_indices_new ()
+Any un-submitted attribute changes are automatically submitted before
+drawing.</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="handle" transfer-ownership="none">
+          <doc xml:whitespace="preserve">A vertex buffer handle</doc>
+          <type name="Handle" c:type="CoglHandle"/>
+        </parameter>
+        <parameter name="mode" transfer-ownership="none">
+          <doc xml:whitespace="preserve">A #CoglVerticesMode specifying how the vertices should be interpreted.</doc>
+          <type name="VerticesMode" c:type="CoglVerticesMode"/>
+        </parameter>
+        <parameter name="indices" transfer-ownership="none">
+          <doc xml:whitespace="preserve">A CoglHandle for a set of indices allocated via cogl_vertex_buffer_indices_new ()</doc>
+          <type name="Handle" c:type="CoglHandle"/>
+        </parameter>
+        <parameter name="min_index" transfer-ownership="none">
+          <doc xml:whitespace="preserve">Specifies the minimum vertex index contained in indices</doc>
+          <type name="gint" c:type="int"/>
+        </parameter>
+        <parameter name="max_index" transfer-ownership="none">
+          <doc xml:whitespace="preserve">Specifies the maximum vertex index contained in indices</doc>
+          <type name="gint" c:type="int"/>
+        </parameter>
+        <parameter name="indices_offset" transfer-ownership="none">
+          <doc xml:whitespace="preserve">An offset into named indices. The offset marks the first index to use for drawing.</doc>
+          <type name="gint" c:type="int"/>
+        </parameter>
+        <parameter name="count" transfer-ownership="none">
+          <doc xml:whitespace="preserve">Specifies the number of vertices you want to draw.</doc>
+          <type name="gint" c:type="int"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="vertex_buffer_enable"
+              c:identifier="cogl_vertex_buffer_enable">
+      <doc xml:whitespace="preserve">Enables a previosuly disabled attribute.
+Since it can be costly to add and remove new attributes to buffers; to make
+individual buffers more reuseable it is possible to enable and disable
+attributes before using a buffer for drawing.
+You don't need to call cogl_vertex_buffer_submit() after using this function</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="handle" transfer-ownership="none">
+          <doc xml:whitespace="preserve">A vertex buffer handle</doc>
+          <type name="Handle" c:type="CoglHandle"/>
+        </parameter>
+        <parameter name="attribute_name" transfer-ownership="none">
+          <doc xml:whitespace="preserve">The name of the attribute you want to enable</doc>
+          <type name="utf8" c:type="char*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="vertex_buffer_get_n_vertices"
+              c:identifier="cogl_vertex_buffer_get_n_vertices">
+      <doc xml:whitespace="preserve">Retrieves the number of vertices that @handle represents</doc>
+      <return-value transfer-ownership="none">
+        <doc xml:whitespace="preserve">the number of vertices</doc>
+        <type name="guint" c:type="unsigned int"/>
+      </return-value>
+      <parameters>
+        <parameter name="handle" transfer-ownership="none">
+          <doc xml:whitespace="preserve">A vertex buffer handle</doc>
+          <type name="Handle" c:type="CoglHandle"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="vertex_buffer_indices_get_for_quads"
+              c:identifier="cogl_vertex_buffer_indices_get_for_quads"
+              introspectable="0">
+      <doc xml:whitespace="preserve">Creates a vertex buffer containing the indices needed to draw pairs
+of triangles from a list of vertices grouped as quads. There will
+be at least @n_indices entries in the buffer (but there may be
+more).
+The indices will follow this pattern:
+0, 1, 2, 0, 2, 3, 4, 5, 6, 4, 6, 7 ... etc
+For example, if you submit vertices for a quad like like that shown
+in &lt;xref linkend="quad-indices-order"/&gt; then you can request 6
+indices to render two triangles like those shown in &lt;xref
+linkend="quad-indices-triangles"/&gt;.
+&lt;figure id="quad-indices-order"&gt;
+&lt;title&gt;Example of vertices submitted to form a quad&lt;/title&gt;
+&lt;graphic fileref="quad-indices-order.png" format="PNG"/&gt;
+&lt;/figure&gt;
+&lt;figure id="quad-indices-triangles"&gt;
+&lt;title&gt;Illustration of the triangle indices that will be generated&lt;/title&gt;
+&lt;graphic fileref="quad-indices-triangles.png" format="PNG"/&gt;
+&lt;/figure&gt;
+owned by Cogl and should not be modified or unref'd.</doc>
+      <return-value>
+        <doc xml:whitespace="preserve">A %CoglHandle containing the indices. The handled is</doc>
+        <type name="Handle" c:type="CoglHandle"/>
+      </return-value>
+      <parameters>
+        <parameter name="n_indices" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the number of indices in the vertex buffer.</doc>
+          <type name="guint" c:type="unsigned int"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="vertex_buffer_indices_get_type"
+              c:identifier="cogl_vertex_buffer_indices_get_type">
+      <doc xml:whitespace="preserve">Queries back the data type used for the given indices</doc>
+      <return-value transfer-ownership="none">
+        <doc xml:whitespace="preserve">The CoglIndicesType used</doc>
+        <type name="IndicesType" c:type="CoglIndicesType"/>
+      </return-value>
+      <parameters>
+        <parameter name="indices" transfer-ownership="none">
+          <type name="Handle" c:type="CoglHandle"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="vertex_buffer_indices_new"
+              c:identifier="cogl_vertex_buffer_indices_new"
+              introspectable="0">
+      <doc xml:whitespace="preserve">Depending on how much geometry you are submitting it can be worthwhile
+optimizing the number of redundant vertices you submit. Using an index
+array allows you to reference vertices multiple times, for example
+during triangle strips.
+cogl_vertex_buffer_draw_elements().</doc>
+      <return-value>
+        <doc xml:whitespace="preserve">A CoglHandle for the indices which you can pass to</doc>
+        <type name="Handle" c:type="CoglHandle"/>
+      </return-value>
+      <parameters>
+        <parameter name="indices_type" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #CoglIndicesType specifying the data type used for the indices.</doc>
+          <type name="IndicesType" c:type="CoglIndicesType"/>
+        </parameter>
+        <parameter name="indices_array" transfer-ownership="none">
+          <doc xml:whitespace="preserve">Specifies the address of your array of indices</doc>
+          <array length="2" c:type="void*">
+            <type name="gpointer"/>
+          </array>
+        </parameter>
+        <parameter name="indices_len" transfer-ownership="none">
+          <doc xml:whitespace="preserve">The number of indices in indices_array</doc>
+          <type name="gint" c:type="int"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="vertex_buffer_new"
+              c:identifier="cogl_vertex_buffer_new"
+              introspectable="0">
+      <doc xml:whitespace="preserve">Creates a new vertex buffer that you can use to add attributes.</doc>
+      <return-value>
+        <doc xml:whitespace="preserve">a new #CoglHandle</doc>
+        <type name="Handle" c:type="CoglHandle"/>
+      </return-value>
+      <parameters>
+        <parameter name="n_vertices" transfer-ownership="none">
+          <doc xml:whitespace="preserve">The number of vertices that your attributes will correspond to.</doc>
+          <type name="guint" c:type="unsigned int"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="vertex_buffer_ref"
+              c:identifier="cogl_vertex_buffer_ref"
+              introspectable="0"
+              deprecated="Use cogl_handle_ref() instead"
+              deprecated-version="1.2">
+      <doc xml:whitespace="preserve">Increment the reference count for a vertex buffer</doc>
+      <return-value>
+        <doc xml:whitespace="preserve">the @handle.</doc>
+        <type name="Handle" c:type="CoglHandle"/>
+      </return-value>
+      <parameters>
+        <parameter name="handle" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a @CoglHandle.</doc>
+          <type name="Handle" c:type="CoglHandle"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="vertex_buffer_submit"
+              c:identifier="cogl_vertex_buffer_submit">
+      <doc xml:whitespace="preserve">Submits all the user added attributes to the GPU; once submitted, the
+attributes can be used for drawing.
+You should aim to minimize calls to this function since it implies
+validating your data; it potentially incurs a transport cost (especially if
+you are using GLX indirect rendering) and potentially a format conversion
+cost if the GPU doesn't natively support any of the given attribute formats.</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="handle" transfer-ownership="none">
+          <doc xml:whitespace="preserve">A vertex buffer handle</doc>
+          <type name="Handle" c:type="CoglHandle"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="vertex_buffer_unref"
+              c:identifier="cogl_vertex_buffer_unref"
+              deprecated="Use cogl_handle_unref() instead"
+              deprecated-version="1.2">
+      <doc xml:whitespace="preserve">Decrement the reference count for a vertex buffer</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="handle" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a @CoglHandle.</doc>
+          <type name="Handle" c:type="CoglHandle"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="viewport"
+              c:identifier="cogl_viewport"
+              version="0.8.2"
+              deprecated="Use cogl_set_viewport() instead"
+              deprecated-version="1.2">
+      <doc xml:whitespace="preserve">Replace the current viewport with the given values.</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="width" transfer-ownership="none">
+          <doc xml:whitespace="preserve">Width of the viewport</doc>
+          <type name="guint" c:type="unsigned int"/>
+        </parameter>
+        <parameter name="height" transfer-ownership="none">
+          <doc xml:whitespace="preserve">Height of the viewport</doc>
+          <type name="guint" c:type="unsigned int"/>
+        </parameter>
+      </parameters>
+    </function>
+  </namespace>
+</repository>
diff --git a/unmaintained/clutter/cogl/cogl.factor b/unmaintained/clutter/cogl/cogl.factor
new file mode 100644 (file)
index 0000000..6b54a07
--- /dev/null
@@ -0,0 +1,5 @@
+! Copyright (C) 2010 Anton Gorenko.
+! See http://factorcode.org/license.txt for BSD license.
+USING: clutter.cogl.ffi ;
+IN: clutter.cogl
+
diff --git a/unmaintained/clutter/cogl/ffi/ffi.factor b/unmaintained/clutter/cogl/ffi/ffi.factor
new file mode 100644 (file)
index 0000000..199fa07
--- /dev/null
@@ -0,0 +1,25 @@
+! Copyright (C) 2010 Anton Gorenko.
+! See http://factorcode.org/license.txt for BSD license.
+USING: alien alien.libraries alien.syntax combinators
+gobject-introspection kernel opengl.gl system vocabs.loader ;
+IN: clutter.cogl.ffi
+
+<<
+"gobject.ffi" require
+>>
+
+LIBRARY: clutter.cogl
+
+<<
+"clutter.cogl" {
+    { [ os winnt? ] [ drop ] }
+    { [ os macosx? ] [ drop ] }
+    { [ os unix? ] [ "libclutter-glx-1.0.so" cdecl add-library ] }
+} cond
+>>
+
+FOREIGN-ATOMIC-TYPE: GL.uint GLuint
+FOREIGN-ATOMIC-TYPE: GL.enum GLenum
+
+GIR: vocab:clutter/cogl/Cogl-1.0.gir
+
diff --git a/unmaintained/clutter/ffi/ffi.factor b/unmaintained/clutter/ffi/ffi.factor
new file mode 100644 (file)
index 0000000..4a44412
--- /dev/null
@@ -0,0 +1,27 @@
+! Copyright (C) 2010 Anton Gorenko.
+! See http://factorcode.org/license.txt for BSD license.
+USING: alien alien.libraries alien.syntax cairo.ffi combinators
+gobject-introspection kernel system vocabs.loader ;
+IN: clutter.ffi
+
+<<
+"atk.ffi" require
+"pango.cairo.ffi" require
+"clutter.cogl.ffi" require
+"clutter.json.ffi" require
+>>
+
+LIBRARY: clutter
+
+<<
+"clutter" {
+    { [ os winnt? ] [ drop ] }
+    { [ os macosx? ] [ drop ] }
+    { [ os unix? ] [ "libclutter-glx-1.0.so" cdecl add-library ] }
+} cond
+>>
+
+FOREIGN-RECORD-TYPE: cairo.Path cairo_path_t
+
+GIR: vocab:clutter/Clutter-1.0.gir
+
diff --git a/unmaintained/clutter/gtk/GtkClutter-0.10.gir b/unmaintained/clutter/gtk/GtkClutter-0.10.gir
new file mode 100644 (file)
index 0000000..3811379
--- /dev/null
@@ -0,0 +1,912 @@
+<?xml version="1.0"?>
+<!-- This file was automatically generated from C sources - DO NOT EDIT!
+To affect the contents of this file, edit the original C definitions,
+and/or use gtk-doc annotations.  -->
+<repository version="1.2"
+            xmlns="http://www.gtk.org/introspection/core/1.0"
+            xmlns:c="http://www.gtk.org/introspection/c/1.0"
+            xmlns:glib="http://www.gtk.org/introspection/glib/1.0">
+  <include name="Atk" version="1.0"/>
+  <include name="Clutter" version="1.0"/>
+  <include name="Cogl" version="1.0"/>
+  <include name="GL" version="1.0"/>
+  <include name="GLib" version="2.0"/>
+  <include name="GModule" version="2.0"/>
+  <include name="GObject" version="2.0"/>
+  <include name="Gdk" version="2.0"/>
+  <include name="GdkPixbuf" version="2.0"/>
+  <include name="Gio" version="2.0"/>
+  <include name="Gtk" version="2.0"/>
+  <include name="Json" version="1.0"/>
+  <include name="Pango" version="1.0"/>
+  <include name="PangoCairo" version="1.0"/>
+  <include name="PangoFT2" version="1.0"/>
+  <include name="cairo" version="1.0"/>
+  <include name="fontconfig" version="2.0"/>
+  <include name="freetype2" version="2.0"/>
+  <namespace name="GtkClutter"
+             version="0.10"
+             shared-library="libclutter-gtk-0.10.so.0"
+             c:identifier-prefixes="GtkClutter"
+             c:symbol-prefixes="gtk_clutter">
+    <class name="Embed"
+           c:symbol-prefix="embed"
+           c:type="GtkClutterEmbed"
+           version="0.6"
+           parent="Gtk.Container"
+           glib:type-name="GtkClutterEmbed"
+           glib:get-type="gtk_clutter_embed_get_type"
+           glib:type-struct="EmbedClass">
+      <doc xml:whitespace="preserve">A #GtkWidget containing the default Clutter stage.</doc>
+      <implements name="Atk.ImplementorIface"/>
+      <implements name="Gtk.Buildable"/>
+      <constructor name="new"
+                   c:identifier="gtk_clutter_embed_new"
+                   version="0.6">
+        <doc xml:whitespace="preserve">Creates a new #GtkClutterEmbed widget. This widget can be
+used to build a scene using Clutter API into a GTK+ application.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the newly created #GtkClutterEmbed</doc>
+          <type name="Gtk.Widget" c:type="GtkWidget*"/>
+        </return-value>
+      </constructor>
+      <method name="get_stage"
+              c:identifier="gtk_clutter_embed_get_stage"
+              version="0.6">
+        <doc xml:whitespace="preserve">Retrieves the #ClutterStage from @embed. The returned stage can be
+used to add actors to the Clutter scene. Multiple calls to this function
+on the same #GtkClutterEmbed widget will return the same stage.
+or unref the returned actor.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #ClutterStage. You should never destroy</doc>
+          <type name="Clutter.Actor" c:type="ClutterActor*"/>
+        </return-value>
+      </method>
+      <field name="parent_instance">
+        <type name="Gtk.Container" c:type="GtkContainer"/>
+      </field>
+      <field name="priv">
+        <type name="EmbedPrivate" c:type="GtkClutterEmbedPrivate*"/>
+      </field>
+    </class>
+    <record name="EmbedClass"
+            c:type="GtkClutterEmbedClass"
+            glib:is-gtype-struct-for="Embed"
+            version="0.6">
+      <doc xml:whitespace="preserve">Base class for #GtkClutterEmbed.</doc>
+      <field name="parent_class">
+        <type name="Gtk.ContainerClass" c:type="GtkContainerClass"/>
+      </field>
+      <field name="_clutter_gtk_reserved1" introspectable="0">
+        <callback name="_clutter_gtk_reserved1">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_gtk_reserved2" introspectable="0">
+        <callback name="_clutter_gtk_reserved2">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_gtk_reserved3" introspectable="0">
+        <callback name="_clutter_gtk_reserved3">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_gtk_reserved4" introspectable="0">
+        <callback name="_clutter_gtk_reserved4">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_gtk_reserved5" introspectable="0">
+        <callback name="_clutter_gtk_reserved5">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_clutter_gtk_reserved6" introspectable="0">
+        <callback name="_clutter_gtk_reserved6">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+    </record>
+    <record name="EmbedPrivate" c:type="GtkClutterEmbedPrivate" disguised="1">
+    </record>
+    <interface name="Scrollable"
+               c:symbol-prefix="scrollable"
+               c:type="GtkClutterScrollable"
+               glib:type-name="GtkClutterScrollable"
+               glib:get-type="gtk_clutter_scrollable_get_type"
+               glib:type-struct="ScrollableIface">
+      <virtual-method name="get_adjustments"
+                      invoker="get_adjustments"
+                      version="0.10">
+        <doc xml:whitespace="preserve">Retrieves the horizontal and vertical adjustments used to
+determine the position of the scrollable actor.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="h_adjust"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:whitespace="preserve">return location for a #GtkAdjustment, or %NULL</doc>
+            <type name="Gtk.Adjustment" c:type="GtkAdjustment**"/>
+          </parameter>
+          <parameter name="v_adjust"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:whitespace="preserve">return location for a #GtkAdjustment, or %NULL</doc>
+            <type name="Gtk.Adjustment" c:type="GtkAdjustment**"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="set_adjustments"
+                      invoker="set_adjustments"
+                      version="0.10">
+        <doc xml:whitespace="preserve">Sets the horizontal and vertical adjustments used to determine
+the position of the scrollable actor.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="h_adjust" transfer-ownership="none" allow-none="1">
+            <doc xml:whitespace="preserve">a #GtkAdjustment, or %NULL</doc>
+            <type name="Gtk.Adjustment" c:type="GtkAdjustment*"/>
+          </parameter>
+          <parameter name="v_adjust" transfer-ownership="none" allow-none="1">
+            <doc xml:whitespace="preserve">a #GtkAdjustment, or %NULL</doc>
+            <type name="Gtk.Adjustment" c:type="GtkAdjustment*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <method name="get_adjustments"
+              c:identifier="gtk_clutter_scrollable_get_adjustments"
+              version="0.10">
+        <doc xml:whitespace="preserve">Retrieves the horizontal and vertical adjustments used to
+determine the position of the scrollable actor.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="h_adjust"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:whitespace="preserve">return location for a #GtkAdjustment, or %NULL</doc>
+            <type name="Gtk.Adjustment" c:type="GtkAdjustment**"/>
+          </parameter>
+          <parameter name="v_adjust"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:whitespace="preserve">return location for a #GtkAdjustment, or %NULL</doc>
+            <type name="Gtk.Adjustment" c:type="GtkAdjustment**"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_adjustments"
+              c:identifier="gtk_clutter_scrollable_set_adjustments"
+              version="0.10">
+        <doc xml:whitespace="preserve">Sets the horizontal and vertical adjustments used to determine
+the position of the scrollable actor.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="h_adjust" transfer-ownership="none" allow-none="1">
+            <doc xml:whitespace="preserve">a #GtkAdjustment, or %NULL</doc>
+            <type name="Gtk.Adjustment" c:type="GtkAdjustment*"/>
+          </parameter>
+          <parameter name="v_adjust" transfer-ownership="none" allow-none="1">
+            <doc xml:whitespace="preserve">a #GtkAdjustment, or %NULL</doc>
+            <type name="Gtk.Adjustment" c:type="GtkAdjustment*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <property name="hadjustment"
+                version="0.10"
+                writable="1"
+                construct="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">The #GtkAdjustment that determines the value of the
+horizontal position for this scrollable actor.</doc>
+        <type name="Gtk.Adjustment"/>
+      </property>
+      <property name="vadjustment"
+                version="0.10"
+                writable="1"
+                construct="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">The #GtkAdjustment that determines the value of the
+vertical position for this scrollable actor.</doc>
+        <type name="Gtk.Adjustment"/>
+      </property>
+    </interface>
+    <record name="ScrollableIface"
+            c:type="GtkClutterScrollableIface"
+            glib:is-gtype-struct-for="Scrollable"
+            version="0.10">
+      <doc xml:whitespace="preserve">The #GtkClutterScrollableIface structure contains only private data
+and should be accessed using the provided functions.</doc>
+      <field name="parent_iface">
+        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
+      </field>
+      <field name="set_adjustments">
+        <callback name="set_adjustments">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="scrollable" transfer-ownership="none">
+              <type name="Scrollable" c:type="GtkClutterScrollable*"/>
+            </parameter>
+            <parameter name="h_adjust"
+                       transfer-ownership="none"
+                       allow-none="1">
+              <doc xml:whitespace="preserve">a #GtkAdjustment, or %NULL</doc>
+              <type name="Gtk.Adjustment" c:type="GtkAdjustment*"/>
+            </parameter>
+            <parameter name="v_adjust"
+                       transfer-ownership="none"
+                       allow-none="1">
+              <doc xml:whitespace="preserve">a #GtkAdjustment, or %NULL</doc>
+              <type name="Gtk.Adjustment" c:type="GtkAdjustment*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="get_adjustments">
+        <callback name="get_adjustments">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="scrollable" transfer-ownership="none">
+              <type name="Scrollable" c:type="GtkClutterScrollable*"/>
+            </parameter>
+            <parameter name="h_adjust"
+                       direction="out"
+                       caller-allocates="0"
+                       transfer-ownership="full">
+              <doc xml:whitespace="preserve">return location for a #GtkAdjustment, or %NULL</doc>
+              <type name="Gtk.Adjustment" c:type="GtkAdjustment**"/>
+            </parameter>
+            <parameter name="v_adjust"
+                       direction="out"
+                       caller-allocates="0"
+                       transfer-ownership="full">
+              <doc xml:whitespace="preserve">return location for a #GtkAdjustment, or %NULL</doc>
+              <type name="Gtk.Adjustment" c:type="GtkAdjustment**"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+    </record>
+    <class name="Viewport"
+           c:symbol-prefix="viewport"
+           c:type="GtkClutterViewport"
+           version="0.8.2"
+           parent="Clutter.Actor"
+           glib:type-name="GtkClutterViewport"
+           glib:get-type="gtk_clutter_viewport_get_type"
+           glib:type-struct="ViewportClass">
+      <doc xml:whitespace="preserve">The #GtkClutterViewport structure contains only private data and
+should be accessed using the provided functions.</doc>
+      <implements name="Atk.ImplementorIface"/>
+      <implements name="Clutter.Animatable"/>
+      <implements name="Clutter.Container"/>
+      <implements name="Clutter.Scriptable"/>
+      <implements name="Scrollable"/>
+      <implements name="Zoomable"/>
+      <constructor name="new"
+                   c:identifier="gtk_clutter_viewport_new"
+                   version="0.10">
+        <doc xml:whitespace="preserve">Creates a new #GtkClutterViewport with the given adjustments.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the newly created viewport actor</doc>
+          <type name="Clutter.Actor" c:type="ClutterActor*"/>
+        </return-value>
+        <parameters>
+          <parameter name="h_adjust" transfer-ownership="none">
+            <doc xml:whitespace="preserve">horizontal adjustment, or %NULL</doc>
+            <type name="Gtk.Adjustment" c:type="GtkAdjustment*"/>
+          </parameter>
+          <parameter name="v_adjust" transfer-ownership="none">
+            <doc xml:whitespace="preserve">vertical adjustment, or %NULL</doc>
+            <type name="Gtk.Adjustment" c:type="GtkAdjustment*"/>
+          </parameter>
+          <parameter name="z_adjust" transfer-ownership="none">
+            <doc xml:whitespace="preserve">zoom adjustment, or %NULL</doc>
+            <type name="Gtk.Adjustment" c:type="GtkAdjustment*"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <method name="get_origin"
+              c:identifier="gtk_clutter_viewport_get_origin"
+              version="0.10">
+        <doc xml:whitespace="preserve">Retrieves the current translation factor ("origin") used when
+displaying the child of @viewport.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="x" transfer-ownership="none">
+            <doc xml:whitespace="preserve">return location for the X origin in pixels, or %NULL</doc>
+            <type name="gfloat" c:type="gfloat*"/>
+          </parameter>
+          <parameter name="y" transfer-ownership="none">
+            <doc xml:whitespace="preserve">return location for the Y origin in pixels, or %NULL</doc>
+            <type name="gfloat" c:type="gfloat*"/>
+          </parameter>
+          <parameter name="z" transfer-ownership="none">
+            <doc xml:whitespace="preserve">return location for the Z origin in pixels, or %NULL</doc>
+            <type name="gfloat" c:type="gfloat*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <property name="child"
+                version="0.10"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">The #ClutterActor inside the viewport.</doc>
+        <type name="Clutter.Actor"/>
+      </property>
+      <property name="origin" version="0.10" transfer-ownership="none">
+        <doc xml:whitespace="preserve">The current origin of the viewport. You should use the
+vertex to convert event coordinates for the child of the
+viewport.</doc>
+        <type name="Clutter.Vertex"/>
+      </property>
+      <field name="parent_instance">
+        <type name="Clutter.Actor" c:type="ClutterActor"/>
+      </field>
+      <field name="priv">
+        <type name="ViewportPrivate" c:type="GtkClutterViewportPrivate*"/>
+      </field>
+    </class>
+    <record name="ViewportClass"
+            c:type="GtkClutterViewportClass"
+            glib:is-gtype-struct-for="Viewport"
+            version="0.8.2">
+      <doc xml:whitespace="preserve">The #GtkClutterViewportClass structure contains only private data and
+should be accessed using the provided functions.</doc>
+      <field name="parent_class">
+        <type name="Clutter.ActorClass" c:type="ClutterActorClass"/>
+      </field>
+    </record>
+    <record name="ViewportPrivate"
+            c:type="GtkClutterViewportPrivate"
+            disguised="1">
+    </record>
+    <interface name="Zoomable"
+               c:symbol-prefix="zoomable"
+               c:type="GtkClutterZoomable"
+               glib:type-name="GtkClutterZoomable"
+               glib:get-type="gtk_clutter_zoomable_get_type"
+               glib:type-struct="ZoomableIface">
+      <virtual-method name="get_adjustment"
+                      invoker="get_adjustment"
+                      version="0.10">
+        <doc xml:whitespace="preserve">Retrieves the adjustment used to determine the zoom factor of
+the zoomable actor</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #GtkAdjustment</doc>
+          <type name="Gtk.Adjustment" c:type="GtkAdjustment*"/>
+        </return-value>
+      </virtual-method>
+      <virtual-method name="set_adjustment"
+                      invoker="set_adjustment"
+                      version="0.10">
+        <doc xml:whitespace="preserve">Sets the adjustment used to determine the zoom factor of
+the zoomable actor</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="z_adjust" transfer-ownership="none" allow-none="1">
+            <doc xml:whitespace="preserve">a #GtkAdjustment, or %NULL</doc>
+            <type name="Gtk.Adjustment" c:type="GtkAdjustment*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <method name="get_adjustment"
+              c:identifier="gtk_clutter_zoomable_get_adjustment"
+              version="0.10">
+        <doc xml:whitespace="preserve">Retrieves the adjustment used to determine the zoom factor of
+the zoomable actor</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #GtkAdjustment</doc>
+          <type name="Gtk.Adjustment" c:type="GtkAdjustment*"/>
+        </return-value>
+      </method>
+      <method name="set_adjustment"
+              c:identifier="gtk_clutter_zoomable_set_adjustment"
+              version="0.10">
+        <doc xml:whitespace="preserve">Sets the adjustment used to determine the zoom factor of
+the zoomable actor</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="z_adjust" transfer-ownership="none" allow-none="1">
+            <doc xml:whitespace="preserve">a #GtkAdjustment, or %NULL</doc>
+            <type name="Gtk.Adjustment" c:type="GtkAdjustment*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <property name="zadjustment"
+                version="0.10"
+                writable="1"
+                construct="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">The #GtkAdjustment that determines the value of
+the zoom factor for this zoomable actor</doc>
+        <type name="Gtk.Adjustment"/>
+      </property>
+    </interface>
+    <record name="ZoomableIface"
+            c:type="GtkClutterZoomableIface"
+            glib:is-gtype-struct-for="Zoomable"
+            version="1.0">
+      <doc xml:whitespace="preserve">The #GtkClutterZoomableIface structure contains only private data</doc>
+      <field name="parent_iface">
+        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
+      </field>
+      <field name="set_adjustment">
+        <callback name="set_adjustment">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="zoomable" transfer-ownership="none">
+              <type name="Zoomable" c:type="GtkClutterZoomable*"/>
+            </parameter>
+            <parameter name="z_adjust"
+                       transfer-ownership="none"
+                       allow-none="1">
+              <doc xml:whitespace="preserve">a #GtkAdjustment, or %NULL</doc>
+              <type name="Gtk.Adjustment" c:type="GtkAdjustment*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="get_adjustment">
+        <callback name="get_adjustment">
+          <return-value transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GtkAdjustment</doc>
+            <type name="Gtk.Adjustment" c:type="GtkAdjustment*"/>
+          </return-value>
+          <parameters>
+            <parameter name="zoomable" transfer-ownership="none">
+              <type name="Zoomable" c:type="GtkClutterZoomable*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+    </record>
+    <function name="get_base_color"
+              c:identifier="gtk_clutter_get_base_color"
+              version="0.8">
+      <doc xml:whitespace="preserve">Retrieves the base color of @widget for the given @state and copies it
+into @color.</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="widget" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #GtkWidget</doc>
+          <type name="Gtk.Widget" c:type="GtkWidget*"/>
+        </parameter>
+        <parameter name="state" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a state</doc>
+          <type name="Gtk.StateType" c:type="GtkStateType"/>
+        </parameter>
+        <parameter name="color" transfer-ownership="none">
+          <doc xml:whitespace="preserve">return location for a #ClutterColor</doc>
+          <type name="Clutter.Color" c:type="ClutterColor*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="get_bg_color"
+              c:identifier="gtk_clutter_get_bg_color"
+              version="0.8">
+      <doc xml:whitespace="preserve">Retrieves the background color of @widget for the given @state and copies
+it into @color.</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="widget" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #GtkWidget</doc>
+          <type name="Gtk.Widget" c:type="GtkWidget*"/>
+        </parameter>
+        <parameter name="state" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a state</doc>
+          <type name="Gtk.StateType" c:type="GtkStateType"/>
+        </parameter>
+        <parameter name="color" transfer-ownership="none">
+          <doc xml:whitespace="preserve">return location for a #ClutterColor</doc>
+          <type name="Clutter.Color" c:type="ClutterColor*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="get_dark_color"
+              c:identifier="gtk_clutter_get_dark_color"
+              version="0.8">
+      <doc xml:whitespace="preserve">Retrieves the dark color of @widget for the given @state and copies it
+into @color.</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="widget" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #GtkWidget</doc>
+          <type name="Gtk.Widget" c:type="GtkWidget*"/>
+        </parameter>
+        <parameter name="state" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a state</doc>
+          <type name="Gtk.StateType" c:type="GtkStateType"/>
+        </parameter>
+        <parameter name="color" transfer-ownership="none">
+          <doc xml:whitespace="preserve">return location for a #ClutterColor</doc>
+          <type name="Clutter.Color" c:type="ClutterColor*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="get_fg_color"
+              c:identifier="gtk_clutter_get_fg_color"
+              version="0.8">
+      <doc xml:whitespace="preserve">Retrieves the foreground color of @widget for the given @state and copies
+it into @color.</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="widget" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #GtkWidget</doc>
+          <type name="Gtk.Widget" c:type="GtkWidget*"/>
+        </parameter>
+        <parameter name="state" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a state</doc>
+          <type name="Gtk.StateType" c:type="GtkStateType"/>
+        </parameter>
+        <parameter name="color" transfer-ownership="none">
+          <doc xml:whitespace="preserve">return location for a #ClutterColor</doc>
+          <type name="Clutter.Color" c:type="ClutterColor*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="get_light_color"
+              c:identifier="gtk_clutter_get_light_color"
+              version="0.8">
+      <doc xml:whitespace="preserve">Retrieves the light color of @widget for the given @state and copies it
+into @color.</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="widget" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #GtkWidget</doc>
+          <type name="Gtk.Widget" c:type="GtkWidget*"/>
+        </parameter>
+        <parameter name="state" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a state</doc>
+          <type name="Gtk.StateType" c:type="GtkStateType"/>
+        </parameter>
+        <parameter name="color" transfer-ownership="none">
+          <doc xml:whitespace="preserve">return location for a #ClutterColor</doc>
+          <type name="Clutter.Color" c:type="ClutterColor*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="get_mid_color"
+              c:identifier="gtk_clutter_get_mid_color"
+              version="0.8">
+      <doc xml:whitespace="preserve">Retrieves the mid color of @widget for the given @state and copies it
+into @color.</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="widget" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #GtkWidget</doc>
+          <type name="Gtk.Widget" c:type="GtkWidget*"/>
+        </parameter>
+        <parameter name="state" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a state</doc>
+          <type name="Gtk.StateType" c:type="GtkStateType"/>
+        </parameter>
+        <parameter name="color" transfer-ownership="none">
+          <doc xml:whitespace="preserve">return location for a #ClutterColor</doc>
+          <type name="Clutter.Color" c:type="ClutterColor*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="get_text_aa_color"
+              c:identifier="gtk_clutter_get_text_aa_color"
+              version="0.8">
+      <doc xml:whitespace="preserve">Retrieves the text-aa color of @widget for the given @state and copies it
+into @color.</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="widget" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #GtkWidget</doc>
+          <type name="Gtk.Widget" c:type="GtkWidget*"/>
+        </parameter>
+        <parameter name="state" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a state</doc>
+          <type name="Gtk.StateType" c:type="GtkStateType"/>
+        </parameter>
+        <parameter name="color" transfer-ownership="none">
+          <doc xml:whitespace="preserve">return location for a #ClutterColor</doc>
+          <type name="Clutter.Color" c:type="ClutterColor*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="get_text_color"
+              c:identifier="gtk_clutter_get_text_color"
+              version="0.8">
+      <doc xml:whitespace="preserve">Retrieves the text color of @widget for the given @state and copies it
+into @color.</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="widget" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #GtkWidget</doc>
+          <type name="Gtk.Widget" c:type="GtkWidget*"/>
+        </parameter>
+        <parameter name="state" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a state</doc>
+          <type name="Gtk.StateType" c:type="GtkStateType"/>
+        </parameter>
+        <parameter name="color" transfer-ownership="none">
+          <doc xml:whitespace="preserve">return location for a #ClutterColor</doc>
+          <type name="Clutter.Color" c:type="ClutterColor*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="init" c:identifier="gtk_clutter_init" version="0.8">
+      <doc xml:whitespace="preserve">This function should be called instead of clutter_init() and
+gtk_init().
+on failure.</doc>
+      <return-value transfer-ownership="none">
+        <doc xml:whitespace="preserve">%CLUTTER_INIT_SUCCESS on success, a negative integer</doc>
+        <type name="Clutter.InitError" c:type="ClutterInitError"/>
+      </return-value>
+      <parameters>
+        <parameter name="argc"
+                   direction="inout"
+                   caller-allocates="0"
+                   transfer-ownership="full">
+          <doc xml:whitespace="preserve">pointer to the arguments count, or %NULL</doc>
+          <type name="gint" c:type="int*"/>
+        </parameter>
+        <parameter name="argv"
+                   direction="inout"
+                   caller-allocates="0"
+                   transfer-ownership="full"
+                   allow-none="1">
+          <doc xml:whitespace="preserve">pointer to the arguments vector, or %NULL</doc>
+          <array length="0" c:type="char***">
+            <type name="utf8"/>
+          </array>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="init_with_args"
+              c:identifier="gtk_clutter_init_with_args"
+              version="0.10"
+              throws="1">
+      <doc xml:whitespace="preserve">This function should be called instead of clutter_init() and
+gtk_init_with_args().
+on failure.</doc>
+      <return-value transfer-ownership="none">
+        <doc xml:whitespace="preserve">%CLUTTER_INIT_SUCCESS on success, a negative integer</doc>
+        <type name="Clutter.InitError" c:type="ClutterInitError"/>
+      </return-value>
+      <parameters>
+        <parameter name="argc"
+                   direction="inout"
+                   caller-allocates="0"
+                   transfer-ownership="full">
+          <doc xml:whitespace="preserve">a pointer to the number of command line arguments.</doc>
+          <type name="gint" c:type="int*"/>
+        </parameter>
+        <parameter name="argv"
+                   direction="inout"
+                   caller-allocates="0"
+                   transfer-ownership="full"
+                   allow-none="1">
+          <doc xml:whitespace="preserve">a pointer to the array of command line arguments.</doc>
+          <array length="0" c:type="char***">
+            <type name="utf8"/>
+          </array>
+        </parameter>
+        <parameter name="parameter_string"
+                   transfer-ownership="none"
+                   allow-none="1">
+          <doc xml:whitespace="preserve">a string which is displayed in the first line of &lt;option&gt;--help&lt;/option&gt; output, after &lt;literal&gt;&lt;replaceable&gt;programname&lt;/replaceable&gt; [OPTION...]&lt;/literal&gt;</doc>
+          <type name="utf8" c:type="char*"/>
+        </parameter>
+        <parameter name="entries" transfer-ownership="none" allow-none="1">
+          <doc xml:whitespace="preserve">a %NULL-terminated array of #GOptionEntry&lt;!-- --&gt;s describing the options of your program, or %NULL</doc>
+          <type name="GLib.OptionEntry" c:type="GOptionEntry*"/>
+        </parameter>
+        <parameter name="translation_domain"
+                   transfer-ownership="none"
+                   allow-none="1">
+          <doc xml:whitespace="preserve">a translation domain to use for translating the &lt;option&gt;--help&lt;/option&gt; output for the options in @entries with gettext(), or %NULL</doc>
+          <type name="utf8" c:type="char*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="texture_error_quark"
+              c:identifier="gtk_clutter_texture_error_quark">
+      <return-value transfer-ownership="none">
+        <type name="GLib.Quark" c:type="GQuark"/>
+      </return-value>
+    </function>
+    <function name="texture_new_from_icon_name"
+              c:identifier="gtk_clutter_texture_new_from_icon_name"
+              version="0.8"
+              introspectable="0">
+      <doc xml:whitespace="preserve">Creates a new #ClutterTexture and sets its contents to be
+the @icon_name from the current icon theme.
+was %NULL and @icon_name was not found.</doc>
+      <return-value>
+        <doc xml:whitespace="preserve">the newly created texture, or %NULL if @widget</doc>
+        <type name="Clutter.Actor" c:type="ClutterActor*"/>
+      </return-value>
+      <parameters>
+        <parameter name="widget" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #GtkWidget or %NULL</doc>
+          <type name="Gtk.Widget" c:type="GtkWidget*"/>
+        </parameter>
+        <parameter name="icon_name" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the name of the icon</doc>
+          <type name="utf8" c:type="gchar*"/>
+        </parameter>
+        <parameter name="size" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the size of the icon, or -1</doc>
+          <type name="Gtk.IconSize" c:type="GtkIconSize"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="texture_new_from_pixbuf"
+              c:identifier="gtk_clutter_texture_new_from_pixbuf"
+              version="0.8"
+              introspectable="0">
+      <doc xml:whitespace="preserve">Creates a new #ClutterTexture and sets its contents with a copy
+of @pixbuf.</doc>
+      <return-value>
+        <doc xml:whitespace="preserve">the newly created #ClutterTexture</doc>
+        <type name="Clutter.Actor" c:type="ClutterActor*"/>
+      </return-value>
+      <parameters>
+        <parameter name="pixbuf" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #GdkPixbuf</doc>
+          <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="texture_new_from_stock"
+              c:identifier="gtk_clutter_texture_new_from_stock"
+              version="0.8"
+              introspectable="0">
+      <doc xml:whitespace="preserve">Creates a new #ClutterTexture and sets its contents using the stock
+icon @stock_id as rendered by @widget.</doc>
+      <return-value>
+        <doc xml:whitespace="preserve">the newly created #ClutterTexture</doc>
+        <type name="Clutter.Actor" c:type="ClutterActor*"/>
+      </return-value>
+      <parameters>
+        <parameter name="widget" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #GtkWidget</doc>
+          <type name="Gtk.Widget" c:type="GtkWidget*"/>
+        </parameter>
+        <parameter name="stock_id" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the stock id of the icon</doc>
+          <type name="utf8" c:type="gchar*"/>
+        </parameter>
+        <parameter name="size" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the size of the icon, or -1</doc>
+          <type name="Gtk.IconSize" c:type="GtkIconSize"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="texture_set_from_icon_name"
+              c:identifier="gtk_clutter_texture_set_from_icon_name"
+              version="0.8"
+              throws="1">
+      <doc xml:whitespace="preserve">Sets the contents of @texture using the @icon_name from the
+current icon theme.</doc>
+      <return-value transfer-ownership="none">
+        <doc xml:whitespace="preserve">%TRUE on success, %FALSE on failure.</doc>
+        <type name="gboolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="texture" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #ClutterTexture</doc>
+          <type name="Clutter.Texture" c:type="ClutterTexture*"/>
+        </parameter>
+        <parameter name="widget" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #GtkWidget or %NULL</doc>
+          <type name="Gtk.Widget" c:type="GtkWidget*"/>
+        </parameter>
+        <parameter name="icon_name" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the name of the icon</doc>
+          <type name="utf8" c:type="gchar*"/>
+        </parameter>
+        <parameter name="size" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the icon size or -1</doc>
+          <type name="Gtk.IconSize" c:type="GtkIconSize"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="texture_set_from_pixbuf"
+              c:identifier="gtk_clutter_texture_set_from_pixbuf"
+              version="0.8"
+              throws="1">
+      <doc xml:whitespace="preserve">Sets the contents of @texture with a copy of @pixbuf.</doc>
+      <return-value transfer-ownership="none">
+        <doc xml:whitespace="preserve">%TRUE on success, %FALSE on failure.</doc>
+        <type name="gboolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="texture" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #ClutterTexture</doc>
+          <type name="Clutter.Texture" c:type="ClutterTexture*"/>
+        </parameter>
+        <parameter name="pixbuf" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #GdkPixbuf</doc>
+          <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="texture_set_from_stock"
+              c:identifier="gtk_clutter_texture_set_from_stock"
+              version="0.8"
+              throws="1">
+      <doc xml:whitespace="preserve">Sets the contents of @texture using the stock icon @stock_id, as
+rendered by @widget.</doc>
+      <return-value transfer-ownership="none">
+        <doc xml:whitespace="preserve">%TRUE on success, %FALSE on failure.</doc>
+        <type name="gboolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="texture" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #ClutterTexture</doc>
+          <type name="Clutter.Texture" c:type="ClutterTexture*"/>
+        </parameter>
+        <parameter name="widget" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #GtkWidget</doc>
+          <type name="Gtk.Widget" c:type="GtkWidget*"/>
+        </parameter>
+        <parameter name="stock_id" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the stock id of the icon</doc>
+          <type name="utf8" c:type="gchar*"/>
+        </parameter>
+        <parameter name="size" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the size of the icon, or -1</doc>
+          <type name="Gtk.IconSize" c:type="GtkIconSize"/>
+        </parameter>
+      </parameters>
+    </function>
+  </namespace>
+</repository>
diff --git a/unmaintained/clutter/gtk/ffi/ffi.factor b/unmaintained/clutter/gtk/ffi/ffi.factor
new file mode 100644 (file)
index 0000000..088899a
--- /dev/null
@@ -0,0 +1,23 @@
+! Copyright (C) 2010 Anton Gorenko.
+! See http://factorcode.org/license.txt for BSD license.
+USING: alien alien.libraries alien.syntax combinators
+gobject-introspection kernel system vocabs.loader ;
+IN: clutter.gtk.ffi
+
+<<
+"clutter.ffi" require
+"gtk.ffi" require
+>>
+
+LIBRARY: clutter.gtk
+
+<<
+"clutter.gtk" {
+    { [ os winnt? ] [ drop ] }
+    { [ os macosx? ] [ drop ] }
+    { [ os unix? ] [ "libclutter-gtk-0.10.so" cdecl add-library ] }
+} cond
+>>
+
+GIR: vocab:clutter/gtk/GtkClutter-0.10.gir
+
diff --git a/unmaintained/clutter/gtk/gtk.factor b/unmaintained/clutter/gtk/gtk.factor
new file mode 100644 (file)
index 0000000..6c495f5
--- /dev/null
@@ -0,0 +1,5 @@
+! Copyright (C) 2010 Anton Gorenko.
+! See http://factorcode.org/license.txt for BSD license.
+USING: clutter.gtk.ffi ;
+IN: clutter.gtk
+
diff --git a/unmaintained/clutter/json/Json-1.0.gir b/unmaintained/clutter/json/Json-1.0.gir
new file mode 100644 (file)
index 0000000..e945408
--- /dev/null
@@ -0,0 +1,2925 @@
+<?xml version="1.0"?>
+<!-- This file was automatically generated from C sources - DO NOT EDIT!
+To affect the contents of this file, edit the original C definitions,
+and/or use gtk-doc annotations.  -->
+<repository version="1.2"
+            xmlns="http://www.gtk.org/introspection/core/1.0"
+            xmlns:c="http://www.gtk.org/introspection/c/1.0"
+            xmlns:glib="http://www.gtk.org/introspection/glib/1.0">
+  <include name="GLib" version="2.0"/>
+  <include name="GObject" version="2.0"/>
+  <include name="Gio" version="2.0"/>
+  <package name="json-glib-1.0"/>
+  <namespace name="Json"
+             version="1.0"
+             shared-library="libjson-glib-1.0.so.0"
+             c:identifier-prefixes="Json"
+             c:symbol-prefixes="json">
+    <record name="Array"
+            c:type="JsonArray"
+            glib:type-name="JsonArray"
+            glib:get-type="json_array_get_type"
+            c:symbol-prefix="array">
+      <doc xml:whitespace="preserve">A JSON array type. The contents of the #JsonArray structure are private
+and should only be accessed by the provided API</doc>
+      <constructor name="new" c:identifier="json_array_new">
+        <doc xml:whitespace="preserve">Creates a new #JsonArray.</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">the newly created #JsonArray</doc>
+          <type name="Array" c:type="JsonArray*"/>
+        </return-value>
+      </constructor>
+      <constructor name="sized_new" c:identifier="json_array_sized_new">
+        <doc xml:whitespace="preserve">Creates a new #JsonArray with @n_elements slots already allocated.</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">the newly created #JsonArray</doc>
+          <type name="Array" c:type="JsonArray*"/>
+        </return-value>
+        <parameters>
+          <parameter name="n_elements" transfer-ownership="none">
+            <doc xml:whitespace="preserve">number of slots to pre-allocate</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <method name="add_array_element"
+              c:identifier="json_array_add_array_element"
+              version="0.8">
+        <doc xml:whitespace="preserve">Conveniently adds an array into @array. The @array takes ownership
+of the newly added #JsonArray</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="value" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #JsonArray</doc>
+            <type name="Array" c:type="JsonArray*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="add_boolean_element"
+              c:identifier="json_array_add_boolean_element"
+              version="0.8">
+        <doc xml:whitespace="preserve">Conveniently adds a boolean @value into @array</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="value" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a boolean value</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="add_double_element"
+              c:identifier="json_array_add_double_element"
+              version="0.8">
+        <doc xml:whitespace="preserve">Conveniently adds a floating point @value into @array</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="value" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a floating point value</doc>
+            <type name="gdouble" c:type="gdouble"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="add_element" c:identifier="json_array_add_element">
+        <doc xml:whitespace="preserve">Appends @node inside @array. The array will take ownership of the
+#JsonNode.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="node" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #JsonNode</doc>
+            <type name="Node" c:type="JsonNode*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="add_int_element"
+              c:identifier="json_array_add_int_element"
+              version="0.8">
+        <doc xml:whitespace="preserve">Conveniently adds an integer @value into @array</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="value" transfer-ownership="none">
+            <doc xml:whitespace="preserve">an integer value</doc>
+            <type name="gint64" c:type="gint64"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="add_null_element"
+              c:identifier="json_array_add_null_element"
+              version="0.8">
+        <doc xml:whitespace="preserve">Conveniently adds a null element into @array</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </method>
+      <method name="add_object_element"
+              c:identifier="json_array_add_object_element"
+              version="0.8">
+        <doc xml:whitespace="preserve">Conveniently adds an object into @array. The @array takes ownership
+of the newly added #JsonObject</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="value" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #JsonObject</doc>
+            <type name="Object" c:type="JsonObject*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="add_string_element"
+              c:identifier="json_array_add_string_element"
+              version="0.8">
+        <doc xml:whitespace="preserve">Conveniently adds a string @value into @array</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="value" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a string value</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="dup_element"
+              c:identifier="json_array_dup_element"
+              version="0.6">
+        <doc xml:whitespace="preserve">Retrieves a copy of the #JsonNode containing the value of the
+element at @index_ inside a #JsonArray
+index. Use json_node_free() when done.</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">a copy of the #JsonNode at the requested</doc>
+          <type name="Node" c:type="JsonNode*"/>
+        </return-value>
+        <parameters>
+          <parameter name="index_" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the index of the element to retrieve</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="foreach_element"
+              c:identifier="json_array_foreach_element"
+              version="0.8">
+        <doc xml:whitespace="preserve">Iterates over all elements of @array and calls @func on
+each one of them.
+It is safe to change the value of a #JsonNode of the @array
+from within the iterator @func, but it is not safe to add or
+remove elements from the @array.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="func"
+                     transfer-ownership="none"
+                     scope="call"
+                     closure="1">
+            <doc xml:whitespace="preserve">the function to be called on each element</doc>
+            <type name="ArrayForeach" c:type="JsonArrayForeach"/>
+          </parameter>
+          <parameter name="data" transfer-ownership="none">
+            <doc xml:whitespace="preserve">data to be passed to the function</doc>
+            <type name="gpointer" c:type="gpointer"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_array_element"
+              c:identifier="json_array_get_array_element"
+              version="0.8">
+        <doc xml:whitespace="preserve">Conveniently retrieves the array from the element at @index_
+inside @array</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the array</doc>
+          <type name="Array" c:type="JsonArray*"/>
+        </return-value>
+        <parameters>
+          <parameter name="index_" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the index of the element to retrieve</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_boolean_element"
+              c:identifier="json_array_get_boolean_element"
+              version="0.8">
+        <doc xml:whitespace="preserve">Conveniently retrieves the boolean value of the element at @index_
+inside @array</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the integer value</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="index_" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the index of the element to retrieve</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_double_element"
+              c:identifier="json_array_get_double_element"
+              version="0.8">
+        <doc xml:whitespace="preserve">Conveniently retrieves the floating point value of the element at</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the floating point value</doc>
+          <type name="gdouble" c:type="gdouble"/>
+        </return-value>
+        <parameters>
+          <parameter name="index_" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the index of the element to retrieve</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_element" c:identifier="json_array_get_element">
+        <doc xml:whitespace="preserve">Retrieves the #JsonNode containing the value of the element at @index_
+inside a #JsonArray.</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">a pointer to the #JsonNode at the requested index</doc>
+          <type name="Node" c:type="JsonNode*"/>
+        </return-value>
+        <parameters>
+          <parameter name="index_" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the index of the element to retrieve</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_elements" c:identifier="json_array_get_elements">
+        <doc xml:whitespace="preserve">Gets the elements of a #JsonArray as a list of #JsonNode&lt;!-- --&gt;s.
+containing the elements of the array. The contents of the list are
+owned by the array and should never be modified or freed. Use
+g_list_free() on the returned list when done using it</doc>
+        <return-value transfer-ownership="container">
+          <doc xml:whitespace="preserve">a #GList</doc>
+          <type name="GLib.List" c:type="GList*">
+            <type name="Node"/>
+          </type>
+        </return-value>
+      </method>
+      <method name="get_int_element"
+              c:identifier="json_array_get_int_element"
+              version="0.8">
+        <doc xml:whitespace="preserve">Conveniently retrieves the integer value of the element at @index_
+inside @array</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the integer value</doc>
+          <type name="gint64" c:type="gint64"/>
+        </return-value>
+        <parameters>
+          <parameter name="index_" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the index of the element to retrieve</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_length" c:identifier="json_array_get_length">
+        <doc xml:whitespace="preserve">Retrieves the length of a #JsonArray</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the length of the array</doc>
+          <type name="guint" c:type="guint"/>
+        </return-value>
+      </method>
+      <method name="get_null_element"
+              c:identifier="json_array_get_null_element"
+              version="0.8">
+        <doc xml:whitespace="preserve">Conveniently retrieves whether the element at @index_ is set to null</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if the element is null</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="index_" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the index of the element to retrieve</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_object_element"
+              c:identifier="json_array_get_object_element"
+              version="0.8">
+        <doc xml:whitespace="preserve">Conveniently retrieves the object from the element at @index_
+inside @array</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the object</doc>
+          <type name="Object" c:type="JsonObject*"/>
+        </return-value>
+        <parameters>
+          <parameter name="index_" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the index of the element to retrieve</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_string_element"
+              c:identifier="json_array_get_string_element"
+              version="0.8">
+        <doc xml:whitespace="preserve">Conveniently retrieves the string value of the element at @index_
+inside @array
+the #JsonArray and should not be modified or freed</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the string value; the returned string is owned by</doc>
+          <type name="utf8" c:type="gchar*"/>
+        </return-value>
+        <parameters>
+          <parameter name="index_" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the index of the element to retrieve</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="ref" c:identifier="json_array_ref">
+        <doc xml:whitespace="preserve">Increase by one the reference count of a #JsonArray.
+increased by one.</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">the passed #JsonArray, with the reference count</doc>
+          <type name="Array" c:type="JsonArray*"/>
+        </return-value>
+      </method>
+      <method name="remove_element" c:identifier="json_array_remove_element">
+        <doc xml:whitespace="preserve">Removes the #JsonNode inside @array at @index_ freeing its allocated
+resources.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="index_" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the position of the element to be removed</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="unref" c:identifier="json_array_unref">
+        <doc xml:whitespace="preserve">Decreases by one the reference count of a #JsonArray. If the
+reference count reaches zero, the array is destroyed and all
+its allocated resources are freed.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </method>
+    </record>
+    <callback name="ArrayForeach" c:type="JsonArrayForeach" version="0.8">
+      <doc xml:whitespace="preserve">The function to be passed to json_array_foreach_element(). You
+should not add or remove elements to and from @array within
+this function. It is safe to change the value of @element_node.</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="array" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the iterated #JsonArray</doc>
+          <type name="Array" c:type="JsonArray*"/>
+        </parameter>
+        <parameter name="index_" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the index of the element</doc>
+          <type name="guint" c:type="guint"/>
+        </parameter>
+        <parameter name="element_node" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #JsonNode containing the value at @index_</doc>
+          <type name="Node" c:type="JsonNode*"/>
+        </parameter>
+        <parameter name="user_data" transfer-ownership="none" closure="3">
+          <doc xml:whitespace="preserve">data passed to the function</doc>
+          <type name="gpointer" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <callback name="BoxedDeserializeFunc"
+              c:type="JsonBoxedDeserializeFunc"
+              version="0.10"
+              introspectable="0">
+      <doc xml:whitespace="preserve">Deserializes the contents of the passed #JsonNode into a #GBoxed</doc>
+      <return-value>
+        <doc xml:whitespace="preserve">the newly created boxed type</doc>
+        <type name="gpointer" c:type="gpointer"/>
+      </return-value>
+      <parameters>
+        <parameter name="node" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #JsonNode</doc>
+          <type name="Node" c:type="JsonNode*"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <callback name="BoxedSerializeFunc"
+              c:type="JsonBoxedSerializeFunc"
+              version="0.10">
+      <doc xml:whitespace="preserve">Serializes the passed #GBoxed and stores it inside a #JsonNode</doc>
+      <return-value transfer-ownership="full">
+        <doc xml:whitespace="preserve">the newly created #JsonNode</doc>
+        <type name="Node" c:type="JsonNode*"/>
+      </return-value>
+      <parameters>
+        <parameter name="boxed" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #GBoxed</doc>
+          <type name="gpointer" c:type="gconstpointer"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <class name="Builder"
+           c:symbol-prefix="builder"
+           c:type="JsonBuilder"
+           version="0.12"
+           parent="GObject.Object"
+           glib:type-name="JsonBuilder"
+           glib:get-type="json_builder_get_type"
+           glib:type-struct="BuilderClass">
+      <doc xml:whitespace="preserve">The &lt;structname&gt;JsonBuilder&lt;/structname&gt; structure contains only
+private data and shouls be accessed using the provided API</doc>
+      <constructor name="new" c:identifier="json_builder_new">
+        <doc xml:whitespace="preserve">Creates a new #JsonBuilder. You can use this object to generate a
+JSON tree and obtain the root #JsonNode&lt;!-- --&gt;s.</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">the newly created #JsonBuilder instance</doc>
+          <type name="Builder" c:type="JsonBuilder*"/>
+        </return-value>
+      </constructor>
+      <method name="add_boolean_value"
+              c:identifier="json_builder_add_boolean_value">
+        <doc xml:whitespace="preserve">If called after json_builder_set_member_name(), sets @value as member of the
+most recent opened object, otherwise @value is added as element of the most
+recent opened array.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the #JsonBuilder, or %NULL if the call was inconsistent</doc>
+          <type name="Builder" c:type="JsonBuilder*"/>
+        </return-value>
+        <parameters>
+          <parameter name="value" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the value of the member or element</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="add_double_value"
+              c:identifier="json_builder_add_double_value">
+        <doc xml:whitespace="preserve">If called after json_builder_set_member_name(), sets @value as member of the
+most recent opened object, otherwise @value is added as element of the most
+recent opened array.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the #JsonBuilder, or %NULL if the call was inconsistent</doc>
+          <type name="Builder" c:type="JsonBuilder*"/>
+        </return-value>
+        <parameters>
+          <parameter name="value" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the value of the member or element</doc>
+            <type name="gdouble" c:type="gdouble"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="add_int_value" c:identifier="json_builder_add_int_value">
+        <doc xml:whitespace="preserve">If called after json_builder_set_member_name(), sets @value as member of the
+most recent opened object, otherwise @value is added as element of the most
+recent opened array.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the #JsonBuilder, or %NULL if the call was inconsistent</doc>
+          <type name="Builder" c:type="JsonBuilder*"/>
+        </return-value>
+        <parameters>
+          <parameter name="value" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the value of the member or element</doc>
+            <type name="gint64" c:type="gint64"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="add_null_value" c:identifier="json_builder_add_null_value">
+        <doc xml:whitespace="preserve">If called after json_builder_set_member_name(), sets null as member of the
+most recent opened object, otherwise null is added as element of the most
+recent opened array.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the #JsonBuilder, or %NULL if the call was inconsistent</doc>
+          <type name="Builder" c:type="JsonBuilder*"/>
+        </return-value>
+      </method>
+      <method name="add_string_value"
+              c:identifier="json_builder_add_string_value">
+        <doc xml:whitespace="preserve">If called after json_builder_set_member_name(), sets @value as member of the
+most recent opened object, otherwise @value is added as element of the most
+recent opened array.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the #JsonBuilder, or %NULL if the call was inconsistent</doc>
+          <type name="Builder" c:type="JsonBuilder*"/>
+        </return-value>
+        <parameters>
+          <parameter name="value" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the value of the member or element</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="add_value" c:identifier="json_builder_add_value">
+        <doc xml:whitespace="preserve">If called after json_builder_set_member_name(), sets @node as member of the
+most recent opened object, otherwise @node is added as element of the most
+recent opened array.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the #JsonBuilder, or %NULL if the call was inconsistent</doc>
+          <type name="Builder" c:type="JsonBuilder*"/>
+        </return-value>
+        <parameters>
+          <parameter name="node" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the value of the member or element</doc>
+            <type name="Node" c:type="JsonNode*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="begin_array" c:identifier="json_builder_begin_array">
+        <doc xml:whitespace="preserve">Opens a subarray inside the given @builder. When done adding members to
+the subarray, json_builder_end_array() must be called.
+Can be called for first or only if the call is associated to an object member
+or an array element.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the #JsonBuilder, or %NULL if the call was inconsistent</doc>
+          <type name="Builder" c:type="JsonBuilder*"/>
+        </return-value>
+      </method>
+      <method name="begin_object" c:identifier="json_builder_begin_object">
+        <doc xml:whitespace="preserve">Opens a subobject inside the given @builder. When done adding members to
+the subobject, json_builder_end_object() must be called.
+Can be called for first or only if the call is associated to an object member
+or an array element.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the #JsonBuilder, or %NULL if the call was inconsistent</doc>
+          <type name="Builder" c:type="JsonBuilder*"/>
+        </return-value>
+      </method>
+      <method name="end_array" c:identifier="json_builder_end_array">
+        <doc xml:whitespace="preserve">Closes the subarray inside the given @builder that was opened by the most
+recent call to json_builder_begin_array().
+Cannot be called after json_builder_set_member_name().</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the #JsonBuilder, or %NULL if the call was inconsistent</doc>
+          <type name="Builder" c:type="JsonBuilder*"/>
+        </return-value>
+      </method>
+      <method name="end_object" c:identifier="json_builder_end_object">
+        <doc xml:whitespace="preserve">Closes the subobject inside the given @builder that was opened by the most
+recent call to json_builder_begin_object().
+Cannot be called after json_builder_set_member_name().</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the #JsonBuilder, or %NULL if the call was inconsistent</doc>
+          <type name="Builder" c:type="JsonBuilder*"/>
+        </return-value>
+      </method>
+      <method name="get_root" c:identifier="json_builder_get_root">
+        <doc xml:whitespace="preserve">Returns the root of the current constructed tree, if the build is complete
+(ie: all opened objects, object members and arrays are being closed).
+Free the returned value with json_node_free().</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">the #JsonNode, or %NULL if the build is not complete.</doc>
+          <type name="Node" c:type="JsonNode*"/>
+        </return-value>
+      </method>
+      <method name="reset" c:identifier="json_builder_reset">
+        <doc xml:whitespace="preserve">Resets the state of the @builder back to its initial state.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </method>
+      <method name="set_member_name"
+              c:identifier="json_builder_set_member_name">
+        <doc xml:whitespace="preserve">Set the name of the next member in an object. The next call must add a value,
+open an object or an array.
+Can be called only if the call is associated to an object.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the #JsonBuilder, or %NULL if the call was inconsistent</doc>
+          <type name="Builder" c:type="JsonBuilder*"/>
+        </return-value>
+        <parameters>
+          <parameter name="member_name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the name of the member</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <field name="parent_instance">
+        <type name="GObject.Object" c:type="GObject"/>
+      </field>
+      <field name="priv">
+        <type name="BuilderPrivate" c:type="JsonBuilderPrivate*"/>
+      </field>
+    </class>
+    <record name="BuilderClass"
+            c:type="JsonBuilderClass"
+            glib:is-gtype-struct-for="Builder"
+            version="0.12">
+      <doc xml:whitespace="preserve">The &lt;structname&gt;JsonBuilder&lt;/structname&gt; structure contains only
+private data</doc>
+      <field name="parent_class">
+        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
+      </field>
+      <field name="_json_reserved1" introspectable="0">
+        <callback name="_json_reserved1">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_json_reserved2" introspectable="0">
+        <callback name="_json_reserved2">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+    </record>
+    <record name="BuilderPrivate" c:type="JsonBuilderPrivate" disguised="1">
+    </record>
+    <class name="Generator"
+           c:symbol-prefix="generator"
+           c:type="JsonGenerator"
+           parent="GObject.Object"
+           glib:type-name="JsonGenerator"
+           glib:get-type="json_generator_get_type"
+           glib:type-struct="GeneratorClass">
+      <doc xml:whitespace="preserve">JSON data streams generator. The contents of the #JsonGenerator structure
+are private and should only be accessed via the provided API.</doc>
+      <constructor name="new" c:identifier="json_generator_new">
+        <doc xml:whitespace="preserve">Creates a new #JsonGenerator. You can use this object to generate a
+JSON data stream starting from a data object model composed by
+#JsonNode&lt;!-- --&gt;s.</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">the newly created #JsonGenerator instance</doc>
+          <type name="Generator" c:type="JsonGenerator*"/>
+        </return-value>
+      </constructor>
+      <method name="set_root" c:identifier="json_generator_set_root">
+        <doc xml:whitespace="preserve">Sets @node as the root of the JSON data stream to be serialized by
+the #JsonGenerator.
+&lt;note&gt;The node is copied by the generator object, so it can be safely
+freed after calling this function.&lt;/note&gt;</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="node" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #JsonNode</doc>
+            <type name="Node" c:type="JsonNode*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="to_data" c:identifier="json_generator_to_data">
+        <doc xml:whitespace="preserve">Generates a JSON data stream from @generator and returns it as a
+buffer.
+Use g_free() to free the allocated resources.</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">a newly allocated buffer holding a JSON data stream.</doc>
+          <type name="utf8" c:type="gchar*"/>
+        </return-value>
+        <parameters>
+          <parameter name="length"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full">
+            <doc xml:whitespace="preserve">return location for the length of the returned buffer, or %NULL</doc>
+            <type name="gulong" c:type="gsize*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="to_file" c:identifier="json_generator_to_file" throws="1">
+        <doc xml:whitespace="preserve">Creates a JSON data stream and puts it inside @filename, overwriting the
+current file contents. This operation is atomic.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if saving was successful.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="filename" transfer-ownership="none">
+            <doc xml:whitespace="preserve">path to the target file</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="to_stream"
+              c:identifier="json_generator_to_stream"
+              version="0.12"
+              throws="1">
+        <doc xml:whitespace="preserve">Outputs JSON data and streams it (synchronously) to @stream.
+on failure. In case of error, the #GError will be filled accordingly</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if the write operation was successful, and %FALSE</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="stream" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GOutputStream</doc>
+            <type name="Gio.OutputStream" c:type="GOutputStream*"/>
+          </parameter>
+          <parameter name="cancellable"
+                     transfer-ownership="none"
+                     allow-none="1">
+            <doc xml:whitespace="preserve">a #GCancellable, or %NULL</doc>
+            <type name="Gio.Cancellable" c:type="GCancellable*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <property name="indent" writable="1" transfer-ownership="none">
+        <doc xml:whitespace="preserve">Number of spaces to be used to indent when pretty printing.</doc>
+        <type name="guint"/>
+      </property>
+      <property name="indent-char"
+                version="0.6"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">The character that should be used when indenting in pretty print.</doc>
+        <type name="guint"/>
+      </property>
+      <property name="pretty" writable="1" transfer-ownership="none">
+        <doc xml:whitespace="preserve">Whether the output should be "pretty-printed", with indentation and
+newlines. The indentation level can be controlled by using the
+JsonGenerator:indent property</doc>
+        <type name="gboolean"/>
+      </property>
+      <property name="root"
+                version="0.4"
+                writable="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">The root #JsonNode to be used when constructing a JSON data
+stream.</doc>
+        <type name="Node"/>
+      </property>
+      <field name="parent_instance">
+        <type name="GObject.Object" c:type="GObject"/>
+      </field>
+      <field name="priv">
+        <type name="GeneratorPrivate" c:type="JsonGeneratorPrivate*"/>
+      </field>
+    </class>
+    <record name="GeneratorClass"
+            c:type="JsonGeneratorClass"
+            glib:is-gtype-struct-for="Generator">
+      <doc xml:whitespace="preserve">#JsonGenerator class</doc>
+      <field name="parent_class">
+        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
+      </field>
+      <field name="_json_reserved1" introspectable="0">
+        <callback name="_json_reserved1">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_json_reserved2" introspectable="0">
+        <callback name="_json_reserved2">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_json_reserved3" introspectable="0">
+        <callback name="_json_reserved3">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_json_reserved4" introspectable="0">
+        <callback name="_json_reserved4">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+    </record>
+    <record name="GeneratorPrivate"
+            c:type="JsonGeneratorPrivate"
+            disguised="1">
+    </record>
+    <record name="Node"
+            c:type="JsonNode"
+            glib:type-name="JsonNode"
+            glib:get-type="json_node_get_type"
+            c:symbol-prefix="node">
+      <doc xml:whitespace="preserve">A generic container of JSON data types. The contents of the #JsonNode
+structure are private and should only be accessed via the provided
+functions and never directly.</doc>
+      <constructor name="new" c:identifier="json_node_new">
+        <doc xml:whitespace="preserve">Creates a new #JsonNode of @type.</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">the newly created #JsonNode</doc>
+          <type name="Node" c:type="JsonNode*"/>
+        </return-value>
+        <parameters>
+          <parameter name="type" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #JsonNodeType</doc>
+            <type name="NodeType" c:type="JsonNodeType"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <method name="copy" c:identifier="json_node_copy">
+        <doc xml:whitespace="preserve">Copies @node. If the node contains complex data types then the reference
+count of the objects is increased.</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">the copied #JsonNode</doc>
+          <type name="Node" c:type="JsonNode*"/>
+        </return-value>
+      </method>
+      <method name="dup_array" c:identifier="json_node_dup_array">
+        <return-value transfer-ownership="full">
+          <type name="Array" c:type="JsonArray*"/>
+        </return-value>
+      </method>
+      <method name="dup_object" c:identifier="json_node_dup_object">
+        <doc xml:whitespace="preserve">Retrieves the #JsonObject inside @node. The reference count of
+the returned object is increased.</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">the #JsonObject</doc>
+          <type name="Object" c:type="JsonObject*"/>
+        </return-value>
+      </method>
+      <method name="dup_string" c:identifier="json_node_dup_string">
+        <doc xml:whitespace="preserve">Gets a copy of the string value stored inside a #JsonNode
+of the #JsonNode contents. Use g_free() to free the allocated resources</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">a newly allocated string containing a copy</doc>
+          <type name="utf8" c:type="gchar*"/>
+        </return-value>
+      </method>
+      <method name="free" c:identifier="json_node_free">
+        <doc xml:whitespace="preserve">Frees the resources allocated by @node.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </method>
+      <method name="get_array" c:identifier="json_node_get_array">
+        <doc xml:whitespace="preserve">Retrieves the #JsonArray stored inside a #JsonNode</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the #JsonArray</doc>
+          <type name="Array" c:type="JsonArray*"/>
+        </return-value>
+      </method>
+      <method name="get_boolean" c:identifier="json_node_get_boolean">
+        <doc xml:whitespace="preserve">Gets the boolean value stored inside a #JsonNode</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">a boolean value.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+      </method>
+      <method name="get_double" c:identifier="json_node_get_double">
+        <doc xml:whitespace="preserve">Gets the double value stored inside a #JsonNode</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">a double value.</doc>
+          <type name="gdouble" c:type="gdouble"/>
+        </return-value>
+      </method>
+      <method name="get_int" c:identifier="json_node_get_int">
+        <doc xml:whitespace="preserve">Gets the integer value stored inside a #JsonNode</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">an integer value.</doc>
+          <type name="gint64" c:type="gint64"/>
+        </return-value>
+      </method>
+      <method name="get_node_type"
+              c:identifier="json_node_get_node_type"
+              version="0.8">
+        <doc xml:whitespace="preserve">Retrieves the #JsonNodeType of @node</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the type of the node</doc>
+          <type name="NodeType" c:type="JsonNodeType"/>
+        </return-value>
+      </method>
+      <method name="get_object" c:identifier="json_node_get_object">
+        <doc xml:whitespace="preserve">Retrieves the #JsonObject stored inside a #JsonNode</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the #JsonObject</doc>
+          <type name="Object" c:type="JsonObject*"/>
+        </return-value>
+      </method>
+      <method name="get_parent" c:identifier="json_node_get_parent">
+        <doc xml:whitespace="preserve">Retrieves the parent #JsonNode of @node.</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">the parent node, or %NULL if @node is the root node</doc>
+          <type name="Node" c:type="JsonNode*"/>
+        </return-value>
+      </method>
+      <method name="get_string" c:identifier="json_node_get_string">
+        <doc xml:whitespace="preserve">Gets the string value stored inside a #JsonNode</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">a string value.</doc>
+          <type name="utf8" c:type="gchar*"/>
+        </return-value>
+      </method>
+      <method name="get_value" c:identifier="json_node_get_value">
+        <doc xml:whitespace="preserve">Retrieves a value from a #JsonNode and copies into @value. When done
+using it, call g_value_unset() on the #GValue.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="value" transfer-ownership="none">
+            <doc xml:whitespace="preserve">return location for an uninitialized value</doc>
+            <type name="GObject.Value" c:type="GValue*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_value_type"
+              c:identifier="json_node_get_value_type"
+              version="0.4">
+        <doc xml:whitespace="preserve">Returns the #GType of the payload of the node.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #GType for the payload.</doc>
+          <type name="GType" c:type="GType"/>
+        </return-value>
+      </method>
+      <method name="is_null" c:identifier="json_node_is_null" version="0.8">
+        <doc xml:whitespace="preserve">Checks whether @node is a %JSON_NODE_NULL
+&lt;note&gt;A null node is not the same as a %NULL #JsonNode&lt;/note&gt;</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if the node is null</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+      </method>
+      <method name="set_array" c:identifier="json_node_set_array">
+        <doc xml:whitespace="preserve">Sets @array inside @node and increases the #JsonArray reference count</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="array" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #JsonArray</doc>
+            <type name="Array" c:type="JsonArray*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_boolean" c:identifier="json_node_set_boolean">
+        <doc xml:whitespace="preserve">Sets @value as the boolean content of the @node, replacing any existing
+content.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="value" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a boolean value</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_double" c:identifier="json_node_set_double">
+        <doc xml:whitespace="preserve">Sets @value as the double content of the @node, replacing any existing
+content.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="value" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a double value</doc>
+            <type name="gdouble" c:type="gdouble"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_int" c:identifier="json_node_set_int">
+        <doc xml:whitespace="preserve">Sets @value as the integer content of the @node, replacing any existing
+content.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="value" transfer-ownership="none">
+            <doc xml:whitespace="preserve">an integer value</doc>
+            <type name="gint64" c:type="gint64"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_object" c:identifier="json_node_set_object">
+        <doc xml:whitespace="preserve">Sets @objects inside @node. The reference count of @object is increased.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="object" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #JsonObject</doc>
+            <type name="Object" c:type="JsonObject*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_parent"
+              c:identifier="json_node_set_parent"
+              version="0.8">
+        <doc xml:whitespace="preserve">Sets the parent #JsonNode of @node</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="parent" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the parent #JsonNode of @node</doc>
+            <type name="Node" c:type="JsonNode*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_string" c:identifier="json_node_set_string">
+        <doc xml:whitespace="preserve">Sets @value as the string content of the @node, replacing any existing
+content.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="value" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a string value</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_value" c:identifier="json_node_set_value">
+        <doc xml:whitespace="preserve">Sets @value inside @node. The passed #GValue is copied into the #JsonNode</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="value" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the #GValue to set</doc>
+            <type name="GObject.Value" c:type="GValue*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="take_array" c:identifier="json_node_take_array">
+        <doc xml:whitespace="preserve">Sets @array into @node without increasing the #JsonArray reference count.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="array" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #JsonArray</doc>
+            <type name="Array" c:type="JsonArray*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="take_object" c:identifier="json_node_take_object">
+        <doc xml:whitespace="preserve">Sets @object inside @node. The reference count of @object is not increased.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="object" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #JsonObject</doc>
+            <type name="Object" c:type="JsonObject*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="type_name" c:identifier="json_node_type_name">
+        <doc xml:whitespace="preserve">Retrieves the user readable name of the data type contained by @node.
+is owned by the node and should never be modified or freed</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">a string containing the name of the type. The returned string</doc>
+          <type name="utf8" c:type="gchar*"/>
+        </return-value>
+      </method>
+    </record>
+    <enumeration name="NodeType" c:type="JsonNodeType">
+      <doc xml:whitespace="preserve">Indicates the content of a #JsonNode.</doc>
+      <member name="object" value="0" c:identifier="JSON_NODE_OBJECT"/>
+      <member name="array" value="1" c:identifier="JSON_NODE_ARRAY"/>
+      <member name="value" value="2" c:identifier="JSON_NODE_VALUE"/>
+      <member name="null" value="3" c:identifier="JSON_NODE_NULL"/>
+    </enumeration>
+    <record name="Object"
+            c:type="JsonObject"
+            glib:type-name="JsonObject"
+            glib:get-type="json_object_get_type"
+            c:symbol-prefix="object">
+      <doc xml:whitespace="preserve">A JSON object type. The contents of the #JsonObject structure are private
+and should only be accessed by the provided API</doc>
+      <constructor name="new" c:identifier="json_object_new">
+        <doc xml:whitespace="preserve">Creates a new #JsonObject, an JSON object type representation.</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">the newly created #JsonObject</doc>
+          <type name="Object" c:type="JsonObject*"/>
+        </return-value>
+      </constructor>
+      <method name="add_member"
+              c:identifier="json_object_add_member"
+              deprecated="Use json_object_set_member() instead"
+              deprecated-version="0.8">
+        <doc xml:whitespace="preserve">Adds a member named @member_name and containing @node into a #JsonObject.
+The object will take ownership of the #JsonNode.
+This function will return if the @object already contains a member</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="member_name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the name of the member</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="node" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the value of the member</doc>
+            <type name="Node" c:type="JsonNode*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="dup_member"
+              c:identifier="json_object_dup_member"
+              version="0.6">
+        <doc xml:whitespace="preserve">Retrieves a copy of the #JsonNode containing the value of @member_name
+inside a #JsonObject
+object member or %NULL. Use json_node_free() when done.</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">(transfer full) a copy of the node for the requested</doc>
+          <type name="Node" c:type="JsonNode*"/>
+        </return-value>
+        <parameters>
+          <parameter name="member_name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the name of the JSON object member to access</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="foreach_member"
+              c:identifier="json_object_foreach_member"
+              version="0.8">
+        <doc xml:whitespace="preserve">Iterates over all members of @object and calls @func on
+each one of them.
+It is safe to change the value of a #JsonNode of the @object
+from within the iterator @func, but it is not safe to add or
+remove members from the @object.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="func"
+                     transfer-ownership="none"
+                     scope="call"
+                     closure="1">
+            <doc xml:whitespace="preserve">the function to be called on each member</doc>
+            <type name="ObjectForeach" c:type="JsonObjectForeach"/>
+          </parameter>
+          <parameter name="data" transfer-ownership="none">
+            <doc xml:whitespace="preserve">data to be passed to the function</doc>
+            <type name="gpointer" c:type="gpointer"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_array_member"
+              c:identifier="json_object_get_array_member"
+              version="0.8">
+        <doc xml:whitespace="preserve">Convenience function that retrieves the array
+stored in @member_name of @object</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the array inside the object's member</doc>
+          <type name="Array" c:type="JsonArray*"/>
+        </return-value>
+        <parameters>
+          <parameter name="member_name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the name of the member</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_boolean_member"
+              c:identifier="json_object_get_boolean_member"
+              version="0.8">
+        <doc xml:whitespace="preserve">Convenience function that retrieves the boolean value
+stored in @member_name of @object</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the boolean value of the object's member</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="member_name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the name of the member</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_double_member"
+              c:identifier="json_object_get_double_member"
+              version="0.8">
+        <doc xml:whitespace="preserve">Convenience function that retrieves the floating point value
+stored in @member_name of @object</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the floating point value of the object's member</doc>
+          <type name="gdouble" c:type="gdouble"/>
+        </return-value>
+        <parameters>
+          <parameter name="member_name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the name of the member</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_int_member"
+              c:identifier="json_object_get_int_member"
+              version="0.8">
+        <doc xml:whitespace="preserve">Convenience function that retrieves the integer value
+stored in @member_name of @object</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the integer value of the object's member</doc>
+          <type name="gint64" c:type="gint64"/>
+        </return-value>
+        <parameters>
+          <parameter name="member_name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the name of the member</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_member" c:identifier="json_object_get_member">
+        <doc xml:whitespace="preserve">Retrieves the #JsonNode containing the value of @member_name inside
+a #JsonObject.
+member, or %NULL</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">a pointer to the node for the requested object</doc>
+          <type name="Node" c:type="JsonNode*"/>
+        </return-value>
+        <parameters>
+          <parameter name="member_name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the name of the JSON object member to access</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_members" c:identifier="json_object_get_members">
+        <doc xml:whitespace="preserve">Retrieves all the names of the members of a #JsonObject. You can
+obtain the value for each member using json_object_get_member().
+of member names. The content of the list is owned by the #JsonObject
+and should never be modified or freed. When you have finished using
+the returned list, use g_list_free() to free the resources it has
+allocated.</doc>
+        <return-value transfer-ownership="container">
+          <doc xml:whitespace="preserve">a #GList</doc>
+          <type name="GLib.List" c:type="GList*">
+            <type name="utf8"/>
+          </type>
+        </return-value>
+      </method>
+      <method name="get_null_member"
+              c:identifier="json_object_get_null_member"
+              version="0.8">
+        <doc xml:whitespace="preserve">Convenience function that checks whether the value
+stored in @member_name of @object is null</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if the value is null</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="member_name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the name of the member</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_object_member"
+              c:identifier="json_object_get_object_member"
+              version="0.8">
+        <doc xml:whitespace="preserve">Convenience function that retrieves the object
+stored in @member_name of @object</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the object inside the object's member</doc>
+          <type name="Object" c:type="JsonObject*"/>
+        </return-value>
+        <parameters>
+          <parameter name="member_name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the name of the member</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_size" c:identifier="json_object_get_size">
+        <doc xml:whitespace="preserve">Retrieves the number of members of a #JsonObject.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the number of members</doc>
+          <type name="guint" c:type="guint"/>
+        </return-value>
+      </method>
+      <method name="get_string_member"
+              c:identifier="json_object_get_string_member"
+              version="0.8">
+        <doc xml:whitespace="preserve">Convenience function that retrieves the string value
+stored in @member_name of @object</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the string value of the object's member</doc>
+          <type name="utf8" c:type="gchar*"/>
+        </return-value>
+        <parameters>
+          <parameter name="member_name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the name of the member</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_values" c:identifier="json_object_get_values">
+        <doc xml:whitespace="preserve">Retrieves all the values of the members of a #JsonObject.
+#JsonNode&lt;!-- --&gt;s. The content of the list is owned by the #JsonObject
+and should never be modified or freed. When you have finished using the
+returned list, use g_list_free() to free the resources it has allocated.</doc>
+        <return-value transfer-ownership="container">
+          <doc xml:whitespace="preserve">a #GList of</doc>
+          <type name="GLib.List" c:type="GList*">
+            <type name="Node"/>
+          </type>
+        </return-value>
+      </method>
+      <method name="has_member" c:identifier="json_object_has_member">
+        <doc xml:whitespace="preserve">Checks whether @object has a member named @member_name.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if the JSON object has the requested member</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="member_name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the name of a JSON object member</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="ref" c:identifier="json_object_ref">
+        <doc xml:whitespace="preserve">Increase by one the reference count of a #JsonObject.
+increased by one.</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">the passed #JsonObject, with the reference count</doc>
+          <type name="Object" c:type="JsonObject*"/>
+        </return-value>
+      </method>
+      <method name="remove_member" c:identifier="json_object_remove_member">
+        <doc xml:whitespace="preserve">Removes @member_name from @object, freeing its allocated resources.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="member_name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the name of the member to remove</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_array_member"
+              c:identifier="json_object_set_array_member"
+              version="0.8">
+        <doc xml:whitespace="preserve">Convenience function for setting an array @value of
+The @object will take ownership of the passed #JsonArray</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="member_name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the name of the member</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="value" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the value of the member</doc>
+            <type name="Array" c:type="JsonArray*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_boolean_member"
+              c:identifier="json_object_set_boolean_member"
+              version="0.8">
+        <doc xml:whitespace="preserve">Convenience function for setting a boolean @value of</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="member_name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the name of the member</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="value" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the value of the member</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_double_member"
+              c:identifier="json_object_set_double_member"
+              version="0.8">
+        <doc xml:whitespace="preserve">Convenience function for setting a floating point @value
+of @member_name inside @object.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="member_name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the name of the member</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="value" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the value of the member</doc>
+            <type name="gdouble" c:type="gdouble"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_int_member"
+              c:identifier="json_object_set_int_member"
+              version="0.8">
+        <doc xml:whitespace="preserve">Convenience function for setting an integer @value of</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="member_name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the name of the member</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="value" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the value of the member</doc>
+            <type name="gint64" c:type="gint64"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_member"
+              c:identifier="json_object_set_member"
+              version="0.8">
+        <doc xml:whitespace="preserve">Sets @node as the value of @member_name inside @object.
+If @object already contains a member called @member_name then
+the member's current value is overwritten. Otherwise, a new
+member is added to @object.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="member_name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the name of the member</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="node" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the value of the member</doc>
+            <type name="Node" c:type="JsonNode*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_null_member"
+              c:identifier="json_object_set_null_member"
+              version="0.8">
+        <doc xml:whitespace="preserve">Convenience function for setting a null @value of</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="member_name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the name of the member</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_object_member"
+              c:identifier="json_object_set_object_member"
+              version="0.8">
+        <doc xml:whitespace="preserve">Convenience function for setting an object @value of
+The @object will take ownership of the passed #JsonObject</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="member_name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the name of the member</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="value" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the value of the member</doc>
+            <type name="Object" c:type="JsonObject*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_string_member"
+              c:identifier="json_object_set_string_member"
+              version="0.8">
+        <doc xml:whitespace="preserve">Convenience function for setting a string @value of</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="member_name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the name of the member</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="value" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the value of the member</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="unref" c:identifier="json_object_unref">
+        <doc xml:whitespace="preserve">Decreases by one the reference count of a #JsonObject. If the
+reference count reaches zero, the object is destroyed and all
+its allocated resources are freed.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </method>
+    </record>
+    <callback name="ObjectForeach" c:type="JsonObjectForeach" version="0.8">
+      <doc xml:whitespace="preserve">The function to be passed to json_object_foreach_member(). You
+should not add or remove members to and from @object within
+this function. It is safe to change the value of @member_node.</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="object" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the iterated #JsonObject</doc>
+          <type name="Object" c:type="JsonObject*"/>
+        </parameter>
+        <parameter name="member_name" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the name of the member</doc>
+          <type name="utf8" c:type="gchar*"/>
+        </parameter>
+        <parameter name="member_node" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #JsonNode containing the @member_name value</doc>
+          <type name="Node" c:type="JsonNode*"/>
+        </parameter>
+        <parameter name="user_data" transfer-ownership="none" closure="3">
+          <doc xml:whitespace="preserve">data passed to the function</doc>
+          <type name="gpointer" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <class name="Parser"
+           c:symbol-prefix="parser"
+           c:type="JsonParser"
+           parent="GObject.Object"
+           glib:type-name="JsonParser"
+           glib:get-type="json_parser_get_type"
+           glib:type-struct="ParserClass">
+      <doc xml:whitespace="preserve">JSON data streams parser. The contents of the #JsonParser structure are
+private and should only be accessed via the provided API.</doc>
+      <constructor name="new" c:identifier="json_parser_new">
+        <doc xml:whitespace="preserve">Creates a new #JsonParser instance. You can use the #JsonParser to
+load a JSON stream from either a file or a buffer and then walk the
+hierarchy using the data types API.
+to release all the memory it allocates.</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">the newly created #JsonParser. Use g_object_unref()</doc>
+          <type name="Parser" c:type="JsonParser*"/>
+        </return-value>
+      </constructor>
+      <function name="error_quark" c:identifier="json_parser_error_quark">
+        <return-value transfer-ownership="none">
+          <type name="GLib.Quark" c:type="GQuark"/>
+        </return-value>
+      </function>
+      <method name="get_current_line"
+              c:identifier="json_parser_get_current_line">
+        <doc xml:whitespace="preserve">Retrieves the line currently parsed, starting from 1.
+This function has defined behaviour only while parsing; calling this
+function from outside the signal handlers emitted by #JsonParser will
+yield 0.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the currently parsed line, or 0.</doc>
+          <type name="guint" c:type="guint"/>
+        </return-value>
+      </method>
+      <method name="get_current_pos"
+              c:identifier="json_parser_get_current_pos">
+        <doc xml:whitespace="preserve">Retrieves the current position inside the current line, starting
+from 0.
+This function has defined behaviour only while parsing; calling this
+function from outside the signal handlers emitted by #JsonParser will
+yield 0.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the position in the current line, or 0.</doc>
+          <type name="guint" c:type="guint"/>
+        </return-value>
+      </method>
+      <method name="get_root" c:identifier="json_parser_get_root">
+        <doc xml:whitespace="preserve">Retrieves the top level node from the parsed JSON stream.
+node is owned by the #JsonParser and should never be modified
+or freed.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the root #JsonNode . The returned</doc>
+          <type name="Node" c:type="JsonNode*"/>
+        </return-value>
+      </method>
+      <method name="has_assignment"
+              c:identifier="json_parser_has_assignment"
+              version="0.4">
+        <doc xml:whitespace="preserve">A JSON data stream might sometimes contain an assignment, like:
+|[
+]|
+even though it would technically constitute a violation of the RFC.
+#JsonParser will ignore the left hand identifier and parse the right
+hand value of the assignment. #JsonParser will record, though, the
+existence of the assignment in the data stream and the variable name
+used.
+used in the assignment. The string is owned by #JsonParser and should
+never be modified or freed.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if there was an assignment, %FALSE otherwise. If</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="variable_name"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full"
+                     allow-none="1">
+            <doc xml:whitespace="preserve">Return location for the variable name, or %NULL</doc>
+            <type name="utf8" c:type="gchar**"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="load_from_data"
+              c:identifier="json_parser_load_from_data"
+              throws="1">
+        <doc xml:whitespace="preserve">Loads a JSON stream from a buffer and parses it. You can call this function
+multiple times with the same #JsonParser object, but the contents of the
+parser will be destroyed each time.
+of error, @error is set accordingly and %FALSE is returned</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if the buffer was succesfully parser. In case</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="data" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the buffer to parse</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="length" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the length of the buffer, or -1</doc>
+            <type name="glong" c:type="gssize"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="load_from_file"
+              c:identifier="json_parser_load_from_file"
+              throws="1">
+        <doc xml:whitespace="preserve">Loads a JSON stream from the content of @filename and parses it. See
+json_parser_load_from_data().
+In case of error, @error is set accordingly and %FALSE is returned</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if the file was successfully loaded and parsed.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="filename" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the path for the file to parse</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="load_from_stream"
+              c:identifier="json_parser_load_from_stream"
+              version="0.12"
+              throws="1">
+        <doc xml:whitespace="preserve">Loads the contents of an input stream and parses them.
+If @cancellable is not %NULL, then the operation can be cancelled by
+triggering the @cancellable object from another thread. If the
+operation was cancelled, the error %G_IO_ERROR_CANCELLED will be set
+on the passed @error.
+parsed, and %FALSE otherwise</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if the data stream was successfully read and</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="stream" transfer-ownership="none">
+            <doc xml:whitespace="preserve">an open #GInputStream</doc>
+            <type name="Gio.InputStream" c:type="GInputStream*"/>
+          </parameter>
+          <parameter name="cancellable"
+                     transfer-ownership="none"
+                     allow-none="1">
+            <doc xml:whitespace="preserve">a #GCancellable, or %NULL</doc>
+            <type name="Gio.Cancellable" c:type="GCancellable*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="load_from_stream_async"
+              c:identifier="json_parser_load_from_stream_async"
+              version="0.12">
+        <doc xml:whitespace="preserve">Asynchronously reads the contents of @stream.
+For more details, see json_parser_load_from_stream() which is the
+synchronous version of this call.
+When the operation is finished, @callback will be called. You should
+then call json_parser_load_from_stream_finish() to get the result
+of the operation.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="stream" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GInputStream</doc>
+            <type name="Gio.InputStream" c:type="GInputStream*"/>
+          </parameter>
+          <parameter name="cancellable"
+                     transfer-ownership="none"
+                     allow-none="1">
+            <doc xml:whitespace="preserve">a #GCancellable, or %NULL</doc>
+            <type name="Gio.Cancellable" c:type="GCancellable*"/>
+          </parameter>
+          <parameter name="callback"
+                     transfer-ownership="none"
+                     scope="async"
+                     closure="3">
+            <doc xml:whitespace="preserve">a #GAsyncReadyCallback to call when the request is satisfied</doc>
+            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
+          </parameter>
+          <parameter name="user_data" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the data to pass to @callback</doc>
+            <type name="gpointer" c:type="gpointer"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="load_from_stream_finish"
+              c:identifier="json_parser_load_from_stream_finish"
+              version="0.12"
+              throws="1">
+        <doc xml:whitespace="preserve">Finishes an asynchronous stream loading started with
+json_parser_load_from_stream_async().
+and parsed, and %FALSE otherwise. In case of error, the #GError will be
+filled accordingly.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if the content of the stream was successfully retrieves</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="result" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GAsyncResult</doc>
+            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <field name="parent_instance">
+        <type name="GObject.Object" c:type="GObject"/>
+      </field>
+      <field name="priv">
+        <type name="ParserPrivate" c:type="JsonParserPrivate*"/>
+      </field>
+      <glib:signal name="array-element">
+        <doc xml:whitespace="preserve">The ::array-element signal is emitted each time the #JsonParser
+has successfully parsed a single element of a #JsonArray. The
+array and element index are passed to the signal handlers.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none"/>
+        </return-value>
+        <parameters>
+          <parameter name="object" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #JsonArray</doc>
+            <type name="Array"/>
+          </parameter>
+          <parameter name="p0" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the index of the newly parsed element</doc>
+            <type name="gint"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="array-end">
+        <doc xml:whitespace="preserve">The ::array-end signal is emitted each time the #JsonParser
+has successfully parsed an entire #JsonArray</doc>
+        <return-value transfer-ownership="none">
+          <type name="none"/>
+        </return-value>
+        <parameters>
+          <parameter name="object" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the parsed #JsonArray</doc>
+            <type name="Array"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="array-start">
+        <doc xml:whitespace="preserve">The ::array-start signal is emitted each time the #JsonParser
+starts parsing a #JsonArray</doc>
+        <return-value transfer-ownership="none">
+          <type name="none"/>
+        </return-value>
+      </glib:signal>
+      <glib:signal name="error">
+        <doc xml:whitespace="preserve">The ::error signal is emitted each time a #JsonParser encounters
+an error in a JSON stream.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none"/>
+        </return-value>
+        <parameters>
+          <parameter name="object" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a pointer to the #GError</doc>
+            <type name="gpointer"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="object-end">
+        <doc xml:whitespace="preserve">The ::object-end signal is emitted each time the #JsonParser
+has successfully parsed an entire #JsonObject.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none"/>
+        </return-value>
+        <parameters>
+          <parameter name="object" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the parsed #JsonObject</doc>
+            <type name="Object"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="object-member">
+        <doc xml:whitespace="preserve">The ::object-member signal is emitted each time the #JsonParser
+has successfully parsed a single member of a #JsonObject. The
+object and member are passed to the signal handlers.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none"/>
+        </return-value>
+        <parameters>
+          <parameter name="object" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #JsonObject</doc>
+            <type name="Object"/>
+          </parameter>
+          <parameter name="p0" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the name of the newly parsed member</doc>
+            <type name="utf8"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="object-start">
+        <doc xml:whitespace="preserve">The ::object-start signal is emitted each time the #JsonParser
+starts parsing a #JsonObject.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none"/>
+        </return-value>
+      </glib:signal>
+      <glib:signal name="parse-end">
+        <doc xml:whitespace="preserve">The ::parse-end signal is emitted when the parser successfully
+finished parsing a JSON data stream</doc>
+        <return-value transfer-ownership="none">
+          <type name="none"/>
+        </return-value>
+      </glib:signal>
+      <glib:signal name="parse-start">
+        <doc xml:whitespace="preserve">The ::parse-start signal is emitted when the parser began parsing
+a JSON data stream.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none"/>
+        </return-value>
+      </glib:signal>
+    </class>
+    <record name="ParserClass"
+            c:type="JsonParserClass"
+            glib:is-gtype-struct-for="Parser">
+      <doc xml:whitespace="preserve">#JsonParser class.</doc>
+      <field name="parent_class">
+        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
+      </field>
+      <field name="parse_start">
+        <callback name="parse_start">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="parser" transfer-ownership="none">
+              <type name="Parser" c:type="JsonParser*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="object_start">
+        <callback name="object_start">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="parser" transfer-ownership="none">
+              <type name="Parser" c:type="JsonParser*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="object_member">
+        <callback name="object_member">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="parser" transfer-ownership="none">
+              <type name="Parser" c:type="JsonParser*"/>
+            </parameter>
+            <parameter name="object" transfer-ownership="none">
+              <type name="Object" c:type="JsonObject*"/>
+            </parameter>
+            <parameter name="member_name" transfer-ownership="none">
+              <type name="utf8" c:type="gchar*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="object_end">
+        <callback name="object_end">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="parser" transfer-ownership="none">
+              <type name="Parser" c:type="JsonParser*"/>
+            </parameter>
+            <parameter name="object" transfer-ownership="none">
+              <type name="Object" c:type="JsonObject*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="array_start">
+        <callback name="array_start">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="parser" transfer-ownership="none">
+              <type name="Parser" c:type="JsonParser*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="array_element">
+        <callback name="array_element">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="parser" transfer-ownership="none">
+              <type name="Parser" c:type="JsonParser*"/>
+            </parameter>
+            <parameter name="array" transfer-ownership="none">
+              <type name="Array" c:type="JsonArray*"/>
+            </parameter>
+            <parameter name="index_" transfer-ownership="none">
+              <type name="gint" c:type="gint"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="array_end">
+        <callback name="array_end">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="parser" transfer-ownership="none">
+              <type name="Parser" c:type="JsonParser*"/>
+            </parameter>
+            <parameter name="array" transfer-ownership="none">
+              <type name="Array" c:type="JsonArray*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="parse_end">
+        <callback name="parse_end">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="parser" transfer-ownership="none">
+              <type name="Parser" c:type="JsonParser*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="error">
+        <callback name="error">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="parser" transfer-ownership="none">
+              <type name="Parser" c:type="JsonParser*"/>
+            </parameter>
+            <parameter name="error" transfer-ownership="none">
+              <type name="GLib.Error" c:type="GError*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="_json_reserved1" introspectable="0">
+        <callback name="_json_reserved1">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_json_reserved2" introspectable="0">
+        <callback name="_json_reserved2">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_json_reserved3" introspectable="0">
+        <callback name="_json_reserved3">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_json_reserved4" introspectable="0">
+        <callback name="_json_reserved4">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_json_reserved5" introspectable="0">
+        <callback name="_json_reserved5">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_json_reserved6" introspectable="0">
+        <callback name="_json_reserved6">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_json_reserved7" introspectable="0">
+        <callback name="_json_reserved7">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_json_reserved8" introspectable="0">
+        <callback name="_json_reserved8">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+    </record>
+    <enumeration name="ParserError" c:type="JsonParserError">
+      <doc xml:whitespace="preserve">Error enumeration for #JsonParser
+This enumeration can be extended at later date</doc>
+      <member name="parse" value="0" c:identifier="JSON_PARSER_ERROR_PARSE"/>
+      <member name="trailing_comma"
+              value="1"
+              c:identifier="JSON_PARSER_ERROR_TRAILING_COMMA"/>
+      <member name="missing_comma"
+              value="2"
+              c:identifier="JSON_PARSER_ERROR_MISSING_COMMA"/>
+      <member name="missing_colon"
+              value="3"
+              c:identifier="JSON_PARSER_ERROR_MISSING_COLON"/>
+      <member name="invalid_bareword"
+              value="4"
+              c:identifier="JSON_PARSER_ERROR_INVALID_BAREWORD"/>
+      <member name="unknown"
+              value="5"
+              c:identifier="JSON_PARSER_ERROR_UNKNOWN"/>
+    </enumeration>
+    <record name="ParserPrivate" c:type="JsonParserPrivate" disguised="1">
+    </record>
+    <class name="Reader"
+           c:symbol-prefix="reader"
+           c:type="JsonReader"
+           version="0.12"
+           parent="GObject.Object"
+           glib:type-name="JsonReader"
+           glib:get-type="json_reader_get_type"
+           glib:type-struct="ReaderClass">
+      <doc xml:whitespace="preserve">The &lt;structname&gt;JsonReader&lt;/structname&gt; structure contains only
+private data and should only be accessed using the provided API</doc>
+      <constructor name="new" c:identifier="json_reader_new" version="0.12">
+        <doc xml:whitespace="preserve">Creates a new #JsonReader. You can use this object to read the contents of
+the JSON tree starting from @node
+release the allocated resources when done</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">the newly created #JsonReader. Use g_object_unref() to</doc>
+          <type name="Reader" c:type="JsonReader*"/>
+        </return-value>
+        <parameters>
+          <parameter name="node" transfer-ownership="none" allow-none="1">
+            <doc xml:whitespace="preserve">a #JsonNode, or %NULL</doc>
+            <type name="Node" c:type="JsonNode*"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <function name="error_quark" c:identifier="json_reader_error_quark">
+        <return-value transfer-ownership="none">
+          <type name="GLib.Quark" c:type="GQuark"/>
+        </return-value>
+      </function>
+      <method name="count_elements"
+              c:identifier="json_reader_count_elements"
+              version="0.12">
+        <doc xml:whitespace="preserve">Counts the elements of the current position, if @reader is
+positioned on an array
+the #JsonReader is set in an error state</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the number of elements, or -1. In case of failure</doc>
+          <type name="gint" c:type="gint"/>
+        </return-value>
+      </method>
+      <method name="count_members"
+              c:identifier="json_reader_count_members"
+              version="0.12">
+        <doc xml:whitespace="preserve">Counts the members of the current position, if @reader is
+positioned on an object
+the #JsonReader is set in an error state</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the number of members, or -1. In case of failure</doc>
+          <type name="gint" c:type="gint"/>
+        </return-value>
+      </method>
+      <method name="end_element"
+              c:identifier="json_reader_end_element"
+              version="0.12">
+        <doc xml:whitespace="preserve">Moves the cursor back to the previous node after being positioned
+inside an array
+This function resets the error state of @reader, if any was set</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </method>
+      <method name="end_member"
+              c:identifier="json_reader_end_member"
+              version="0.12">
+        <doc xml:whitespace="preserve">Moves the cursor back to the previous node after being positioned
+inside an object
+This function resets the error state of @reader, if any was set</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </method>
+      <method name="get_boolean_value"
+              c:identifier="json_reader_get_boolean_value"
+              version="0.12">
+        <doc xml:whitespace="preserve">Retrieves the boolean value of the current position of @reader</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the boolean value</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+      </method>
+      <method name="get_double_value"
+              c:identifier="json_reader_get_double_value"
+              version="0.12">
+        <doc xml:whitespace="preserve">Retrieves the floating point value of the current position of @reader</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the floating point value</doc>
+          <type name="gdouble" c:type="gdouble"/>
+        </return-value>
+      </method>
+      <method name="get_error"
+              c:identifier="json_reader_get_error"
+              version="0.12">
+        <doc xml:whitespace="preserve">Retrieves the #GError currently set on @reader, if the #JsonReader
+is in error state</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the pointer to the error, or %NULL</doc>
+          <type name="GLib.Error" c:type="GError*"/>
+        </return-value>
+      </method>
+      <method name="get_int_value"
+              c:identifier="json_reader_get_int_value"
+              version="0.12">
+        <doc xml:whitespace="preserve">Retrieves the integer value of the current position of @reader</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the integer value</doc>
+          <type name="gint64" c:type="gint64"/>
+        </return-value>
+      </method>
+      <method name="get_null_value"
+              c:identifier="json_reader_get_null_value"
+              version="0.12">
+        <doc xml:whitespace="preserve">Checks whether the value of the current position of @reader is 'null'</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if 'null' is set, and %FALSE otherwise</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+      </method>
+      <method name="get_string_value"
+              c:identifier="json_reader_get_string_value"
+              version="0.12">
+        <doc xml:whitespace="preserve">Retrieves the string value of the current position of @reader</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the string value</doc>
+          <type name="utf8" c:type="gchar*"/>
+        </return-value>
+      </method>
+      <method name="get_value"
+              c:identifier="json_reader_get_value"
+              version="0.12">
+        <doc xml:whitespace="preserve">Retrieves the #JsonNode of the current position of @reader
+is owned by the #JsonReader and it should not be modified or freed
+directly</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #JsonNode, or %NULL. The returned node</doc>
+          <type name="Node" c:type="JsonNode*"/>
+        </return-value>
+      </method>
+      <method name="is_array"
+              c:identifier="json_reader_is_array"
+              version="0.12">
+        <doc xml:whitespace="preserve">Checks whether the @reader is currently on an array
+otherwise</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if the #JsonReader is on an array, and %FALSE</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+      </method>
+      <method name="is_object"
+              c:identifier="json_reader_is_object"
+              version="0.12">
+        <doc xml:whitespace="preserve">Checks whether the @reader is currently on an object
+otherwise</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if the #JsonReader is on an object, and %FALSE</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+      </method>
+      <method name="is_value"
+              c:identifier="json_reader_is_value"
+              version="0.12">
+        <doc xml:whitespace="preserve">Checks whether the @reader is currently on a value
+otherwise</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if the #JsonReader is on a value, and %FALSE</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+      </method>
+      <method name="read_element"
+              c:identifier="json_reader_read_element"
+              version="0.12">
+        <doc xml:whitespace="preserve">Advances the cursor of @reader to the element @index_ of array at the
+current position.
+You can use the json_reader_get_value* family of functions to retrieve
+the value of the element; for instance:
+|[
+json_reader_read_element (reader, 0);
+int_value = json_reader_get_int_value (reader);
+]|
+After reading the value, json_reader_end_element() should be called to
+reposition the cursor inside the #JsonReader, e.g.:
+|[
+json_reader_read_element (reader, 1);
+str_value = json_reader_get_string_value (reader);
+json_reader_end_element (reader);
+json_reader_read_element (reader, 2);
+str_value = json_reader_get_string_value (reader);
+json_reader_end_element (reader);
+]|
+If @reader is not currently on an array, or if the @index_ is bigger than
+the size of the array, the #JsonReader will be put in an error state until
+json_reader_end_element() is called.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE on success, and %FALSE otherwise</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="index_" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the index of the element</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="read_member"
+              c:identifier="json_reader_read_member"
+              version="0.12">
+        <doc xml:whitespace="preserve">Advances the cursor of @reader to the @member_name of the object at the
+current position.
+You can use the json_reader_get_value* family of functions to retrieve
+the value of the member; for instance:
+|[
+json_reader_read_member (reader, "width");
+width = json_reader_get_int_value (reader);
+]|
+After reading the value, json_reader_end_member() should be called to
+reposition the cursor inside the #JsonReader, e.g.:
+|[
+json_reader_read_member (reader, "author");
+author = json_reader_get_string_value (reader);
+json_reader_end_element (reader);
+json_reader_read_element (reader, "title");
+title = json_reader_get_string_value (reader);
+json_reader_end_element (reader);
+]|
+If @reader is not currently on an object, or if the @member_name is not
+defined in the object, the #JsonReader will be put in an error state until
+json_reader_end_member() is called.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE on success, and %FALSE otherwise</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="member_name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the name of the member to read</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_root"
+              c:identifier="json_reader_set_root"
+              version="0.12">
+        <doc xml:whitespace="preserve">Sets the root #JsonNode to be read by @reader. The @reader will take
+a copy of @root
+If another #JsonNode is currently set as root, it will be replaced.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="root" transfer-ownership="none" allow-none="1">
+            <doc xml:whitespace="preserve">a #JsonNode</doc>
+            <type name="Node" c:type="JsonNode*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <property name="root"
+                version="0.12"
+                writable="1"
+                construct="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">The root of the JSON tree that the #JsonReader should read.</doc>
+        <type name="Node"/>
+      </property>
+      <field name="parent_instance">
+        <type name="GObject.Object" c:type="GObject"/>
+      </field>
+      <field name="priv">
+        <type name="ReaderPrivate" c:type="JsonReaderPrivate*"/>
+      </field>
+    </class>
+    <record name="ReaderClass"
+            c:type="JsonReaderClass"
+            glib:is-gtype-struct-for="Reader"
+            version="0.12">
+      <doc xml:whitespace="preserve">The &lt;structname&gt;JsonReaderClass&lt;/structname&gt; structure contains only
+private data</doc>
+      <field name="parent_class">
+        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
+      </field>
+      <field name="_json_padding0" introspectable="0">
+        <callback name="_json_padding0">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_json_padding1" introspectable="0">
+        <callback name="_json_padding1">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_json_padding2" introspectable="0">
+        <callback name="_json_padding2">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_json_padding3" introspectable="0">
+        <callback name="_json_padding3">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="_json_padding4" introspectable="0">
+        <callback name="_json_padding4">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+        </callback>
+      </field>
+    </record>
+    <enumeration name="ReaderError" version="0.12" c:type="JsonReaderError">
+      <doc xml:whitespace="preserve">Error codes enumeration for #JsonReader errors</doc>
+      <member name="no_array"
+              value="0"
+              c:identifier="JSON_READER_ERROR_NO_ARRAY"/>
+      <member name="invalid_index"
+              value="1"
+              c:identifier="JSON_READER_ERROR_INVALID_INDEX"/>
+      <member name="no_object"
+              value="2"
+              c:identifier="JSON_READER_ERROR_NO_OBJECT"/>
+      <member name="invalid_member"
+              value="3"
+              c:identifier="JSON_READER_ERROR_INVALID_MEMBER"/>
+    </enumeration>
+    <record name="ReaderPrivate" c:type="JsonReaderPrivate" disguised="1">
+    </record>
+    <interface name="Serializable"
+               c:symbol-prefix="serializable"
+               c:type="JsonSerializable"
+               glib:type-name="JsonSerializable"
+               glib:get-type="json_serializable_get_type"
+               glib:type-struct="SerializableIface">
+      <virtual-method name="deserialize_property"
+                      invoker="deserialize_property">
+        <doc xml:whitespace="preserve">Asks a #JsonSerializable implementation to deserialize the
+property contained inside @property_node into @value.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if the property was successfully deserialized.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="property_name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the name of the property</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="value" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a pointer to an uninitialized #GValue</doc>
+            <type name="GObject.Value" c:type="GValue*"/>
+          </parameter>
+          <parameter name="pspec" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GParamSpec</doc>
+            <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
+          </parameter>
+          <parameter name="property_node" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #JsonNode containing the serialized property</doc>
+            <type name="Node" c:type="JsonNode*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="serialize_property" invoker="serialize_property">
+        <doc xml:whitespace="preserve">Asks a #JsonSerializable implementation to serialize a #GObject
+property into a #JsonNode object.</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">a #JsonNode containing the serialized property</doc>
+          <type name="Node" c:type="JsonNode*"/>
+        </return-value>
+        <parameters>
+          <parameter name="property_name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the name of the property</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="value" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the value of the property</doc>
+            <type name="GObject.Value" c:type="GValue*"/>
+          </parameter>
+          <parameter name="pspec" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GParamSpec</doc>
+            <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <method name="default_deserialize_property"
+              c:identifier="json_serializable_default_deserialize_property"
+              version="0.10">
+        <doc xml:whitespace="preserve">Calls the default implementation of the #JsonSerializable
+deserialize_property() virtual function
+This function can be used inside a custom implementation
+of the deserialize_property() virtual function in lieu of:
+|[
+JsonSerializable *iface;
+gboolean res;
+iface = g_type_default_interface_peek (JSON_TYPE_SERIALIZABLE);
+res = iface-&gt;deserialize_property (serializable, property_name,
+value,
+pspec,
+property_node);
+]|</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if the property was successfully deserialized.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="property_name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the name of the property</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="value" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a pointer to an uninitialized #GValue</doc>
+            <type name="GObject.Value" c:type="GValue*"/>
+          </parameter>
+          <parameter name="pspec" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GParamSpec</doc>
+            <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
+          </parameter>
+          <parameter name="property_node" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #JsonNode containing the serialized property</doc>
+            <type name="Node" c:type="JsonNode*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="default_serialize_property"
+              c:identifier="json_serializable_default_serialize_property"
+              version="0.10">
+        <doc xml:whitespace="preserve">Calls the default implementation of the #JsonSerializable
+serialize_property() virtual function
+This function can be used inside a custom implementation
+of the serialize_property() virtual function in lieu of:
+|[
+JsonSerializable *iface;
+JsonNode *node;
+iface = g_type_default_interface_peek (JSON_TYPE_SERIALIZABLE);
+node = iface-&gt;serialize_property (serializable, property_name,
+value,
+pspec);
+]|
+property</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">a #JsonNode containing the serialized</doc>
+          <type name="Node" c:type="JsonNode*"/>
+        </return-value>
+        <parameters>
+          <parameter name="property_name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the name of the property</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="value" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the value of the property</doc>
+            <type name="GObject.Value" c:type="GValue*"/>
+          </parameter>
+          <parameter name="pspec" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GParamSpec</doc>
+            <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="deserialize_property"
+              c:identifier="json_serializable_deserialize_property">
+        <doc xml:whitespace="preserve">Asks a #JsonSerializable implementation to deserialize the
+property contained inside @property_node into @value.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if the property was successfully deserialized.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="property_name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the name of the property</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="value" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a pointer to an uninitialized #GValue</doc>
+            <type name="GObject.Value" c:type="GValue*"/>
+          </parameter>
+          <parameter name="pspec" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GParamSpec</doc>
+            <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
+          </parameter>
+          <parameter name="property_node" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #JsonNode containing the serialized property</doc>
+            <type name="Node" c:type="JsonNode*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="serialize_property"
+              c:identifier="json_serializable_serialize_property">
+        <doc xml:whitespace="preserve">Asks a #JsonSerializable implementation to serialize a #GObject
+property into a #JsonNode object.</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">a #JsonNode containing the serialized property</doc>
+          <type name="Node" c:type="JsonNode*"/>
+        </return-value>
+        <parameters>
+          <parameter name="property_name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the name of the property</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="value" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the value of the property</doc>
+            <type name="GObject.Value" c:type="GValue*"/>
+          </parameter>
+          <parameter name="pspec" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #GParamSpec</doc>
+            <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
+          </parameter>
+        </parameters>
+      </method>
+    </interface>
+    <record name="SerializableIface"
+            c:type="JsonSerializableIface"
+            glib:is-gtype-struct-for="Serializable">
+      <doc xml:whitespace="preserve">Interface that allows serializing and deserializing #GObject&lt;!-- --&gt;s
+with properties storing complex data types. The json_serialize_gobject()
+function will check if the passed #GObject implements this interface,
+so it can also be used to override the default property serialization
+sequence.</doc>
+      <field name="g_iface">
+        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
+      </field>
+      <field name="serialize_property">
+        <callback name="serialize_property">
+          <return-value transfer-ownership="full">
+            <doc xml:whitespace="preserve">a #JsonNode containing the serialized property</doc>
+            <type name="Node" c:type="JsonNode*"/>
+          </return-value>
+          <parameters>
+            <parameter name="serializable" transfer-ownership="none">
+              <type name="Serializable" c:type="JsonSerializable*"/>
+            </parameter>
+            <parameter name="property_name" transfer-ownership="none">
+              <doc xml:whitespace="preserve">the name of the property</doc>
+              <type name="utf8" c:type="gchar*"/>
+            </parameter>
+            <parameter name="value" transfer-ownership="none">
+              <doc xml:whitespace="preserve">the value of the property</doc>
+              <type name="GObject.Value" c:type="GValue*"/>
+            </parameter>
+            <parameter name="pspec" transfer-ownership="none">
+              <doc xml:whitespace="preserve">a #GParamSpec</doc>
+              <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="deserialize_property">
+        <callback name="deserialize_property">
+          <return-value transfer-ownership="none">
+            <doc xml:whitespace="preserve">%TRUE if the property was successfully deserialized.</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="serializable" transfer-ownership="none">
+              <type name="Serializable" c:type="JsonSerializable*"/>
+            </parameter>
+            <parameter name="property_name" transfer-ownership="none">
+              <doc xml:whitespace="preserve">the name of the property</doc>
+              <type name="utf8" c:type="gchar*"/>
+            </parameter>
+            <parameter name="value" transfer-ownership="none">
+              <doc xml:whitespace="preserve">a pointer to an uninitialized #GValue</doc>
+              <type name="GObject.Value" c:type="GValue*"/>
+            </parameter>
+            <parameter name="pspec" transfer-ownership="none">
+              <doc xml:whitespace="preserve">a #GParamSpec</doc>
+              <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
+            </parameter>
+            <parameter name="property_node" transfer-ownership="none">
+              <doc xml:whitespace="preserve">a #JsonNode containing the serialized property</doc>
+              <type name="Node" c:type="JsonNode*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+    </record>
+    <function name="boxed_can_deserialize"
+              c:identifier="json_boxed_can_deserialize"
+              version="0.10">
+      <doc xml:whitespace="preserve">Checks whether it is possible to deserialize a #GBoxed of
+type @gboxed_type from a #JsonNode of type @node_type</doc>
+      <return-value transfer-ownership="none">
+        <doc xml:whitespace="preserve">%TRUE if the type can be deserialized, %FALSE otherwise</doc>
+        <type name="gboolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="gboxed_type" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a boxed type</doc>
+          <type name="GType" c:type="GType"/>
+        </parameter>
+        <parameter name="node_type" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #JsonNode type</doc>
+          <type name="NodeType" c:type="JsonNodeType"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="boxed_can_serialize"
+              c:identifier="json_boxed_can_serialize"
+              version="0.10">
+      <doc xml:whitespace="preserve">Checks whether it is possible to serialize a #GBoxed of
+type @gboxed_type into a #JsonNode. The type of the
+#JsonNode is placed inside @node_type if the function
+returns %TRUE and it's undefined otherwise.
+and %FALSE otherwise.</doc>
+      <return-value transfer-ownership="none">
+        <doc xml:whitespace="preserve">%TRUE if the type can be serialized,</doc>
+        <type name="gboolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="gboxed_type" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a boxed type</doc>
+          <type name="GType" c:type="GType"/>
+        </parameter>
+        <parameter name="node_type"
+                   direction="out"
+                   caller-allocates="1"
+                   transfer-ownership="none">
+          <doc xml:whitespace="preserve">the #JsonNode type to which the boxed type can be serialized into</doc>
+          <type name="NodeType" c:type="JsonNodeType*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="boxed_deserialize"
+              c:identifier="json_boxed_deserialize"
+              version="0.10">
+      <doc xml:whitespace="preserve">Deserializes @node into a #GBoxed of @gboxed_type
+g_boxed_free() to release the resources allocated by this
+function</doc>
+      <return-value transfer-ownership="full">
+        <doc xml:whitespace="preserve">the newly allocated #GBoxed. Use</doc>
+        <type name="gpointer" c:type="gpointer"/>
+      </return-value>
+      <parameters>
+        <parameter name="gboxed_type" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a boxed type</doc>
+          <type name="GType" c:type="GType"/>
+        </parameter>
+        <parameter name="node" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #JsonNode</doc>
+          <type name="Node" c:type="JsonNode*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="boxed_register_deserialize_func"
+              c:identifier="json_boxed_register_deserialize_func"
+              version="0.10"
+              introspectable="0">
+      <doc xml:whitespace="preserve">Registers a deserialization function for a #GBoxed of type @gboxed_type
+from a #JsonNode of type @node_type</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="gboxed_type" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a boxed type</doc>
+          <type name="GType" c:type="GType"/>
+        </parameter>
+        <parameter name="node_type" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a node type</doc>
+          <type name="NodeType" c:type="JsonNodeType"/>
+        </parameter>
+        <parameter name="deserialize_func" transfer-ownership="none">
+          <doc xml:whitespace="preserve">deserialization function for @boxed_type from a #JsonNode of type @node_type</doc>
+          <type name="BoxedDeserializeFunc" c:type="JsonBoxedDeserializeFunc"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="boxed_register_serialize_func"
+              c:identifier="json_boxed_register_serialize_func"
+              version="0.10"
+              introspectable="0">
+      <doc xml:whitespace="preserve">Registers a serialization function for a #GBoxed of type @gboxed_type
+to a #JsonNode of type @node_type</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="gboxed_type" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a boxed type</doc>
+          <type name="GType" c:type="GType"/>
+        </parameter>
+        <parameter name="node_type" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a node type</doc>
+          <type name="NodeType" c:type="JsonNodeType"/>
+        </parameter>
+        <parameter name="serialize_func" transfer-ownership="none">
+          <doc xml:whitespace="preserve">serialization function for @boxed_type into a #JsonNode of type @node_type</doc>
+          <type name="BoxedSerializeFunc" c:type="JsonBoxedSerializeFunc"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="boxed_serialize"
+              c:identifier="json_boxed_serialize"
+              version="0.10">
+      <doc xml:whitespace="preserve">Serializes @boxed, a pointer to a #GBoxed of type @gboxed_type,
+into a #JsonNode
+boxed type, or %NULL if serialization either failed or was not possible</doc>
+      <return-value transfer-ownership="full">
+        <doc xml:whitespace="preserve">a #JsonNode with the serialization of the</doc>
+        <type name="Node" c:type="JsonNode*"/>
+      </return-value>
+      <parameters>
+        <parameter name="gboxed_type" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a boxed type</doc>
+          <type name="GType" c:type="GType"/>
+        </parameter>
+        <parameter name="boxed" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a pointer to a #GBoxed of type @gboxed_type</doc>
+          <type name="gpointer" c:type="gconstpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="construct_gobject"
+              c:identifier="json_construct_gobject"
+              version="0.4"
+              deprecated="Use json_gobject_from_data() instead"
+              deprecated-version="0.10"
+              throws="1">
+      <doc xml:whitespace="preserve">Deserializes a JSON data stream and creates the corresponding
+#GObject class. If @gtype implements the #JsonSerializableIface
+interface, it will be asked to deserialize all the JSON members
+into the respective properties; otherwise, the default implementation
+will be used to translate the compatible JSON native types.</doc>
+      <return-value transfer-ownership="full">
+        <doc xml:whitespace="preserve">a #GObject or %NULL</doc>
+        <type name="GObject.Object" c:type="GObject*"/>
+      </return-value>
+      <parameters>
+        <parameter name="gtype" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the #GType of object to construct</doc>
+          <type name="GType" c:type="GType"/>
+        </parameter>
+        <parameter name="data" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a JSON data stream</doc>
+          <type name="utf8" c:type="gchar*"/>
+        </parameter>
+        <parameter name="length" transfer-ownership="none">
+          <doc xml:whitespace="preserve">length of the data stream</doc>
+          <type name="gulong" c:type="gsize"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="gobject_deserialize"
+              c:identifier="json_gobject_deserialize"
+              version="0.10">
+      <doc xml:whitespace="preserve">Creates a new #GObject of type @gtype, and constructs it
+using the members of the passed #JsonObject
+instance. Use g_object_unref() to free the resources
+allocated by this function</doc>
+      <return-value transfer-ownership="full">
+        <doc xml:whitespace="preserve">The newly created #GObject</doc>
+        <type name="GObject.Object" c:type="GObject*"/>
+      </return-value>
+      <parameters>
+        <parameter name="gtype" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the type of the #GObject to create</doc>
+          <type name="GType" c:type="GType"/>
+        </parameter>
+        <parameter name="node" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #JsonNode of type %JSON_NODE_OBJECT describing the instance of type @gtype</doc>
+          <type name="Node" c:type="JsonNode*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="gobject_from_data"
+              c:identifier="json_gobject_from_data"
+              version="0.10"
+              throws="1">
+      <doc xml:whitespace="preserve">Deserializes a JSON data stream and creates the corresponding
+#GObject class. If @gtype implements the #JsonSerializableIface
+interface, it will be asked to deserialize all the JSON members
+into the respective properties; otherwise, the default implementation
+will be used to translate the compatible JSON native types.</doc>
+      <return-value transfer-ownership="full">
+        <doc xml:whitespace="preserve">a #GObject or %NULL</doc>
+        <type name="GObject.Object" c:type="GObject*"/>
+      </return-value>
+      <parameters>
+        <parameter name="gtype" transfer-ownership="none">
+          <doc xml:whitespace="preserve">the #GType of object to construct</doc>
+          <type name="GType" c:type="GType"/>
+        </parameter>
+        <parameter name="data" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a JSON data stream</doc>
+          <type name="utf8" c:type="gchar*"/>
+        </parameter>
+        <parameter name="length" transfer-ownership="none">
+          <doc xml:whitespace="preserve">length of the data stream, or -1 if it is NUL-terminated</doc>
+          <type name="glong" c:type="gssize"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="gobject_serialize"
+              c:identifier="json_gobject_serialize"
+              version="0.10">
+      <doc xml:whitespace="preserve">Creates a #JsonNode representing the passed #GObject
+instance. Each member of the returned JSON object will
+map to a property of the #GObject
+of type %JSON_NODE_OBJECT. Use json_node_free() to free
+the resources allocated by this function</doc>
+      <return-value transfer-ownership="full">
+        <doc xml:whitespace="preserve">the newly created #JsonNode</doc>
+        <type name="Node" c:type="JsonNode*"/>
+      </return-value>
+      <parameters>
+        <parameter name="gobject" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #GObject</doc>
+          <type name="GObject.Object" c:type="GObject*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="gobject_to_data"
+              c:identifier="json_gobject_to_data"
+              version="0.10">
+      <doc xml:whitespace="preserve">Serializes a #GObject into a JSON data stream, iterating recursively
+over each property.
+If @gobject implements the #JsonSerializableIface interface, it will
+be asked to serialize all its properties; otherwise, the default
+implementation will be use to translate the compatible types into
+JSON native types.</doc>
+      <return-value transfer-ownership="full">
+        <doc xml:whitespace="preserve">a JSON data stream representing the passed #GObject</doc>
+        <type name="utf8" c:type="gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="gobject" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #GObject</doc>
+          <type name="GObject.Object" c:type="GObject*"/>
+        </parameter>
+        <parameter name="length"
+                   direction="out"
+                   caller-allocates="0"
+                   transfer-ownership="full">
+          <doc xml:whitespace="preserve">return value for the length of the buffer, or %NULL</doc>
+          <type name="gulong" c:type="gsize*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="serialize_gobject"
+              c:identifier="json_serialize_gobject"
+              deprecated="Use json_gobject_to_data() instead"
+              deprecated-version="0.10">
+      <doc xml:whitespace="preserve">Serializes a #GObject into a JSON data stream. If @gobject implements
+the #JsonSerializableIface interface, it will be asked to serizalize all
+its properties; otherwise, the default implementation will be use to
+translate the compatible types into JSON native types.</doc>
+      <return-value transfer-ownership="full">
+        <doc xml:whitespace="preserve">a JSON data stream representing the passed #GObject</doc>
+        <type name="utf8" c:type="gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="gobject" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a #GObject</doc>
+          <type name="GObject.Object" c:type="GObject*"/>
+        </parameter>
+        <parameter name="length"
+                   direction="out"
+                   caller-allocates="0"
+                   transfer-ownership="full">
+          <doc xml:whitespace="preserve">return value for the length of the buffer, or %NULL</doc>
+          <type name="gulong" c:type="gsize*"/>
+        </parameter>
+      </parameters>
+    </function>
+  </namespace>
+</repository>
diff --git a/unmaintained/clutter/json/ffi/ffi.factor b/unmaintained/clutter/json/ffi/ffi.factor
new file mode 100644 (file)
index 0000000..5a9d118
--- /dev/null
@@ -0,0 +1,23 @@
+! Copyright (C) 2010 Anton Gorenko.
+! See http://factorcode.org/license.txt for BSD license.
+USING: alien alien.libraries alien.syntax combinators
+gobject-introspection kernel system vocabs.loader ;
+IN: clutter.json.ffi
+
+<<
+"gobject.ffi" require
+"gio.ffi" require
+>>
+
+LIBRARY: clutter.json
+
+<<
+"clutter.json" {
+    { [ os winnt? ] [ drop ] }
+    { [ os macosx? ] [ drop ] }
+    { [ os unix? ] [ "libclutter-glx-1.0.so" cdecl add-library ] }
+} cond
+>>
+
+GIR: vocab:clutter/json/Json-1.0.gir
+
diff --git a/unmaintained/clutter/json/json.factor b/unmaintained/clutter/json/json.factor
new file mode 100644 (file)
index 0000000..9530483
--- /dev/null
@@ -0,0 +1,5 @@
+! Copyright (C) 2010 Anton Gorenko.
+! See http://factorcode.org/license.txt for BSD license.
+USING: clutter.json.ffi ;
+IN: clutter.json
+
diff --git a/unmaintained/clutter/summary.txt b/unmaintained/clutter/summary.txt
new file mode 100644 (file)
index 0000000..e7b8c48
--- /dev/null
@@ -0,0 +1 @@
+Clutter binding
diff --git a/unmaintained/clutter/tags.txt b/unmaintained/clutter/tags.txt
new file mode 100755 (executable)
index 0000000..bb863cf
--- /dev/null
@@ -0,0 +1 @@
+bindings
diff --git a/unmaintained/gir/samples/lowlevel/gstreamer/authors.txt b/unmaintained/gir/samples/lowlevel/gstreamer/authors.txt
new file mode 100644 (file)
index 0000000..ce9bcc8
--- /dev/null
@@ -0,0 +1 @@
+Anton Gorenko
\ No newline at end of file
diff --git a/unmaintained/gir/samples/lowlevel/gstreamer/gstreamer.factor b/unmaintained/gir/samples/lowlevel/gstreamer/gstreamer.factor
new file mode 100644 (file)
index 0000000..7508386
--- /dev/null
@@ -0,0 +1,63 @@
+! Copyright (C) 2010 Anton Gorenko.
+! See http://factorcode.org/license.txt for BSD license.
+USING: alien.c-types alien.strings fry byte-arrays classes.struct
+io.encodings.utf8 kernel locals math prettyprint 
+gstreamer.ffi glib.ffi gobject.ffi gtk.ffi ;
+IN: gir.samples.lowlevel.gstreamer
+
+! CONSTANT: uri "http://www.xiph.org/vorbis/listen/compilation-ogg-q4.ogg"
+CONSTANT: uri "http://tinyvid.tv/file/3gocxnjott7wr.ogg"
+
+:: gstreamer-win ( -- window )
+    f f gst_init
+    "playbin" "player" [ utf8 string>alien ] bi@ gst_element_factory_make :> pipeline
+
+    GValue <struct> :> value
+    value G_TYPE_STRING g_value_init drop
+    value uri utf8 string>alien g_value_set_string
+    
+    pipeline "uri" utf8 string>alien value g_object_set_property
+        
+    ! pipeline GST_STATE_PLAYING gst_element_set_state drop
+
+    GTK_WINDOW_TOPLEVEL gtk_window_new :> window
+
+    window
+    [ "GStreamer" utf8 string>alien gtk_window_set_title ]
+    [ 300 200 gtk_window_set_default_size ]
+    [ GTK_WIN_POS_CENTER gtk_window_set_position ] tri
+
+    gtk_fixed_new :> frame
+    window frame gtk_container_add
+    
+    "Start" utf8 string>alien gtk_button_new_with_label :> button
+    button 140 30 gtk_widget_set_size_request
+    frame button 80 60 gtk_fixed_put
+
+    button "clicked" utf8 string>alien
+    [ nip GST_STATE_PLAYING gst_element_set_state drop ] GtkButton:clicked
+    pipeline f 0 g_signal_connect_data drop
+
+    window "destroy" utf8 string>alien
+    [ 
+        nip [ GST_STATE_NULL gst_element_set_state drop ]
+        [ gst_object_unref ] bi
+    ] GtkObject:destroy
+    pipeline f 0 g_signal_connect_data drop
+    
+    window ;
+
+:: gstreamer-main ( -- )
+    f f gtk_init
+    gstreamer-win :> window
+
+    window "destroy" utf8 string>alien
+    [ 2drop gtk_main_quit ] GtkObject:destroy
+    f f 0 g_signal_connect_data drop
+
+    window gtk_widget_show_all
+    
+    gtk_main ;
+
+MAIN: gstreamer-main
+
diff --git a/unmaintained/gstreamer/Gst-0.10.gir b/unmaintained/gstreamer/Gst-0.10.gir
new file mode 100644 (file)
index 0000000..d187fe1
--- /dev/null
@@ -0,0 +1,22063 @@
+<?xml version="1.0"?>
+<!-- This file was automatically generated from C sources - DO NOT EDIT!
+To affect the contents of this file, edit the original C definitions,
+and/or use gtk-doc annotations.  -->
+<repository version="1.0"
+            xmlns="http://www.gtk.org/introspection/core/1.0"
+            xmlns:c="http://www.gtk.org/introspection/c/1.0"
+            xmlns:glib="http://www.gtk.org/introspection/glib/1.0">
+  <include name="GLib" version="2.0"/>
+  <include name="GModule" version="2.0"/>
+  <include name="GObject" version="2.0"/>
+  <include name="libxml2" version="2.0"/>
+  <package name="glib-2.0"/>
+  <package name="gmodule-no-export-2.0"/>
+  <package name="gobject-2.0"/>
+  <package name="gthread-2.0"/>
+  <package name="libxml-2.0"/>
+  <c:include name="gst/gst.h"/>
+  <namespace name="Gst"
+             version="0.10"
+             shared-library="libgstreamer-0.10.so.0"
+             c:prefix="Gst">
+    <alias name="ClockID" target="any" c:type="GstClockID"/>
+    <alias name="ClockTime" target="uint64" c:type="GstClockTime"/>
+    <alias name="ClockTimeDiff" target="int64" c:type="GstClockTimeDiff"/>
+    <enumeration name="ActivateMode"
+                 doc="The status of a GstPad. After activating a pad, which usually happens when the
+parent element goes from READY to PAUSED, the GstActivateMode defines if the
+pad operates in push or pull mode."
+                 c:type="GstActivateMode">
+      <member name="none" value="0" c:identifier="GST_ACTIVATE_NONE"/>
+      <member name="push" value="1" c:identifier="GST_ACTIVATE_PUSH"/>
+      <member name="pull" value="2" c:identifier="GST_ACTIVATE_PULL"/>
+    </enumeration>
+    <record name="AllocTrace"
+            c:type="GstAllocTrace"
+            doc="The main tracing object">
+      <field name="name" writable="1">
+        <type name="utf8" c:type="gchar*"/>
+      </field>
+      <field name="flags" writable="1">
+        <type name="int" c:type="gint"/>
+      </field>
+      <field name="live" writable="1">
+        <type name="int" c:type="gint"/>
+      </field>
+      <field name="mem_live" writable="1">
+        <type name="GLib.SList" c:type="GSList*"/>
+      </field>
+      <method name="print"
+              c:identifier="gst_alloc_trace_print"
+              doc="Print the status of the given GstAllocTrace.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </method>
+      <method name="set_flags"
+              c:identifier="gst_alloc_trace_set_flags"
+              doc="Enable the given features on the given GstAllocTrace object.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="flags" transfer-ownership="none">
+            <type name="AllocTraceFlags" c:type="GstAllocTraceFlags"/>
+          </parameter>
+        </parameters>
+      </method>
+    </record>
+    <bitfield name="AllocTraceFlags"
+              doc="Flags indicating which tracing feature to enable."
+              c:type="GstAllocTraceFlags">
+      <member name="live" value="1" c:identifier="GST_ALLOC_TRACE_LIVE"/>
+      <member name="mem_live"
+              value="2"
+              c:identifier="GST_ALLOC_TRACE_MEM_LIVE"/>
+    </bitfield>
+    <bitfield name="AssocFlags"
+              doc="that marks a place where one can randomly seek to.
+is one that marks a place where one can relatively seek to.
+Flags for an association entry."
+              c:type="GstAssocFlags">
+      <member name="none" value="0" c:identifier="GST_ASSOCIATION_FLAG_NONE"/>
+      <member name="key_unit"
+              value="1"
+              c:identifier="GST_ASSOCIATION_FLAG_KEY_UNIT"/>
+      <member name="delta_unit"
+              value="2"
+              c:identifier="GST_ASSOCIATION_FLAG_DELTA_UNIT"/>
+      <member name="last"
+              value="256"
+              c:identifier="GST_ASSOCIATION_FLAG_LAST"/>
+    </bitfield>
+    <constant name="BUFFER_COPY_ALL" value="0">
+      <type name="int"/>
+    </constant>
+    <constant name="BUFFER_OFFSET_NONE" value="-1">
+      <type name="int"/>
+    </constant>
+    <constant name="BUFFER_TRACE_NAME" value="GstBuffer">
+      <type name="utf8"/>
+    </constant>
+    <class name="Bin"
+           c:type="GstBin"
+           doc="The GstBin base class. Subclasses can access these fields provided
+the LOCK is taken."
+           parent="Element"
+           glib:type-name="GstBin"
+           glib:get-type="gst_bin_get_type"
+           glib:type-struct="BinClass">
+      <implements name="ChildProxy"/>
+      <constructor name="new"
+                   c:identifier="gst_bin_new"
+                   doc="Creates a new bin with the given name.">
+        <return-value transfer-ownership="full">
+          <type name="Bin" c:type="GstElement*"/>
+        </return-value>
+        <parameters>
+          <parameter name="name" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <virtual-method name="add_element">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="element" transfer-ownership="none">
+            <type name="Element" c:type="GstElement*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="remove_element">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="element" transfer-ownership="none">
+            <type name="Element" c:type="GstElement*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="handle_message">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="message" transfer-ownership="none">
+            <type name="Message" c:type="GstMessage*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <method name="add"
+              c:identifier="gst_bin_add"
+              doc="Adds the given element to the bin.  Sets the element&apos;s parent, and thus
+takes ownership of the element. An element can only be added to one bin.
+If the element&apos;s pads are linked to other pads, the pads will be unlinked
+before the element is added to the bin.
+MT safe.
+the bin does not want to accept the element.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="element" transfer-ownership="none">
+            <type name="Element" c:type="GstElement*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="remove"
+              c:identifier="gst_bin_remove"
+              doc="Removes the element from the bin, unparenting it as well.
+Unparenting the element means that the element will be dereferenced,
+so if the bin holds the only reference to the element, the element
+will be freed in the process of removing it from the bin.  If you
+want the element to still exist after removing, you need to call
+gst_object_ref() before removing it from the bin.
+If the element&apos;s pads are linked to other pads, the pads will be unlinked
+before the element is removed from the bin.
+MT safe.
+the bin does not want to remove the element.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="element" transfer-ownership="none">
+            <type name="Element" c:type="GstElement*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_by_name"
+              c:identifier="gst_bin_get_by_name"
+              doc="Gets the element with the given name from a bin. This
+function recurses into child bins.
+Returns NULL if no element with the given name is found in the bin.
+MT safe.  Caller owns returned reference.">
+        <return-value transfer-ownership="full">
+          <type name="Element" c:type="GstElement*"/>
+        </return-value>
+        <parameters>
+          <parameter name="name" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_by_name_recurse_up"
+              c:identifier="gst_bin_get_by_name_recurse_up"
+              doc="Gets the element with the given name from this bin. If the
+element is not found, a recursion is performed on the parent bin.
+Returns NULL if:
+- no element with the given name is found in the bin
+MT safe.  Caller owns returned reference.">
+        <return-value transfer-ownership="full">
+          <type name="Element" c:type="GstElement*"/>
+        </return-value>
+        <parameters>
+          <parameter name="name" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_by_interface"
+              c:identifier="gst_bin_get_by_interface"
+              doc="Looks for an element inside the bin that implements the given
+interface. If such an element is found, it returns the element.
+You can cast this element to the given interface afterwards.  If you want
+all elements that implement the interface, use
+gst_bin_iterate_all_by_interface(). This function recurses into child bins.
+MT safe.  Caller owns returned reference.">
+        <return-value transfer-ownership="full">
+          <type name="Element" c:type="GstElement*"/>
+        </return-value>
+        <parameters>
+          <parameter name="iface" transfer-ownership="none">
+            <type name="GType" c:type="GType"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="iterate_elements"
+              c:identifier="gst_bin_iterate_elements"
+              doc="Gets an iterator for the elements in this bin.
+Each element yielded by the iterator will have its refcount increased, so
+unref after use.
+MT safe.  Caller owns returned value.">
+        <return-value transfer-ownership="full">
+          <type name="Iterator" c:type="GstIterator*"/>
+        </return-value>
+      </method>
+      <method name="iterate_sorted"
+              c:identifier="gst_bin_iterate_sorted"
+              doc="Gets an iterator for the elements in this bin in topologically
+sorted order. This means that the elements are returned from
+the most downstream elements (sinks) to the sources.
+This function is used internally to perform the state changes
+of the bin elements and for clock selection.
+Each element yielded by the iterator will have its refcount increased, so
+unref after use.
+MT safe.  Caller owns returned value.">
+        <return-value transfer-ownership="full">
+          <type name="Iterator" c:type="GstIterator*"/>
+        </return-value>
+      </method>
+      <method name="iterate_recurse"
+              c:identifier="gst_bin_iterate_recurse"
+              doc="Gets an iterator for the elements in this bin.
+This iterator recurses into GstBin children.
+Each element yielded by the iterator will have its refcount increased, so
+unref after use.
+MT safe.  Caller owns returned value.">
+        <return-value transfer-ownership="full">
+          <type name="Iterator" c:type="GstIterator*"/>
+        </return-value>
+      </method>
+      <method name="iterate_sinks"
+              c:identifier="gst_bin_iterate_sinks"
+              doc="Gets an iterator for all elements in the bin that have the
+#GST_ELEMENT_IS_SINK flag set.
+Each element yielded by the iterator will have its refcount increased, so
+unref after use.
+MT safe.  Caller owns returned value.">
+        <return-value transfer-ownership="full">
+          <type name="Iterator" c:type="GstIterator*"/>
+        </return-value>
+      </method>
+      <method name="iterate_sources"
+              c:identifier="gst_bin_iterate_sources"
+              doc="Gets an iterator for all elements in the bin that have no sinkpads and have
+the #GST_ELEMENT_IS_SINK flag unset.
+Each element yielded by the iterator will have its refcount increased, so
+unref after use.
+MT safe.  Caller owns returned value.">
+        <return-value transfer-ownership="full">
+          <type name="Iterator" c:type="GstIterator*"/>
+        </return-value>
+      </method>
+      <method name="iterate_all_by_interface"
+              c:identifier="gst_bin_iterate_all_by_interface"
+              doc="Looks for all elements inside the bin that implements the given
+interface. You can safely cast all returned elements to the given interface.
+The function recurses inside child bins. The iterator will yield a series
+of #GstElement that should be unreffed after use.
+Each element yielded by the iterator will have its refcount increased, so
+unref after use.
+MT safe.  Caller owns returned value.
+implementing the given interface, or NULL">
+        <return-value transfer-ownership="full">
+          <type name="Iterator" c:type="GstIterator*"/>
+        </return-value>
+        <parameters>
+          <parameter name="iface" transfer-ownership="none">
+            <type name="GType" c:type="GType"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="recalculate_latency"
+              c:identifier="gst_bin_recalculate_latency"
+              doc="Query @bin for the current latency using and reconfigures this latency to all the
+elements with a LATENCY event.
+This method is typically called on the pipeline when a #GST_MESSAGE_LATENCY
+is posted on the bus.
+This function simply emits the &apos;do-latency&apos; signal so any custom latency
+calculations will be performed."
+              version="0.10.22.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+      </method>
+      <method name="add_many"
+              c:identifier="gst_bin_add_many"
+              doc="Adds a NULL-terminated list of elements to a bin.  This function is
+equivalent to calling gst_bin_add() for each member of the list. The return
+value of each gst_bin_add() is ignored.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="element_1" transfer-ownership="none">
+            <type name="Element" c:type="GstElement*"/>
+          </parameter>
+          <parameter transfer-ownership="none">
+            <varargs>
+            </varargs>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="remove_many"
+              c:identifier="gst_bin_remove_many"
+              doc="Remove a list of elements from a bin. This function is equivalent
+to calling gst_bin_remove() with each member of the list.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="element_1" transfer-ownership="none">
+            <type name="Element" c:type="GstElement*"/>
+          </parameter>
+          <parameter transfer-ownership="none">
+            <varargs>
+            </varargs>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="find_unlinked_pad"
+              c:identifier="gst_bin_find_unlinked_pad"
+              doc="Recursively looks for elements with an unlinked pad of the given
+direction within the specified bin and returns an unlinked pad
+if one is found, or NULL otherwise. If a pad is found, the caller
+owns a reference to it and should use gst_object_unref() on the
+pad when it is not needed any longer."
+              version="0.10.20">
+        <return-value transfer-ownership="full">
+          <type name="Pad" c:type="GstPad*"/>
+        </return-value>
+        <parameters>
+          <parameter name="direction" transfer-ownership="none">
+            <type name="PadDirection" c:type="GstPadDirection"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="find_unconnected_pad"
+              c:identifier="gst_bin_find_unconnected_pad"
+              doc="Recursively looks for elements with an unlinked pad of the given
+direction within the specified bin and returns an unlinked pad
+if one is found, or NULL otherwise. If a pad is found, the caller
+owns a reference to it and should use gst_object_unref() on the
+pad when it is not needed any longer."
+              version="0.10.3"
+              deprecated="use gst_bin_find_unlinked_pad() instead.">
+        <return-value transfer-ownership="full">
+          <type name="Pad" c:type="GstPad*"/>
+        </return-value>
+        <parameters>
+          <parameter name="direction" transfer-ownership="none">
+            <type name="PadDirection" c:type="GstPadDirection"/>
+          </parameter>
+        </parameters>
+      </method>
+      <property name="async-handling" writable="1">
+        <type name="boolean" c:type="gboolean"/>
+      </property>
+      <field name="element">
+        <type name="Element" c:type="GstElement"/>
+      </field>
+      <field name="numchildren">
+        <type name="int" c:type="gint"/>
+      </field>
+      <field name="children">
+        <type name="GLib.List" c:type="GList*"/>
+      </field>
+      <field name="children_cookie">
+        <type name="uint32" c:type="guint32"/>
+      </field>
+      <field name="child_bus">
+        <type name="Bus" c:type="GstBus*"/>
+      </field>
+      <field name="messages">
+        <type name="GLib.List" c:type="GList*"/>
+      </field>
+      <field name="polling">
+        <type name="boolean" c:type="gboolean"/>
+      </field>
+      <field name="state_dirty">
+        <type name="boolean" c:type="gboolean"/>
+      </field>
+      <field name="clock_dirty">
+        <type name="boolean" c:type="gboolean"/>
+      </field>
+      <field name="provided_clock">
+        <type name="Clock" c:type="GstClock*"/>
+      </field>
+      <field name="clock_provider">
+        <type name="Element" c:type="GstElement*"/>
+      </field>
+      <field name="priv">
+        <type name="BinPrivate" c:type="GstBinPrivate*"/>
+      </field>
+      <field name="_gst_reserved">
+        <array zero-terminated="0" c:type="gpointer" fixed-size="3">
+          <type name="any"/>
+        </array>
+      </field>
+      <glib:signal name="do-latency"
+                   doc="Will be emitted when the bin needs to perform latency calculations. This
+signal is only emited for toplevel bins or when async-handling is
+enabled.
+Only one signal handler is invoked. If no signals are connected, the
+default handler is invoked, which will query and distribute the lowest
+possible latency to all sinks.
+Connect to this signal if the default latency calculations are not
+sufficient, like when you need different latencies for different sinks in
+the same pipeline."
+                   version="0.10.22">
+        <return-value transfer-ownership="full">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+      </glib:signal>
+      <glib:signal name="element-added"
+                   doc="Will be emitted after the element was added to the bin.">
+        <return-value transfer-ownership="full">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="element" transfer-ownership="none">
+            <type name="Element" c:type="GstElement"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="element-removed"
+                   doc="Will be emitted after the element was removed from the bin.">
+        <return-value transfer-ownership="full">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="element" transfer-ownership="none">
+            <type name="Element" c:type="GstElement"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+    </class>
+    <record name="BinClass"
+            c:type="GstBinClass"
+            glib:is-gtype-struct-for="Bin"
+            doc="Subclasses can override the @add_element and @remove_element to
+update the list of children in the bin.
+The @handle_message method can be overridden to implement custom
+message handling.  @handle_message takes ownership of the message, just like
+#gst_element_post_message.">
+      <field name="parent_class">
+        <type name="ElementClass" c:type="GstElementClass"/>
+      </field>
+      <field name="pool">
+        <type name="GLib.ThreadPool" c:type="GThreadPool*"/>
+      </field>
+      <field name="element_added">
+        <callback name="element_added" c:type="element_added">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="bin" transfer-ownership="none">
+              <type name="Bin" c:type="GstBin*"/>
+            </parameter>
+            <parameter name="child" transfer-ownership="none">
+              <type name="Element" c:type="GstElement*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="element_removed">
+        <callback name="element_removed" c:type="element_removed">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="bin" transfer-ownership="none">
+              <type name="Bin" c:type="GstBin*"/>
+            </parameter>
+            <parameter name="child" transfer-ownership="none">
+              <type name="Element" c:type="GstElement*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="add_element">
+        <callback name="add_element" c:type="add_element">
+          <return-value transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="bin" transfer-ownership="none">
+              <type name="Bin" c:type="GstBin*"/>
+            </parameter>
+            <parameter name="element" transfer-ownership="none">
+              <type name="Element" c:type="GstElement*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="remove_element">
+        <callback name="remove_element" c:type="remove_element">
+          <return-value transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="bin" transfer-ownership="none">
+              <type name="Bin" c:type="GstBin*"/>
+            </parameter>
+            <parameter name="element" transfer-ownership="none">
+              <type name="Element" c:type="GstElement*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="handle_message">
+        <callback name="handle_message" c:type="handle_message">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="bin" transfer-ownership="none">
+              <type name="Bin" c:type="GstBin*"/>
+            </parameter>
+            <parameter name="message" transfer-ownership="none">
+              <type name="Message" c:type="GstMessage*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="do_latency">
+        <callback name="do_latency" c:type="do_latency">
+          <return-value transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="bin" transfer-ownership="none">
+              <type name="Bin" c:type="GstBin*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="_gst_reserved">
+        <array zero-terminated="0" c:type="gpointer" fixed-size="3">
+          <type name="any"/>
+        </array>
+      </field>
+    </record>
+    <bitfield name="BinFlags"
+              doc="Derived classes can use this as first value in a list of flags.
+GstBinFlags are a set of flags specific to bins. Most are set/used
+internally. They can be checked using the GST_OBJECT_FLAG_IS_SET () macro,
+and (un)set using GST_OBJECT_FLAG_SET () and GST_OBJECT_FLAG_UNSET ()."
+              c:type="GstBinFlags">
+      <member name="bin_flag_last"
+              value="33554432"
+              c:identifier="GST_BIN_FLAG_LAST"/>
+    </bitfield>
+    <record name="BinPrivate" c:type="GstBinPrivate">
+    </record>
+    <record name="Buffer"
+            c:type="GstBuffer"
+            doc="timestamp is not known or relevant.
+when the duration is not known or relevant.
+For video frames, this is the frame number of this buffer.
+For audio samples, this is the offset of the first sample in this buffer.
+For file data or compressed data this is the byte offset of the first
+byte in this buffer.
+format as @offset.
+When the buffer is freed, this data will freed with @free_func.
+to g_free(). Since 0.10.22.
+The structure of a #GstBuffer. Use the associated macros to access the public
+variables.">
+      <field name="mini_object" writable="1">
+        <type name="MiniObject" c:type="GstMiniObject"/>
+      </field>
+      <field name="data" writable="1">
+        <type name="any" c:type="guint8*"/>
+      </field>
+      <field name="size" writable="1">
+        <type name="uint" c:type="guint"/>
+      </field>
+      <field name="timestamp" writable="1">
+        <type name="ClockTime" c:type="GstClockTime"/>
+      </field>
+      <field name="duration" writable="1">
+        <type name="ClockTime" c:type="GstClockTime"/>
+      </field>
+      <field name="caps" writable="1">
+        <type name="Caps" c:type="GstCaps*"/>
+      </field>
+      <field name="offset" writable="1">
+        <type name="uint64" c:type="guint64"/>
+      </field>
+      <field name="offset_end" writable="1">
+        <type name="uint64" c:type="guint64"/>
+      </field>
+      <field name="malloc_data" writable="1">
+        <type name="any" c:type="guint8*"/>
+      </field>
+      <field name="free_func" writable="1">
+        <type name="GLib.FreeFunc" c:type="GFreeFunc"/>
+      </field>
+      <field name="parent" writable="1">
+        <type name="Buffer" c:type="GstBuffer*"/>
+      </field>
+      <field name="_gst_reserved" writable="1">
+        <array zero-terminated="0" c:type="gpointer" fixed-size="2">
+          <type name="any"/>
+        </array>
+      </field>
+      <constructor name="new"
+                   c:identifier="gst_buffer_new"
+                   doc="Creates a newly allocated buffer without any data.
+MT safe.">
+        <return-value transfer-ownership="full">
+          <type name="Buffer" c:type="GstBuffer*"/>
+        </return-value>
+      </constructor>
+      <constructor name="new_and_alloc"
+                   c:identifier="gst_buffer_new_and_alloc"
+                   doc="Creates a newly allocated buffer with data of the given size.
+The buffer memory is not cleared. If the requested amount of
+memory can&apos;t be allocated, the program will abort. Use
+gst_buffer_try_new_and_alloc() if you want to handle this case
+gracefully or have gotten the size to allocate from an untrusted
+source such as a media stream.
+Note that when @size == 0, the buffer data pointer will be NULL.
+MT safe.">
+        <return-value transfer-ownership="full">
+          <type name="Buffer" c:type="GstBuffer*"/>
+        </return-value>
+        <parameters>
+          <parameter name="size" transfer-ownership="none">
+            <type name="uint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <method name="copy_metadata"
+              c:identifier="gst_buffer_copy_metadata"
+              doc="Copies the metadata from @src into @dest. The data, size and mallocdata
+fields are not copied.
+all the metadata fields.
+This function is typically called from a custom buffer copy function after
+creating @dest and setting the data, size, mallocdata."
+              version="0.10.13">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="src" transfer-ownership="none">
+            <type name="Buffer" c:type="GstBuffer*"/>
+          </parameter>
+          <parameter name="flags" transfer-ownership="none">
+            <type name="BufferCopyFlags" c:type="GstBufferCopyFlags"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="is_metadata_writable"
+              c:identifier="gst_buffer_is_metadata_writable"
+              doc="Similar to gst_buffer_is_writable, but this only ensures that the
+refcount of the buffer is 1, indicating that the caller is the sole
+owner and can change the buffer metadata, such as caps and timestamps.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+      </method>
+      <method name="make_metadata_writable"
+              c:identifier="gst_buffer_make_metadata_writable"
+              doc="Similar to gst_buffer_make_writable, but does not ensure that the buffer
+data array is writable. Instead, this just ensures that the returned buffer
+is solely owned by the caller, by creating a subbuffer of the original
+buffer if necessary.
+After calling this function, @buf should not be referenced anymore. The
+result of this function has guaranteed writable metadata.">
+        <return-value transfer-ownership="full">
+          <type name="Buffer" c:type="GstBuffer*"/>
+        </return-value>
+      </method>
+      <method name="get_caps"
+              c:identifier="gst_buffer_get_caps"
+              doc="Gets the media type of the buffer. This can be NULL if there
+is no media type attached to this buffer.
+Returns NULL if there were no caps on this buffer.">
+        <return-value transfer-ownership="full">
+          <type name="Caps" c:type="GstCaps*"/>
+        </return-value>
+      </method>
+      <method name="set_caps"
+              c:identifier="gst_buffer_set_caps"
+              doc="Sets the media type on the buffer. The refcount of the caps will
+be increased and any previous caps on the buffer will be
+unreffed.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="caps" transfer-ownership="none">
+            <type name="Caps" c:type="GstCaps*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="create_sub"
+              c:identifier="gst_buffer_create_sub"
+              doc="begins.
+Creates a sub-buffer from @parent at @offset and @size.
+This sub-buffer uses the actual memory space of the parent buffer.
+This function will copy the offset and timestamp fields when the
+offset is 0. If not, they will be set to #GST_CLOCK_TIME_NONE and
+#GST_BUFFER_OFFSET_NONE.
+If @offset equals 0 and @size equals the total size of @buffer, the
+duration and offset end fields are also copied. If not they will be set
+to #GST_CLOCK_TIME_NONE and #GST_BUFFER_OFFSET_NONE.
+MT safe.
+Returns NULL if the arguments were invalid.">
+        <return-value transfer-ownership="full">
+          <type name="Buffer" c:type="GstBuffer*"/>
+        </return-value>
+        <parameters>
+          <parameter name="offset" transfer-ownership="none">
+            <type name="uint" c:type="guint"/>
+          </parameter>
+          <parameter name="size" transfer-ownership="none">
+            <type name="uint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="is_span_fast"
+              c:identifier="gst_buffer_is_span_fast"
+              doc="Determines whether a gst_buffer_span() can be done without copying
+the contents, that is, whether the data areas are contiguous sub-buffers of
+the same buffer.
+MT safe.
+FALSE if a copy would be required.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="buf2" transfer-ownership="none">
+            <type name="Buffer" c:type="GstBuffer*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="span"
+              c:identifier="gst_buffer_span"
+              doc="buffer should start.
+Creates a new buffer that consists of part of buf1 and buf2.
+Logically, buf1 and buf2 are concatenated into a single larger
+buffer, and a new buffer is created at the given offset inside
+this space, with a given length.
+If the two source buffers are children of the same larger buffer,
+and are contiguous, the new buffer will be a child of the shared
+parent, and thus no copying is necessary. you can use
+gst_buffer_is_span_fast() to determine if a memcpy will be needed.
+MT safe.
+Returns NULL if the arguments are invalid.">
+        <return-value transfer-ownership="full">
+          <type name="Buffer" c:type="GstBuffer*"/>
+        </return-value>
+        <parameters>
+          <parameter name="offset" transfer-ownership="none">
+            <type name="uint32" c:type="guint32"/>
+          </parameter>
+          <parameter name="buf2" transfer-ownership="none">
+            <type name="Buffer" c:type="GstBuffer*"/>
+          </parameter>
+          <parameter name="len" transfer-ownership="none">
+            <type name="uint32" c:type="guint32"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="merge"
+              c:identifier="gst_buffer_merge"
+              doc="Create a new buffer that is the concatenation of the two source
+buffers.  The original source buffers will not be modified or
+unref&apos;d.  Make sure you unref the source buffers if they are not used
+anymore afterwards.
+If the buffers point to contiguous areas of memory, the buffer
+is created without copying the data.">
+        <return-value transfer-ownership="full">
+          <type name="Buffer" c:type="GstBuffer*"/>
+        </return-value>
+        <parameters>
+          <parameter name="buf2" transfer-ownership="none">
+            <type name="Buffer" c:type="GstBuffer*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="join"
+              c:identifier="gst_buffer_join"
+              doc="Create a new buffer that is the concatenation of the two source
+buffers, and unrefs the original source buffers.
+If the buffers point to contiguous areas of memory, the buffer
+is created without copying the data.
+This is a convenience function for C programmers. See also
+gst_buffer_merge(), which does the same thing without
+unreffing the input parameters. Language bindings without
+explicit reference counting should not wrap this function.">
+        <return-value transfer-ownership="full">
+          <type name="Buffer" c:type="GstBuffer*"/>
+        </return-value>
+        <parameters>
+          <parameter name="buf2" transfer-ownership="none">
+            <type name="Buffer" c:type="GstBuffer*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="stamp"
+              c:identifier="gst_buffer_stamp"
+              doc="Copies additional information (the timestamp, duration, and offset start
+and end) from one buffer to the other.
+This function does not copy any buffer flags or caps and is equivalent to
+gst_buffer_copy_metadata(@dest, @src, GST_BUFFER_COPY_TIMESTAMPS).
+control."
+              deprecated="use gst_buffer_copy_metadata() instead, it provides more">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="src" transfer-ownership="none">
+            <type name="Buffer" c:type="GstBuffer*"/>
+          </parameter>
+        </parameters>
+      </method>
+    </record>
+    <record name="BufferClass" c:type="GstBufferClass">
+      <field name="mini_object_class" writable="1">
+        <type name="MiniObjectClass" c:type="GstMiniObjectClass"/>
+      </field>
+    </record>
+    <bitfield name="BufferCopyFlags"
+              doc="offset and offset_end should be copied
+A set of flags that can be provided to the gst_buffer_copy_metadata()
+function to specify which metadata fields should be copied."
+              version="0.10.13"
+              c:type="GstBufferCopyFlags">
+      <member name="flags" value="1" c:identifier="GST_BUFFER_COPY_FLAGS"/>
+      <member name="timestamps"
+              value="2"
+              c:identifier="GST_BUFFER_COPY_TIMESTAMPS"/>
+      <member name="caps" value="4" c:identifier="GST_BUFFER_COPY_CAPS"/>
+    </bitfield>
+    <bitfield name="BufferFlag"
+              doc="the buffer should not be modified. The metadata might still be modified.
+displayed.
+This typically occurs after a seek or a dropped buffer from a live or
+network source.
+stream and contains media neutral data (elements can switch to optimized code
+path that ignores the buffer content).
+A set of buffer flags used to describe properties of a #GstBuffer."
+              c:type="GstBufferFlag">
+      <member name="readonly"
+              value="1"
+              c:identifier="GST_BUFFER_FLAG_READONLY"/>
+      <member name="preroll"
+              value="16"
+              c:identifier="GST_BUFFER_FLAG_PREROLL"/>
+      <member name="discont"
+              value="32"
+              c:identifier="GST_BUFFER_FLAG_DISCONT"/>
+      <member name="in_caps"
+              value="64"
+              c:identifier="GST_BUFFER_FLAG_IN_CAPS"/>
+      <member name="gap" value="128" c:identifier="GST_BUFFER_FLAG_GAP"/>
+      <member name="delta_unit"
+              value="256"
+              c:identifier="GST_BUFFER_FLAG_DELTA_UNIT"/>
+      <member name="media1" value="512" c:identifier="GST_BUFFER_FLAG_MEDIA1"/>
+      <member name="media2"
+              value="1024"
+              c:identifier="GST_BUFFER_FLAG_MEDIA2"/>
+      <member name="media3"
+              value="2048"
+              c:identifier="GST_BUFFER_FLAG_MEDIA3"/>
+      <member name="last" value="4096" c:identifier="GST_BUFFER_FLAG_LAST"/>
+    </bitfield>
+    <record name="BufferList"
+            c:type="GstBufferList"
+            doc="Opaque list of grouped buffers."
+            version="0.10.24">
+      <constructor name="new"
+                   c:identifier="gst_buffer_list_new"
+                   doc="Creates a new, empty #GstBufferList. The caller is responsible for unreffing
+the returned #GstBufferList."
+                   version="0.10.24">
+        <return-value transfer-ownership="full" doc="after usage.">
+          <type name="BufferList" c:type="GstBufferList*"/>
+        </return-value>
+      </constructor>
+      <method name="n_groups"
+              c:identifier="gst_buffer_list_n_groups"
+              doc="Returns the number of groups in @list."
+              version="0.10.24">
+        <return-value transfer-ownership="none">
+          <type name="uint" c:type="guint"/>
+        </return-value>
+      </method>
+      <method name="foreach"
+              c:identifier="gst_buffer_list_foreach"
+              doc="Call @func with @data for each buffer in @list.
+of @func define if this function returns or if the remaining buffers in a
+group should be skipped."
+              version="0.10.24">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="func"
+                     transfer-ownership="none"
+                     scope="call"
+                     closure="2">
+            <type name="BufferListFunc" c:type="GstBufferListFunc"/>
+          </parameter>
+          <parameter name="user_data" transfer-ownership="none">
+            <type name="any" c:type="gpointer"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get"
+              c:identifier="gst_buffer_list_get"
+              doc="Get the buffer at @idx in @group.
+Note that this function is not efficient for iterating over the entire list.
+Use an iterator or gst_buffer_list_foreach() instead.
+buffer remains valid as long as @list is valid."
+              version="0.10.24">
+        <return-value transfer-ownership="full">
+          <type name="Buffer" c:type="GstBuffer*"/>
+        </return-value>
+        <parameters>
+          <parameter name="group" transfer-ownership="none">
+            <type name="uint" c:type="guint"/>
+          </parameter>
+          <parameter name="idx" transfer-ownership="none">
+            <type name="uint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="iterate"
+              c:identifier="gst_buffer_list_iterate"
+              doc="Iterate the buffers in @list. The owner of the iterator must also be the
+owner of a reference to @list while the returned iterator is in use.
+gst_buffer_list_iterator_free() after usage"
+              version="0.10.24">
+        <return-value transfer-ownership="full">
+          <type name="BufferListIterator" c:type="GstBufferListIterator*"/>
+        </return-value>
+      </method>
+    </record>
+    <record name="BufferListClass" c:type="GstBufferListClass">
+    </record>
+    <callback name="BufferListDoFunction"
+              c:type="GstBufferListDoFunction"
+              doc="A function for accessing the last buffer returned by
+gst_buffer_list_iterator_next(). The function can leave @buffer in the list,
+replace @buffer in the list or remove @buffer from the list, depending on
+the return value. If the function returns NULL, @buffer will be removed from
+the list, otherwise @buffer will be replaced with the returned buffer.
+The last buffer returned by gst_buffer_list_iterator_next() will be replaced
+with the buffer returned from the function. The function takes ownership of
+unreffed. If NULL is returned, the buffer will be removed from the list. The
+list must be writable.
+from the list"
+              version="0.10.24">
+      <return-value transfer-ownership="full">
+        <type name="Buffer" c:type="GstBuffer*"/>
+      </return-value>
+      <parameters>
+        <parameter name="buffer" transfer-ownership="none">
+          <type name="Buffer" c:type="GstBuffer*"/>
+        </parameter>
+        <parameter name="user_data" transfer-ownership="none" closure="1">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <callback name="BufferListFunc"
+              c:type="GstBufferListFunc"
+              doc="A function that will be called from gst_buffer_list_foreach(). The @buffer
+field will point to a the reference of the buffer at @idx in @group.
+When this function returns #GST_BUFFER_LIST_CONTINUE, the next buffer will be
+returned. When #GST_BUFFER_LIST_SKIP_GROUP is returned, all remaining buffers
+in the current group will be skipped and the first buffer of the next group
+is returned (if any). When GST_BUFFER_LIST_END is returned,
+gst_buffer_list_foreach() will return.
+When @buffer is set to NULL, the item will be removed from the bufferlist.
+When @buffer has been made writable, the new buffer reference can be assigned
+to @buffer. This function is responsible for unreffing the old buffer when
+removing or modifying."
+              version="0.10.24">
+      <return-value transfer-ownership="full">
+        <type name="BufferListItem" c:type="GstBufferListItem"/>
+      </return-value>
+      <parameters>
+        <parameter name="buffer" transfer-ownership="none">
+          <type name="Buffer" c:type="GstBuffer**"/>
+        </parameter>
+        <parameter name="group" transfer-ownership="none">
+          <type name="uint" c:type="guint"/>
+        </parameter>
+        <parameter name="idx" transfer-ownership="none">
+          <type name="uint" c:type="guint"/>
+        </parameter>
+        <parameter name="user_data" transfer-ownership="none" closure="3">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <enumeration name="BufferListItem"
+                 doc="The result of the #GstBufferListFunc."
+                 version="0.10.24"
+                 c:type="GstBufferListItem">
+      <member name="continue"
+              value="0"
+              c:identifier="GST_BUFFER_LIST_CONTINUE"/>
+      <member name="skip_group"
+              value="1"
+              c:identifier="GST_BUFFER_LIST_SKIP_GROUP"/>
+      <member name="end" value="2" c:identifier="GST_BUFFER_LIST_END"/>
+    </enumeration>
+    <record name="BufferListIterator"
+            c:type="GstBufferListIterator"
+            doc="Opaque iterator for a #GstBufferList."
+            version="0.10.24">
+      <method name="free"
+              c:identifier="gst_buffer_list_iterator_free"
+              doc="Free the iterator."
+              version="0.10.24">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </method>
+      <method name="n_buffers"
+              c:identifier="gst_buffer_list_iterator_n_buffers"
+              doc="Returns the number of buffers left to iterate in the current group. I.e. the
+number of calls that can be made to gst_buffer_list_iterator_next() before
+it returns NULL.
+This function will not move the implicit cursor or in any other way affect
+the state of the iterator @it."
+              version="0.10.24">
+        <return-value transfer-ownership="none">
+          <type name="uint" c:type="guint"/>
+        </return-value>
+      </method>
+      <method name="next"
+              c:identifier="gst_buffer_list_iterator_next"
+              doc="Returns the next buffer in the list iterated with @it. If the iterator is at
+the end of a group, NULL will be returned. This function may be called
+repeatedly to iterate through the current group.
+The caller will not get a new ref to the returned #GstBuffer and must not
+unref it."
+              version="0.10.24">
+        <return-value transfer-ownership="full">
+          <type name="Buffer" c:type="GstBuffer*"/>
+        </return-value>
+      </method>
+      <method name="next_group"
+              c:identifier="gst_buffer_list_iterator_next_group"
+              doc="Advance the iterator @it to the first buffer in the next group. If the
+iterator is at the last group, FALSE will be returned. This function may be
+called repeatedly to iterate through the groups in a buffer list.
+the iterator was already at the last group"
+              version="0.10.24">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+      </method>
+      <method name="add"
+              c:identifier="gst_buffer_list_iterator_add"
+              doc="Inserts @buffer into the #GstBufferList iterated with @it. The buffer is
+inserted into the current group, immediately before the buffer that would be
+returned by gst_buffer_list_iterator_next(). The buffer is inserted before
+the implicit cursor, a subsequent call to gst_buffer_list_iterator_next()
+will return the buffer after the inserted buffer, if any.
+This function takes ownership of @buffer."
+              version="0.10.24">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="buffer" transfer-ownership="none">
+            <type name="Buffer" c:type="GstBuffer*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="add_group"
+              c:identifier="gst_buffer_list_iterator_add_group"
+              doc="Inserts a new, empty group into the #GstBufferList iterated with @it. The
+group is inserted immediately before the group that would be returned by
+gst_buffer_list_iterator_next_group(). A subsequent call to
+gst_buffer_list_iterator_next_group() will advance the iterator to the group
+after the inserted group, if any."
+              version="0.10.24">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </method>
+      <method name="remove"
+              c:identifier="gst_buffer_list_iterator_remove"
+              doc="Removes the last buffer returned by gst_buffer_list_iterator_next() from
+the #GstBufferList iterated with @it. gst_buffer_list_iterator_next() must
+have been called on @it before this function is called. This function can
+only be called once per call to gst_buffer_list_iterator_next().
+The removed buffer is unreffed."
+              version="0.10.24">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </method>
+      <method name="steal"
+              c:identifier="gst_buffer_list_iterator_steal"
+              doc="Returns the last buffer returned by gst_buffer_list_iterator_next() without
+modifying the refcount of the buffer."
+              version="0.10.24">
+        <return-value transfer-ownership="full">
+          <type name="Buffer" c:type="GstBuffer*"/>
+        </return-value>
+      </method>
+      <method name="take"
+              c:identifier="gst_buffer_list_iterator_take"
+              doc="Replaces the last buffer returned by gst_buffer_list_iterator_next() with
+this function is called. gst_buffer_list_iterator_remove() must not have been
+called since the last call to gst_buffer_list_iterator_next().
+This function unrefs the replaced buffer if it has not been stolen with
+gst_buffer_list_iterator_steal() and takes ownership of @buffer (i.e. the
+refcount of @buffer is not increased)."
+              version="0.10.24">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="buffer" transfer-ownership="none">
+            <type name="Buffer" c:type="GstBuffer*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="do"
+              c:identifier="gst_buffer_list_iterator_do"
+              doc="Calls the given function for the last buffer returned by
+gst_buffer_list_iterator_next(). gst_buffer_list_iterator_next() must have
+been called on @it before this function is called.
+gst_buffer_list_iterator_remove() and gst_buffer_list_iterator_steal() must
+not have been called since the last call to gst_buffer_list_iterator_next().
+See #GstBufferListDoFunction for more details."
+              version="0.10.24">
+        <return-value transfer-ownership="full">
+          <type name="Buffer" c:type="GstBuffer*"/>
+        </return-value>
+        <parameters>
+          <parameter name="do_func"
+                     transfer-ownership="none"
+                     scope="call"
+                     closure="2">
+            <type name="BufferListDoFunction"
+                  c:type="GstBufferListDoFunction"/>
+          </parameter>
+          <parameter name="user_data" transfer-ownership="none">
+            <type name="any" c:type="gpointer"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="merge_group"
+              c:identifier="gst_buffer_list_iterator_merge_group"
+              doc="Merge a buffer list group into a normal #GstBuffer by copying its metadata
+and memcpying its data into consecutive memory. All buffers in the current
+group after the implicit cursor will be merged into one new buffer. The
+metadata of the new buffer will be a copy of the metadata of the buffer that
+would be returned by gst_buffer_list_iterator_next(). If there is no buffer
+in the current group after the implicit cursor, NULL will be returned.
+This function will not move the implicit cursor or in any other way affect
+the state of the iterator @it or the list."
+              version="0.10.24">
+        <return-value transfer-ownership="full" doc="after usage, or NULL">
+          <type name="Buffer" c:type="GstBuffer*"/>
+        </return-value>
+      </method>
+    </record>
+    <enumeration name="BufferingMode"
+                 doc="The different types of buffering methods."
+                 c:type="GstBufferingMode">
+      <member name="stream" value="0" c:identifier="GST_BUFFERING_STREAM"/>
+      <member name="download" value="1" c:identifier="GST_BUFFERING_DOWNLOAD"/>
+      <member name="timeshift"
+              value="2"
+              c:identifier="GST_BUFFERING_TIMESHIFT"/>
+      <member name="live" value="3" c:identifier="GST_BUFFERING_LIVE"/>
+    </enumeration>
+    <class name="Bus"
+           c:type="GstBus"
+           doc="The opaque #GstBus data structure."
+           parent="Object"
+           glib:type-name="GstBus"
+           glib:get-type="gst_bus_get_type"
+           glib:type-struct="BusClass">
+      <constructor name="new"
+                   c:identifier="gst_bus_new"
+                   doc="Creates a new #GstBus instance.">
+        <return-value transfer-ownership="full">
+          <type name="Bus" c:type="GstBus*"/>
+        </return-value>
+      </constructor>
+      <method name="post"
+              c:identifier="gst_bus_post"
+              doc="Post a message on the given bus. Ownership of the message
+is taken by the bus.
+MT safe.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="message" transfer-ownership="none">
+            <type name="Message" c:type="GstMessage*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="have_pending"
+              c:identifier="gst_bus_have_pending"
+              doc="Check if there are pending messages on the bus that
+should be handled.
+otherwise.
+MT safe.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+      </method>
+      <method name="peek"
+              c:identifier="gst_bus_peek"
+              doc="Peek the message on the top of the bus&apos; queue. The message will remain
+on the bus&apos; message queue. A reference is returned, and needs to be unreffed
+by the caller.
+MT safe.">
+        <return-value transfer-ownership="full">
+          <type name="Message" c:type="GstMessage*"/>
+        </return-value>
+      </method>
+      <method name="pop"
+              c:identifier="gst_bus_pop"
+              doc="Get a message from the bus.
+The message is taken from the bus and needs to be unreffed with
+gst_message_unref() after usage.
+MT safe.">
+        <return-value transfer-ownership="full">
+          <type name="Message" c:type="GstMessage*"/>
+        </return-value>
+      </method>
+      <method name="pop_filtered"
+              c:identifier="gst_bus_pop_filtered"
+              doc="Get a message matching @type from the bus.  Will discard all messages on
+the bus that do not match @type and that have been posted before the first
+message that does match @type.  If there is no message matching @type on
+the bus, all messages will be discarded.
+the bus is empty or there is no message matching @type.
+The message is taken from the bus and needs to be unreffed with
+gst_message_unref() after usage.
+MT safe."
+              version="0.10.15">
+        <return-value transfer-ownership="full">
+          <type name="Message" c:type="GstMessage*"/>
+        </return-value>
+        <parameters>
+          <parameter name="types" transfer-ownership="none">
+            <type name="MessageType" c:type="GstMessageType"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="timed_pop"
+              c:identifier="gst_bus_timed_pop"
+              doc="Get a message from the bus, waiting up to the specified timeout.
+If @timeout is 0, this function behaves like gst_bus_pop(). If @timeout is
+#GST_CLOCK_TIME_NONE, this function will block forever until a message was
+posted on the bus.
+or NULL if the bus is empty after the timeout expired.
+The message is taken from the bus and needs to be unreffed with
+gst_message_unref() after usage.
+MT safe."
+              version="0.10.12">
+        <return-value transfer-ownership="full">
+          <type name="Message" c:type="GstMessage*"/>
+        </return-value>
+        <parameters>
+          <parameter name="timeout" transfer-ownership="none">
+            <type name="ClockTime" c:type="GstClockTime"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="timed_pop_filtered"
+              c:identifier="gst_bus_timed_pop_filtered"
+              doc="Get a message from the bus whose type matches the message type mask @types,
+waiting up to the specified timeout (and discarding any messages that do not
+match the mask provided).
+If @timeout is 0, this function behaves like gst_bus_pop_filtered(). If
+matching message was posted on the bus.
+message was found on the bus until the timeout expired.
+The message is taken from the bus and needs to be unreffed with
+gst_message_unref() after usage.
+MT safe."
+              version="0.10.15">
+        <return-value transfer-ownership="full">
+          <type name="Message" c:type="GstMessage*"/>
+        </return-value>
+        <parameters>
+          <parameter name="timeout" transfer-ownership="none">
+            <type name="ClockTime" c:type="GstClockTime"/>
+          </parameter>
+          <parameter name="types" transfer-ownership="none">
+            <type name="MessageType" c:type="GstMessageType"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_flushing"
+              c:identifier="gst_bus_set_flushing"
+              doc="If @flushing, flush out and unref any messages queued in the bus. Releases
+references to the message origin objects. Will flush future messages until
+gst_bus_set_flushing() sets @flushing to #FALSE.
+MT safe.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="flushing" transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_sync_handler"
+              c:identifier="gst_bus_set_sync_handler"
+              doc="Sets the synchronous handler on the bus. The function will be called
+every time a new message is posted on the bus. Note that the function
+will be called in the same thread context as the posting object. This
+function is usually only called by the creator of the bus. Applications
+should handle messages asynchronously using the gst_bus watch and poll
+functions.
+You cannot replace an existing sync_handler. You can pass NULL to this
+function, which will clear the existing handler.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="func"
+                     transfer-ownership="none"
+                     scope="call"
+                     closure="2">
+            <type name="BusSyncHandler" c:type="GstBusSyncHandler"/>
+          </parameter>
+          <parameter name="data" transfer-ownership="none">
+            <type name="any" c:type="gpointer"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="create_watch"
+              c:identifier="gst_bus_create_watch"
+              doc="Create watch for this bus. The GSource will be dispatched whenever
+a message is on the bus. After the GSource is dispatched, the
+message is popped off the bus and unreffed.">
+        <return-value transfer-ownership="full">
+          <type name="GLib.Source" c:type="GSource*"/>
+        </return-value>
+      </method>
+      <method name="add_watch_full"
+              c:identifier="gst_bus_add_watch_full"
+              doc="Adds a bus watch to the default main context with the given @priority.
+This function is used to receive asynchronous messages in the main loop.
+There can only be a single bus watch per bus, you must remove it before you
+can set a new one.
+When @func is called, the message belongs to the caller; if you want to
+keep a copy of it, call gst_message_ref() before leaving @func.
+The watch can be removed using g_source_remove() or by returning FALSE
+from @func.
+MT safe.">
+        <return-value transfer-ownership="none">
+          <type name="uint" c:type="guint"/>
+        </return-value>
+        <parameters>
+          <parameter name="priority" transfer-ownership="none">
+            <type name="int" c:type="gint"/>
+          </parameter>
+          <parameter name="func"
+                     transfer-ownership="none"
+                     scope="notified"
+                     closure="3"
+                     destroy="4">
+            <type name="BusFunc" c:type="GstBusFunc"/>
+          </parameter>
+          <parameter name="user_data" transfer-ownership="none">
+            <type name="any" c:type="gpointer"/>
+          </parameter>
+          <parameter name="notify" transfer-ownership="none" scope="call">
+            <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="add_watch"
+              c:identifier="gst_bus_add_watch"
+              doc="Adds a bus watch to the default main context with the default priority.
+This function is used to receive asynchronous messages in the main loop.
+There can only be a single bus watch per bus, you must remove it before you
+can set a new one.
+The watch can be removed using g_source_remove() or by returning FALSE
+from @func.
+MT safe.">
+        <return-value transfer-ownership="none">
+          <type name="uint" c:type="guint"/>
+        </return-value>
+        <parameters>
+          <parameter name="func"
+                     transfer-ownership="none"
+                     scope="call"
+                     closure="2">
+            <type name="BusFunc" c:type="GstBusFunc"/>
+          </parameter>
+          <parameter name="user_data" transfer-ownership="none">
+            <type name="any" c:type="gpointer"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="poll"
+              c:identifier="gst_bus_poll"
+              doc="poll for.
+indefinitely.
+Poll the bus for messages. Will block while waiting for messages to come.
+You can specify a maximum time to poll with the @timeout parameter. If
+All messages not in @events will be popped off the bus and will be ignored.
+Because poll is implemented using the &quot;message&quot; signal enabled by
+gst_bus_add_signal_watch(), calling gst_bus_poll() will cause the &quot;message&quot;
+signal to be emitted for every message that poll sees. Thus a &quot;message&quot;
+signal handler will see the same messages that this function sees -- neither
+will steal messages from the other.
+This function will run a main loop from the default main context when
+polling.
+You should never use this function, since it is pure evil. This is
+especially true for GUI applications based on Gtk+ or Qt, but also for any
+other non-trivial application that uses the GLib main loop. As this function
+runs a GLib main loop, any callback attached to the default GLib main
+context may be invoked. This could be timeouts, GUI events, I/O events etc.;
+even if gst_bus_poll() is called with a 0 timeout. Any of these callbacks
+may do things you do not expect, e.g. destroy the main application window or
+some other resource; change other application state; display a dialog and
+run another main loop until the user clicks it away. In short, using this
+function may add a lot of complexity to your code through unexpected
+re-entrancy and unexpected changes to your application&apos;s state.
+For 0 timeouts use gst_bus_pop_filtered() instead of this function; for
+other short timeouts use gst_bus_timed_pop_filtered(); everything else is
+better handled by setting up an asynchronous bus watch and doing things
+from there.
+The message is taken from the bus and needs to be unreffed with
+gst_message_unref() after usage.">
+        <return-value transfer-ownership="full">
+          <type name="Message" c:type="GstMessage*"/>
+        </return-value>
+        <parameters>
+          <parameter name="events" transfer-ownership="none">
+            <type name="MessageType" c:type="GstMessageType"/>
+          </parameter>
+          <parameter name="timeout" transfer-ownership="none">
+            <type name="ClockTimeDiff" c:type="GstClockTimeDiff"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="async_signal_func"
+              c:identifier="gst_bus_async_signal_func"
+              doc="A helper #GstBusFunc that can be used to convert all asynchronous messages
+into signals.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="message" transfer-ownership="none">
+            <type name="Message" c:type="GstMessage*"/>
+          </parameter>
+          <parameter name="data" transfer-ownership="none">
+            <type name="any" c:type="gpointer"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="sync_signal_handler"
+              c:identifier="gst_bus_sync_signal_handler"
+              doc="A helper GstBusSyncHandler that can be used to convert all synchronous
+messages into signals.">
+        <return-value transfer-ownership="full">
+          <type name="BusSyncReply" c:type="GstBusSyncReply"/>
+        </return-value>
+        <parameters>
+          <parameter name="message" transfer-ownership="none">
+            <type name="Message" c:type="GstMessage*"/>
+          </parameter>
+          <parameter name="data" transfer-ownership="none">
+            <type name="any" c:type="gpointer"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="add_signal_watch"
+              c:identifier="gst_bus_add_signal_watch"
+              doc="Adds a bus signal watch to the default main context with the default
+priority.
+After calling this statement, the bus will emit the &quot;message&quot; signal for each
+message posted on the bus.
+This function may be called multiple times. To clean up, the caller is
+responsible for calling gst_bus_remove_signal_watch() as many times as this
+function is called.
+MT safe.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </method>
+      <method name="add_signal_watch_full"
+              c:identifier="gst_bus_add_signal_watch_full"
+              doc="Adds a bus signal watch to the default main context with the given priority.
+After calling this statement, the bus will emit the &quot;message&quot; signal for each
+message posted on the bus when the main loop is running.
+This function may be called multiple times. To clean up, the caller is
+responsible for calling gst_bus_remove_signal_watch() as many times as this
+function is called.
+There can only be a single bus watch per bus, you most remove all signal watch
+before you can set another type of watch.
+MT safe.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="priority" transfer-ownership="none">
+            <type name="int" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="remove_signal_watch"
+              c:identifier="gst_bus_remove_signal_watch"
+              doc="Removes a signal watch previously added with gst_bus_add_signal_watch().
+MT safe.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </method>
+      <method name="enable_sync_message_emission"
+              c:identifier="gst_bus_enable_sync_message_emission"
+              doc="Instructs GStreamer to emit the &quot;sync-message&quot; signal after running the bus&apos;s
+sync handler. This function is here so that code can ensure that they can
+synchronously receive messages without having to affect what the bin&apos;s sync
+handler is.
+This function may be called multiple times. To clean up, the caller is
+responsible for calling gst_bus_disable_sync_message_emission() as many times
+as this function is called.
+While this function looks similar to gst_bus_add_signal_watch(), it is not
+exactly the same -- this function enables &lt;emphasis&gt;synchronous&lt;/emphasis&gt; emission of
+signals when messages arrive; gst_bus_add_signal_watch() adds an idle callback
+to pop messages off the bus &lt;emphasis&gt;asynchronously&lt;/emphasis&gt;. The sync-message signal
+comes from the thread of whatever object posted the message; the &quot;message&quot;
+signal is marshalled to the main thread via the main loop.
+MT safe.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </method>
+      <method name="disable_sync_message_emission"
+              c:identifier="gst_bus_disable_sync_message_emission"
+              doc="gst_bus_enable_sync_message_emission()
+Instructs GStreamer to stop emitting the &quot;sync-message&quot; signal for this bus.
+See gst_bus_enable_sync_message_emission() for more information.
+In the event that multiple pieces of code have called
+gst_bus_enable_sync_message_emission(), the sync-message emissions will only
+be stopped after all calls to gst_bus_enable_sync_message_emission() were
+&quot;cancelled&quot; by calling this function. In this way the semantics are exactly
+the same as gst_object_ref() that which calls enable should also call
+disable.
+MT safe.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </method>
+      <field name="object">
+        <type name="Object" c:type="GstObject"/>
+      </field>
+      <field name="queue">
+        <type name="GLib.Queue" c:type="GQueue*"/>
+      </field>
+      <field name="queue_lock">
+        <type name="GLib.Mutex" c:type="GMutex*"/>
+      </field>
+      <field name="sync_handler">
+        <type name="BusSyncHandler" c:type="GstBusSyncHandler"/>
+      </field>
+      <field name="sync_handler_data">
+        <type name="any" c:type="gpointer"/>
+      </field>
+      <field name="signal_watch_id">
+        <type name="uint" c:type="guint"/>
+      </field>
+      <field name="num_signal_watchers">
+        <type name="uint" c:type="guint"/>
+      </field>
+      <field name="priv">
+        <type name="BusPrivate" c:type="GstBusPrivate*"/>
+      </field>
+      <field name="_gst_reserved">
+        <array zero-terminated="0" c:type="gpointer" fixed-size="3">
+          <type name="any"/>
+        </array>
+      </field>
+      <glib:signal name="message"
+                   doc="A message has been posted on the bus. This signal is emitted from a
+GSource added to the mainloop. this signal will only be emitted when
+there is a mainloop running.">
+        <return-value transfer-ownership="full">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="message" transfer-ownership="none">
+            <type name="Message" c:type="GstMessage"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="sync-message"
+                   doc="A message has been posted on the bus. This signal is emitted from the
+thread that posted the message so one has to be careful with locking.
+This signal will not be emitted by default, you have to set up
+gst_bus_sync_signal_handler() as a sync handler if you want this
+signal to be emitted when a message is posted on the bus, like this:
+&lt;programlisting&gt;
+gst_bus_set_sync_handler (bus, gst_bus_sync_signal_handler, yourdata);
+&lt;/programlisting&gt;">
+        <return-value transfer-ownership="full">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="message" transfer-ownership="none">
+            <type name="Message" c:type="GstMessage"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+    </class>
+    <record name="BusClass"
+            c:type="GstBusClass"
+            glib:is-gtype-struct-for="Bus">
+      <field name="parent_class">
+        <type name="ObjectClass" c:type="GstObjectClass"/>
+      </field>
+      <field name="message">
+        <callback name="message" c:type="message">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="bus" transfer-ownership="none">
+              <type name="Bus" c:type="GstBus*"/>
+            </parameter>
+            <parameter name="message" transfer-ownership="none">
+              <type name="Message" c:type="GstMessage*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="sync_message">
+        <callback name="sync_message" c:type="sync_message">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="bus" transfer-ownership="none">
+              <type name="Bus" c:type="GstBus*"/>
+            </parameter>
+            <parameter name="message" transfer-ownership="none">
+              <type name="Message" c:type="GstMessage*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="_gst_reserved">
+        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+          <type name="any"/>
+        </array>
+      </field>
+    </record>
+    <bitfield name="BusFlags"
+              doc="The standard flags that a bus may have."
+              c:type="GstBusFlags">
+      <member name="flushing" value="16" c:identifier="GST_BUS_FLUSHING"/>
+      <member name="flag_last" value="32" c:identifier="GST_BUS_FLAG_LAST"/>
+    </bitfield>
+    <callback name="BusFunc"
+              c:type="GstBusFunc"
+              doc="Specifies the type of function passed to gst_bus_add_watch() or
+gst_bus_add_watch_full(), which is called from the mainloop when a message
+is available on the bus.
+The message passed to the function will be unreffed after execution of this
+function so it should not be freed in the function.
+Note that this function is used as a GSourceFunc which means that returning
+FALSE will remove the GSource from the mainloop.">
+      <return-value transfer-ownership="none">
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="bus" transfer-ownership="none">
+          <type name="Bus" c:type="GstBus*"/>
+        </parameter>
+        <parameter name="message" transfer-ownership="none">
+          <type name="Message" c:type="GstMessage*"/>
+        </parameter>
+        <parameter name="data" transfer-ownership="none">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <record name="BusPrivate" c:type="GstBusPrivate">
+    </record>
+    <callback name="BusSyncHandler"
+              c:type="GstBusSyncHandler"
+              doc="Handler will be invoked synchronously, when a new message has been injected
+into the bus. This function is mostly used internally. Only one sync handler
+can be attached to a given bus.
+If the handler returns GST_BUS_DROP, it should unref the message, else the
+message should not be unreffed by the sync handler.">
+      <return-value transfer-ownership="full">
+        <type name="BusSyncReply" c:type="GstBusSyncReply"/>
+      </return-value>
+      <parameters>
+        <parameter name="bus" transfer-ownership="none">
+          <type name="Bus" c:type="GstBus*"/>
+        </parameter>
+        <parameter name="message" transfer-ownership="none">
+          <type name="Message" c:type="GstMessage*"/>
+        </parameter>
+        <parameter name="data" transfer-ownership="none">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <enumeration name="BusSyncReply"
+                 doc="The result values for a GstBusSyncHandler."
+                 c:type="GstBusSyncReply">
+      <member name="drop" value="0" c:identifier="GST_BUS_DROP"/>
+      <member name="pass" value="1" c:identifier="GST_BUS_PASS"/>
+      <member name="async" value="2" c:identifier="GST_BUS_ASYNC"/>
+    </enumeration>
+    <constant name="CAN_INLINE" value="1">
+      <type name="int"/>
+    </constant>
+    <constant name="CLOCK_ENTRY_TRACE_NAME" value="GstClockEntry">
+      <type name="utf8"/>
+    </constant>
+    <constant name="CLOCK_TIME_NONE" value="-1">
+      <type name="int"/>
+    </constant>
+    <record name="Caps"
+            c:type="GstCaps"
+            doc="Object describing media types."
+            glib:type-name="GstCaps"
+            glib:get-type="gst_caps_get_type">
+      <field name="type" writable="1">
+        <type name="GType" c:type="GType"/>
+      </field>
+      <field name="refcount" writable="1">
+        <type name="int" c:type="gint"/>
+      </field>
+      <field name="flags" writable="1">
+        <type name="CapsFlags" c:type="GstCapsFlags"/>
+      </field>
+      <field name="structs" writable="1">
+        <type name="GLib.PtrArray" c:type="GPtrArray*"/>
+      </field>
+      <field name="_gst_reserved" writable="1">
+        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+          <type name="any"/>
+        </array>
+      </field>
+      <constructor name="new_empty"
+                   c:identifier="gst_caps_new_empty"
+                   doc="Creates a new #GstCaps that is empty.  That is, the returned
+#GstCaps contains no media formats.
+Caller is responsible for unreffing the returned caps.">
+        <return-value transfer-ownership="full">
+          <type name="Caps" c:type="GstCaps*"/>
+        </return-value>
+      </constructor>
+      <constructor name="new_any"
+                   c:identifier="gst_caps_new_any"
+                   doc="Creates a new #GstCaps that indicates that it is compatible with
+any media format.">
+        <return-value transfer-ownership="full">
+          <type name="Caps" c:type="GstCaps*"/>
+        </return-value>
+      </constructor>
+      <constructor name="new_simple"
+                   c:identifier="gst_caps_new_simple"
+                   doc="Creates a new #GstCaps that contains one #GstStructure.  The
+structure is defined by the arguments, which have the same format
+as gst_structure_new().
+Caller is responsible for unreffing the returned caps.">
+        <return-value transfer-ownership="full">
+          <type name="Caps" c:type="GstCaps*"/>
+        </return-value>
+        <parameters>
+          <parameter name="media_type" transfer-ownership="none">
+            <type name="utf8" c:type="char*"/>
+          </parameter>
+          <parameter name="fieldname" transfer-ownership="none">
+            <type name="utf8" c:type="char*"/>
+          </parameter>
+          <parameter transfer-ownership="none">
+            <varargs>
+            </varargs>
+          </parameter>
+        </parameters>
+      </constructor>
+      <constructor name="new_full"
+                   c:identifier="gst_caps_new_full"
+                   doc="Creates a new #GstCaps and adds all the structures listed as
+arguments.  The list must be NULL-terminated.  The structures
+are not copied; the returned #GstCaps owns the structures.">
+        <return-value transfer-ownership="full">
+          <type name="Caps" c:type="GstCaps*"/>
+        </return-value>
+        <parameters>
+          <parameter name="struct1" transfer-ownership="none">
+            <type name="Structure" c:type="GstStructure*"/>
+          </parameter>
+          <parameter transfer-ownership="none">
+            <varargs>
+            </varargs>
+          </parameter>
+        </parameters>
+      </constructor>
+      <method name="ref"
+              c:identifier="gst_caps_ref"
+              doc="Add a reference to a #GstCaps object.
+From this point on, until the caller calls gst_caps_unref() or
+gst_caps_make_writable(), it is guaranteed that the caps object will not
+change. This means its structures won&apos;t change, etc. To use a #GstCaps
+object, you must always have a refcount on it -- either the one made
+implicitly by e.g. gst_caps_new_simple(), or via taking one explicitly with
+this function.">
+        <return-value transfer-ownership="full">
+          <type name="Caps" c:type="GstCaps*"/>
+        </return-value>
+      </method>
+      <method name="copy"
+              c:identifier="gst_caps_copy"
+              doc="Creates a new #GstCaps as a copy of the old @caps. The new caps will have a
+refcount of 1, owned by the caller. The structures are copied as well.
+Note that this function is the semantic equivalent of a gst_caps_ref()
+followed by a gst_caps_make_writable(). If you only want to hold on to a
+reference to the data, you should use gst_caps_ref().
+When you are finished with the caps, call gst_caps_unref() on it.">
+        <return-value transfer-ownership="full">
+          <type name="Caps" c:type="GstCaps*"/>
+        </return-value>
+      </method>
+      <method name="make_writable"
+              c:identifier="gst_caps_make_writable"
+              doc="Returns a writable copy of @caps.
+If there is only one reference count on @caps, the caller must be the owner,
+and so this function will return the caps object unchanged. If on the other
+hand there is more than one reference on the object, a new caps object will
+be returned. The caller&apos;s reference on @caps will be removed, and instead the
+caller will own a reference to the returned object.
+In short, this function unrefs the caps in the argument and refs the caps
+that it returns. Don&apos;t access the argument after calling this function. See">
+        <return-value transfer-ownership="full">
+          <type name="Caps" c:type="GstCaps*"/>
+        </return-value>
+      </method>
+      <method name="unref"
+              c:identifier="gst_caps_unref"
+              doc="Unref a #GstCaps and and free all its structures and the
+structures&apos; values when the refcount reaches 0.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </method>
+      <method name="append"
+              c:identifier="gst_caps_append"
+              doc="Appends the structures contained in @caps2 to @caps1. The structures in
+freed. If either caps is ANY, the resulting caps will be ANY.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="caps2" transfer-ownership="none">
+            <type name="Caps" c:type="GstCaps*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="merge"
+              c:identifier="gst_caps_merge"
+              doc="Appends the structures contained in @caps2 to @caps1 if they are not yet
+expressed by @caps1. The structures in @caps2 are not copied -- they are
+transferred to @caps1, and then @caps2 is freed.
+If either caps is ANY, the resulting caps will be ANY."
+              version="0.10.10">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="caps2" transfer-ownership="none">
+            <type name="Caps" c:type="GstCaps*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="append_structure"
+              c:identifier="gst_caps_append_structure"
+              doc="Appends @structure to @caps.  The structure is not copied; @caps
+becomes the owner of @structure.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="structure" transfer-ownership="none">
+            <type name="Structure" c:type="GstStructure*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="remove_structure"
+              c:identifier="gst_caps_remove_structure"
+              doc="removes the stucture with the given index from the list of structures
+contained in @caps.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="idx" transfer-ownership="none">
+            <type name="uint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="merge_structure"
+              c:identifier="gst_caps_merge_structure"
+              doc="Appends @structure to @caps if its not already expressed by @caps.  The
+structure is not copied; @caps becomes the owner of @structure.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="structure" transfer-ownership="none">
+            <type name="Structure" c:type="GstStructure*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_size"
+              c:identifier="gst_caps_get_size"
+              doc="Gets the number of structures contained in @caps.">
+        <return-value transfer-ownership="none">
+          <type name="uint" c:type="guint"/>
+        </return-value>
+      </method>
+      <method name="get_structure"
+              c:identifier="gst_caps_get_structure"
+              doc="Finds the structure in @caps that has the index @index, and
+returns it.
+non-const GstStructure *.  This is for programming convenience --
+the caller should be aware that structures inside a constant
+#GstCaps should not be modified. However, if you know the caps
+are writable, either because you have just copied them or made
+them writable with gst_caps_make_writable(), you may modify the
+structure returned in the usual way, e.g. with functions like
+gst_structure_set().
+You do not need to free or unref the structure returned, it
+belongs to the #GstCaps.">
+        <return-value transfer-ownership="full">
+          <type name="Structure" c:type="GstStructure*"/>
+        </return-value>
+        <parameters>
+          <parameter name="index" transfer-ownership="none">
+            <type name="uint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="copy_nth"
+              c:identifier="gst_caps_copy_nth"
+              doc="Creates a new #GstCaps and appends a copy of the nth structure
+contained in @caps.">
+        <return-value transfer-ownership="full">
+          <type name="Caps" c:type="GstCaps*"/>
+        </return-value>
+        <parameters>
+          <parameter name="nth" transfer-ownership="none">
+            <type name="uint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="truncate"
+              c:identifier="gst_caps_truncate"
+              doc="Destructively discard all but the first structure from @caps. Useful when
+fixating. @caps must be writable.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </method>
+      <method name="set_value"
+              c:identifier="gst_caps_set_value"
+              doc="Sets the given @field on all structures of @caps to the given @value.
+This is a convenience function for calling gst_structure_set_value() on
+all structures of @caps."
+              version="0.10.26">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="field" transfer-ownership="none">
+            <type name="utf8" c:type="char*"/>
+          </parameter>
+          <parameter name="value" transfer-ownership="none">
+            <type name="GObject.Value" c:type="GValue*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_simple"
+              c:identifier="gst_caps_set_simple"
+              doc="Sets fields in a #GstCaps.  The arguments must be passed in the same
+manner as gst_structure_set(), and be NULL-terminated.
+&lt;note&gt;Prior to GStreamer version 0.10.26, this function failed when
+of GStreamer, you may only call this function when GST_CAPS_IS_SIMPLE()
+is %TRUE for @caps.&lt;/note&gt;">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="field" transfer-ownership="none">
+            <type name="utf8" c:type="char*"/>
+          </parameter>
+          <parameter transfer-ownership="none">
+            <varargs>
+            </varargs>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="is_any"
+              c:identifier="gst_caps_is_any"
+              doc="Determines if @caps represents any media format.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+      </method>
+      <method name="is_empty"
+              c:identifier="gst_caps_is_empty"
+              doc="Determines if @caps represents no media formats.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+      </method>
+      <method name="is_fixed"
+              c:identifier="gst_caps_is_fixed"
+              doc="Fixed #GstCaps describe exactly one format, that is, they have exactly
+one structure, and each field in the structure describes a fixed type.
+Examples of non-fixed types are GST_TYPE_INT_RANGE and GST_TYPE_LIST.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+      </method>
+      <method name="is_always_compatible"
+              c:identifier="gst_caps_is_always_compatible"
+              doc="A given #GstCaps structure is always compatible with another if
+every media format that is in the first is also contained in the
+second.  That is, @caps1 is a subset of @caps2.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="caps2" transfer-ownership="none">
+            <type name="Caps" c:type="GstCaps*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="is_subset"
+              c:identifier="gst_caps_is_subset"
+              doc="Checks if all caps represented by @subset are also represented by @superset.
+&lt;note&gt;This function does not work reliably if optional properties for caps
+are included on one caps and omitted on the other.&lt;/note&gt;">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="superset" transfer-ownership="none">
+            <type name="Caps" c:type="GstCaps*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="is_equal"
+              c:identifier="gst_caps_is_equal"
+              doc="Checks if the given caps represent the same set of caps.
+&lt;note&gt;This function does not work reliably if optional properties for caps
+are included on one caps and omitted on the other.&lt;/note&gt;
+This function deals correctly with passing NULL for any of the caps.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="caps2" transfer-ownership="none">
+            <type name="Caps" c:type="GstCaps*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="is_equal_fixed"
+              c:identifier="gst_caps_is_equal_fixed"
+              doc="Tests if two #GstCaps are equal.  This function only works on fixed
+#GstCaps.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="caps2" transfer-ownership="none">
+            <type name="Caps" c:type="GstCaps*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="can_intersect"
+              c:identifier="gst_caps_can_intersect"
+              doc="Tries intersecting @caps1 and @caps2 and reports wheter the result would not
+be empty"
+              version="0.10.25">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="caps2" transfer-ownership="none">
+            <type name="Caps" c:type="GstCaps*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="intersect"
+              c:identifier="gst_caps_intersect"
+              doc="Creates a new #GstCaps that contains all the formats that are common
+to both @caps1 and @caps2.">
+        <return-value transfer-ownership="full">
+          <type name="Caps" c:type="GstCaps*"/>
+        </return-value>
+        <parameters>
+          <parameter name="caps2" transfer-ownership="none">
+            <type name="Caps" c:type="GstCaps*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="subtract"
+              c:identifier="gst_caps_subtract"
+              doc="Subtracts the @subtrahend from the @minuend.
+&lt;note&gt;This function does not work reliably if optional properties for caps
+are included on one caps and omitted on the other.&lt;/note&gt;">
+        <return-value transfer-ownership="full">
+          <type name="Caps" c:type="GstCaps*"/>
+        </return-value>
+        <parameters>
+          <parameter name="subtrahend" transfer-ownership="none">
+            <type name="Caps" c:type="GstCaps*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="union"
+              c:identifier="gst_caps_union"
+              doc="Creates a new #GstCaps that contains all the formats that are in
+either @caps1 and @caps2.">
+        <return-value transfer-ownership="full">
+          <type name="Caps" c:type="GstCaps*"/>
+        </return-value>
+        <parameters>
+          <parameter name="caps2" transfer-ownership="none">
+            <type name="Caps" c:type="GstCaps*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="normalize"
+              c:identifier="gst_caps_normalize"
+              doc="Creates a new #GstCaps that represents the same set of formats as">
+        <return-value transfer-ownership="full">
+          <type name="Caps" c:type="GstCaps*"/>
+        </return-value>
+      </method>
+      <method name="do_simplify"
+              c:identifier="gst_caps_do_simplify"
+              doc="Modifies the given @caps inplace into a representation that represents the
+same set of formats, but in a simpler form.  Component structures that are
+identical are merged.  Component structures that have values that can be
+merged are also merged.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+      </method>
+      <method name="save_thyself"
+              c:identifier="gst_caps_save_thyself"
+              doc="Serializes a #GstCaps to XML and adds it as a child node of @parent.">
+        <return-value transfer-ownership="full">
+          <type name="libxml2.NodePtr" c:type="xmlNodePtr"/>
+        </return-value>
+        <parameters>
+          <parameter name="parent" transfer-ownership="none">
+            <type name="libxml2.NodePtr" c:type="xmlNodePtr"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="replace"
+              c:identifier="gst_caps_replace"
+              doc="Replaces *caps with @newcaps.  Unrefs the #GstCaps in the location
+pointed to by @caps, if applicable, then modifies @caps to point to
+This function does not take any locks so you might want to lock
+the object owning @caps pointer.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="newcaps" transfer-ownership="none">
+            <type name="Caps" c:type="GstCaps*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="to_string"
+              c:identifier="gst_caps_to_string"
+              doc="Converts @caps to a string representation.  This string representation
+can be converted back to a #GstCaps by gst_caps_from_string().
+For debugging purposes its easier to do something like this:
+|[
+GST_LOG (&quot;caps are %&quot; GST_PTR_FORMAT, caps);
+]|
+This prints the caps in human readble form.">
+        <return-value transfer-ownership="full">
+          <type name="utf8" c:type="gchar*"/>
+        </return-value>
+      </method>
+    </record>
+    <bitfield name="CapsFlags"
+              doc="anything.
+Extra flags for a caps."
+              c:type="GstCapsFlags">
+      <member name="caps_flags_any"
+              value="1"
+              c:identifier="GST_CAPS_FLAGS_ANY"/>
+    </bitfield>
+    <interface name="ChildProxy"
+               c:type="GstChildProxy"
+               doc="Opaque #GstChildProxy data structure."
+               glib:type-name="GstChildProxy"
+               glib:get-type="gst_child_proxy_get_type"
+               glib:type-struct="ChildProxyInterface">
+      <prerequisite name="Object"/>
+      <virtual-method name="get_child_by_index" invoker="get_child_by_index">
+        <return-value transfer-ownership="full">
+          <type name="Object" c:type="GstObject*"/>
+        </return-value>
+        <parameters>
+          <parameter name="index" transfer-ownership="none">
+            <type name="uint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="get_children_count" invoker="get_children_count">
+        <return-value transfer-ownership="none">
+          <type name="uint" c:type="guint"/>
+        </return-value>
+      </virtual-method>
+      <method name="get_child_by_name"
+              c:identifier="gst_child_proxy_get_child_by_name"
+              doc="Looks up a child element by the given name.
+Implementors can use #GstObject together with gst_object_get_name()
+MT safe.">
+        <return-value transfer-ownership="full">
+          <type name="Object" c:type="GstObject*"/>
+        </return-value>
+        <parameters>
+          <parameter name="name" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_child_by_index"
+              c:identifier="gst_child_proxy_get_child_by_index"
+              doc="Fetches a child by its number.
+after usage.
+MT safe.">
+        <return-value transfer-ownership="full" doc="Unref">
+          <type name="Object" c:type="GstObject*"/>
+        </return-value>
+        <parameters>
+          <parameter name="index" transfer-ownership="none">
+            <type name="uint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_children_count"
+              c:identifier="gst_child_proxy_get_children_count"
+              doc="Gets the number of child objects this parent contains.
+MT safe.">
+        <return-value transfer-ownership="none">
+          <type name="uint" c:type="guint"/>
+        </return-value>
+      </method>
+      <glib:signal name="child-added">
+        <return-value transfer-ownership="full">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="object" transfer-ownership="none">
+            <type name="GObject.Object" c:type="GObject"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="child-removed">
+        <return-value transfer-ownership="full">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="object" transfer-ownership="none">
+            <type name="GObject.Object" c:type="GObject"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+    </interface>
+    <record name="ChildProxyInterface"
+            c:type="GstChildProxyInterface"
+            glib:is-gtype-struct-for="ChildProxy"
+            doc="#GstChildProxy interface.">
+      <field name="parent">
+        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
+      </field>
+      <field name="get_child_by_index">
+        <callback name="get_child_by_index" c:type="get_child_by_index">
+          <return-value transfer-ownership="full">
+            <type name="Object" c:type="GstObject*"/>
+          </return-value>
+          <parameters>
+            <parameter name="parent" transfer-ownership="none">
+              <type name="ChildProxy" c:type="GstChildProxy*"/>
+            </parameter>
+            <parameter name="index" transfer-ownership="none">
+              <type name="uint" c:type="guint"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="get_children_count">
+        <callback name="get_children_count" c:type="get_children_count">
+          <return-value transfer-ownership="none">
+            <type name="uint" c:type="guint"/>
+          </return-value>
+          <parameters>
+            <parameter name="parent" transfer-ownership="none">
+              <type name="ChildProxy" c:type="GstChildProxy*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="child_added">
+        <callback name="child_added" c:type="child_added">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="parent" transfer-ownership="none">
+              <type name="ChildProxy" c:type="GstChildProxy*"/>
+            </parameter>
+            <parameter name="child" transfer-ownership="none">
+              <type name="Object" c:type="GstObject*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="child_removed">
+        <callback name="child_removed" c:type="child_removed">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="parent" transfer-ownership="none">
+              <type name="ChildProxy" c:type="GstChildProxy*"/>
+            </parameter>
+            <parameter name="child" transfer-ownership="none">
+              <type name="Object" c:type="GstObject*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="_gst_reserved">
+        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+          <type name="any"/>
+        </array>
+      </field>
+    </record>
+    <class name="Clock"
+           c:type="GstClock"
+           doc="#GstClock base structure. The values of this structure are
+protected for subclasses, use the methods to use the #GstClock."
+           parent="Object"
+           glib:type-name="GstClock"
+           glib:get-type="gst_clock_get_type"
+           glib:type-struct="ClockClass">
+      <function name="id_ref"
+                c:identifier="gst_clock_id_ref"
+                doc="Increase the refcount of given @id.
+MT safe.">
+        <return-value transfer-ownership="full">
+          <type name="ClockID" c:type="GstClockID"/>
+        </return-value>
+        <parameters>
+          <parameter name="id" transfer-ownership="none">
+            <type name="ClockID" c:type="GstClockID"/>
+          </parameter>
+        </parameters>
+      </function>
+      <function name="id_unref"
+                c:identifier="gst_clock_id_unref"
+                doc="Unref given @id. When the refcount reaches 0 the
+#GstClockID will be freed.
+MT safe.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="id" transfer-ownership="none">
+            <type name="ClockID" c:type="GstClockID"/>
+          </parameter>
+        </parameters>
+      </function>
+      <function name="id_compare_func"
+                c:identifier="gst_clock_id_compare_func">
+        <return-value transfer-ownership="none">
+          <type name="int" c:type="gint"/>
+        </return-value>
+        <parameters>
+          <parameter name="id1" transfer-ownership="none">
+            <type name="any" c:type="gconstpointer"/>
+          </parameter>
+          <parameter name="id2" transfer-ownership="none">
+            <type name="any" c:type="gconstpointer"/>
+          </parameter>
+        </parameters>
+      </function>
+      <function name="id_get_time" c:identifier="gst_clock_id_get_time">
+        <return-value transfer-ownership="full">
+          <type name="ClockTime" c:type="GstClockTime"/>
+        </return-value>
+        <parameters>
+          <parameter name="id" transfer-ownership="none">
+            <type name="ClockID" c:type="GstClockID"/>
+          </parameter>
+        </parameters>
+      </function>
+      <function name="id_wait" c:identifier="gst_clock_id_wait">
+        <return-value transfer-ownership="full">
+          <type name="ClockReturn" c:type="GstClockReturn"/>
+        </return-value>
+        <parameters>
+          <parameter name="id" transfer-ownership="none">
+            <type name="ClockID" c:type="GstClockID"/>
+          </parameter>
+          <parameter name="jitter" transfer-ownership="none">
+            <type name="ClockTimeDiff" c:type="GstClockTimeDiff*"/>
+          </parameter>
+        </parameters>
+      </function>
+      <function name="id_wait_async"
+                c:identifier="gst_clock_id_wait_async"
+                doc="Register a callback on the given #GstClockID @id with the given
+function and user_data. When passing a #GstClockID with an invalid
+time to this function, the callback will be called immediately
+with  a time set to GST_CLOCK_TIME_NONE. The callback will
+be called when the time of @id has been reached.
+The callback @func can be invoked from any thread, either provided by the
+core or from a streaming thread. The application should be prepared for this.
+MT safe.">
+        <return-value transfer-ownership="full">
+          <type name="ClockReturn" c:type="GstClockReturn"/>
+        </return-value>
+        <parameters>
+          <parameter name="id" transfer-ownership="none">
+            <type name="ClockID" c:type="GstClockID"/>
+          </parameter>
+          <parameter name="func"
+                     transfer-ownership="none"
+                     scope="call"
+                     closure="2">
+            <type name="ClockCallback" c:type="GstClockCallback"/>
+          </parameter>
+          <parameter name="user_data" transfer-ownership="none">
+            <type name="any" c:type="gpointer"/>
+          </parameter>
+        </parameters>
+      </function>
+      <function name="id_unschedule"
+                c:identifier="gst_clock_id_unschedule"
+                doc="Cancel an outstanding request with @id. This can either
+be an outstanding async notification or a pending sync notification.
+After this call, @id cannot be used anymore to receive sync or
+async notifications, you need to create a new #GstClockID.
+MT safe.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="id" transfer-ownership="none">
+            <type name="ClockID" c:type="GstClockID"/>
+          </parameter>
+        </parameters>
+      </function>
+      <virtual-method name="change_resolution">
+        <return-value transfer-ownership="full">
+          <type name="ClockTime" c:type="GstClockTime"/>
+        </return-value>
+        <parameters>
+          <parameter name="old_resolution" transfer-ownership="none">
+            <type name="ClockTime" c:type="GstClockTime"/>
+          </parameter>
+          <parameter name="new_resolution" transfer-ownership="none">
+            <type name="ClockTime" c:type="GstClockTime"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="get_resolution" invoker="get_resolution">
+        <return-value transfer-ownership="full">
+          <type name="ClockTime" c:type="GstClockTime"/>
+        </return-value>
+      </virtual-method>
+      <virtual-method name="get_internal_time" invoker="get_internal_time">
+        <return-value transfer-ownership="full">
+          <type name="ClockTime" c:type="GstClockTime"/>
+        </return-value>
+      </virtual-method>
+      <virtual-method name="wait">
+        <return-value transfer-ownership="full">
+          <type name="ClockReturn" c:type="GstClockReturn"/>
+        </return-value>
+        <parameters>
+          <parameter name="entry" transfer-ownership="none">
+            <type name="ClockEntry" c:type="GstClockEntry*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="wait_async">
+        <return-value transfer-ownership="full">
+          <type name="ClockReturn" c:type="GstClockReturn"/>
+        </return-value>
+        <parameters>
+          <parameter name="entry" transfer-ownership="none">
+            <type name="ClockEntry" c:type="GstClockEntry*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="unschedule">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="entry" transfer-ownership="none">
+            <type name="ClockEntry" c:type="GstClockEntry*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="wait_jitter">
+        <return-value transfer-ownership="full">
+          <type name="ClockReturn" c:type="GstClockReturn"/>
+        </return-value>
+        <parameters>
+          <parameter name="entry" transfer-ownership="none">
+            <type name="ClockEntry" c:type="GstClockEntry*"/>
+          </parameter>
+          <parameter name="jitter" transfer-ownership="none">
+            <type name="ClockTimeDiff" c:type="GstClockTimeDiff*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <method name="set_resolution" c:identifier="gst_clock_set_resolution">
+        <return-value transfer-ownership="full">
+          <type name="ClockTime" c:type="GstClockTime"/>
+        </return-value>
+        <parameters>
+          <parameter name="resolution" transfer-ownership="none">
+            <type name="ClockTime" c:type="GstClockTime"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_resolution" c:identifier="gst_clock_get_resolution">
+        <return-value transfer-ownership="full">
+          <type name="ClockTime" c:type="GstClockTime"/>
+        </return-value>
+      </method>
+      <method name="get_time" c:identifier="gst_clock_get_time">
+        <return-value transfer-ownership="full">
+          <type name="ClockTime" c:type="GstClockTime"/>
+        </return-value>
+      </method>
+      <method name="set_calibration" c:identifier="gst_clock_set_calibration">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="internal" transfer-ownership="none">
+            <type name="ClockTime" c:type="GstClockTime"/>
+          </parameter>
+          <parameter name="external" transfer-ownership="none">
+            <type name="ClockTime" c:type="GstClockTime"/>
+          </parameter>
+          <parameter name="rate_num" transfer-ownership="none">
+            <type name="ClockTime" c:type="GstClockTime"/>
+          </parameter>
+          <parameter name="rate_denom" transfer-ownership="none">
+            <type name="ClockTime" c:type="GstClockTime"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_calibration" c:identifier="gst_clock_get_calibration">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="internal" transfer-ownership="none">
+            <type name="ClockTime" c:type="GstClockTime*"/>
+          </parameter>
+          <parameter name="external" transfer-ownership="none">
+            <type name="ClockTime" c:type="GstClockTime*"/>
+          </parameter>
+          <parameter name="rate_num" transfer-ownership="none">
+            <type name="ClockTime" c:type="GstClockTime*"/>
+          </parameter>
+          <parameter name="rate_denom" transfer-ownership="none">
+            <type name="ClockTime" c:type="GstClockTime*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_master" c:identifier="gst_clock_set_master">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="master" transfer-ownership="none">
+            <type name="Clock" c:type="GstClock*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_master" c:identifier="gst_clock_get_master">
+        <return-value transfer-ownership="full">
+          <type name="Clock" c:type="GstClock*"/>
+        </return-value>
+      </method>
+      <method name="add_observation" c:identifier="gst_clock_add_observation">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="slave" transfer-ownership="none">
+            <type name="ClockTime" c:type="GstClockTime"/>
+          </parameter>
+          <parameter name="master" transfer-ownership="none">
+            <type name="ClockTime" c:type="GstClockTime"/>
+          </parameter>
+          <parameter name="r_squared"
+                     direction="out"
+                     transfer-ownership="full">
+            <type name="double" c:type="gdouble*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_internal_time"
+              c:identifier="gst_clock_get_internal_time">
+        <return-value transfer-ownership="full">
+          <type name="ClockTime" c:type="GstClockTime"/>
+        </return-value>
+      </method>
+      <method name="adjust_unlocked" c:identifier="gst_clock_adjust_unlocked">
+        <return-value transfer-ownership="full">
+          <type name="ClockTime" c:type="GstClockTime"/>
+        </return-value>
+        <parameters>
+          <parameter name="internal" transfer-ownership="none">
+            <type name="ClockTime" c:type="GstClockTime"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="unadjust_unlocked"
+              c:identifier="gst_clock_unadjust_unlocked">
+        <return-value transfer-ownership="full">
+          <type name="ClockTime" c:type="GstClockTime"/>
+        </return-value>
+        <parameters>
+          <parameter name="external" transfer-ownership="none">
+            <type name="ClockTime" c:type="GstClockTime"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="new_single_shot_id"
+              c:identifier="gst_clock_new_single_shot_id">
+        <return-value transfer-ownership="full">
+          <type name="ClockID" c:type="GstClockID"/>
+        </return-value>
+        <parameters>
+          <parameter name="time" transfer-ownership="none">
+            <type name="ClockTime" c:type="GstClockTime"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="new_periodic_id" c:identifier="gst_clock_new_periodic_id">
+        <return-value transfer-ownership="full">
+          <type name="ClockID" c:type="GstClockID"/>
+        </return-value>
+        <parameters>
+          <parameter name="start_time" transfer-ownership="none">
+            <type name="ClockTime" c:type="GstClockTime"/>
+          </parameter>
+          <parameter name="interval" transfer-ownership="none">
+            <type name="ClockTime" c:type="GstClockTime"/>
+          </parameter>
+        </parameters>
+      </method>
+      <property name="stats" writable="1">
+        <type name="boolean" c:type="gboolean"/>
+      </property>
+      <property name="timeout" writable="1">
+        <type name="uint64" c:type="guint64"/>
+      </property>
+      <property name="window-size" writable="1">
+        <type name="int" c:type="gint"/>
+      </property>
+      <property name="window-threshold" writable="1">
+        <type name="int" c:type="gint"/>
+      </property>
+      <field name="object">
+        <type name="Object" c:type="GstObject"/>
+      </field>
+      <field name="slave_lock">
+        <type name="GLib.Mutex" c:type="GMutex*"/>
+      </field>
+      <field name="internal_calibration">
+        <type name="ClockTime" c:type="GstClockTime"/>
+      </field>
+      <field name="external_calibration">
+        <type name="ClockTime" c:type="GstClockTime"/>
+      </field>
+      <field name="rate_numerator">
+        <type name="ClockTime" c:type="GstClockTime"/>
+      </field>
+      <field name="rate_denominator">
+        <type name="ClockTime" c:type="GstClockTime"/>
+      </field>
+      <field name="last_time">
+        <type name="ClockTime" c:type="GstClockTime"/>
+      </field>
+      <field name="entries">
+        <type name="GLib.List" c:type="GList*"/>
+      </field>
+      <field name="entries_changed">
+        <type name="GLib.Cond" c:type="GCond*"/>
+      </field>
+      <field name="resolution">
+        <type name="ClockTime" c:type="GstClockTime"/>
+      </field>
+      <field name="stats">
+        <type name="boolean" c:type="gboolean"/>
+      </field>
+      <field name="master">
+        <type name="Clock" c:type="GstClock*"/>
+      </field>
+      <field name="filling">
+        <type name="boolean" c:type="gboolean"/>
+      </field>
+      <field name="window_size">
+        <type name="int" c:type="gint"/>
+      </field>
+      <field name="window_threshold">
+        <type name="int" c:type="gint"/>
+      </field>
+      <field name="time_index">
+        <type name="int" c:type="gint"/>
+      </field>
+      <field name="timeout">
+        <type name="ClockTime" c:type="GstClockTime"/>
+      </field>
+      <field name="times">
+        <type name="ClockTime" c:type="GstClockTime*"/>
+      </field>
+      <field name="clockid">
+        <type name="ClockID" c:type="GstClockID"/>
+      </field>
+      <union name="ABI" c:type="ABI">
+        <field name="priv" writable="1">
+          <type name="ClockPrivate" c:type="GstClockPrivate*"/>
+        </field>
+        <field name="_gst_reserved" writable="1">
+          <array zero-terminated="0" c:type="GstClockTime" fixed-size="4">
+            <type name="ClockTime"/>
+          </array>
+        </field>
+      </union>
+    </class>
+    <callback name="ClockCallback"
+              c:type="GstClockCallback"
+              doc="The function prototype of the callback.">
+      <return-value transfer-ownership="none">
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="clock" transfer-ownership="none">
+          <type name="Clock" c:type="GstClock*"/>
+        </parameter>
+        <parameter name="time" transfer-ownership="none">
+          <type name="ClockTime" c:type="GstClockTime"/>
+        </parameter>
+        <parameter name="id" transfer-ownership="none">
+          <type name="ClockID" c:type="GstClockID"/>
+        </parameter>
+        <parameter name="user_data"
+                   transfer-ownership="none"
+                   closure="3"
+                   doc="function">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <record name="ClockClass"
+            c:type="GstClockClass"
+            glib:is-gtype-struct-for="Clock"
+            doc="be acceptable. The new resolution should be returned.
+implement @wait_jitter instead.
+GStreamer clock class. Override the vmethods to implement the clock
+functionality.">
+      <field name="parent_class">
+        <type name="ObjectClass" c:type="GstObjectClass"/>
+      </field>
+      <field name="change_resolution">
+        <callback name="change_resolution" c:type="change_resolution">
+          <return-value transfer-ownership="full">
+            <type name="ClockTime" c:type="GstClockTime"/>
+          </return-value>
+          <parameters>
+            <parameter name="clock" transfer-ownership="none">
+              <type name="Clock" c:type="GstClock*"/>
+            </parameter>
+            <parameter name="old_resolution" transfer-ownership="none">
+              <type name="ClockTime" c:type="GstClockTime"/>
+            </parameter>
+            <parameter name="new_resolution" transfer-ownership="none">
+              <type name="ClockTime" c:type="GstClockTime"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="get_resolution">
+        <callback name="get_resolution" c:type="get_resolution">
+          <return-value transfer-ownership="full">
+            <type name="ClockTime" c:type="GstClockTime"/>
+          </return-value>
+          <parameters>
+            <parameter name="clock" transfer-ownership="none">
+              <type name="Clock" c:type="GstClock*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="get_internal_time">
+        <callback name="get_internal_time" c:type="get_internal_time">
+          <return-value transfer-ownership="full">
+            <type name="ClockTime" c:type="GstClockTime"/>
+          </return-value>
+          <parameters>
+            <parameter name="clock" transfer-ownership="none">
+              <type name="Clock" c:type="GstClock*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="wait">
+        <callback name="wait" c:type="wait">
+          <return-value transfer-ownership="full">
+            <type name="ClockReturn" c:type="GstClockReturn"/>
+          </return-value>
+          <parameters>
+            <parameter name="clock" transfer-ownership="none">
+              <type name="Clock" c:type="GstClock*"/>
+            </parameter>
+            <parameter name="entry" transfer-ownership="none">
+              <type name="ClockEntry" c:type="GstClockEntry*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="wait_async">
+        <callback name="wait_async" c:type="wait_async">
+          <return-value transfer-ownership="full">
+            <type name="ClockReturn" c:type="GstClockReturn"/>
+          </return-value>
+          <parameters>
+            <parameter name="clock" transfer-ownership="none">
+              <type name="Clock" c:type="GstClock*"/>
+            </parameter>
+            <parameter name="entry" transfer-ownership="none">
+              <type name="ClockEntry" c:type="GstClockEntry*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="unschedule">
+        <callback name="unschedule" c:type="unschedule">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="clock" transfer-ownership="none">
+              <type name="Clock" c:type="GstClock*"/>
+            </parameter>
+            <parameter name="entry" transfer-ownership="none">
+              <type name="ClockEntry" c:type="GstClockEntry*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="wait_jitter">
+        <callback name="wait_jitter" c:type="wait_jitter">
+          <return-value transfer-ownership="full">
+            <type name="ClockReturn" c:type="GstClockReturn"/>
+          </return-value>
+          <parameters>
+            <parameter name="clock" transfer-ownership="none">
+              <type name="Clock" c:type="GstClock*"/>
+            </parameter>
+            <parameter name="entry" transfer-ownership="none">
+              <type name="ClockEntry" c:type="GstClockEntry*"/>
+            </parameter>
+            <parameter name="jitter" transfer-ownership="none">
+              <type name="ClockTimeDiff" c:type="GstClockTimeDiff*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="_gst_reserved">
+        <array zero-terminated="0" c:type="gpointer" fixed-size="3">
+          <type name="any"/>
+        </array>
+      </field>
+    </record>
+    <record name="ClockEntry"
+            c:type="GstClockEntry"
+            doc="All pending timeouts or periodic notifies are converted into
+an entry.">
+      <field name="refcount" writable="1">
+        <type name="int" c:type="gint"/>
+      </field>
+      <field name="clock" writable="1">
+        <type name="Clock" c:type="GstClock*"/>
+      </field>
+      <field name="type" writable="1">
+        <type name="ClockEntryType" c:type="GstClockEntryType"/>
+      </field>
+      <field name="time" writable="1">
+        <type name="ClockTime" c:type="GstClockTime"/>
+      </field>
+      <field name="interval" writable="1">
+        <type name="ClockTime" c:type="GstClockTime"/>
+      </field>
+      <field name="status" writable="1">
+        <type name="ClockReturn" c:type="GstClockReturn"/>
+      </field>
+      <field name="func" writable="1">
+        <type name="ClockCallback" c:type="GstClockCallback"/>
+      </field>
+      <field name="user_data" writable="1">
+        <type name="any" c:type="gpointer"/>
+      </field>
+    </record>
+    <enumeration name="ClockEntryType"
+                 doc="The type of the clock entry"
+                 c:type="GstClockEntryType">
+      <member name="single" value="0" c:identifier="GST_CLOCK_ENTRY_SINGLE"/>
+      <member name="periodic"
+              value="1"
+              c:identifier="GST_CLOCK_ENTRY_PERIODIC"/>
+    </enumeration>
+    <bitfield name="ClockFlags"
+              doc="The capabilities of this clock"
+              c:type="GstClockFlags">
+      <member name="can_do_single_sync"
+              value="16"
+              c:identifier="GST_CLOCK_FLAG_CAN_DO_SINGLE_SYNC"/>
+      <member name="can_do_single_async"
+              value="32"
+              c:identifier="GST_CLOCK_FLAG_CAN_DO_SINGLE_ASYNC"/>
+      <member name="can_do_periodic_sync"
+              value="64"
+              c:identifier="GST_CLOCK_FLAG_CAN_DO_PERIODIC_SYNC"/>
+      <member name="can_do_periodic_async"
+              value="128"
+              c:identifier="GST_CLOCK_FLAG_CAN_DO_PERIODIC_ASYNC"/>
+      <member name="can_set_resolution"
+              value="256"
+              c:identifier="GST_CLOCK_FLAG_CAN_SET_RESOLUTION"/>
+      <member name="can_set_master"
+              value="512"
+              c:identifier="GST_CLOCK_FLAG_CAN_SET_MASTER"/>
+      <member name="last" value="4096" c:identifier="GST_CLOCK_FLAG_LAST"/>
+    </bitfield>
+    <record name="ClockPrivate" c:type="GstClockPrivate">
+    </record>
+    <enumeration name="ClockReturn"
+                 doc="The return value of a clock operation."
+                 c:type="GstClockReturn">
+      <member name="ok" value="0" c:identifier="GST_CLOCK_OK"/>
+      <member name="early" value="1" c:identifier="GST_CLOCK_EARLY"/>
+      <member name="unscheduled"
+              value="2"
+              c:identifier="GST_CLOCK_UNSCHEDULED"/>
+      <member name="busy" value="3" c:identifier="GST_CLOCK_BUSY"/>
+      <member name="badtime" value="4" c:identifier="GST_CLOCK_BADTIME"/>
+      <member name="error" value="5" c:identifier="GST_CLOCK_ERROR"/>
+      <member name="unsupported"
+              value="6"
+              c:identifier="GST_CLOCK_UNSUPPORTED"/>
+    </enumeration>
+    <enumeration name="ClockType"
+                 doc="point
+The different kind of clocks."
+                 c:type="GstClockType">
+      <member name="realtime"
+              value="0"
+              c:identifier="GST_CLOCK_TYPE_REALTIME"/>
+      <member name="monotonic"
+              value="1"
+              c:identifier="GST_CLOCK_TYPE_MONOTONIC"/>
+    </enumeration>
+    <callback name="CopyFunction"
+              c:type="GstCopyFunction"
+              doc="A function to create a copy of some object or
+increase its reference count."
+              version="0.10.25">
+      <return-value transfer-ownership="none">
+        <type name="any" c:type="gpointer"/>
+      </return-value>
+      <parameters>
+        <parameter name="object" transfer-ownership="none">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <enumeration name="CoreError"
+                 doc="category.  Make sure you add a custom message to the error call.
+deciding where to go while developing code.
+this functionality yet.
+Core errors are errors inside the core GStreamer library."
+                 c:type="GstCoreError"
+                 glib:error-quark="gst_core_error_quark">
+      <member name="failed" value="1" c:identifier="GST_CORE_ERROR_FAILED"/>
+      <member name="too_lazy"
+              value="2"
+              c:identifier="GST_CORE_ERROR_TOO_LAZY"/>
+      <member name="not_implemented"
+              value="3"
+              c:identifier="GST_CORE_ERROR_NOT_IMPLEMENTED"/>
+      <member name="state_change"
+              value="4"
+              c:identifier="GST_CORE_ERROR_STATE_CHANGE"/>
+      <member name="pad" value="5" c:identifier="GST_CORE_ERROR_PAD"/>
+      <member name="thread" value="6" c:identifier="GST_CORE_ERROR_THREAD"/>
+      <member name="negotiation"
+              value="7"
+              c:identifier="GST_CORE_ERROR_NEGOTIATION"/>
+      <member name="event" value="8" c:identifier="GST_CORE_ERROR_EVENT"/>
+      <member name="seek" value="9" c:identifier="GST_CORE_ERROR_SEEK"/>
+      <member name="caps" value="10" c:identifier="GST_CORE_ERROR_CAPS"/>
+      <member name="tag" value="11" c:identifier="GST_CORE_ERROR_TAG"/>
+      <member name="missing_plugin"
+              value="12"
+              c:identifier="GST_CORE_ERROR_MISSING_PLUGIN"/>
+      <member name="clock" value="13" c:identifier="GST_CORE_ERROR_CLOCK"/>
+      <member name="disabled"
+              value="14"
+              c:identifier="GST_CORE_ERROR_DISABLED"/>
+      <member name="num_errors"
+              value="15"
+              c:identifier="GST_CORE_ERROR_NUM_ERRORS"/>
+    </enumeration>
+    <constant name="DEBUG_BG_MASK" value="240">
+      <type name="int"/>
+    </constant>
+    <constant name="DEBUG_FG_MASK" value="15">
+      <type name="int"/>
+    </constant>
+    <constant name="DEBUG_FORMAT_MASK" value="65280">
+      <type name="int"/>
+    </constant>
+    <glib:boxed c:type="GstDate"
+                glib:name="Date"
+                glib:type-name="GstDate"
+                glib:get-type="gst_date_get_type">
+    </glib:boxed>
+    <record name="DebugCategory"
+            c:type="GstDebugCategory"
+            doc="This is the struct that describes the categories. Once initialized with
+#GST_DEBUG_CATEGORY_INIT, its values can&apos;t be changed anymore.">
+      <field name="threshold" writable="1">
+        <type name="int" c:type="gint"/>
+      </field>
+      <field name="color" writable="1">
+        <type name="uint" c:type="guint"/>
+      </field>
+      <field name="name" writable="1">
+        <type name="utf8" c:type="gchar*"/>
+      </field>
+      <field name="description" writable="1">
+        <type name="utf8" c:type="gchar*"/>
+      </field>
+      <method name="free"
+              c:identifier="gst_debug_category_free"
+              doc="Removes and frees the category and all associated resources.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </method>
+      <method name="set_threshold"
+              c:identifier="gst_debug_category_set_threshold"
+              doc="Sets the threshold of the category to the given level. Debug information will
+only be output if the threshold is lower or equal to the level of the
+debugging message.
+&lt;note&gt;&lt;para&gt;
+Do not use this function in production code, because other functions may
+change the threshold of categories as side effect. It is however a nice
+function to use when debugging (even from gdb).
+&lt;/para&gt;&lt;/note&gt;">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="level" transfer-ownership="none">
+            <type name="DebugLevel" c:type="GstDebugLevel"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="reset_threshold"
+              c:identifier="gst_debug_category_reset_threshold"
+              doc="Resets the threshold of the category to the default level. Debug information
+will only be output if the threshold is lower or equal to the level of the
+debugging message.
+Use this function to set the threshold back to where it was after using
+gst_debug_category_set_threshold().">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </method>
+      <method name="get_threshold"
+              c:identifier="gst_debug_category_get_threshold"
+              doc="Returns the threshold of a #GstDebugCategory.">
+        <return-value transfer-ownership="full">
+          <type name="DebugLevel" c:type="GstDebugLevel"/>
+        </return-value>
+      </method>
+      <method name="get_name"
+              c:identifier="gst_debug_category_get_name"
+              doc="Returns the name of a debug category.">
+        <return-value transfer-ownership="none">
+          <type name="utf8" c:type="gchar*"/>
+        </return-value>
+      </method>
+      <method name="get_color"
+              c:identifier="gst_debug_category_get_color"
+              doc="Returns the color of a debug category used when printing output in this
+category.">
+        <return-value transfer-ownership="none">
+          <type name="uint" c:type="guint"/>
+        </return-value>
+      </method>
+      <method name="get_description"
+              c:identifier="gst_debug_category_get_description"
+              doc="Returns the description of a debug category.">
+        <return-value transfer-ownership="none">
+          <type name="utf8" c:type="gchar*"/>
+        </return-value>
+      </method>
+    </record>
+    <enumeration name="DebugColorFlags"
+                 doc="These are some terminal style flags you can use when creating your
+debugging categories to make them stand out in debugging output."
+                 c:type="GstDebugColorFlags">
+      <member name="fg_black" value="0" c:identifier="GST_DEBUG_FG_BLACK"/>
+      <member name="fg_red" value="1" c:identifier="GST_DEBUG_FG_RED"/>
+      <member name="fg_green" value="2" c:identifier="GST_DEBUG_FG_GREEN"/>
+      <member name="fg_yellow" value="3" c:identifier="GST_DEBUG_FG_YELLOW"/>
+      <member name="fg_blue" value="4" c:identifier="GST_DEBUG_FG_BLUE"/>
+      <member name="fg_magenta" value="5" c:identifier="GST_DEBUG_FG_MAGENTA"/>
+      <member name="fg_cyan" value="6" c:identifier="GST_DEBUG_FG_CYAN"/>
+      <member name="fg_white" value="7" c:identifier="GST_DEBUG_FG_WHITE"/>
+      <member name="bg_black" value="0" c:identifier="GST_DEBUG_BG_BLACK"/>
+      <member name="bg_red" value="16" c:identifier="GST_DEBUG_BG_RED"/>
+      <member name="bg_green" value="32" c:identifier="GST_DEBUG_BG_GREEN"/>
+      <member name="bg_yellow" value="48" c:identifier="GST_DEBUG_BG_YELLOW"/>
+      <member name="bg_blue" value="64" c:identifier="GST_DEBUG_BG_BLUE"/>
+      <member name="bg_magenta"
+              value="80"
+              c:identifier="GST_DEBUG_BG_MAGENTA"/>
+      <member name="bg_cyan" value="96" c:identifier="GST_DEBUG_BG_CYAN"/>
+      <member name="bg_white" value="112" c:identifier="GST_DEBUG_BG_WHITE"/>
+      <member name="bold" value="256" c:identifier="GST_DEBUG_BOLD"/>
+      <member name="underline" value="512" c:identifier="GST_DEBUG_UNDERLINE"/>
+    </enumeration>
+    <callback name="DebugFuncPtr" c:type="GstDebugFuncPtr">
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+    </callback>
+    <bitfield name="DebugGraphDetails"
+              doc="Available details for pipeline graphs produced by GST_DEBUG_BIN_TO_DOT_FILE()
+and GST_DEBUG_BIN_TO_DOT_FILE_WITH_TS()."
+              version="0.10.15"
+              c:type="GstDebugGraphDetails">
+      <member name="media_type"
+              value="1"
+              c:identifier="GST_DEBUG_GRAPH_SHOW_MEDIA_TYPE"/>
+      <member name="caps_details"
+              value="2"
+              c:identifier="GST_DEBUG_GRAPH_SHOW_CAPS_DETAILS"/>
+      <member name="non_default_params"
+              value="4"
+              c:identifier="GST_DEBUG_GRAPH_SHOW_NON_DEFAULT_PARAMS"/>
+      <member name="states"
+              value="8"
+              c:identifier="GST_DEBUG_GRAPH_SHOW_STATES"/>
+      <member name="all" value="15" c:identifier="GST_DEBUG_GRAPH_SHOW_ALL"/>
+    </bitfield>
+    <enumeration name="DebugLevel"
+                 doc="debugging output.
+that stops the application from keeping working correctly.
+An examples is gst_element_error, which outputs a message with this priority.
+It does not mean that the application is terminating as with g_errror.
+that could lead to problems or weird behaviour later on. An example of this
+would be clocking issues (&quot;your computer is pretty slow&quot;) or broken input
+data (&quot;Can&apos;t synchronize to stream.&quot;)
+updated about what is happening.
+Examples where this should be used are when a typefind function has
+successfully determined the type of the stream or when an mp3 plugin detects
+the format to be used. (&quot;This file has mono sound.&quot;)
+happens that is not the expected default behavior.
+An example would be notifications about state changes or receiving/sending of
+events.
+useful to know. As a rule of thumb a pipeline that is iterating as expected
+should never output anzthing else but LOG messages.
+Examples for this are referencing/dereferencing of objects or cothread switches.
+in the executed code path is not fully implemented or handled yet. Note
+that this does not replace proper error handling in any way, the purpose
+of this message is to make it easier to spot incomplete/unfinished pieces
+data as memory dumps in the log. They will be displayed as hexdump with
+The level defines the importance of a debugging message. The more important a
+message is, the greater the probability that the debugging system outputs it."
+                 c:type="GstDebugLevel">
+      <member name="none" value="0" c:identifier="GST_LEVEL_NONE"/>
+      <member name="error" value="1" c:identifier="GST_LEVEL_ERROR"/>
+      <member name="warning" value="2" c:identifier="GST_LEVEL_WARNING"/>
+      <member name="info" value="3" c:identifier="GST_LEVEL_INFO"/>
+      <member name="debug" value="4" c:identifier="GST_LEVEL_DEBUG"/>
+      <member name="log" value="5" c:identifier="GST_LEVEL_LOG"/>
+      <member name="fixme" value="6" c:identifier="GST_LEVEL_FIXME"/>
+      <member name="memdump" value="9" c:identifier="GST_LEVEL_MEMDUMP"/>
+      <member name="count" value="10" c:identifier="GST_LEVEL_COUNT"/>
+    </enumeration>
+    <record name="DebugMessage" c:type="GstDebugMessage">
+      <method name="get"
+              c:identifier="gst_debug_message_get"
+              doc="Gets the string representation of a #GstDebugMessage. This function is used
+in debug handlers to extract the message.">
+        <return-value transfer-ownership="none">
+          <type name="utf8" c:type="gchar*"/>
+        </return-value>
+      </method>
+    </record>
+    <constant name="ERROR_SYSTEM" value="system error: %s">
+      <type name="utf8"/>
+    </constant>
+    <constant name="EVENT_TRACE_NAME" value="GstEvent">
+      <type name="utf8"/>
+    </constant>
+    <constant name="EVENT_TYPE_BOTH" value="0">
+      <type name="int"/>
+    </constant>
+    <constant name="EVENT_TYPE_SHIFT" value="4">
+      <type name="int"/>
+    </constant>
+    <class name="Element"
+           c:type="GstElement"
+           doc="gst_element_set_state() and gst_element_get_state()
+the element is in the correct state.
+#GST_STATE_VOID_PENDING if the element is in the correct state
+parent element or the application. A #GstPipeline has a bus of its own.
+element by the toplevel #GstPipeline.
+PLAYING. Subtracting @base_time from the current clock time in the PLAYING
+state will yield the running_time against the clock.
+GStreamer element abstract base class."
+           parent="Object"
+           abstract="1"
+           glib:type-name="GstElement"
+           glib:get-type="gst_element_get_type"
+           glib:type-struct="ElementClass">
+      <function name="register"
+                c:identifier="gst_element_register"
+                doc="element (note that passing NULL only works in GStreamer 0.10.13 and later)
+Create a new elementfactory capable of instantiating objects of the">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="plugin" transfer-ownership="none">
+            <type name="Plugin" c:type="GstPlugin*"/>
+          </parameter>
+          <parameter name="name" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="rank" transfer-ownership="none">
+            <type name="uint" c:type="guint"/>
+          </parameter>
+          <parameter name="type" transfer-ownership="none">
+            <type name="GType" c:type="GType"/>
+          </parameter>
+        </parameters>
+      </function>
+      <function name="make_from_uri"
+                c:identifier="gst_element_make_from_uri"
+                doc="Creates an element for handling the given URI.">
+        <return-value transfer-ownership="full">
+          <type name="Element" c:type="GstElement*"/>
+        </return-value>
+        <parameters>
+          <parameter name="type" transfer-ownership="none">
+            <type name="URIType" c:type="GstURIType"/>
+          </parameter>
+          <parameter name="uri" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="elementname" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </function>
+      <function name="state_get_name"
+                c:identifier="gst_element_state_get_name"
+                doc="Gets a string representing the given state.">
+        <return-value transfer-ownership="none">
+          <type name="utf8" c:type="gchar*"/>
+        </return-value>
+        <parameters>
+          <parameter name="state" transfer-ownership="none">
+            <type name="State" c:type="GstState"/>
+          </parameter>
+        </parameters>
+      </function>
+      <function name="state_change_return_get_name"
+                c:identifier="gst_element_state_change_return_get_name"
+                doc="Gets a string representing the given state change result."
+                version="0.10.11">
+        <return-value transfer-ownership="none">
+          <type name="utf8" c:type="gchar*"/>
+        </return-value>
+        <parameters>
+          <parameter name="state_ret" transfer-ownership="none">
+            <type name="StateChangeReturn" c:type="GstStateChangeReturn"/>
+          </parameter>
+        </parameters>
+      </function>
+      <virtual-method name="request_new_pad">
+        <return-value transfer-ownership="full">
+          <type name="Pad" c:type="GstPad*"/>
+        </return-value>
+        <parameters>
+          <parameter name="templ" transfer-ownership="none">
+            <type name="PadTemplate" c:type="GstPadTemplate*"/>
+          </parameter>
+          <parameter name="name" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="release_pad">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="pad" transfer-ownership="none">
+            <type name="Pad" c:type="GstPad*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="get_state" invoker="get_state">
+        <return-value transfer-ownership="full">
+          <type name="StateChangeReturn" c:type="GstStateChangeReturn"/>
+        </return-value>
+        <parameters>
+          <parameter name="state" transfer-ownership="none">
+            <type name="State" c:type="GstState*"/>
+          </parameter>
+          <parameter name="pending" transfer-ownership="none">
+            <type name="State" c:type="GstState*"/>
+          </parameter>
+          <parameter name="timeout" transfer-ownership="none">
+            <type name="ClockTime" c:type="GstClockTime"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="set_state" invoker="set_state">
+        <return-value transfer-ownership="full">
+          <type name="StateChangeReturn" c:type="GstStateChangeReturn"/>
+        </return-value>
+        <parameters>
+          <parameter name="state" transfer-ownership="none">
+            <type name="State" c:type="GstState"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="change_state" invoker="change_state">
+        <return-value transfer-ownership="full">
+          <type name="StateChangeReturn" c:type="GstStateChangeReturn"/>
+        </return-value>
+        <parameters>
+          <parameter name="transition" transfer-ownership="none">
+            <type name="StateChange" c:type="GstStateChange"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="set_bus" invoker="set_bus">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="bus" transfer-ownership="none">
+            <type name="Bus" c:type="GstBus*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="provide_clock" invoker="provide_clock">
+        <return-value transfer-ownership="full">
+          <type name="Clock" c:type="GstClock*"/>
+        </return-value>
+      </virtual-method>
+      <virtual-method name="set_clock" invoker="set_clock">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="clock" transfer-ownership="none">
+            <type name="Clock" c:type="GstClock*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="get_index" invoker="get_index">
+        <return-value transfer-ownership="full">
+          <type name="Index" c:type="GstIndex*"/>
+        </return-value>
+      </virtual-method>
+      <virtual-method name="set_index" invoker="set_index">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="index" transfer-ownership="none">
+            <type name="Index" c:type="GstIndex*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="send_event" invoker="send_event">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="event" transfer-ownership="none">
+            <type name="Event" c:type="GstEvent*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="get_query_types" invoker="get_query_types">
+        <return-value transfer-ownership="none">
+          <type name="QueryType" c:type="GstQueryType*"/>
+        </return-value>
+      </virtual-method>
+      <virtual-method name="query" invoker="query">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="query" transfer-ownership="none">
+            <type name="Query" c:type="GstQuery*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <method name="requires_clock"
+              c:identifier="gst_element_requires_clock"
+              doc="Query if the element requires a clock.
+MT safe.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+      </method>
+      <method name="provides_clock"
+              c:identifier="gst_element_provides_clock"
+              doc="Query if the element provides a clock. A #GstClock provided by an
+element can be used as the global #GstClock for the pipeline.
+An element that can provide a clock is only required to do so in the PAUSED
+state, this means when it is fully negotiated and has allocated the resources
+to operate the clock.
+MT safe.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+      </method>
+      <method name="provide_clock"
+              c:identifier="gst_element_provide_clock"
+              doc="Get the clock provided by the given element.
+&lt;note&gt;An element is only required to provide a clock in the PAUSED
+state. Some elements can provide a clock in other states.&lt;/note&gt;
+if no clock could be provided.  Unref after usage.
+MT safe.">
+        <return-value transfer-ownership="full">
+          <type name="Clock" c:type="GstClock*"/>
+        </return-value>
+      </method>
+      <method name="get_clock"
+              c:identifier="gst_element_get_clock"
+              doc="Gets the currently configured clock of the element. This is the clock as was
+last set with gst_element_set_clock().
+MT safe.">
+        <return-value transfer-ownership="full">
+          <type name="Clock" c:type="GstClock*"/>
+        </return-value>
+      </method>
+      <method name="set_clock"
+              c:identifier="gst_element_set_clock"
+              doc="Sets the clock for the element. This function increases the
+refcount on the clock. Any previously set clock on the object
+is unreffed.
+clock when it, for example, is not able to slave its internal clock to the
+MT safe.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="clock" transfer-ownership="none">
+            <type name="Clock" c:type="GstClock*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_base_time"
+              c:identifier="gst_element_set_base_time"
+              doc="Set the base time of an element. See gst_element_get_base_time().
+MT safe.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="time" transfer-ownership="none">
+            <type name="ClockTime" c:type="GstClockTime"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_base_time"
+              c:identifier="gst_element_get_base_time"
+              doc="Returns the base time of the element. The base time is the
+absolute time of the clock when this element was last put to
+PLAYING. Subtracting the base time from the clock time gives
+the running time of the element.
+MT safe.">
+        <return-value transfer-ownership="full">
+          <type name="ClockTime" c:type="GstClockTime"/>
+        </return-value>
+      </method>
+      <method name="set_start_time"
+              c:identifier="gst_element_set_start_time"
+              doc="Set the start time of an element. The start time of the element is the
+running time of the element when it last went to the PAUSED state. In READY
+or after a flushing seek, it is set to 0.
+Toplevel elements like #GstPipeline will manage the start_time and
+base_time on its children. Setting the start_time to #GST_CLOCK_TIME_NONE
+on such a toplevel element will disable the distribution of the base_time to
+the children and can be useful if the application manages the base_time
+itself, for example if you want to synchronize capture from multiple
+pipelines, and you can also ensure that the pipelines have the same clock.
+MT safe."
+              version="0.10.24">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="time" transfer-ownership="none">
+            <type name="ClockTime" c:type="GstClockTime"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_start_time"
+              c:identifier="gst_element_get_start_time"
+              doc="Returns the start time of the element. The start time is the
+running time of the clock when this element was last put to PAUSED.
+Usually the start_time is managed by a toplevel element such as
+#GstPipeline.
+MT safe."
+              version="0.10.24">
+        <return-value transfer-ownership="full">
+          <type name="ClockTime" c:type="GstClockTime"/>
+        </return-value>
+      </method>
+      <method name="is_indexable"
+              c:identifier="gst_element_is_indexable"
+              doc="Queries if the element can be indexed.
+MT safe.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+      </method>
+      <method name="set_index"
+              c:identifier="gst_element_set_index"
+              doc="Set @index on the element. The refcount of the index
+will be increased, any previously set index is unreffed.
+MT safe.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="index" transfer-ownership="none">
+            <type name="Index" c:type="GstIndex*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_index"
+              c:identifier="gst_element_get_index"
+              doc="Gets the index from the element.
+element. unref after usage.
+MT safe.">
+        <return-value transfer-ownership="full">
+          <type name="Index" c:type="GstIndex*"/>
+        </return-value>
+      </method>
+      <method name="set_bus"
+              c:identifier="gst_element_set_bus"
+              doc="Sets the bus of the element. Increases the refcount on the bus.
+For internal use only, unless you&apos;re testing elements.
+MT safe.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="bus" transfer-ownership="none">
+            <type name="Bus" c:type="GstBus*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_bus"
+              c:identifier="gst_element_get_bus"
+              doc="Returns the bus of the element. Note that only a #GstPipeline will provide a
+bus for the application.
+MT safe.">
+        <return-value transfer-ownership="full">
+          <type name="Bus" c:type="GstBus*"/>
+        </return-value>
+      </method>
+      <method name="add_pad"
+              c:identifier="gst_element_add_pad"
+              doc="Adds a pad (link point) to @element. @pad&apos;s parent will be set to @element;
+see gst_object_set_parent() for refcounting information.
+Pads are not automatically activated so elements should perform the needed
+steps to activate the pad in case this pad is added in the PAUSED or PLAYING
+state. See gst_pad_set_active() for more information about activating pads.
+The pad and the element should be unlocked when calling this function.
+This function will emit the #GstElement::pad-added signal on the element.
+a pad with the same name already existed or the pad already had another
+parent.
+MT safe.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="pad" transfer-ownership="none">
+            <type name="Pad" c:type="GstPad*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="remove_pad"
+              c:identifier="gst_element_remove_pad"
+              doc="Removes @pad from @element. @pad will be destroyed if it has not been
+referenced elsewhere using gst_object_unparent().
+This function is used by plugin developers and should not be used
+by applications. Pads that were dynamically requested from elements
+with gst_element_get_request_pad() should be released with the
+gst_element_release_request_pad() function instead.
+Pads are not automatically deactivated so elements should perform the needed
+steps to deactivate the pad in case this pad is removed in the PAUSED or
+PLAYING state. See gst_pad_set_active() for more information about
+deactivating pads.
+The pad and the element should be unlocked when calling this function.
+This function will emit the #GstElement::pad-removed signal on the element.
+pad does not belong to the provided element.
+MT safe.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="pad" transfer-ownership="none">
+            <type name="Pad" c:type="GstPad*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="no_more_pads"
+              c:identifier="gst_element_no_more_pads"
+              doc="Use this function to signal that the element does not expect any more pads
+to show up in the current pipeline. This function should be called whenever
+pads have been added by the element itself. Elements with #GST_PAD_SOMETIMES
+pad templates use this in combination with autopluggers to figure out that
+the element is done initializing its pads.
+This function emits the #GstElement::no-more-pads signal.
+MT safe.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </method>
+      <method name="get_pad"
+              c:identifier="gst_element_get_pad"
+              doc="Retrieves a pad from @element by name. Tries gst_element_get_static_pad()
+first, then gst_element_get_request_pad().
+to the result pad should be released with gst_object_unref() in case of a static pad
+or gst_element_release_request_pad() in case of a request pad.
+Use gst_element_get_static_pad() or gst_element_get_request_pad() instead.
+depending on the type of the pad."
+              deprecated="This function is deprecated as it&apos;s unclear if the reference">
+        <return-value transfer-ownership="full">
+          <type name="Pad" c:type="GstPad*"/>
+        </return-value>
+        <parameters>
+          <parameter name="name" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_static_pad"
+              c:identifier="gst_element_get_static_pad"
+              doc="Retrieves a pad from @element by name. This version only retrieves
+already-existing (i.e. &apos;static&apos;) pads.
+usage.
+MT safe.">
+        <return-value transfer-ownership="full">
+          <type name="Pad" c:type="GstPad*"/>
+        </return-value>
+        <parameters>
+          <parameter name="name" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_request_pad"
+              c:identifier="gst_element_get_request_pad"
+              doc="Retrieves a pad from the element by name. This version only retrieves
+request pads. The pad should be released with
+gst_element_release_request_pad().">
+        <return-value transfer-ownership="full">
+          <type name="Pad" c:type="GstPad*"/>
+        </return-value>
+        <parameters>
+          <parameter name="name" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="release_request_pad"
+              c:identifier="gst_element_release_request_pad"
+              doc="Makes the element free the previously requested pad as obtained
+with gst_element_get_request_pad().
+This does not unref the pad. If the pad was created by using
+gst_element_get_request_pad(), gst_element_release_request_pad() needs to be
+followed by gst_object_unref() to free the @pad.
+MT safe.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="pad" transfer-ownership="none">
+            <type name="Pad" c:type="GstPad*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="iterate_pads"
+              c:identifier="gst_element_iterate_pads"
+              doc="Retrieves an iterattor of @element&apos;s pads. The iterator should
+be freed after usage.
+MT safe.">
+        <return-value transfer-ownership="full">
+          <type name="Iterator" c:type="GstIterator*"/>
+        </return-value>
+      </method>
+      <method name="iterate_src_pads"
+              c:identifier="gst_element_iterate_src_pads"
+              doc="Retrieves an iterator of @element&apos;s source pads.
+MT safe.">
+        <return-value transfer-ownership="full">
+          <type name="Iterator" c:type="GstIterator*"/>
+        </return-value>
+      </method>
+      <method name="iterate_sink_pads"
+              c:identifier="gst_element_iterate_sink_pads"
+              doc="Retrieves an iterator of @element&apos;s sink pads.
+MT safe.">
+        <return-value transfer-ownership="full">
+          <type name="Iterator" c:type="GstIterator*"/>
+        </return-value>
+      </method>
+      <method name="send_event"
+              c:identifier="gst_element_send_event"
+              doc="Sends an event to an element. If the element doesn&apos;t implement an
+event handler, the event will be pushed on a random linked sink pad for
+upstream events or a random linked source pad for downstream events.
+This function takes owership of the provided event so you should
+gst_event_ref() it if you want to reuse the event after this call.
+MT safe.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="event" transfer-ownership="none">
+            <type name="Event" c:type="GstEvent*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="seek"
+              c:identifier="gst_element_seek"
+              doc="Sends a seek event to an element. See gst_event_new_seek() for the details of
+the parameters. The seek event is sent to the element using
+gst_element_send_event().
+MT safe.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="rate" transfer-ownership="none">
+            <type name="double" c:type="gdouble"/>
+          </parameter>
+          <parameter name="format" transfer-ownership="none">
+            <type name="Format" c:type="GstFormat"/>
+          </parameter>
+          <parameter name="flags" transfer-ownership="none">
+            <type name="SeekFlags" c:type="GstSeekFlags"/>
+          </parameter>
+          <parameter name="cur_type" transfer-ownership="none">
+            <type name="SeekType" c:type="GstSeekType"/>
+          </parameter>
+          <parameter name="cur" transfer-ownership="none">
+            <type name="int64" c:type="gint64"/>
+          </parameter>
+          <parameter name="stop_type" transfer-ownership="none">
+            <type name="SeekType" c:type="GstSeekType"/>
+          </parameter>
+          <parameter name="stop" transfer-ownership="none">
+            <type name="int64" c:type="gint64"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_query_types"
+              c:identifier="gst_element_get_query_types"
+              doc="Get an array of query types from the element.
+If the element doesn&apos;t implement a query types function,
+the query will be forwarded to the peer of a random linked sink pad.
+be freed or modified.
+MT safe.">
+        <return-value transfer-ownership="none">
+          <type name="QueryType" c:type="GstQueryType*"/>
+        </return-value>
+      </method>
+      <method name="query"
+              c:identifier="gst_element_query"
+              doc="Performs a query on the given element.
+For elements that don&apos;t implement a query handler, this function
+forwards the query to a random srcpad or to the peer of a
+random linked sinkpad of this element.
+MT safe.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="query" transfer-ownership="none">
+            <type name="Query" c:type="GstQuery*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="post_message"
+              c:identifier="gst_element_post_message"
+              doc="Post a message on the element&apos;s #GstBus. This function takes ownership of the
+message; if you want to access the message after this call, you should add an
+additional reference before calling.
+%FALSE if the element did not have a bus.
+MT safe.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="message" transfer-ownership="none">
+            <type name="Message" c:type="GstMessage*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="message_full"
+              c:identifier="gst_element_message_full"
+              doc="default message connected to code, or %NULL
+default debugging information, or %NULL
+Post an error, warning or info message on the bus from inside an element.
+#GST_MESSAGE_INFO.
+MT safe.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="type" transfer-ownership="none">
+            <type name="MessageType" c:type="GstMessageType"/>
+          </parameter>
+          <parameter name="domain" transfer-ownership="none">
+            <type name="GLib.Quark" c:type="GQuark"/>
+          </parameter>
+          <parameter name="code" transfer-ownership="none">
+            <type name="int" c:type="gint"/>
+          </parameter>
+          <parameter name="text" transfer-ownership="full">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="debug" transfer-ownership="full">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="file" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="function" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="line" transfer-ownership="none">
+            <type name="int" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="is_locked_state"
+              c:identifier="gst_element_is_locked_state"
+              doc="Checks if the state of an element is locked.
+If the state of an element is locked, state changes of the parent don&apos;t
+affect the element.
+This way you can leave currently unused elements inside bins. Just lock their
+state before changing the state from #GST_STATE_NULL.
+MT safe.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+      </method>
+      <method name="set_locked_state"
+              c:identifier="gst_element_set_locked_state"
+              doc="Locks the state of an element, so state changes of the parent don&apos;t affect
+this element anymore.
+MT safe.
+or the elements state-locking needed no change.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="locked_state" transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="sync_state_with_parent"
+              c:identifier="gst_element_sync_state_with_parent"
+              doc="Tries to change the state of the element to the same as its parent.
+If this function returns FALSE, the state of element is undefined.
+MT safe.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+      </method>
+      <method name="get_state"
+              c:identifier="gst_element_get_state"
+              doc="Can be %NULL.
+state change or %GST_CLOCK_TIME_NONE for infinite timeout.
+Gets the state of the element.
+For elements that performed an ASYNC state change, as reported by
+gst_element_set_state(), this function will block up to the
+specified timeout value for the state change to complete.
+If the element completes the state change or goes into
+an error, this function returns immediately with a return value of
+%GST_STATE_CHANGE_SUCCESS or %GST_STATE_CHANGE_FAILURE respectively.
+For elements that did not return %GST_STATE_CHANGE_ASYNC, this function
+returns the current and pending state immediately.
+This function returns %GST_STATE_CHANGE_NO_PREROLL if the element
+successfully changed its state but is not able to provide data yet.
+This mostly happens for live sources that only produce data in
+%GST_STATE_PLAYING. While the state change return is equivalent to
+%GST_STATE_CHANGE_SUCCESS, it is returned to the application to signal that
+some sink elements might not be able to complete their state change because
+an element is not producing data to complete the preroll. When setting the
+element to playing, the preroll will complete and playback will start.
+and the last state change succeeded, %GST_STATE_CHANGE_ASYNC if the
+element is still performing a state change or
+%GST_STATE_CHANGE_FAILURE if the last state change failed.
+MT safe.">
+        <return-value transfer-ownership="full">
+          <type name="StateChangeReturn" c:type="GstStateChangeReturn"/>
+        </return-value>
+        <parameters>
+          <parameter name="state"
+                     direction="out"
+                     transfer-ownership="full"
+                     doc="a pointer to #GstState to hold the state. Can be %NULL.">
+            <type name="State" c:type="GstState*"/>
+          </parameter>
+          <parameter name="pending"
+                     direction="out"
+                     transfer-ownership="full"
+                     doc="a pointer to #GstState to hold the pending state.">
+            <type name="State" c:type="GstState*"/>
+          </parameter>
+          <parameter name="timeout" transfer-ownership="none">
+            <type name="ClockTime" c:type="GstClockTime"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_state"
+              c:identifier="gst_element_set_state"
+              doc="Sets the state of the element. This function will try to set the
+requested state by going through all the intermediary states and calling
+the class&apos;s state change function for each.
+This function can return #GST_STATE_CHANGE_ASYNC, in which case the
+element will perform the remainder of the state change asynchronously in
+another thread.
+An application can use gst_element_get_state() to wait for the completion
+of the state change or it can wait for a state change message on the bus.
+State changes to %GST_STATE_READY or %GST_STATE_NULL never return
+#GST_STATE_CHANGE_ASYNC.
+MT safe.">
+        <return-value transfer-ownership="full">
+          <type name="StateChangeReturn" c:type="GstStateChangeReturn"/>
+        </return-value>
+        <parameters>
+          <parameter name="state" transfer-ownership="none">
+            <type name="State" c:type="GstState"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="abort_state"
+              c:identifier="gst_element_abort_state"
+              doc="Abort the state change of the element. This function is used
+by elements that do asynchronous state changes and find out
+something is wrong.
+This function should be called with the STATE_LOCK held.
+MT safe.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </method>
+      <method name="change_state"
+              c:identifier="gst_element_change_state"
+              doc="Perform @transition on @element.
+This function must be called with STATE_LOCK held and is mainly used
+internally.">
+        <return-value transfer-ownership="full">
+          <type name="StateChangeReturn" c:type="GstStateChangeReturn"/>
+        </return-value>
+        <parameters>
+          <parameter name="transition" transfer-ownership="none">
+            <type name="StateChange" c:type="GstStateChange"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="continue_state"
+              c:identifier="gst_element_continue_state"
+              doc="Commit the state change of the element and proceed to the next
+pending state if any. This function is used
+by elements that do asynchronous state changes.
+The core will normally call this method automatically when an
+element returned %GST_STATE_CHANGE_SUCCESS from the state change function.
+If after calling this method the element still has not reached
+the pending state, the next state change is performed.
+This method is used internally and should normally not be called by plugins
+or applications.
+MT safe.">
+        <return-value transfer-ownership="full">
+          <type name="StateChangeReturn" c:type="GstStateChangeReturn"/>
+        </return-value>
+        <parameters>
+          <parameter name="ret" transfer-ownership="none">
+            <type name="StateChangeReturn" c:type="GstStateChangeReturn"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="lost_state"
+              c:identifier="gst_element_lost_state"
+              doc="Brings the element to the lost state. This function calls
+gst_element_lost_state_full() with the new_base_time set to %TRUE.
+This function is used internally and should normally not be called from
+plugins or applications.
+MT safe.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </method>
+      <method name="lost_state_full"
+              c:identifier="gst_element_lost_state_full"
+              doc="Brings the element to the lost state. The current state of the
+element is copied to the pending state so that any call to
+gst_element_get_state() will return %GST_STATE_CHANGE_ASYNC.
+An ASYNC_START message is posted with indication to distribute a new
+base_time to the element when @new_base_time is %TRUE.
+If the element was PLAYING, it will go to PAUSED. The element
+will be restored to its PLAYING state by the parent pipeline when it
+prerolls again.
+This is mostly used for elements that lost their preroll buffer
+in the %GST_STATE_PAUSED or %GST_STATE_PLAYING state after a flush,
+they will go to their pending state again when a new preroll buffer is
+queued. This function can only be called when the element is currently
+not in error or an async state change.
+This function is used internally and should normally not be called from
+plugins or applications.
+MT safe."
+              version="0.10.24">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="new_base_time" transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_factory"
+              c:identifier="gst_element_get_factory"
+              doc="Retrieves the factory that was used to create this element.
+no refcounting is needed.">
+        <return-value transfer-ownership="full">
+          <type name="ElementFactory" c:type="GstElementFactory*"/>
+        </return-value>
+      </method>
+      <method name="implements_interface"
+              c:identifier="gst_element_implements_interface"
+              doc="Test whether the given element implements a certain interface of type
+iface_type, and test whether it is supported for this specific instance.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="iface_type"
+                     transfer-ownership="none"
+                     doc="type of the interface which we want to be implemented">
+            <type name="GType" c:type="GType"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="create_all_pads"
+              c:identifier="gst_element_create_all_pads"
+              doc="Creates a pad for each pad template that is always available.
+This function is only useful during object intialization of
+subclasses of #GstElement.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </method>
+      <method name="get_compatible_pad"
+              c:identifier="gst_element_get_compatible_pad"
+              doc="Looks for an unlinked pad to which the given pad can link. It is not
+guaranteed that linking the pads will work, though it should work in most
+cases.
+found. gst_object_unref() after usage.">
+        <return-value transfer-ownership="full">
+          <type name="Pad" c:type="GstPad*"/>
+        </return-value>
+        <parameters>
+          <parameter name="pad" transfer-ownership="none">
+            <type name="Pad" c:type="GstPad*"/>
+          </parameter>
+          <parameter name="caps" transfer-ownership="none">
+            <type name="Caps" c:type="GstCaps*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_compatible_pad_template"
+              c:identifier="gst_element_get_compatible_pad_template"
+              doc="Retrieves a pad template from @element that is compatible with @compattempl.
+Pads from compatible templates can be linked together.
+unreferencing is necessary.">
+        <return-value transfer-ownership="full">
+          <type name="PadTemplate" c:type="GstPadTemplate*"/>
+        </return-value>
+        <parameters>
+          <parameter name="compattempl" transfer-ownership="none">
+            <type name="PadTemplate" c:type="GstPadTemplate*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="link"
+              c:identifier="gst_element_link"
+              doc="Links @src to @dest. The link must be from source to
+destination; the other direction will not be tried. The function looks for
+existing pads that aren&apos;t linked yet. It will request new pads if necessary.
+Such pads need to be released manualy when unlinking.
+If multiple links are possible, only one is established.
+Make sure you have added your elements to a bin or pipeline with
+gst_bin_add() before trying to link them.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="dest" transfer-ownership="none">
+            <type name="Element" c:type="GstElement*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="link_many"
+              c:identifier="gst_element_link_many"
+              doc="Chain together a series of elements. Uses gst_element_link().
+Make sure you have added your elements to a bin or pipeline with
+gst_bin_add() before trying to link them.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="element_2" transfer-ownership="none">
+            <type name="Element" c:type="GstElement*"/>
+          </parameter>
+          <parameter transfer-ownership="none">
+            <varargs>
+            </varargs>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="link_filtered"
+              c:identifier="gst_element_link_filtered"
+              doc="Links @src to @dest using the given caps as filtercaps.
+The link must be from source to
+destination; the other direction will not be tried. The function looks for
+existing pads that aren&apos;t linked yet. It will request new pads if necessary.
+If multiple links are possible, only one is established.
+Make sure you have added your elements to a bin or pipeline with
+gst_bin_add() before trying to link them.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="dest" transfer-ownership="none">
+            <type name="Element" c:type="GstElement*"/>
+          </parameter>
+          <parameter name="filter" transfer-ownership="none">
+            <type name="Caps" c:type="GstCaps*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="unlink"
+              c:identifier="gst_element_unlink"
+              doc="Unlinks all source pads of the source element with all sink pads
+of the sink element to which they are linked.
+If the link has been made using gst_element_link(), it could have created an
+requestpad, which has to be released using gst_element_release_request_pad().">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="dest" transfer-ownership="none">
+            <type name="Element" c:type="GstElement*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="unlink_many"
+              c:identifier="gst_element_unlink_many"
+              doc="Unlinks a series of elements. Uses gst_element_unlink().">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="element_2" transfer-ownership="none">
+            <type name="Element" c:type="GstElement*"/>
+          </parameter>
+          <parameter transfer-ownership="none">
+            <varargs>
+            </varargs>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="link_pads"
+              c:identifier="gst_element_link_pads"
+              doc="or NULL for any pad.
+Links the two named pads of the source and destination elements.
+Side effect is that if one of the pads has no parent, it becomes a
+child of the parent of the other element.  If they have different
+parents, the link fails.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="srcpadname" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="dest" transfer-ownership="none">
+            <type name="Element" c:type="GstElement*"/>
+          </parameter>
+          <parameter name="destpadname" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="unlink_pads"
+              c:identifier="gst_element_unlink_pads"
+              doc="Unlinks the two named pads of the source and destination elements.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="srcpadname" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="dest" transfer-ownership="none">
+            <type name="Element" c:type="GstElement*"/>
+          </parameter>
+          <parameter name="destpadname" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="link_pads_filtered"
+              c:identifier="gst_element_link_pads_filtered"
+              doc="Links the two named pads of the source and destination elements. Side effect
+is that if one of the pads has no parent, it becomes a child of the parent of
+the other element. If they have different parents, the link fails. If @caps
+is not #NULL, makes sure that the caps of the link is a subset of @caps.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="srcpadname" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="dest" transfer-ownership="none">
+            <type name="Element" c:type="GstElement*"/>
+          </parameter>
+          <parameter name="destpadname" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="filter" transfer-ownership="none">
+            <type name="Caps" c:type="GstCaps*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="seek_simple" c:identifier="gst_element_seek_simple">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="format" transfer-ownership="none">
+            <type name="Format" c:type="GstFormat"/>
+          </parameter>
+          <parameter name="seek_flags" transfer-ownership="none">
+            <type name="SeekFlags" c:type="GstSeekFlags"/>
+          </parameter>
+          <parameter name="seek_pos" transfer-ownership="none">
+            <type name="int64" c:type="gint64"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="query_position"
+              c:identifier="gst_element_query_position"
+              doc="On return contains the #GstFormat used.
+Queries an element for the stream position.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="format" transfer-ownership="none">
+            <type name="Format" c:type="GstFormat*"/>
+          </parameter>
+          <parameter name="cur" direction="out" transfer-ownership="full">
+            <type name="int64" c:type="gint64*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="query_duration"
+              c:identifier="gst_element_query_duration"
+              doc="On return contains the #GstFormat used.
+Queries an element for the total stream duration.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="format"
+                     direction="inout"
+                     transfer-ownership="full"
+                     doc="a pointer to the #GstFormat asked for.">
+            <type name="Format" c:type="GstFormat*"/>
+          </parameter>
+          <parameter name="duration"
+                     direction="out"
+                     transfer-ownership="full"
+                     doc="A location in which to store the total duration, or NULL.">
+            <type name="int64" c:type="gint64*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="query_convert"
+              c:identifier="gst_element_query_convert"
+              doc="Queries an element to convert @src_val in @src_format to @dest_format.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="src_format" transfer-ownership="none">
+            <type name="Format" c:type="GstFormat"/>
+          </parameter>
+          <parameter name="src_val" transfer-ownership="none">
+            <type name="int64" c:type="gint64"/>
+          </parameter>
+          <parameter name="dest_format" transfer-ownership="none">
+            <type name="Format" c:type="GstFormat*"/>
+          </parameter>
+          <parameter name="dest_val" direction="out" transfer-ownership="full">
+            <type name="int64" c:type="gint64*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="found_tags_for_pad"
+              c:identifier="gst_element_found_tags_for_pad"
+              doc="Posts a message to the bus that new tags were found and pushes the
+tags as event. Takes ownership of the @list.
+This is a utility method for elements. Applications should use the
+#GstTagSetter interface.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="pad" transfer-ownership="none">
+            <type name="Pad" c:type="GstPad*"/>
+          </parameter>
+          <parameter name="list" transfer-ownership="none">
+            <type name="TagList" c:type="GstTagList*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="found_tags"
+              c:identifier="gst_element_found_tags"
+              doc="Posts a message to the bus that new tags were found, and pushes an event
+to all sourcepads. Takes ownership of the @list.
+This is a utility method for elements. Applications should use the
+#GstTagSetter interface.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="list" transfer-ownership="none">
+            <type name="TagList" c:type="GstTagList*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <field name="object">
+        <type name="Object" c:type="GstObject"/>
+      </field>
+      <field name="state_lock">
+        <type name="GLib.StaticRecMutex" c:type="GStaticRecMutex*"/>
+      </field>
+      <field name="state_cond">
+        <type name="GLib.Cond" c:type="GCond*"/>
+      </field>
+      <field name="state_cookie">
+        <type name="uint32" c:type="guint32"/>
+      </field>
+      <field name="current_state">
+        <type name="State" c:type="GstState"/>
+      </field>
+      <field name="next_state">
+        <type name="State" c:type="GstState"/>
+      </field>
+      <field name="pending_state">
+        <type name="State" c:type="GstState"/>
+      </field>
+      <field name="last_return">
+        <type name="StateChangeReturn" c:type="GstStateChangeReturn"/>
+      </field>
+      <field name="bus">
+        <type name="Bus" c:type="GstBus*"/>
+      </field>
+      <field name="clock">
+        <type name="Clock" c:type="GstClock*"/>
+      </field>
+      <field name="base_time">
+        <type name="ClockTimeDiff" c:type="GstClockTimeDiff"/>
+      </field>
+      <field name="numpads">
+        <type name="uint16" c:type="guint16"/>
+      </field>
+      <field name="pads">
+        <type name="GLib.List" c:type="GList*"/>
+      </field>
+      <field name="numsrcpads">
+        <type name="uint16" c:type="guint16"/>
+      </field>
+      <field name="srcpads">
+        <type name="GLib.List" c:type="GList*"/>
+      </field>
+      <field name="numsinkpads">
+        <type name="uint16" c:type="guint16"/>
+      </field>
+      <field name="sinkpads">
+        <type name="GLib.List" c:type="GList*"/>
+      </field>
+      <field name="pads_cookie">
+        <type name="uint32" c:type="guint32"/>
+      </field>
+      <union name="abidata" c:type="abidata">
+        <record name="ABI" c:type="ABI">
+          <field name="target_state" writable="1">
+            <type name="State" c:type="GstState"/>
+          </field>
+          <field name="start_time" writable="1">
+            <type name="ClockTime" c:type="GstClockTime"/>
+          </field>
+        </record>
+        <field name="_gst_reserved" writable="1">
+          <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+            <type name="any"/>
+          </array>
+        </field>
+      </union>
+      <glib:signal name="no-more-pads"
+                   doc="This signals that the element will not generate more dynamic pads.">
+        <return-value transfer-ownership="full">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </glib:signal>
+      <glib:signal name="pad-added"
+                   doc="a new #GstPad has been added to the element.">
+        <return-value transfer-ownership="full">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="new_pad" transfer-ownership="none">
+            <type name="Pad" c:type="GstPad"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="pad-removed"
+                   doc="a #GstPad has been removed from the element">
+        <return-value transfer-ownership="full">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="old_pad" transfer-ownership="none">
+            <type name="Pad" c:type="GstPad"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+    </class>
+    <record name="ElementClass"
+            c:type="GstElementClass"
+            glib:is-gtype-struct-for="Element"
+            doc="GStreamer element class. Override the vmethods to implement the element
+functionality.">
+      <field name="parent_class">
+        <type name="ObjectClass" c:type="GstObjectClass"/>
+      </field>
+      <field name="details">
+        <type name="ElementDetails" c:type="GstElementDetails"/>
+      </field>
+      <field name="elementfactory">
+        <type name="ElementFactory" c:type="GstElementFactory*"/>
+      </field>
+      <field name="padtemplates">
+        <type name="GLib.List" c:type="GList*"/>
+      </field>
+      <field name="numpadtemplates">
+        <type name="int" c:type="gint"/>
+      </field>
+      <field name="pad_templ_cookie">
+        <type name="uint32" c:type="guint32"/>
+      </field>
+      <field name="pad_added">
+        <callback name="pad_added" c:type="pad_added">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="element" transfer-ownership="none">
+              <type name="Element" c:type="GstElement*"/>
+            </parameter>
+            <parameter name="pad" transfer-ownership="none">
+              <type name="Pad" c:type="GstPad*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="pad_removed">
+        <callback name="pad_removed" c:type="pad_removed">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="element" transfer-ownership="none">
+              <type name="Element" c:type="GstElement*"/>
+            </parameter>
+            <parameter name="pad" transfer-ownership="none">
+              <type name="Pad" c:type="GstPad*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="no_more_pads">
+        <callback name="no_more_pads" c:type="no_more_pads">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="element" transfer-ownership="none">
+              <type name="Element" c:type="GstElement*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="request_new_pad">
+        <callback name="request_new_pad" c:type="request_new_pad">
+          <return-value transfer-ownership="full">
+            <type name="Pad" c:type="GstPad*"/>
+          </return-value>
+          <parameters>
+            <parameter name="element" transfer-ownership="none">
+              <type name="Element" c:type="GstElement*"/>
+            </parameter>
+            <parameter name="templ" transfer-ownership="none">
+              <type name="PadTemplate" c:type="GstPadTemplate*"/>
+            </parameter>
+            <parameter name="name" transfer-ownership="none">
+              <type name="utf8" c:type="gchar*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="release_pad">
+        <callback name="release_pad" c:type="release_pad">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="element" transfer-ownership="none">
+              <type name="Element" c:type="GstElement*"/>
+            </parameter>
+            <parameter name="pad" transfer-ownership="none">
+              <type name="Pad" c:type="GstPad*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="get_state">
+        <callback name="get_state" c:type="get_state">
+          <return-value transfer-ownership="full">
+            <type name="StateChangeReturn" c:type="GstStateChangeReturn"/>
+          </return-value>
+          <parameters>
+            <parameter name="element" transfer-ownership="none">
+              <type name="Element" c:type="GstElement*"/>
+            </parameter>
+            <parameter name="state" transfer-ownership="none">
+              <type name="State" c:type="GstState*"/>
+            </parameter>
+            <parameter name="pending" transfer-ownership="none">
+              <type name="State" c:type="GstState*"/>
+            </parameter>
+            <parameter name="timeout" transfer-ownership="none">
+              <type name="ClockTime" c:type="GstClockTime"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="set_state">
+        <callback name="set_state" c:type="set_state">
+          <return-value transfer-ownership="full">
+            <type name="StateChangeReturn" c:type="GstStateChangeReturn"/>
+          </return-value>
+          <parameters>
+            <parameter name="element" transfer-ownership="none">
+              <type name="Element" c:type="GstElement*"/>
+            </parameter>
+            <parameter name="state" transfer-ownership="none">
+              <type name="State" c:type="GstState"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="change_state">
+        <callback name="change_state" c:type="change_state">
+          <return-value transfer-ownership="full">
+            <type name="StateChangeReturn" c:type="GstStateChangeReturn"/>
+          </return-value>
+          <parameters>
+            <parameter name="element" transfer-ownership="none">
+              <type name="Element" c:type="GstElement*"/>
+            </parameter>
+            <parameter name="transition" transfer-ownership="none">
+              <type name="StateChange" c:type="GstStateChange"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="set_bus">
+        <callback name="set_bus" c:type="set_bus">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="element" transfer-ownership="none">
+              <type name="Element" c:type="GstElement*"/>
+            </parameter>
+            <parameter name="bus" transfer-ownership="none">
+              <type name="Bus" c:type="GstBus*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="provide_clock">
+        <callback name="provide_clock" c:type="provide_clock">
+          <return-value transfer-ownership="full">
+            <type name="Clock" c:type="GstClock*"/>
+          </return-value>
+          <parameters>
+            <parameter name="element" transfer-ownership="none">
+              <type name="Element" c:type="GstElement*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="set_clock">
+        <callback name="set_clock" c:type="set_clock">
+          <return-value transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="element" transfer-ownership="none">
+              <type name="Element" c:type="GstElement*"/>
+            </parameter>
+            <parameter name="clock" transfer-ownership="none">
+              <type name="Clock" c:type="GstClock*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="get_index">
+        <callback name="get_index" c:type="get_index">
+          <return-value transfer-ownership="full">
+            <type name="Index" c:type="GstIndex*"/>
+          </return-value>
+          <parameters>
+            <parameter name="element" transfer-ownership="none">
+              <type name="Element" c:type="GstElement*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="set_index">
+        <callback name="set_index" c:type="set_index">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="element" transfer-ownership="none">
+              <type name="Element" c:type="GstElement*"/>
+            </parameter>
+            <parameter name="index" transfer-ownership="none">
+              <type name="Index" c:type="GstIndex*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="send_event">
+        <callback name="send_event" c:type="send_event">
+          <return-value transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="element" transfer-ownership="none">
+              <type name="Element" c:type="GstElement*"/>
+            </parameter>
+            <parameter name="event" transfer-ownership="none">
+              <type name="Event" c:type="GstEvent*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="get_query_types">
+        <callback name="get_query_types" c:type="get_query_types">
+          <return-value transfer-ownership="none">
+            <type name="QueryType" c:type="GstQueryType*"/>
+          </return-value>
+          <parameters>
+            <parameter name="element" transfer-ownership="none">
+              <type name="Element" c:type="GstElement*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="query">
+        <callback name="query" c:type="query">
+          <return-value transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="element" transfer-ownership="none">
+              <type name="Element" c:type="GstElement*"/>
+            </parameter>
+            <parameter name="query" transfer-ownership="none">
+              <type name="Query" c:type="GstQuery*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="_gst_reserved">
+        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+          <type name="any"/>
+        </array>
+      </field>
+      <method name="add_pad_template"
+              c:identifier="gst_element_class_add_pad_template"
+              doc="Adds a padtemplate to an element class. This is mainly used in the _base_init
+functions of classes.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="templ" transfer-ownership="none">
+            <type name="PadTemplate" c:type="GstPadTemplate*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_pad_template"
+              c:identifier="gst_element_class_get_pad_template"
+              doc="Retrieves a padtemplate from @element_class with the given name.
+&lt;note&gt;If you use this function in the #GInstanceInitFunc of an object class
+that has subclasses, make sure to pass the g_class parameter of the
+#GInstanceInitFunc here.&lt;/note&gt;
+No unreferencing is necessary.">
+        <return-value transfer-ownership="full">
+          <type name="PadTemplate" c:type="GstPadTemplate*"/>
+        </return-value>
+        <parameters>
+          <parameter name="name" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_pad_template_list"
+              c:identifier="gst_element_class_get_pad_template_list"
+              doc="Retrieves a list of the pad templates associated with @element_class. The
+list must not be modified by the calling code.
+&lt;note&gt;If you use this function in the #GInstanceInitFunc of an object class
+that has subclasses, make sure to pass the g_class parameter of the
+#GInstanceInitFunc here.&lt;/note&gt;">
+        <return-value transfer-ownership="full">
+          <type name="GLib.List" c:type="GList*"/>
+        </return-value>
+      </method>
+      <method name="set_details"
+              c:identifier="gst_element_class_set_details"
+              doc="Sets the detailed information for a #GstElementClass.
+&lt;note&gt;This function is for use in _base_init functions only.&lt;/note&gt;
+The @details are copied."
+              deprecated="Use gst_element_class_set_details_simple() instead.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="details" transfer-ownership="none">
+            <type name="ElementDetails" c:type="GstElementDetails*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_details_simple"
+              c:identifier="gst_element_class_set_details_simple"
+              doc="separated with slashes (&apos;/&apos;). See draft-klass.txt of the design docs
+Sets the detailed information for a #GstElementClass. Simpler version of
+gst_element_class_set_details() that generates less linker overhead.
+&lt;note&gt;This function is for use in _base_init functions only.&lt;/note&gt;
+The detail parameter strings are copied into the #GstElementDetails for
+the element class."
+              version="0.10.14">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="longname" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="classification" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="description" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="author"
+                     transfer-ownership="none"
+                     doc="Use \n to separate">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="install_std_props"
+              c:identifier="gst_element_class_install_std_props"
+              doc="in a NULL terminated
+further &apos;name&apos;, &apos;id&apos;, &apos;flags&apos; triplets and terminated by NULL.
+Adds a list of standardized properties with types to the @klass.
+the id is for the property switch in your get_prop method, and
+the flags determine readability / writeability.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="first_name" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter transfer-ownership="none">
+            <varargs>
+            </varargs>
+          </parameter>
+        </parameters>
+      </method>
+    </record>
+    <record name="ElementDetails"
+            c:type="GstElementDetails"
+            doc="separated with slashes (&apos;/&apos;). See draft-klass.txt of the design docs
+for more details and common types
+This struct defines the public information about a #GstElement. It contains
+meta-data about the element that is mostly for the benefit of editors.
+The @klass member can be used by applications to filter elements based
+on functionality.">
+      <field name="longname" writable="1">
+        <type name="utf8" c:type="gchar*"/>
+      </field>
+      <field name="klass" writable="1">
+        <type name="utf8" c:type="gchar*"/>
+      </field>
+      <field name="description" writable="1">
+        <type name="utf8" c:type="gchar*"/>
+      </field>
+      <field name="author" writable="1">
+        <type name="utf8" c:type="gchar*"/>
+      </field>
+      <field name="_gst_reserved" writable="1">
+        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+          <type name="any"/>
+        </array>
+      </field>
+    </record>
+    <class name="ElementFactory"
+           c:type="GstElementFactory"
+           doc="The opaque #GstElementFactory data structure."
+           parent="PluginFeature"
+           glib:type-name="GstElementFactory"
+           glib:get-type="gst_element_factory_get_type"
+           glib:type-struct="ElementFactoryClass">
+      <function name="find"
+                c:identifier="gst_element_factory_find"
+                doc="Search for an element factory of the given name. Refs the returned
+element factory; caller is responsible for unreffing.">
+        <return-value transfer-ownership="full">
+          <type name="ElementFactory" c:type="GstElementFactory*"/>
+        </return-value>
+        <parameters>
+          <parameter name="name" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </function>
+      <function name="make"
+                c:identifier="gst_element_factory_make"
+                doc="Create a new element of the type defined by the given element factory.
+If name is NULL, then the element will receive a guaranteed unique name,
+consisting of the element factory name and a number.
+If name is given, it will be given the name supplied.">
+        <return-value transfer-ownership="full">
+          <type name="Element" c:type="GstElement*"/>
+        </return-value>
+        <parameters>
+          <parameter name="factoryname" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="name" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </function>
+      <method name="get_element_type"
+              c:identifier="gst_element_factory_get_element_type"
+              doc="Get the #GType for elements managed by this factory. The type can
+only be retrieved if the element factory is loaded, which can be
+assured with gst_plugin_feature_load().
+the factory is not loaded.">
+        <return-value transfer-ownership="none">
+          <type name="GType" c:type="GType"/>
+        </return-value>
+      </method>
+      <method name="get_longname"
+              c:identifier="gst_element_factory_get_longname"
+              doc="Gets the longname for this factory">
+        <return-value transfer-ownership="none">
+          <type name="utf8" c:type="gchar*"/>
+        </return-value>
+      </method>
+      <method name="get_klass"
+              c:identifier="gst_element_factory_get_klass"
+              doc="Gets the class for this factory.">
+        <return-value transfer-ownership="none">
+          <type name="utf8" c:type="gchar*"/>
+        </return-value>
+      </method>
+      <method name="get_description"
+              c:identifier="gst_element_factory_get_description"
+              doc="Gets the description for this factory.">
+        <return-value transfer-ownership="none">
+          <type name="utf8" c:type="gchar*"/>
+        </return-value>
+      </method>
+      <method name="get_author"
+              c:identifier="gst_element_factory_get_author"
+              doc="Gets the author for this factory.">
+        <return-value transfer-ownership="none">
+          <type name="utf8" c:type="gchar*"/>
+        </return-value>
+      </method>
+      <method name="get_num_pad_templates"
+              c:identifier="gst_element_factory_get_num_pad_templates"
+              doc="Gets the number of pad_templates in this factory.">
+        <return-value transfer-ownership="none">
+          <type name="uint" c:type="guint"/>
+        </return-value>
+      </method>
+      <method name="get_static_pad_templates"
+              c:identifier="gst_element_factory_get_static_pad_templates"
+              doc="Gets the #GList of #GstStaticPadTemplate for this factory.">
+        <return-value transfer-ownership="none">
+          <type name="GLib.List" c:type="GList*"/>
+        </return-value>
+      </method>
+      <method name="get_uri_type"
+              c:identifier="gst_element_factory_get_uri_type"
+              doc="Gets the type of URIs the element supports or #GST_URI_UNKNOWN if none.">
+        <return-value transfer-ownership="none">
+          <type name="int" c:type="gint"/>
+        </return-value>
+      </method>
+      <method name="get_uri_protocols"
+              c:identifier="gst_element_factory_get_uri_protocols"
+              doc="Gets a NULL-terminated array of protocols this element supports or NULL if
+no protocols are supported. You may not change the contents of the returned
+array, as it is still owned by the element factory. Use g_strdupv() to
+make a copy of the protocol string array if you need to.">
+        <return-value transfer-ownership="full">
+          <array c:type="gchar**">
+            <type name="utf8"/>
+          </array>
+        </return-value>
+      </method>
+      <method name="has_interface"
+              c:identifier="gst_element_factory_has_interface"
+              doc="Check if @factory implements the interface with name @interfacename."
+              version="0.10.14">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="interfacename" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="create"
+              c:identifier="gst_element_factory_create"
+              doc="Create a new element of the type defined by the given elementfactory.
+It will be given the name supplied, since all elements require a name as
+their first argument.">
+        <return-value transfer-ownership="full">
+          <type name="Element" c:type="GstElement*"/>
+        </return-value>
+        <parameters>
+          <parameter name="name" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="can_src_caps"
+              c:identifier="gst_element_factory_can_src_caps"
+              doc="Checks if the factory can source the given capability.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="caps" transfer-ownership="none">
+            <type name="Caps" c:type="GstCaps*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="can_sink_caps"
+              c:identifier="gst_element_factory_can_sink_caps"
+              doc="Checks if the factory can sink the given capability.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="caps" transfer-ownership="none">
+            <type name="Caps" c:type="GstCaps*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <field name="parent">
+        <type name="PluginFeature" c:type="GstPluginFeature"/>
+      </field>
+      <field name="type">
+        <type name="GType" c:type="GType"/>
+      </field>
+      <field name="details">
+        <type name="ElementDetails" c:type="GstElementDetails"/>
+      </field>
+      <field name="staticpadtemplates">
+        <type name="GLib.List" c:type="GList*"/>
+      </field>
+      <field name="numpadtemplates">
+        <type name="uint" c:type="guint"/>
+      </field>
+      <field name="uri_type">
+        <type name="uint" c:type="guint"/>
+      </field>
+      <field name="uri_protocols">
+        <type name="utf8" c:type="gchar**"/>
+      </field>
+      <field name="interfaces">
+        <type name="GLib.List" c:type="GList*"/>
+      </field>
+      <field name="_gst_reserved">
+        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+          <type name="any"/>
+        </array>
+      </field>
+    </class>
+    <record name="ElementFactoryClass"
+            c:type="GstElementFactoryClass"
+            glib:is-gtype-struct-for="ElementFactory">
+      <field name="parent_class">
+        <type name="PluginFeatureClass" c:type="GstPluginFeatureClass"/>
+      </field>
+      <field name="_gst_reserved">
+        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+          <type name="any"/>
+        </array>
+      </field>
+    </record>
+    <bitfield name="ElementFlags"
+              doc="gst_bin_remove() on a child already being removed immediately returns FALSE
+The standard flags that an element may have."
+              c:type="GstElementFlags">
+      <member name="locked_state"
+              value="16"
+              c:identifier="GST_ELEMENT_LOCKED_STATE"/>
+      <member name="is_sink" value="32" c:identifier="GST_ELEMENT_IS_SINK"/>
+      <member name="unparenting"
+              value="64"
+              c:identifier="GST_ELEMENT_UNPARENTING"/>
+      <member name="flag_last"
+              value="1048576"
+              c:identifier="GST_ELEMENT_FLAG_LAST"/>
+    </bitfield>
+    <record name="Event" c:type="GstEvent" doc="A #GstEvent.">
+      <field name="mini_object" writable="1">
+        <type name="MiniObject" c:type="GstMiniObject"/>
+      </field>
+      <field name="type" writable="1">
+        <type name="EventType" c:type="GstEventType"/>
+      </field>
+      <field name="timestamp" writable="1">
+        <type name="uint64" c:type="guint64"/>
+      </field>
+      <field name="src" writable="1">
+        <type name="Object" c:type="GstObject*"/>
+      </field>
+      <field name="structure" writable="1">
+        <type name="Structure" c:type="GstStructure*"/>
+      </field>
+      <union name="abidata" c:type="abidata">
+        <field name="seqnum" writable="1">
+          <type name="uint32" c:type="guint32"/>
+        </field>
+        <field name="_gst_reserved" writable="1">
+          <type name="any" c:type="gpointer"/>
+        </field>
+      </union>
+      <constructor name="new_custom"
+                   c:identifier="gst_event_new_custom"
+                   doc="the structure.
+Create a new custom-typed event. This can be used for anything not
+handled by other event-specific functions to pass an event to another
+element.
+Make sure to allocate an event type with the #GST_EVENT_MAKE_TYPE macro,
+assigning a free number and filling in the correct direction and
+serialization flags.
+New custom events can also be created by subclassing the event type if
+needed.">
+        <return-value transfer-ownership="full">
+          <type name="Event" c:type="GstEvent*"/>
+        </return-value>
+        <parameters>
+          <parameter name="type" transfer-ownership="none">
+            <type name="EventType" c:type="GstEventType"/>
+          </parameter>
+          <parameter name="structure" transfer-ownership="none">
+            <type name="Structure" c:type="GstStructure*"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <constructor name="new_flush_start"
+                   c:identifier="gst_event_new_flush_start"
+                   doc="Allocate a new flush start event. The flush start event can be sent
+upstream and downstream and travels out-of-bounds with the dataflow.
+It marks pads as being flushing and will make them return
+#GST_FLOW_WRONG_STATE when used for data flow with gst_pad_push(),
+gst_pad_chain(), gst_pad_alloc_buffer(), gst_pad_get_range() and
+gst_pad_pull_range(). Any event (except a #GST_EVENT_FLUSH_STOP) received
+on a flushing pad will return %FALSE immediately.
+Elements should unlock any blocking functions and exit their streaming
+functions as fast as possible when this event is received.
+This event is typically generated after a seek to flush out all queued data
+in the pipeline so that the new media is played as soon as possible.">
+        <return-value transfer-ownership="full">
+          <type name="Event" c:type="GstEvent*"/>
+        </return-value>
+      </constructor>
+      <constructor name="new_flush_stop"
+                   c:identifier="gst_event_new_flush_stop"
+                   doc="Allocate a new flush stop event. The flush stop event can be sent
+upstream and downstream and travels serialized with the dataflow.
+It is typically sent after sending a FLUSH_START event to make the
+pads accept data again.
+Elements can process this event synchronized with the dataflow since
+the preceeding FLUSH_START event stopped the dataflow.
+This event is typically generated to complete a seek and to resume
+dataflow.">
+        <return-value transfer-ownership="full">
+          <type name="Event" c:type="GstEvent*"/>
+        </return-value>
+      </constructor>
+      <constructor name="new_eos"
+                   c:identifier="gst_event_new_eos"
+                   doc="Create a new EOS event. The eos event can only travel downstream
+synchronized with the buffer flow. Elements that receive the EOS
+event on a pad can return #GST_FLOW_UNEXPECTED as a #GstFlowReturn
+when data after the EOS event arrives.
+The EOS event will travel down to the sink elements in the pipeline
+which will then post the #GST_MESSAGE_EOS on the bus after they have
+finished playing any buffered data.
+When all sinks have posted an EOS message, an EOS message is
+forwarded to the application.
+The EOS event itself will not cause any state transitions of the pipeline.">
+        <return-value transfer-ownership="full">
+          <type name="Event" c:type="GstEvent*"/>
+        </return-value>
+      </constructor>
+      <constructor name="new_new_segment"
+                   c:identifier="gst_event_new_new_segment"
+                   doc="Allocate a new newsegment event with the given format/values tripplets
+This method calls gst_event_new_new_segment_full() passing a default
+value of 1.0 for applied_rate">
+        <return-value transfer-ownership="full">
+          <type name="Event" c:type="GstEvent*"/>
+        </return-value>
+        <parameters>
+          <parameter name="update" transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </parameter>
+          <parameter name="rate" transfer-ownership="none">
+            <type name="double" c:type="gdouble"/>
+          </parameter>
+          <parameter name="format" transfer-ownership="none">
+            <type name="Format" c:type="GstFormat"/>
+          </parameter>
+          <parameter name="start" transfer-ownership="none">
+            <type name="int64" c:type="gint64"/>
+          </parameter>
+          <parameter name="stop" transfer-ownership="none">
+            <type name="int64" c:type="gint64"/>
+          </parameter>
+          <parameter name="position" transfer-ownership="none">
+            <type name="int64" c:type="gint64"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <constructor name="new_new_segment_full"
+                   c:identifier="gst_event_new_new_segment_full"
+                   doc="Allocate a new newsegment event with the given format/values triplets.
+The newsegment event marks the range of buffers to be processed. All
+data not within the segment range is not to be processed. This can be
+used intelligently by plugins to apply more efficient methods of skipping
+unneeded data. The valid range is expressed with the @start and @stop
+values.
+The position value of the segment is used in conjunction with the start
+value to convert the buffer timestamps into the stream time. This is
+usually done in sinks to report the current stream_time.
+is a valid @stop given, it must be greater or equal the @start, including
+when the indicated playback @rate is &lt; 0.
+The @applied_rate value provides information about any rate adjustment that
+has already been made to the timestamps and content on the buffers of the
+stream. (@rate * @applied_rate) should always equal the rate that has been
+requested for playback. For example, if an element has an input segment
+with intended playback @rate of 2.0 and applied_rate of 1.0, it can adjust
+incoming timestamps and buffer content by half and output a newsegment event
+with @rate of 1.0 and @applied_rate of 2.0
+After a newsegment event, the buffer stream time is calculated with:
+position + (TIMESTAMP(buf) - start) * ABS (rate * applied_rate)"
+                   version="0.10.6">
+        <return-value transfer-ownership="full">
+          <type name="Event" c:type="GstEvent*"/>
+        </return-value>
+        <parameters>
+          <parameter name="update" transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </parameter>
+          <parameter name="rate" transfer-ownership="none">
+            <type name="double" c:type="gdouble"/>
+          </parameter>
+          <parameter name="applied_rate" transfer-ownership="none">
+            <type name="double" c:type="gdouble"/>
+          </parameter>
+          <parameter name="format" transfer-ownership="none">
+            <type name="Format" c:type="GstFormat"/>
+          </parameter>
+          <parameter name="start" transfer-ownership="none">
+            <type name="int64" c:type="gint64"/>
+          </parameter>
+          <parameter name="stop" transfer-ownership="none">
+            <type name="int64" c:type="gint64"/>
+          </parameter>
+          <parameter name="position" transfer-ownership="none">
+            <type name="int64" c:type="gint64"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <constructor name="new_tag"
+                   c:identifier="gst_event_new_tag"
+                   doc="Generates a metadata tag event from the given @taglist.">
+        <return-value transfer-ownership="full">
+          <type name="Event" c:type="GstEvent*"/>
+        </return-value>
+        <parameters>
+          <parameter name="taglist" transfer-ownership="none">
+            <type name="TagList" c:type="GstTagList*"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <constructor name="new_buffer_size"
+                   c:identifier="gst_event_new_buffer_size"
+                   doc="Create a new buffersize event. The event is sent downstream and notifies
+elements that they should provide a buffer of the specified dimensions.
+When the @async flag is set, a thread boundary is prefered.">
+        <return-value transfer-ownership="full">
+          <type name="Event" c:type="GstEvent*"/>
+        </return-value>
+        <parameters>
+          <parameter name="format" transfer-ownership="none">
+            <type name="Format" c:type="GstFormat"/>
+          </parameter>
+          <parameter name="minsize" transfer-ownership="none">
+            <type name="int64" c:type="gint64"/>
+          </parameter>
+          <parameter name="maxsize" transfer-ownership="none">
+            <type name="int64" c:type="gint64"/>
+          </parameter>
+          <parameter name="async" transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <constructor name="new_qos"
+                   c:identifier="gst_event_new_qos"
+                   doc="Allocate a new qos event with the given values.
+The QOS event is generated in an element that wants an upstream
+element to either reduce or increase its rate because of
+high/low CPU load or other resource usage such as network performance.
+Typically sinks generate these events for each buffer they receive.
+element that generated the QoS event (usually the sink). The value is
+generally computed based on more long term statistics about the streams
+timestamps compared to the clock.
+A value &lt; 1.0 indicates that the upstream element is producing data faster
+than real-time. A value &gt; 1.0 indicates that the upstream element is not
+producing data fast enough. 1.0 is the ideal @proportion value. The
+proportion value can safely be used to lower or increase the quality of
+the element.
+buffer that caused the element to generate the QOS event. A negative value
+means that the buffer with @timestamp arrived in time. A positive value
+indicates how late the buffer with @timestamp was.
+to generate the QOS event. It is expressed in running time and thus an ever
+increasing value.
+The upstream element can use the @diff and @timestamp values to decide
+whether to process more buffers. For possitive @diff, all buffers with
+timestamp &lt;= @timestamp + @diff will certainly arrive late in the sink
+as well. A (negative) @diff value so that @timestamp + @diff would yield a
+result smaller than 0 is not allowed.
+The application can use general event probes to intercept the QoS
+event and implement custom application specific QoS handling.">
+        <return-value transfer-ownership="full">
+          <type name="Event" c:type="GstEvent*"/>
+        </return-value>
+        <parameters>
+          <parameter name="proportion" transfer-ownership="none">
+            <type name="double" c:type="gdouble"/>
+          </parameter>
+          <parameter name="diff" transfer-ownership="none">
+            <type name="ClockTimeDiff" c:type="GstClockTimeDiff"/>
+          </parameter>
+          <parameter name="timestamp" transfer-ownership="none">
+            <type name="ClockTime" c:type="GstClockTime"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <constructor name="new_seek"
+                   c:identifier="gst_event_new_seek"
+                   doc="Allocate a new seek event with the given parameters.
+The seek event configures playback of the pipeline between @start to @stop
+at the speed given in @rate, also called a playback segment.
+The @start and @stop values are expressed in @format.
+A @rate of 1.0 means normal playback rate, 2.0 means double speed.
+Negatives values means backwards playback. A value of 0.0 for the
+rate is not allowed and should be accomplished instead by PAUSING the
+pipeline.
+A pipeline has a default playback segment configured with a start
+position of 0, a stop position of -1 and a rate of 1.0. The currently
+configured playback segment can be queried with #GST_QUERY_SEGMENT.
+start and stop fields in playback segment. Adjustments can be made relative
+or absolute to the last configured values. A type of #GST_SEEK_TYPE_NONE
+means that the position should not be updated.
+When the rate is positive and @start has been updated, playback will start
+from the newly configured start position.
+For negative rates, playback will start from the newly configured stop
+position (if any). If the stop position if updated, it must be different from
+-1 for negative rates.
+It is not possible to seek relative to the current playback position, to do
+this, PAUSE the pipeline, query the current playback position with
+#GST_QUERY_POSITION and update the playback segment current position with a
+#GST_SEEK_TYPE_SET to the desired position.">
+        <return-value transfer-ownership="full">
+          <type name="Event" c:type="GstEvent*"/>
+        </return-value>
+        <parameters>
+          <parameter name="rate" transfer-ownership="none">
+            <type name="double" c:type="gdouble"/>
+          </parameter>
+          <parameter name="format" transfer-ownership="none">
+            <type name="Format" c:type="GstFormat"/>
+          </parameter>
+          <parameter name="flags" transfer-ownership="none">
+            <type name="SeekFlags" c:type="GstSeekFlags"/>
+          </parameter>
+          <parameter name="start_type" transfer-ownership="none">
+            <type name="SeekType" c:type="GstSeekType"/>
+          </parameter>
+          <parameter name="start" transfer-ownership="none">
+            <type name="int64" c:type="gint64"/>
+          </parameter>
+          <parameter name="stop_type" transfer-ownership="none">
+            <type name="SeekType" c:type="GstSeekType"/>
+          </parameter>
+          <parameter name="stop" transfer-ownership="none">
+            <type name="int64" c:type="gint64"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <constructor name="new_navigation"
+                   c:identifier="gst_event_new_navigation"
+                   doc="structure.
+Create a new navigation event from the given description.">
+        <return-value transfer-ownership="full">
+          <type name="Event" c:type="GstEvent*"/>
+        </return-value>
+        <parameters>
+          <parameter name="structure" transfer-ownership="none">
+            <type name="Structure" c:type="GstStructure*"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <constructor name="new_latency"
+                   c:identifier="gst_event_new_latency"
+                   doc="Create a new latency event. The event is sent upstream from the sinks and
+notifies elements that they should add an additional @latency to the
+running time before synchronising against the clock.
+The latency is mostly used in live sinks and is always expressed in
+the time format."
+                   version="0.10.12">
+        <return-value transfer-ownership="full">
+          <type name="Event" c:type="GstEvent*"/>
+        </return-value>
+        <parameters>
+          <parameter name="latency" transfer-ownership="none">
+            <type name="ClockTime" c:type="GstClockTime"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <constructor name="new_step"
+                   c:identifier="gst_event_new_step"
+                   doc="Create a new step event. The purpose of the step event is to instruct a sink
+to skip @amount (expressed in @format) of media. It can be used to implement
+stepping through the video frame by frame or for doing fast trick modes.
+A rate of &lt;= 0.0 is not allowed, pause the pipeline or reverse the playback
+direction of the pipeline to get the same effect.
+The @flush flag will clear any pending data in the pipeline before starting
+the step operation.
+The @intermediate flag instructs the pipeline that this step operation is
+part of a larger step operation."
+                   version="0.10.24">
+        <return-value transfer-ownership="full">
+          <type name="Event" c:type="GstEvent*"/>
+        </return-value>
+        <parameters>
+          <parameter name="format" transfer-ownership="none">
+            <type name="Format" c:type="GstFormat"/>
+          </parameter>
+          <parameter name="amount" transfer-ownership="none">
+            <type name="uint64" c:type="guint64"/>
+          </parameter>
+          <parameter name="rate" transfer-ownership="none">
+            <type name="double" c:type="gdouble"/>
+          </parameter>
+          <parameter name="flush" transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </parameter>
+          <parameter name="intermediate" transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <constructor name="new_sink_message"
+                   c:identifier="gst_event_new_sink_message"
+                   doc="Create a new sink-message event. The purpose of the sink-message event is
+to instruct a sink to post the message contained in the event synchronized
+with the stream."
+                   version="0.10.26">
+        <return-value transfer-ownership="full">
+          <type name="Event" c:type="GstEvent*"/>
+        </return-value>
+        <parameters>
+          <parameter name="msg" transfer-ownership="none">
+            <type name="Message" c:type="GstMessage*"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <method name="get_structure"
+              c:identifier="gst_event_get_structure"
+              doc="Access the structure of the event.
+owned by the event, which means that you should not free it and
+that the pointer becomes invalid when you free the event.
+MT safe.">
+        <return-value transfer-ownership="none">
+          <type name="Structure" c:type="GstStructure*"/>
+        </return-value>
+      </method>
+      <method name="has_name"
+              c:identifier="gst_event_has_name"
+              doc="Checks if @event has the given @name. This function is usually used to
+check the name of a custom event."
+              version="0.10.20">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="name" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_seqnum"
+              c:identifier="gst_event_get_seqnum"
+              doc="Retrieve the sequence number of a event.
+Events have ever-incrementing sequence numbers, which may also be set
+explicitly via gst_event_set_seqnum(). Sequence numbers are typically used to
+indicate that a event corresponds to some other set of events or messages,
+for example an EOS event corresponding to a SEEK event. It is considered good
+practice to make this correspondence when possible, though it is not
+required.
+Note that events and messages share the same sequence number incrementor;
+two events or messages will never not have the same sequence number unless
+that correspondence was made explicitly.
+MT safe."
+              version="0.10.22">
+        <return-value transfer-ownership="none">
+          <type name="uint32" c:type="guint32"/>
+        </return-value>
+      </method>
+      <method name="set_seqnum"
+              c:identifier="gst_event_set_seqnum"
+              doc="Set the sequence number of a event.
+This function might be called by the creator of a event to indicate that the
+event relates to other events or messages. See gst_event_get_seqnum() for
+more information.
+MT safe."
+              version="0.10.22">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="seqnum" transfer-ownership="none">
+            <type name="uint32" c:type="guint32"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="parse_new_segment"
+              c:identifier="gst_event_parse_new_segment"
+              doc="Get the update flag, rate, format, start, stop and position in the
+newsegment event. In general, gst_event_parse_new_segment_full() should
+be used instead of this, to also retrieve the applied_rate value of the
+segment. See gst_event_new_new_segment_full() for a full description
+of the newsegment event.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="update" direction="out" transfer-ownership="full">
+            <type name="boolean" c:type="gboolean*"/>
+          </parameter>
+          <parameter name="rate" direction="out" transfer-ownership="full">
+            <type name="double" c:type="gdouble*"/>
+          </parameter>
+          <parameter name="format" transfer-ownership="none">
+            <type name="Format" c:type="GstFormat*"/>
+          </parameter>
+          <parameter name="start" direction="out" transfer-ownership="full">
+            <type name="int64" c:type="gint64*"/>
+          </parameter>
+          <parameter name="stop" direction="out" transfer-ownership="full">
+            <type name="int64" c:type="gint64*"/>
+          </parameter>
+          <parameter name="position" direction="out" transfer-ownership="full">
+            <type name="int64" c:type="gint64*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="parse_new_segment_full"
+              c:identifier="gst_event_parse_new_segment_full"
+              doc="Get the update, rate, applied_rate, format, start, stop and
+position in the newsegment event. See gst_event_new_new_segment_full()
+for a full description of the newsegment event."
+              version="0.10.6">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="update" direction="out" transfer-ownership="full">
+            <type name="boolean" c:type="gboolean*"/>
+          </parameter>
+          <parameter name="rate" direction="out" transfer-ownership="full">
+            <type name="double" c:type="gdouble*"/>
+          </parameter>
+          <parameter name="applied_rate"
+                     direction="out"
+                     transfer-ownership="full">
+            <type name="double" c:type="gdouble*"/>
+          </parameter>
+          <parameter name="format" transfer-ownership="none">
+            <type name="Format" c:type="GstFormat*"/>
+          </parameter>
+          <parameter name="start" direction="out" transfer-ownership="full">
+            <type name="int64" c:type="gint64*"/>
+          </parameter>
+          <parameter name="stop" direction="out" transfer-ownership="full">
+            <type name="int64" c:type="gint64*"/>
+          </parameter>
+          <parameter name="position" direction="out" transfer-ownership="full">
+            <type name="int64" c:type="gint64*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="parse_tag"
+              c:identifier="gst_event_parse_tag"
+              doc="Parses a tag @event and stores the results in the given @taglist location.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="taglist" transfer-ownership="none">
+            <type name="TagList" c:type="GstTagList**"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="parse_buffer_size"
+              c:identifier="gst_event_parse_buffer_size"
+              doc="Get the format, minsize, maxsize and async-flag in the buffersize event.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="format" transfer-ownership="none">
+            <type name="Format" c:type="GstFormat*"/>
+          </parameter>
+          <parameter name="minsize" direction="out" transfer-ownership="full">
+            <type name="int64" c:type="gint64*"/>
+          </parameter>
+          <parameter name="maxsize" direction="out" transfer-ownership="full">
+            <type name="int64" c:type="gint64*"/>
+          </parameter>
+          <parameter name="async" direction="out" transfer-ownership="full">
+            <type name="boolean" c:type="gboolean*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="parse_qos"
+              c:identifier="gst_event_parse_qos"
+              doc="Get the proportion, diff and timestamp in the qos event. See
+gst_event_new_qos() for more information about the different QoS values.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="proportion"
+                     direction="out"
+                     transfer-ownership="full">
+            <type name="double" c:type="gdouble*"/>
+          </parameter>
+          <parameter name="diff" transfer-ownership="none">
+            <type name="ClockTimeDiff" c:type="GstClockTimeDiff*"/>
+          </parameter>
+          <parameter name="timestamp" transfer-ownership="none">
+            <type name="ClockTime" c:type="GstClockTime*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="parse_seek"
+              c:identifier="gst_event_parse_seek"
+              doc="Parses a seek @event and stores the results in the given result locations.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="rate" direction="out" transfer-ownership="full">
+            <type name="double" c:type="gdouble*"/>
+          </parameter>
+          <parameter name="format" transfer-ownership="none">
+            <type name="Format" c:type="GstFormat*"/>
+          </parameter>
+          <parameter name="flags" transfer-ownership="none">
+            <type name="SeekFlags" c:type="GstSeekFlags*"/>
+          </parameter>
+          <parameter name="start_type" transfer-ownership="none">
+            <type name="SeekType" c:type="GstSeekType*"/>
+          </parameter>
+          <parameter name="start" direction="out" transfer-ownership="full">
+            <type name="int64" c:type="gint64*"/>
+          </parameter>
+          <parameter name="stop_type" transfer-ownership="none">
+            <type name="SeekType" c:type="GstSeekType*"/>
+          </parameter>
+          <parameter name="stop" direction="out" transfer-ownership="full">
+            <type name="int64" c:type="gint64*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="parse_latency"
+              c:identifier="gst_event_parse_latency"
+              doc="Get the latency in the latency event."
+              version="0.10.12">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="latency" transfer-ownership="none">
+            <type name="ClockTime" c:type="GstClockTime*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="parse_step"
+              c:identifier="gst_event_parse_step"
+              doc="Parse the step event."
+              version="0.10.24">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="format" transfer-ownership="none">
+            <type name="Format" c:type="GstFormat*"/>
+          </parameter>
+          <parameter name="amount" direction="out" transfer-ownership="full">
+            <type name="uint64" c:type="guint64*"/>
+          </parameter>
+          <parameter name="rate" direction="out" transfer-ownership="full">
+            <type name="double" c:type="gdouble*"/>
+          </parameter>
+          <parameter name="flush" direction="out" transfer-ownership="full">
+            <type name="boolean" c:type="gboolean*"/>
+          </parameter>
+          <parameter name="intermediate"
+                     direction="out"
+                     transfer-ownership="full">
+            <type name="boolean" c:type="gboolean*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="parse_sink_message"
+              c:identifier="gst_event_parse_sink_message"
+              doc="Parse the sink-message event. Unref @msg after usage."
+              version="0.10.26">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="msg" transfer-ownership="none">
+            <type name="Message" c:type="GstMessage**"/>
+          </parameter>
+        </parameters>
+      </method>
+    </record>
+    <record name="EventClass" c:type="GstEventClass">
+      <field name="mini_object_class" writable="1">
+        <type name="MiniObjectClass" c:type="GstMiniObjectClass"/>
+      </field>
+      <field name="_gst_reserved" writable="1">
+        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+          <type name="any"/>
+        </array>
+      </field>
+    </record>
+    <bitfield name="EventType"
+              doc="without a NEWSEGMENT event.
+send messages that should be emitted in sync with
+rendering.
+that the downstream elements are being starved of or
+flooded with data.
+user requests, such as mouse or keyboard movements,
+to upstream elements.
+data flow.
+In-band when travelling downstream.
+#GstEventType lists the standard event types that can be sent in a pipeline.
+The custom event types can be used for private messages between elements
+that can&apos;t be expressed using normal
+GStreamer buffer passing semantics. Custom events carry an arbitrary
+#GstStructure.
+Specific custom events are distinguished by the name of the structure."
+              c:type="GstEventType">
+      <member name="unknown" value="0" c:identifier="GST_EVENT_UNKNOWN"/>
+      <member name="flush_start"
+              value="19"
+              c:identifier="GST_EVENT_FLUSH_START"/>
+      <member name="flush_stop"
+              value="39"
+              c:identifier="GST_EVENT_FLUSH_STOP"/>
+      <member name="eos" value="86" c:identifier="GST_EVENT_EOS"/>
+      <member name="newsegment"
+              value="102"
+              c:identifier="GST_EVENT_NEWSEGMENT"/>
+      <member name="tag" value="118" c:identifier="GST_EVENT_TAG"/>
+      <member name="buffersize"
+              value="134"
+              c:identifier="GST_EVENT_BUFFERSIZE"/>
+      <member name="sink_message"
+              value="150"
+              c:identifier="GST_EVENT_SINK_MESSAGE"/>
+      <member name="qos" value="241" c:identifier="GST_EVENT_QOS"/>
+      <member name="seek" value="257" c:identifier="GST_EVENT_SEEK"/>
+      <member name="navigation"
+              value="273"
+              c:identifier="GST_EVENT_NAVIGATION"/>
+      <member name="latency" value="289" c:identifier="GST_EVENT_LATENCY"/>
+      <member name="step" value="305" c:identifier="GST_EVENT_STEP"/>
+      <member name="custom_upstream"
+              value="513"
+              c:identifier="GST_EVENT_CUSTOM_UPSTREAM"/>
+      <member name="custom_downstream"
+              value="518"
+              c:identifier="GST_EVENT_CUSTOM_DOWNSTREAM"/>
+      <member name="custom_downstream_oob"
+              value="514"
+              c:identifier="GST_EVENT_CUSTOM_DOWNSTREAM_OOB"/>
+      <member name="custom_both"
+              value="519"
+              c:identifier="GST_EVENT_CUSTOM_BOTH"/>
+      <member name="custom_both_oob"
+              value="515"
+              c:identifier="GST_EVENT_CUSTOM_BOTH_OOB"/>
+    </bitfield>
+    <bitfield name="EventTypeFlags"
+              doc="flow.
+#GstEventTypeFlags indicate the aspects of the different #GstEventType
+values. You can get the type flags of a #GstEventType with the
+gst_event_type_get_flags() function."
+              c:type="GstEventTypeFlags">
+      <member name="upstream"
+              value="1"
+              c:identifier="GST_EVENT_TYPE_UPSTREAM"/>
+      <member name="downstream"
+              value="2"
+              c:identifier="GST_EVENT_TYPE_DOWNSTREAM"/>
+      <member name="serialized"
+              value="4"
+              c:identifier="GST_EVENT_TYPE_SERIALIZED"/>
+    </bitfield>
+    <constant name="FOURCC_FORMAT" value="c%c%c%c">
+      <type name="utf8"/>
+    </constant>
+    <callback name="FilterFunc"
+              c:type="GstFilterFunc"
+              doc="Function prototype for a filter callback taht can be use in gst_filter_run().
+The function should apply its filtering to @obj. Additional data passed to
+gst_filter_run() are in @data.">
+      <return-value transfer-ownership="none">
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="obj" transfer-ownership="none">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+        <parameter name="user_data" transfer-ownership="none" closure="1">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <enumeration name="FlowReturn"
+                 doc="sent yet) (unused/unimplemented).
+this error should post an error message with more
+details.
+this (and higher) to define custom success
+codes. Since 0.10.7.
+custom success code to this to avoid compiler
+warnings). Since 0.10.29.
+this (and lower) to define custom error codes.
+Since 0.10.7.
+custom error code to this to avoid compiler
+warnings). Since 0.10.29.
+The result of passing data to a pad.
+Note that the custom return values should not be exposed outside of the
+element scope and are available since 0.10.7."
+                 c:type="GstFlowReturn">
+      <member name="custom_success_2"
+              value="102"
+              c:identifier="GST_FLOW_CUSTOM_SUCCESS_2"/>
+      <member name="custom_success_1"
+              value="101"
+              c:identifier="GST_FLOW_CUSTOM_SUCCESS_1"/>
+      <member name="custom_success"
+              value="100"
+              c:identifier="GST_FLOW_CUSTOM_SUCCESS"/>
+      <member name="resend" value="1" c:identifier="GST_FLOW_RESEND"/>
+      <member name="ok" value="0" c:identifier="GST_FLOW_OK"/>
+      <member name="not_linked" value="-1" c:identifier="GST_FLOW_NOT_LINKED"/>
+      <member name="wrong_state"
+              value="-2"
+              c:identifier="GST_FLOW_WRONG_STATE"/>
+      <member name="unexpected" value="-3" c:identifier="GST_FLOW_UNEXPECTED"/>
+      <member name="not_negotiated"
+              value="-4"
+              c:identifier="GST_FLOW_NOT_NEGOTIATED"/>
+      <member name="error" value="-5" c:identifier="GST_FLOW_ERROR"/>
+      <member name="not_supported"
+              value="-6"
+              c:identifier="GST_FLOW_NOT_SUPPORTED"/>
+      <member name="custom_error"
+              value="-100"
+              c:identifier="GST_FLOW_CUSTOM_ERROR"/>
+      <member name="custom_error_1"
+              value="-101"
+              c:identifier="GST_FLOW_CUSTOM_ERROR_1"/>
+      <member name="custom_error_2"
+              value="-102"
+              c:identifier="GST_FLOW_CUSTOM_ERROR_2"/>
+    </enumeration>
+    <enumeration name="Format"
+                 doc="samples for raw audio, frames/fields for raw video (some, but not all,
+elements support this; use @GST_FORMAT_TIME if you don&apos;t have a good
+reason to query for samples/frames)
+May 2009)
+this as of May 2009)
+Standard predefined formats"
+                 c:type="GstFormat">
+      <member name="undefined" value="0" c:identifier="GST_FORMAT_UNDEFINED"/>
+      <member name="default" value="1" c:identifier="GST_FORMAT_DEFAULT"/>
+      <member name="bytes" value="2" c:identifier="GST_FORMAT_BYTES"/>
+      <member name="time" value="3" c:identifier="GST_FORMAT_TIME"/>
+      <member name="buffers" value="4" c:identifier="GST_FORMAT_BUFFERS"/>
+      <member name="percent" value="5" c:identifier="GST_FORMAT_PERCENT"/>
+    </enumeration>
+    <record name="FormatDefinition"
+            c:type="GstFormatDefinition"
+            doc="A format definition">
+      <field name="value" writable="1">
+        <type name="Format" c:type="GstFormat"/>
+      </field>
+      <field name="nick" writable="1">
+        <type name="utf8" c:type="gchar*"/>
+      </field>
+      <field name="description" writable="1">
+        <type name="utf8" c:type="gchar*"/>
+      </field>
+      <field name="quark" writable="1">
+        <type name="GLib.Quark" c:type="GQuark"/>
+      </field>
+    </record>
+    <glib:boxed c:type="GstGError"
+                glib:name="GError"
+                glib:type-name="GstGError"
+                glib:get-type="gst_g_error_get_type">
+    </glib:boxed>
+    <class name="GhostPad"
+           c:type="GstGhostPad"
+           doc="Opaque #GstGhostPad structure."
+           parent="ProxyPad"
+           glib:type-name="GstGhostPad"
+           glib:get-type="gst_ghost_pad_get_type"
+           glib:type-struct="GhostPadClass">
+      <constructor name="new"
+                   c:identifier="gst_ghost_pad_new"
+                   doc="Create a new ghostpad with @target as the target. The direction will be taken
+from the target pad. @target must be unlinked.
+Will ref the target.">
+        <return-value transfer-ownership="full">
+          <type name="GhostPad" c:type="GstPad*"/>
+        </return-value>
+        <parameters>
+          <parameter name="name" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="target" transfer-ownership="none">
+            <type name="Pad" c:type="GstPad*"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <constructor name="new_no_target"
+                   c:identifier="gst_ghost_pad_new_no_target"
+                   doc="Create a new ghostpad without a target with the given direction.
+A target can be set on the ghostpad later with the
+gst_ghost_pad_set_target() function.
+The created ghostpad will not have a padtemplate.">
+        <return-value transfer-ownership="full">
+          <type name="GhostPad" c:type="GstPad*"/>
+        </return-value>
+        <parameters>
+          <parameter name="name" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="dir" transfer-ownership="none">
+            <type name="PadDirection" c:type="GstPadDirection"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <constructor name="new_from_template"
+                   c:identifier="gst_ghost_pad_new_from_template"
+                   doc="Create a new ghostpad with @target as the target. The direction will be taken
+from the target pad. The template used on the ghostpad will be @template.
+Will ref the target."
+                   version="0.10.10">
+        <return-value transfer-ownership="full">
+          <type name="GhostPad" c:type="GstPad*"/>
+        </return-value>
+        <parameters>
+          <parameter name="name" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="target" transfer-ownership="none">
+            <type name="Pad" c:type="GstPad*"/>
+          </parameter>
+          <parameter name="templ" transfer-ownership="none">
+            <type name="PadTemplate" c:type="GstPadTemplate*"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <constructor name="new_no_target_from_template"
+                   c:identifier="gst_ghost_pad_new_no_target_from_template"
+                   doc="Create a new ghostpad based on @templ, without setting a target. The
+direction will be taken from the @templ."
+                   version="0.10.10">
+        <return-value transfer-ownership="full">
+          <type name="GhostPad" c:type="GstPad*"/>
+        </return-value>
+        <parameters>
+          <parameter name="name" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="templ" transfer-ownership="none">
+            <type name="PadTemplate" c:type="GstPadTemplate*"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <method name="get_target"
+              c:identifier="gst_ghost_pad_get_target"
+              doc="Get the target pad of @gpad. Unref target pad after usage.
+has no target set. Unref target pad after usage.">
+        <return-value transfer-ownership="full">
+          <type name="Pad" c:type="GstPad*"/>
+        </return-value>
+      </method>
+      <method name="set_target"
+              c:identifier="gst_ghost_pad_set_target"
+              doc="Set the new target of the ghostpad @gpad. Any existing target
+is unlinked and links to the new target are established. if @newtarget is
+NULL the target will be cleared.
+when the internal pads could not be linked.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="newtarget" transfer-ownership="none">
+            <type name="Pad" c:type="GstPad*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="construct"
+              c:identifier="gst_ghost_pad_construct"
+              doc="Finish initialization of a newly allocated ghost pad.
+This function is most useful in language bindings and when subclassing
+#GstGhostPad; plugin and application developers normally will not call this
+function. Call this function directly after a call to g_object_new
+(GST_TYPE_GHOST_PAD, &quot;direction&quot;, @dir, ..., NULL)."
+              version="0.10.22">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+      </method>
+      <field name="pad">
+        <type name="ProxyPad" c:type="GstProxyPad"/>
+      </field>
+      <field name="priv">
+        <type name="GhostPadPrivate" c:type="GstGhostPadPrivate*"/>
+      </field>
+    </class>
+    <record name="GhostPadClass"
+            c:type="GstGhostPadClass"
+            glib:is-gtype-struct-for="GhostPad">
+      <field name="parent_class">
+        <type name="ProxyPadClass" c:type="GstProxyPadClass"/>
+      </field>
+      <field name="_gst_reserved">
+        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+          <type name="any"/>
+        </array>
+      </field>
+    </record>
+    <record name="GhostPadPrivate" c:type="GstGhostPadPrivate">
+    </record>
+    <constant name="INDEX_ID_INVALID" value="-1">
+      <type name="int"/>
+    </constant>
+    <interface name="ImplementsInterface"
+               c:type="GstImplementsInterface"
+               doc="Opaque #GstImplementsInterface structure."
+               glib:type-name="GstImplementsInterface"
+               glib:get-type="gst_implements_interface_get_type"
+               glib:type-struct="ImplementsInterfaceClass">
+      <prerequisite name="Element"/>
+      <virtual-method name="supported">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="iface_type" transfer-ownership="none">
+            <type name="GType" c:type="GType"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+    </interface>
+    <record name="ImplementsInterfaceClass"
+            c:type="GstImplementsInterfaceClass"
+            glib:is-gtype-struct-for="ImplementsInterface">
+      <field name="parent">
+        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
+      </field>
+      <field name="supported">
+        <callback name="supported" c:type="supported">
+          <return-value transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="iface" transfer-ownership="none">
+              <type name="ImplementsInterface"
+                    c:type="GstImplementsInterface*"/>
+            </parameter>
+            <parameter name="iface_type" transfer-ownership="none">
+              <type name="GType" c:type="GType"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="_gst_reserved">
+        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+          <type name="any"/>
+        </array>
+      </field>
+    </record>
+    <class name="Index"
+           c:type="GstIndex"
+           doc="Opaque #GstIndex structure."
+           parent="Object"
+           glib:type-name="GstIndex"
+           glib:get-type="gst_index_get_type"
+           glib:type-struct="IndexClass">
+      <constructor name="new"
+                   c:identifier="gst_index_new"
+                   doc="Create a new tileindex object">
+        <return-value transfer-ownership="full">
+          <type name="Index" c:type="GstIndex*"/>
+        </return-value>
+      </constructor>
+      <virtual-method name="get_writer_id">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="writer_id"
+                     direction="out"
+                     transfer-ownership="full">
+            <type name="int" c:type="gint*"/>
+          </parameter>
+          <parameter name="writer_string" transfer-ownership="full">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="commit" invoker="commit">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="id" transfer-ownership="none">
+            <type name="int" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="add_entry">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="entry" transfer-ownership="none">
+            <type name="IndexEntry" c:type="GstIndexEntry*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="get_assoc_entry">
+        <return-value transfer-ownership="full">
+          <type name="IndexEntry" c:type="GstIndexEntry*"/>
+        </return-value>
+        <parameters>
+          <parameter name="id" transfer-ownership="none">
+            <type name="int" c:type="gint"/>
+          </parameter>
+          <parameter name="method" transfer-ownership="none">
+            <type name="IndexLookupMethod" c:type="GstIndexLookupMethod"/>
+          </parameter>
+          <parameter name="flags" transfer-ownership="none">
+            <type name="AssocFlags" c:type="GstAssocFlags"/>
+          </parameter>
+          <parameter name="format" transfer-ownership="none">
+            <type name="Format" c:type="GstFormat"/>
+          </parameter>
+          <parameter name="value" transfer-ownership="none">
+            <type name="int64" c:type="gint64"/>
+          </parameter>
+          <parameter name="func" transfer-ownership="none">
+            <type name="GLib.CompareDataFunc" c:type="GCompareDataFunc"/>
+          </parameter>
+          <parameter name="user_data" transfer-ownership="none" closure="7">
+            <type name="any" c:type="gpointer"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <method name="commit"
+              c:identifier="gst_index_commit"
+              doc="Tell the index that the writer with the given id is done
+with this index and is not going to write any more entries
+to it.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="id" transfer-ownership="none">
+            <type name="int" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_group"
+              c:identifier="gst_index_get_group"
+              doc="Get the id of the current group.">
+        <return-value transfer-ownership="none">
+          <type name="int" c:type="gint"/>
+        </return-value>
+      </method>
+      <method name="new_group"
+              c:identifier="gst_index_new_group"
+              doc="Create a new group for the given index. It will be
+set as the current group.">
+        <return-value transfer-ownership="none">
+          <type name="int" c:type="gint"/>
+        </return-value>
+      </method>
+      <method name="set_group"
+              c:identifier="gst_index_set_group"
+              doc="Set the current groupnumber to the given argument.
+did not exist.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="groupnum" transfer-ownership="none">
+            <type name="int" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_certainty"
+              c:identifier="gst_index_set_certainty"
+              doc="Set the certainty of the given index.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="certainty" transfer-ownership="none">
+            <type name="IndexCertainty" c:type="GstIndexCertainty"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_certainty"
+              c:identifier="gst_index_get_certainty"
+              doc="Get the certainty of the given index.">
+        <return-value transfer-ownership="full">
+          <type name="IndexCertainty" c:type="GstIndexCertainty"/>
+        </return-value>
+      </method>
+      <method name="set_filter"
+              c:identifier="gst_index_set_filter"
+              doc="Lets the app register a custom filter function so that
+it can select what entries should be stored in the index.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="filter"
+                     transfer-ownership="none"
+                     scope="call"
+                     closure="2">
+            <type name="IndexFilter" c:type="GstIndexFilter"/>
+          </parameter>
+          <parameter name="user_data" transfer-ownership="none">
+            <type name="any" c:type="gpointer"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_filter_full"
+              c:identifier="gst_index_set_filter_full"
+              doc="Lets the app register a custom filter function so that
+it can select what entries should be stored in the index.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="filter"
+                     transfer-ownership="none"
+                     scope="notified"
+                     closure="2"
+                     destroy="3">
+            <type name="IndexFilter" c:type="GstIndexFilter"/>
+          </parameter>
+          <parameter name="user_data" transfer-ownership="none">
+            <type name="any" c:type="gpointer"/>
+          </parameter>
+          <parameter name="user_data_destroy"
+                     transfer-ownership="none"
+                     scope="call">
+            <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_resolver"
+              c:identifier="gst_index_set_resolver"
+              doc="Lets the app register a custom function to map index
+ids to writer descriptions.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="resolver"
+                     transfer-ownership="none"
+                     scope="call"
+                     closure="2">
+            <type name="IndexResolver" c:type="GstIndexResolver"/>
+          </parameter>
+          <parameter name="user_data" transfer-ownership="none">
+            <type name="any" c:type="gpointer"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_resolver_full"
+              c:identifier="gst_index_set_resolver_full"
+              doc="Lets the app register a custom function to map index
+ids to writer descriptions."
+              version="0.10.18">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="resolver"
+                     transfer-ownership="none"
+                     scope="notified"
+                     closure="2"
+                     destroy="3">
+            <type name="IndexResolver" c:type="GstIndexResolver"/>
+          </parameter>
+          <parameter name="user_data" transfer-ownership="none">
+            <type name="any" c:type="gpointer"/>
+          </parameter>
+          <parameter name="user_data_destroy"
+                     transfer-ownership="none"
+                     scope="call">
+            <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_writer_id"
+              c:identifier="gst_index_get_writer_id"
+              doc="Before entries can be added to the index, a writer
+should obtain a unique id. The methods to add new entries
+to the index require this id as an argument.
+The application can implement a custom function to map the writer object
+to a string. That string will be used to register or look up an id
+in the index.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="writer" transfer-ownership="none">
+            <type name="Object" c:type="GstObject*"/>
+          </parameter>
+          <parameter name="id" direction="out" transfer-ownership="full">
+            <type name="int" c:type="gint*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="add_format"
+              c:identifier="gst_index_add_format"
+              doc="Adds a format entry into the index. This function is
+used to map dynamic GstFormat ids to their original
+format key.">
+        <return-value transfer-ownership="full">
+          <type name="IndexEntry" c:type="GstIndexEntry*"/>
+        </return-value>
+        <parameters>
+          <parameter name="id" transfer-ownership="none">
+            <type name="int" c:type="gint"/>
+          </parameter>
+          <parameter name="format" transfer-ownership="none">
+            <type name="Format" c:type="GstFormat"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="add_associationv"
+              c:identifier="gst_index_add_associationv"
+              doc="Associate given format/value pairs with each other.">
+        <return-value transfer-ownership="full">
+          <type name="IndexEntry" c:type="GstIndexEntry*"/>
+        </return-value>
+        <parameters>
+          <parameter name="id" transfer-ownership="none">
+            <type name="int" c:type="gint"/>
+          </parameter>
+          <parameter name="flags" transfer-ownership="none">
+            <type name="AssocFlags" c:type="GstAssocFlags"/>
+          </parameter>
+          <parameter name="n" transfer-ownership="none">
+            <type name="int" c:type="gint"/>
+          </parameter>
+          <parameter name="list" transfer-ownership="none">
+            <type name="IndexAssociation" c:type="GstIndexAssociation*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="add_association"
+              c:identifier="gst_index_add_association"
+              doc="Associate given format/value pairs with each other.
+Be sure to pass gint64 values to this functions varargs,
+you might want to use a gint64 cast to be sure.">
+        <return-value transfer-ownership="full">
+          <type name="IndexEntry" c:type="GstIndexEntry*"/>
+        </return-value>
+        <parameters>
+          <parameter name="id" transfer-ownership="none">
+            <type name="int" c:type="gint"/>
+          </parameter>
+          <parameter name="flags" transfer-ownership="none">
+            <type name="AssocFlags" c:type="GstAssocFlags"/>
+          </parameter>
+          <parameter name="format" transfer-ownership="none">
+            <type name="Format" c:type="GstFormat"/>
+          </parameter>
+          <parameter name="value" transfer-ownership="none">
+            <type name="int64" c:type="gint64"/>
+          </parameter>
+          <parameter transfer-ownership="none">
+            <varargs>
+            </varargs>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="add_object"
+              c:identifier="gst_index_add_object"
+              doc="Add the given object to the index with the given key.
+This function is not yet implemented.">
+        <return-value transfer-ownership="full">
+          <type name="IndexEntry" c:type="GstIndexEntry*"/>
+        </return-value>
+        <parameters>
+          <parameter name="id" transfer-ownership="none">
+            <type name="int" c:type="gint"/>
+          </parameter>
+          <parameter name="key" transfer-ownership="full">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="type" transfer-ownership="none">
+            <type name="GType" c:type="GType"/>
+          </parameter>
+          <parameter name="object" transfer-ownership="none">
+            <type name="any" c:type="gpointer"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="add_id"
+              c:identifier="gst_index_add_id"
+              doc="Add an id entry into the index.">
+        <return-value transfer-ownership="full">
+          <type name="IndexEntry" c:type="GstIndexEntry*"/>
+        </return-value>
+        <parameters>
+          <parameter name="id" transfer-ownership="none">
+            <type name="int" c:type="gint"/>
+          </parameter>
+          <parameter name="description" transfer-ownership="full">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_assoc_entry"
+              c:identifier="gst_index_get_assoc_entry"
+              doc="Finds the given format/value in the index
+value was not found.">
+        <return-value transfer-ownership="full">
+          <type name="IndexEntry" c:type="GstIndexEntry*"/>
+        </return-value>
+        <parameters>
+          <parameter name="id" transfer-ownership="none">
+            <type name="int" c:type="gint"/>
+          </parameter>
+          <parameter name="method" transfer-ownership="none">
+            <type name="IndexLookupMethod" c:type="GstIndexLookupMethod"/>
+          </parameter>
+          <parameter name="flags" transfer-ownership="none">
+            <type name="AssocFlags" c:type="GstAssocFlags"/>
+          </parameter>
+          <parameter name="format" transfer-ownership="none">
+            <type name="Format" c:type="GstFormat"/>
+          </parameter>
+          <parameter name="value" transfer-ownership="none">
+            <type name="int64" c:type="gint64"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_assoc_entry_full"
+              c:identifier="gst_index_get_assoc_entry_full"
+              doc="Finds the given format/value in the index with the given
+compare function and user_data.
+value was not found.">
+        <return-value transfer-ownership="full">
+          <type name="IndexEntry" c:type="GstIndexEntry*"/>
+        </return-value>
+        <parameters>
+          <parameter name="id" transfer-ownership="none">
+            <type name="int" c:type="gint"/>
+          </parameter>
+          <parameter name="method" transfer-ownership="none">
+            <type name="IndexLookupMethod" c:type="GstIndexLookupMethod"/>
+          </parameter>
+          <parameter name="flags" transfer-ownership="none">
+            <type name="AssocFlags" c:type="GstAssocFlags"/>
+          </parameter>
+          <parameter name="format" transfer-ownership="none">
+            <type name="Format" c:type="GstFormat"/>
+          </parameter>
+          <parameter name="value" transfer-ownership="none">
+            <type name="int64" c:type="gint64"/>
+          </parameter>
+          <parameter name="func"
+                     transfer-ownership="none"
+                     scope="call"
+                     closure="7">
+            <type name="GLib.CompareDataFunc" c:type="GCompareDataFunc"/>
+          </parameter>
+          <parameter name="user_data" transfer-ownership="none">
+            <type name="any" c:type="gpointer"/>
+          </parameter>
+        </parameters>
+      </method>
+      <property name="resolver" writable="1">
+        <type name="IndexResolver" c:type="GstIndexResolver"/>
+      </property>
+      <field name="object">
+        <type name="Object" c:type="GstObject"/>
+      </field>
+      <field name="groups">
+        <type name="GLib.List" c:type="GList*"/>
+      </field>
+      <field name="curgroup">
+        <type name="IndexGroup" c:type="GstIndexGroup*"/>
+      </field>
+      <field name="maxgroup">
+        <type name="int" c:type="gint"/>
+      </field>
+      <field name="method">
+        <type name="IndexResolverMethod" c:type="GstIndexResolverMethod"/>
+      </field>
+      <field name="resolver">
+        <type name="IndexResolver" c:type="GstIndexResolver"/>
+      </field>
+      <field name="resolver_user_data">
+        <type name="any" c:type="gpointer"/>
+      </field>
+      <field name="filter">
+        <type name="IndexFilter" c:type="GstIndexFilter"/>
+      </field>
+      <field name="filter_user_data">
+        <type name="any" c:type="gpointer"/>
+      </field>
+      <field name="filter_user_data_destroy">
+        <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
+      </field>
+      <field name="writers">
+        <type name="GLib.HashTable" c:type="GHashTable*"/>
+      </field>
+      <field name="last_id">
+        <type name="int" c:type="gint"/>
+      </field>
+      <field name="resolver_user_data_destroy">
+        <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
+      </field>
+      <field name="_gst_reserved">
+        <array zero-terminated="0" c:type="gpointer" fixed-size="3">
+          <type name="any"/>
+        </array>
+      </field>
+      <glib:signal name="entry-added">
+        <return-value transfer-ownership="full">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="object" transfer-ownership="none">
+            <type name="IndexEntry" c:type="GstIndexEntry"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+    </class>
+    <record name="IndexAssociation"
+            c:type="GstIndexAssociation"
+            doc="An association in an entry.">
+      <field name="format" writable="1">
+        <type name="Format" c:type="GstFormat"/>
+      </field>
+      <field name="value" writable="1">
+        <type name="int64" c:type="gint64"/>
+      </field>
+    </record>
+    <enumeration name="IndexCertainty"
+                 doc="The certainty of a group in the index."
+                 c:type="GstIndexCertainty">
+      <member name="unknown" value="0" c:identifier="GST_INDEX_UNKNOWN"/>
+      <member name="certain" value="1" c:identifier="GST_INDEX_CERTAIN"/>
+      <member name="fuzzy" value="2" c:identifier="GST_INDEX_FUZZY"/>
+    </enumeration>
+    <record name="IndexClass"
+            c:type="GstIndexClass"
+            glib:is-gtype-struct-for="Index">
+      <field name="parent_class">
+        <type name="ObjectClass" c:type="GstObjectClass"/>
+      </field>
+      <field name="get_writer_id">
+        <callback name="get_writer_id" c:type="get_writer_id">
+          <return-value transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="index" transfer-ownership="none">
+              <type name="Index" c:type="GstIndex*"/>
+            </parameter>
+            <parameter name="writer_id"
+                       direction="out"
+                       transfer-ownership="full">
+              <type name="int" c:type="gint*"/>
+            </parameter>
+            <parameter name="writer_string" transfer-ownership="full">
+              <type name="utf8" c:type="gchar*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="commit">
+        <callback name="commit" c:type="commit">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="index" transfer-ownership="none">
+              <type name="Index" c:type="GstIndex*"/>
+            </parameter>
+            <parameter name="id" transfer-ownership="none">
+              <type name="int" c:type="gint"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="add_entry">
+        <callback name="add_entry" c:type="add_entry">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="index" transfer-ownership="none">
+              <type name="Index" c:type="GstIndex*"/>
+            </parameter>
+            <parameter name="entry" transfer-ownership="none">
+              <type name="IndexEntry" c:type="GstIndexEntry*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="get_assoc_entry">
+        <callback name="get_assoc_entry" c:type="get_assoc_entry">
+          <return-value transfer-ownership="full">
+            <type name="IndexEntry" c:type="GstIndexEntry*"/>
+          </return-value>
+          <parameters>
+            <parameter name="index" transfer-ownership="none">
+              <type name="Index" c:type="GstIndex*"/>
+            </parameter>
+            <parameter name="id" transfer-ownership="none">
+              <type name="int" c:type="gint"/>
+            </parameter>
+            <parameter name="method" transfer-ownership="none">
+              <type name="IndexLookupMethod" c:type="GstIndexLookupMethod"/>
+            </parameter>
+            <parameter name="flags" transfer-ownership="none">
+              <type name="AssocFlags" c:type="GstAssocFlags"/>
+            </parameter>
+            <parameter name="format" transfer-ownership="none">
+              <type name="Format" c:type="GstFormat"/>
+            </parameter>
+            <parameter name="value" transfer-ownership="none">
+              <type name="int64" c:type="gint64"/>
+            </parameter>
+            <parameter name="func" transfer-ownership="none">
+              <type name="GLib.CompareDataFunc" c:type="GCompareDataFunc"/>
+            </parameter>
+            <parameter name="user_data" transfer-ownership="none" closure="7">
+              <type name="any" c:type="gpointer"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="entry_added">
+        <callback name="entry_added" c:type="entry_added">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="index" transfer-ownership="none">
+              <type name="Index" c:type="GstIndex*"/>
+            </parameter>
+            <parameter name="entry" transfer-ownership="none">
+              <type name="IndexEntry" c:type="GstIndexEntry*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="_gst_reserved">
+        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+          <type name="any"/>
+        </array>
+      </field>
+    </record>
+    <record name="IndexEntry"
+            c:type="GstIndexEntry"
+            doc="The basic element of an index."
+            glib:type-name="GstIndexEntry"
+            glib:get-type="gst_index_entry_get_type">
+      <field name="type" writable="1">
+        <type name="IndexEntryType" c:type="GstIndexEntryType"/>
+      </field>
+      <field name="id" writable="1">
+        <type name="int" c:type="gint"/>
+      </field>
+      <union name="data" c:type="data">
+        <record name="id" c:type="id">
+          <field name="description" writable="1">
+            <type name="utf8" c:type="gchar*"/>
+          </field>
+        </record>
+        <record name="assoc" c:type="assoc">
+          <field name="nassocs" writable="1">
+            <type name="int" c:type="gint"/>
+          </field>
+          <field name="assocs" writable="1">
+            <type name="IndexAssociation" c:type="GstIndexAssociation*"/>
+          </field>
+          <field name="flags" writable="1">
+            <type name="AssocFlags" c:type="GstAssocFlags"/>
+          </field>
+        </record>
+        <record name="object" c:type="object">
+          <field name="key" writable="1">
+            <type name="utf8" c:type="gchar*"/>
+          </field>
+          <field name="type" writable="1">
+            <type name="GType" c:type="GType"/>
+          </field>
+          <field name="object" writable="1">
+            <type name="any" c:type="gpointer"/>
+          </field>
+        </record>
+        <record name="format" c:type="format">
+          <field name="format" writable="1">
+            <type name="Format" c:type="GstFormat"/>
+          </field>
+          <field name="key" writable="1">
+            <type name="utf8" c:type="gchar*"/>
+          </field>
+        </record>
+      </union>
+      <method name="copy"
+              c:identifier="gst_index_entry_copy"
+              doc="Copies an entry and returns the result.">
+        <return-value transfer-ownership="full">
+          <type name="IndexEntry" c:type="GstIndexEntry*"/>
+        </return-value>
+      </method>
+      <method name="free"
+              c:identifier="gst_index_entry_free"
+              doc="Free the memory used by the given entry.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </method>
+      <method name="assoc_map"
+              c:identifier="gst_index_entry_assoc_map"
+              doc="Gets alternative formats associated with the indexentry.
+format.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="format" transfer-ownership="none">
+            <type name="Format" c:type="GstFormat"/>
+          </parameter>
+          <parameter name="value" direction="out" transfer-ownership="full">
+            <type name="int64" c:type="gint64*"/>
+          </parameter>
+        </parameters>
+      </method>
+    </record>
+    <enumeration name="IndexEntryType"
+                 doc="The different types of entries in the index."
+                 c:type="GstIndexEntryType">
+      <member name="id" value="0" c:identifier="GST_INDEX_ENTRY_ID"/>
+      <member name="association"
+              value="1"
+              c:identifier="GST_INDEX_ENTRY_ASSOCIATION"/>
+      <member name="object" value="2" c:identifier="GST_INDEX_ENTRY_OBJECT"/>
+      <member name="format" value="3" c:identifier="GST_INDEX_ENTRY_FORMAT"/>
+    </enumeration>
+    <class name="IndexFactory"
+           c:type="GstIndexFactory"
+           doc="The GstIndexFactory object"
+           parent="PluginFeature"
+           glib:type-name="GstIndexFactory"
+           glib:get-type="gst_index_factory_get_type"
+           glib:type-struct="IndexFactoryClass">
+      <constructor name="new"
+                   c:identifier="gst_index_factory_new"
+                   doc="Create a new indexfactory with the given parameters">
+        <return-value transfer-ownership="full">
+          <type name="IndexFactory" c:type="GstIndexFactory*"/>
+        </return-value>
+        <parameters>
+          <parameter name="name" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="longdesc" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="type" transfer-ownership="none">
+            <type name="GType" c:type="GType"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <function name="find"
+                c:identifier="gst_index_factory_find"
+                doc="Search for an indexfactory of the given name.">
+        <return-value transfer-ownership="full">
+          <type name="IndexFactory" c:type="GstIndexFactory*"/>
+        </return-value>
+        <parameters>
+          <parameter name="name" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </function>
+      <function name="make"
+                c:identifier="gst_index_factory_make"
+                doc="Create a new #GstIndex instance from the
+indexfactory with the given name.">
+        <return-value transfer-ownership="full">
+          <type name="Index" c:type="GstIndex*"/>
+        </return-value>
+        <parameters>
+          <parameter name="name" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </function>
+      <method name="destroy"
+              c:identifier="gst_index_factory_destroy"
+              doc="Removes the index from the global list.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </method>
+      <method name="create"
+              c:identifier="gst_index_factory_create"
+              doc="Create a new #GstIndex instance from the
+given indexfactory.">
+        <return-value transfer-ownership="full">
+          <type name="Index" c:type="GstIndex*"/>
+        </return-value>
+      </method>
+      <field name="feature">
+        <type name="PluginFeature" c:type="GstPluginFeature"/>
+      </field>
+      <field name="longdesc">
+        <type name="utf8" c:type="gchar*"/>
+      </field>
+      <field name="type">
+        <type name="GType" c:type="GType"/>
+      </field>
+      <field name="_gst_reserved">
+        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+          <type name="any"/>
+        </array>
+      </field>
+    </class>
+    <record name="IndexFactoryClass"
+            c:type="GstIndexFactoryClass"
+            glib:is-gtype-struct-for="IndexFactory">
+      <field name="parent">
+        <type name="PluginFeatureClass" c:type="GstPluginFeatureClass"/>
+      </field>
+      <field name="_gst_reserved">
+        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+          <type name="any"/>
+        </array>
+      </field>
+    </record>
+    <callback name="IndexFilter"
+              c:type="GstIndexFilter"
+              doc="Function to filter out entries in the index.
+to the index, %FALSE otherwise.">
+      <return-value transfer-ownership="none">
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="index" transfer-ownership="none">
+          <type name="Index" c:type="GstIndex*"/>
+        </parameter>
+        <parameter name="entry" transfer-ownership="none">
+          <type name="IndexEntry" c:type="GstIndexEntry*"/>
+        </parameter>
+        <parameter name="user_data" transfer-ownership="none" closure="2">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <bitfield name="IndexFlags"
+              doc="Flags for this index"
+              c:type="GstIndexFlags">
+      <member name="writable" value="16" c:identifier="GST_INDEX_WRITABLE"/>
+      <member name="readable" value="32" c:identifier="GST_INDEX_READABLE"/>
+      <member name="flag_last"
+              value="4096"
+              c:identifier="GST_INDEX_FLAG_LAST"/>
+    </bitfield>
+    <record name="IndexGroup"
+            c:type="GstIndexGroup"
+            doc="A group of related entries in an index.">
+      <field name="groupnum" writable="1">
+        <type name="int" c:type="gint"/>
+      </field>
+      <field name="entries" writable="1">
+        <type name="GLib.List" c:type="GList*"/>
+      </field>
+      <field name="certainty" writable="1">
+        <type name="IndexCertainty" c:type="GstIndexCertainty"/>
+      </field>
+      <field name="peergroup" writable="1">
+        <type name="int" c:type="gint"/>
+      </field>
+    </record>
+    <enumeration name="IndexLookupMethod"
+                 doc="Specify the method to find an index entry in the index."
+                 c:type="GstIndexLookupMethod">
+      <member name="exact" value="0" c:identifier="GST_INDEX_LOOKUP_EXACT"/>
+      <member name="before" value="1" c:identifier="GST_INDEX_LOOKUP_BEFORE"/>
+      <member name="after" value="2" c:identifier="GST_INDEX_LOOKUP_AFTER"/>
+    </enumeration>
+    <callback name="IndexResolver"
+              c:type="GstIndexResolver"
+              doc="Function to resolve ids to writer descriptions.">
+      <return-value transfer-ownership="none">
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="index" transfer-ownership="none">
+          <type name="Index" c:type="GstIndex*"/>
+        </parameter>
+        <parameter name="writer" transfer-ownership="none">
+          <type name="Object" c:type="GstObject*"/>
+        </parameter>
+        <parameter name="writer_string" transfer-ownership="none">
+          <array c:type="gchar**">
+            <type name="utf8"/>
+          </array>
+        </parameter>
+        <parameter name="user_data" transfer-ownership="none" closure="3">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <enumeration name="IndexResolverMethod"
+                 doc="The method used to resolve index writers"
+                 c:type="GstIndexResolverMethod">
+      <member name="custom"
+              value="0"
+              c:identifier="GST_INDEX_RESOLVER_CUSTOM"/>
+      <member name="gtype" value="1" c:identifier="GST_INDEX_RESOLVER_GTYPE"/>
+      <member name="path" value="2" c:identifier="GST_INDEX_RESOLVER_PATH"/>
+    </enumeration>
+    <record name="Iterator"
+            c:type="GstIterator"
+            doc="created.
+#GstIterator base structure. The values of this structure are
+protected for subclasses, use the methods to use the #GstIterator.">
+      <field name="next" writable="1">
+        <type name="IteratorNextFunction" c:type="GstIteratorNextFunction"/>
+      </field>
+      <field name="item" writable="1">
+        <type name="IteratorItemFunction" c:type="GstIteratorItemFunction"/>
+      </field>
+      <field name="resync" writable="1">
+        <type name="IteratorResyncFunction"
+              c:type="GstIteratorResyncFunction"/>
+      </field>
+      <field name="free" writable="1">
+        <type name="IteratorFreeFunction" c:type="GstIteratorFreeFunction"/>
+      </field>
+      <field name="pushed" writable="1">
+        <type name="Iterator" c:type="GstIterator*"/>
+      </field>
+      <field name="type" writable="1">
+        <type name="GType" c:type="GType"/>
+      </field>
+      <field name="lock" writable="1">
+        <type name="GLib.Mutex" c:type="GMutex*"/>
+      </field>
+      <field name="cookie" writable="1">
+        <type name="uint32" c:type="guint32"/>
+      </field>
+      <field name="master_cookie" writable="1">
+        <type name="any" c:type="guint32*"/>
+      </field>
+      <field name="_gst_reserved" writable="1">
+        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+          <type name="any"/>
+        </array>
+      </field>
+      <constructor name="new"
+                   c:identifier="gst_iterator_new"
+                   doc="iterator changed.
+Create a new iterator. This function is mainly used for objects
+implementing the next/resync/free function to iterate a data structure.
+For each item retrieved, the @item function is called with the lock
+held. The @free function is called when the iterator is freed.
+MT safe.">
+        <return-value transfer-ownership="full">
+          <type name="Iterator" c:type="GstIterator*"/>
+        </return-value>
+        <parameters>
+          <parameter name="size" transfer-ownership="none">
+            <type name="uint" c:type="guint"/>
+          </parameter>
+          <parameter name="type" transfer-ownership="none">
+            <type name="GType" c:type="GType"/>
+          </parameter>
+          <parameter name="lock" transfer-ownership="none">
+            <type name="GLib.Mutex" c:type="GMutex*"/>
+          </parameter>
+          <parameter name="master_cookie"
+                     direction="out"
+                     transfer-ownership="full">
+            <type name="uint32" c:type="guint32*"/>
+          </parameter>
+          <parameter name="next" transfer-ownership="none" scope="call">
+            <type name="IteratorNextFunction"
+                  c:type="GstIteratorNextFunction"/>
+          </parameter>
+          <parameter name="item" transfer-ownership="none" scope="call">
+            <type name="IteratorItemFunction"
+                  c:type="GstIteratorItemFunction"/>
+          </parameter>
+          <parameter name="resync" transfer-ownership="none" scope="call">
+            <type name="IteratorResyncFunction"
+                  c:type="GstIteratorResyncFunction"/>
+          </parameter>
+          <parameter name="free" transfer-ownership="none" scope="call">
+            <type name="IteratorFreeFunction"
+                  c:type="GstIteratorFreeFunction"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <constructor name="new_list"
+                   c:identifier="gst_iterator_new_list"
+                   doc="is changed.
+Create a new iterator designed for iterating @list.
+The list you iterate is usually part of a data structure @owner and is
+protected with @lock.
+The iterator will use @lock to retrieve the next item of the list and it
+will then call the @item function before releasing @lock again.
+The @item function usualy makes sure that the item remains alive while
+responsible for freeing/unreffing the item after usage as explained in
+gst_iterator_next().
+When a concurrent update to the list is performed, usually by @owner while
+holding @lock, @master_cookie will be updated. The iterator implementation
+will notice the update of the cookie and will return %GST_ITERATOR_RESYNC to
+the user of the iterator in the next call to gst_iterator_next().
+MT safe.">
+        <return-value transfer-ownership="full">
+          <type name="Iterator" c:type="GstIterator*"/>
+        </return-value>
+        <parameters>
+          <parameter name="type" transfer-ownership="none">
+            <type name="GType" c:type="GType"/>
+          </parameter>
+          <parameter name="lock" transfer-ownership="none">
+            <type name="GLib.Mutex" c:type="GMutex*"/>
+          </parameter>
+          <parameter name="master_cookie"
+                     direction="out"
+                     transfer-ownership="full">
+            <type name="uint32" c:type="guint32*"/>
+          </parameter>
+          <parameter name="list" transfer-ownership="none">
+            <type name="GLib.List" c:type="GList**"/>
+          </parameter>
+          <parameter name="owner" transfer-ownership="none">
+            <type name="any" c:type="gpointer"/>
+          </parameter>
+          <parameter name="item" transfer-ownership="none" scope="call">
+            <type name="IteratorItemFunction"
+                  c:type="GstIteratorItemFunction"/>
+          </parameter>
+          <parameter name="free" transfer-ownership="none" scope="call">
+            <type name="IteratorDisposeFunction"
+                  c:type="GstIteratorDisposeFunction"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <constructor name="new_single"
+                   c:identifier="gst_iterator_new_single"
+                   doc="This #GstIterator is a convenient iterator for the common
+case where a #GstIterator needs to be returned but only
+a single object has to be considered. This happens often
+for the #GstPadIterIntLinkFunction."
+                   version="0.10.25">
+        <return-value transfer-ownership="full">
+          <type name="Iterator" c:type="GstIterator*"/>
+        </return-value>
+        <parameters>
+          <parameter name="type" transfer-ownership="none">
+            <type name="GType" c:type="GType"/>
+          </parameter>
+          <parameter name="object" transfer-ownership="none">
+            <type name="any" c:type="gpointer"/>
+          </parameter>
+          <parameter name="copy" transfer-ownership="none" scope="call">
+            <type name="CopyFunction" c:type="GstCopyFunction"/>
+          </parameter>
+          <parameter name="free" transfer-ownership="none" scope="call">
+            <type name="GLib.FreeFunc" c:type="GFreeFunc"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <method name="next"
+              c:identifier="gst_iterator_next"
+              doc="Get the next item from the iterator in @elem.
+Only when this function returns %GST_ITERATOR_OK, @elem will contain a valid
+value. For iterators that return refcounted objects, the returned object
+will have its refcount increased and should therefore be unreffed after
+usage.
+When this function returns %GST_ITERATOR_DONE, no more elements can be
+retrieved from @it.
+A return value of %GST_ITERATOR_RESYNC indicates that the element list was
+concurrently updated. The user of @it should call gst_iterator_resync() to
+get the newly updated list.
+A return value of %GST_ITERATOR_ERROR indicates an unrecoverable fatal error.
+is a refcounted object.
+MT safe.">
+        <return-value transfer-ownership="full">
+          <type name="IteratorResult" c:type="GstIteratorResult"/>
+        </return-value>
+        <parameters>
+          <parameter name="elem" transfer-ownership="none">
+            <type name="any" c:type="gpointer*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="resync"
+              c:identifier="gst_iterator_resync"
+              doc="Resync the iterator. this function is mostly called
+after gst_iterator_next() returned %GST_ITERATOR_RESYNC.
+When an iterator was pushed on @it, it will automatically be popped again
+with this function.
+MT safe.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </method>
+      <method name="free"
+              c:identifier="gst_iterator_free"
+              doc="Free the iterator.
+MT safe.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </method>
+      <method name="push"
+              c:identifier="gst_iterator_push"
+              doc="Pushes @other iterator onto @it. All calls performed on @it are
+forwarded to @other. If @other returns %GST_ITERATOR_DONE, it is
+popped again and calls are handled by @it again.
+This function is mainly used by objects implementing the iterator
+next function to recurse into substructures.
+When gst_iterator_resync() is called on @it, @other will automatically be
+popped.
+MT safe.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="other" transfer-ownership="none">
+            <type name="Iterator" c:type="GstIterator*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="filter"
+              c:identifier="gst_iterator_filter"
+              doc="Create a new iterator from an existing iterator. The new iterator
+will only return those elements that match the given compare function @func.
+in the iterator.
+When this iterator is freed, @it will also be freed.
+MT safe.">
+        <return-value transfer-ownership="full">
+          <type name="Iterator" c:type="GstIterator*"/>
+        </return-value>
+        <parameters>
+          <parameter name="func"
+                     transfer-ownership="none"
+                     scope="call"
+                     closure="2">
+            <type name="GLib.CompareFunc" c:type="GCompareFunc"/>
+          </parameter>
+          <parameter name="user_data" transfer-ownership="none">
+            <type name="any" c:type="gpointer"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="fold"
+              c:identifier="gst_iterator_fold"
+              doc="Folds @func over the elements of @iter. That is to say, @func will be called
+as @func (object, @ret, @user_data) for each object in @it. The normal use
+of this procedure is to accumulate the results of operating on the objects in
+before @func is called, and it should be unrefed after use in @func.
+This procedure can be used (and is used internally) to implement the
+gst_iterator_foreach() and gst_iterator_find_custom() operations.
+The fold will proceed as long as @func returns TRUE. When the iterator has no
+more arguments, %GST_ITERATOR_DONE will be returned. If @func returns FALSE,
+the fold will stop, and %GST_ITERATOR_OK will be returned. Errors or resyncs
+will cause fold to return %GST_ITERATOR_ERROR or %GST_ITERATOR_RESYNC as
+appropriate.
+The iterator will not be freed.
+MT safe.">
+        <return-value transfer-ownership="full">
+          <type name="IteratorResult" c:type="GstIteratorResult"/>
+        </return-value>
+        <parameters>
+          <parameter name="func" transfer-ownership="none" scope="call">
+            <type name="IteratorFoldFunction"
+                  c:type="GstIteratorFoldFunction"/>
+          </parameter>
+          <parameter name="ret" transfer-ownership="none">
+            <type name="GObject.Value" c:type="GValue*"/>
+          </parameter>
+          <parameter name="user_data" transfer-ownership="none">
+            <type name="any" c:type="gpointer"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="foreach"
+              c:identifier="gst_iterator_foreach"
+              doc="Iterate over all element of @it and call the given function @func for
+each element.  As in gst_iterator_fold(), the refcount of a refcounted
+object will be increased before @func is called, and should be unrefed
+after use.
+freed.
+MT safe.">
+        <return-value transfer-ownership="full" doc="The iterator will not be">
+          <type name="IteratorResult" c:type="GstIteratorResult"/>
+        </return-value>
+        <parameters>
+          <parameter name="func"
+                     transfer-ownership="none"
+                     scope="call"
+                     closure="2">
+            <type name="GLib.Func" c:type="GFunc"/>
+          </parameter>
+          <parameter name="user_data" transfer-ownership="none">
+            <type name="any" c:type="gpointer"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="find_custom"
+              c:identifier="gst_iterator_find_custom"
+              doc="Find the first element in @it that matches the compare function @func.
+the refcount of a refcounted object will be increased before @func is
+called, and should be unrefed after use.
+The iterator will not be freed.
+This function will return NULL if an error or resync happened to
+the iterator.
+function or NULL when no element matched.
+MT safe.">
+        <return-value transfer-ownership="none">
+          <type name="any" c:type="gpointer"/>
+        </return-value>
+        <parameters>
+          <parameter name="func"
+                     transfer-ownership="none"
+                     scope="call"
+                     closure="2">
+            <type name="GLib.CompareFunc" c:type="GCompareFunc"/>
+          </parameter>
+          <parameter name="user_data" transfer-ownership="none">
+            <type name="any" c:type="gpointer"/>
+          </parameter>
+        </parameters>
+      </method>
+    </record>
+    <callback name="IteratorDisposeFunction"
+              c:type="GstIteratorDisposeFunction"
+              doc="The function that will be called when a #GList iterator is freed. The
+owner of the #GList iterator can then clean up its resources.">
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="owner" transfer-ownership="none">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <callback name="IteratorFoldFunction"
+              c:type="GstIteratorFoldFunction"
+              doc="A function to be passed to gst_iterator_fold().">
+      <return-value transfer-ownership="none">
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="item" transfer-ownership="none">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+        <parameter name="ret" transfer-ownership="none">
+          <type name="GObject.Value" c:type="GValue*"/>
+        </parameter>
+        <parameter name="user_data" transfer-ownership="none" closure="2">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <callback name="IteratorFreeFunction"
+              c:type="GstIteratorFreeFunction"
+              doc="This function will be called when the iterator is freed.
+Implementors of a #GstIterator should implement this
+function and pass it to the constructor of the custom iterator.
+The function will be called with the iterator lock held.">
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="it" transfer-ownership="none">
+          <type name="Iterator" c:type="GstIterator*"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <enumeration name="IteratorItem"
+                 doc="The result of a #GstIteratorItemFunction."
+                 c:type="GstIteratorItem">
+      <member name="skip" value="0" c:identifier="GST_ITERATOR_ITEM_SKIP"/>
+      <member name="pass" value="1" c:identifier="GST_ITERATOR_ITEM_PASS"/>
+      <member name="end" value="2" c:identifier="GST_ITERATOR_ITEM_END"/>
+    </enumeration>
+    <callback name="IteratorItemFunction"
+              c:type="GstIteratorItemFunction"
+              doc="The function that will be called after the next item of the iterator
+has been retrieved. This function will typically increase the refcount
+of the item or make a copy.
+Implementors of a #GstIterator should implement this
+function and pass it to the constructor of the custom iterator.
+The function will be called with the iterator lock held.">
+      <return-value transfer-ownership="full">
+        <type name="IteratorItem" c:type="GstIteratorItem"/>
+      </return-value>
+      <parameters>
+        <parameter name="it" transfer-ownership="none">
+          <type name="Iterator" c:type="GstIterator*"/>
+        </parameter>
+        <parameter name="item" transfer-ownership="none">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <callback name="IteratorNextFunction"
+              c:type="GstIteratorNextFunction"
+              doc="The function that will be called when the next element of the iterator
+should be retrieved.
+Implementors of a #GstIterator should implement this
+function and pass it to the constructor of the custom iterator.
+The function will be called with the iterator lock held.">
+      <return-value transfer-ownership="full">
+        <type name="IteratorResult" c:type="GstIteratorResult"/>
+      </return-value>
+      <parameters>
+        <parameter name="it" transfer-ownership="none">
+          <type name="Iterator" c:type="GstIterator*"/>
+        </parameter>
+        <parameter name="result" transfer-ownership="none">
+          <type name="any" c:type="gpointer*"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <enumeration name="IteratorResult"
+                 doc="The result of gst_iterator_next()."
+                 c:type="GstIteratorResult">
+      <member name="done" value="0" c:identifier="GST_ITERATOR_DONE"/>
+      <member name="ok" value="1" c:identifier="GST_ITERATOR_OK"/>
+      <member name="resync" value="2" c:identifier="GST_ITERATOR_RESYNC"/>
+      <member name="error" value="3" c:identifier="GST_ITERATOR_ERROR"/>
+    </enumeration>
+    <callback name="IteratorResyncFunction"
+              c:type="GstIteratorResyncFunction"
+              doc="This function will be called whenever a concurrent update happened
+to the iterated datastructure. The implementor of the iterator should
+restart the iterator from the beginning and clean up any state it might
+have.
+Implementors of a #GstIterator should implement this
+function and pass it to the constructor of the custom iterator.
+The function will be called with the iterator lock held.">
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="it" transfer-ownership="none">
+          <type name="Iterator" c:type="GstIterator*"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <constant name="LICENSE_UNKNOWN" value="unknown">
+      <type name="utf8"/>
+    </constant>
+    <enumeration name="LibraryError"
+                 doc="category.  Make sure you add a custom message to the error call.
+deciding where to go while developing code.
+Library errors are for errors from the library being used by elements
+(initializing, finalizing, settings, ...)"
+                 c:type="GstLibraryError"
+                 glib:error-quark="gst_library_error_quark">
+      <member name="failed" value="1" c:identifier="GST_LIBRARY_ERROR_FAILED"/>
+      <member name="too_lazy"
+              value="2"
+              c:identifier="GST_LIBRARY_ERROR_TOO_LAZY"/>
+      <member name="init" value="3" c:identifier="GST_LIBRARY_ERROR_INIT"/>
+      <member name="shutdown"
+              value="4"
+              c:identifier="GST_LIBRARY_ERROR_SHUTDOWN"/>
+      <member name="settings"
+              value="5"
+              c:identifier="GST_LIBRARY_ERROR_SETTINGS"/>
+      <member name="encode" value="6" c:identifier="GST_LIBRARY_ERROR_ENCODE"/>
+      <member name="num_errors"
+              value="7"
+              c:identifier="GST_LIBRARY_ERROR_NUM_ERRORS"/>
+    </enumeration>
+    <callback name="LogFunction"
+              c:type="GstLogFunction"
+              doc="Function prototype for a logging function that can be registered with
+gst_debug_add_log_function().
+Use G_GNUC_NO_INSTRUMENT on that function.">
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="category" transfer-ownership="none">
+          <type name="DebugCategory" c:type="GstDebugCategory*"/>
+        </parameter>
+        <parameter name="level" transfer-ownership="none">
+          <type name="DebugLevel" c:type="GstDebugLevel"/>
+        </parameter>
+        <parameter name="file" transfer-ownership="none">
+          <type name="utf8" c:type="gchar*"/>
+        </parameter>
+        <parameter name="function" transfer-ownership="none">
+          <type name="utf8" c:type="gchar*"/>
+        </parameter>
+        <parameter name="line" transfer-ownership="none">
+          <type name="int" c:type="gint"/>
+        </parameter>
+        <parameter name="object" transfer-ownership="none">
+          <type name="GObject.Object" c:type="GObject*"/>
+        </parameter>
+        <parameter name="message" transfer-ownership="none">
+          <type name="DebugMessage" c:type="GstDebugMessage*"/>
+        </parameter>
+        <parameter name="data" transfer-ownership="none">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <constant name="MESSAGE_TRACE_NAME" value="GstMessage">
+      <type name="utf8"/>
+    </constant>
+    <constant name="MSECOND" value="0">
+      <type name="int"/>
+    </constant>
+    <constant name="M_PI" value="3.14159265359">
+      <type name="double"/>
+    </constant>
+    <record name="Message" c:type="GstMessage" doc="A #GstMessage.">
+      <field name="mini_object" writable="1">
+        <type name="MiniObject" c:type="GstMiniObject"/>
+      </field>
+      <field name="lock" writable="1">
+        <type name="GLib.Mutex" c:type="GMutex*"/>
+      </field>
+      <field name="cond" writable="1">
+        <type name="GLib.Cond" c:type="GCond*"/>
+      </field>
+      <field name="type" writable="1">
+        <type name="MessageType" c:type="GstMessageType"/>
+      </field>
+      <field name="timestamp" writable="1">
+        <type name="uint64" c:type="guint64"/>
+      </field>
+      <field name="src" writable="1">
+        <type name="Object" c:type="GstObject*"/>
+      </field>
+      <field name="structure" writable="1">
+        <type name="Structure" c:type="GstStructure*"/>
+      </field>
+      <union name="abidata" c:type="abidata">
+        <record name="ABI" c:type="ABI">
+          <field name="seqnum" writable="1">
+            <type name="uint32" c:type="guint32"/>
+          </field>
+        </record>
+        <field name="_gst_reserved" writable="1">
+          <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+            <type name="any"/>
+          </array>
+        </field>
+      </union>
+      <constructor name="new_eos"
+                   c:identifier="gst_message_new_eos"
+                   doc="Create a new eos message. This message is generated and posted in
+the sink elements of a GstBin. The bin will only forward the EOS
+message to the application if all sinks have posted an EOS message.
+MT safe.">
+        <return-value transfer-ownership="full">
+          <type name="Message" c:type="GstMessage*"/>
+        </return-value>
+        <parameters>
+          <parameter name="src" transfer-ownership="none">
+            <type name="Object" c:type="GstObject*"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <constructor name="new_error"
+                   c:identifier="gst_message_new_error"
+                   doc="Create a new error message. The message will copy @error and
+occured. The pipeline will probably (partially) stop. The application
+receiving this message should stop the pipeline.
+MT safe.">
+        <return-value transfer-ownership="full">
+          <type name="Message" c:type="GstMessage*"/>
+        </return-value>
+        <parameters>
+          <parameter name="src" transfer-ownership="none">
+            <type name="Object" c:type="GstObject*"/>
+          </parameter>
+          <parameter name="error" transfer-ownership="none">
+            <type name="GLib.Error" c:type="GError*"/>
+          </parameter>
+          <parameter name="debug" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <constructor name="new_warning"
+                   c:identifier="gst_message_new_warning"
+                   doc="Create a new warning message. The message will make copies of @error and
+MT safe.">
+        <return-value transfer-ownership="full">
+          <type name="Message" c:type="GstMessage*"/>
+        </return-value>
+        <parameters>
+          <parameter name="src" transfer-ownership="none">
+            <type name="Object" c:type="GstObject*"/>
+          </parameter>
+          <parameter name="error" transfer-ownership="none">
+            <type name="GLib.Error" c:type="GError*"/>
+          </parameter>
+          <parameter name="debug" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <constructor name="new_info"
+                   c:identifier="gst_message_new_info"
+                   doc="Create a new info message. The message will make copies of @error and
+MT safe."
+                   version="0.10.12">
+        <return-value transfer-ownership="full">
+          <type name="Message" c:type="GstMessage*"/>
+        </return-value>
+        <parameters>
+          <parameter name="src" transfer-ownership="none">
+            <type name="Object" c:type="GstObject*"/>
+          </parameter>
+          <parameter name="error" transfer-ownership="none">
+            <type name="GLib.Error" c:type="GError*"/>
+          </parameter>
+          <parameter name="debug" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <constructor name="new_tag"
+                   c:identifier="gst_message_new_tag"
+                   doc="Create a new tag message. The message will take ownership of the tag list.
+The message is posted by elements that discovered a new taglist.
+MT safe.">
+        <return-value transfer-ownership="full">
+          <type name="Message" c:type="GstMessage*"/>
+        </return-value>
+        <parameters>
+          <parameter name="src" transfer-ownership="none">
+            <type name="Object" c:type="GstObject*"/>
+          </parameter>
+          <parameter name="tag_list" transfer-ownership="none">
+            <type name="TagList" c:type="GstTagList*"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <constructor name="new_tag_full"
+                   c:identifier="gst_message_new_tag_full"
+                   doc="Create a new tag message. The message will take ownership of the tag list.
+The message is posted by elements that discovered a new taglist.
+MT safe."
+                   version="0.10.24">
+        <return-value transfer-ownership="full">
+          <type name="Message" c:type="GstMessage*"/>
+        </return-value>
+        <parameters>
+          <parameter name="src" transfer-ownership="none">
+            <type name="Object" c:type="GstObject*"/>
+          </parameter>
+          <parameter name="pad" transfer-ownership="none">
+            <type name="Pad" c:type="GstPad*"/>
+          </parameter>
+          <parameter name="tag_list" transfer-ownership="none">
+            <type name="TagList" c:type="GstTagList*"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <constructor name="new_buffering"
+                   c:identifier="gst_message_new_buffering"
+                   doc="Create a new buffering message. This message can be posted by an element that
+needs to buffer data before it can continue processing. @percent should be a
+value between 0 and 100. A value of 100 means that the buffering completed.
+When @percent is &lt; 100 the application should PAUSE a PLAYING pipeline. When
+The application must be prepared to receive BUFFERING messages in the
+PREROLLING state and may only set the pipeline to PLAYING after receiving a
+message with @percent set to 100, which can happen after the pipeline
+completed prerolling.
+MT safe."
+                   version="0.10.11">
+        <return-value transfer-ownership="full">
+          <type name="Message" c:type="GstMessage*"/>
+        </return-value>
+        <parameters>
+          <parameter name="src" transfer-ownership="none">
+            <type name="Object" c:type="GstObject*"/>
+          </parameter>
+          <parameter name="percent" transfer-ownership="none">
+            <type name="int" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <constructor name="new_state_changed"
+                   c:identifier="gst_message_new_state_changed"
+                   doc="Create a state change message. This message is posted whenever an element
+changed its state.
+MT safe.">
+        <return-value transfer-ownership="full">
+          <type name="Message" c:type="GstMessage*"/>
+        </return-value>
+        <parameters>
+          <parameter name="src" transfer-ownership="none">
+            <type name="Object" c:type="GstObject*"/>
+          </parameter>
+          <parameter name="oldstate" transfer-ownership="none">
+            <type name="State" c:type="GstState"/>
+          </parameter>
+          <parameter name="newstate" transfer-ownership="none" doc="state">
+            <type name="State" c:type="GstState"/>
+          </parameter>
+          <parameter name="pending" transfer-ownership="none" doc="state">
+            <type name="State" c:type="GstState"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <constructor name="new_state_dirty"
+                   c:identifier="gst_message_new_state_dirty"
+                   doc="Create a state dirty message. This message is posted whenever an element
+changed its state asynchronously and is used internally to update the
+states of container objects.
+MT safe.">
+        <return-value transfer-ownership="full">
+          <type name="Message" c:type="GstMessage*"/>
+        </return-value>
+        <parameters>
+          <parameter name="src" transfer-ownership="none">
+            <type name="Object" c:type="GstObject*"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <constructor name="new_step_done"
+                   c:identifier="gst_message_new_step_done"
+                   doc="This message is posted by elements when they complete a part, when @intermediate set
+to TRUE, or a complete step operation.
+MT safe."
+                   version="0.10.24">
+        <return-value transfer-ownership="full">
+          <type name="Message" c:type="GstMessage*"/>
+        </return-value>
+        <parameters>
+          <parameter name="src" transfer-ownership="none">
+            <type name="Object" c:type="GstObject*"/>
+          </parameter>
+          <parameter name="format" transfer-ownership="none">
+            <type name="Format" c:type="GstFormat"/>
+          </parameter>
+          <parameter name="amount" transfer-ownership="none">
+            <type name="uint64" c:type="guint64"/>
+          </parameter>
+          <parameter name="rate" transfer-ownership="none">
+            <type name="double" c:type="gdouble"/>
+          </parameter>
+          <parameter name="flush" transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </parameter>
+          <parameter name="intermediate" transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </parameter>
+          <parameter name="duration" transfer-ownership="none">
+            <type name="uint64" c:type="guint64"/>
+          </parameter>
+          <parameter name="eos" transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <constructor name="new_clock_provide"
+                   c:identifier="gst_message_new_clock_provide"
+                   doc="Create a clock provide message. This message is posted whenever an
+element is ready to provide a clock or lost its ability to provide
+a clock (maybe because it paused or became EOS).
+This message is mainly used internally to manage the clock
+selection.
+MT safe.">
+        <return-value transfer-ownership="full">
+          <type name="Message" c:type="GstMessage*"/>
+        </return-value>
+        <parameters>
+          <parameter name="src" transfer-ownership="none">
+            <type name="Object" c:type="GstObject*"/>
+          </parameter>
+          <parameter name="clock" transfer-ownership="none">
+            <type name="Clock" c:type="GstClock*"/>
+          </parameter>
+          <parameter name="ready" transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <constructor name="new_clock_lost"
+                   c:identifier="gst_message_new_clock_lost"
+                   doc="Create a clock lost message. This message is posted whenever the
+clock is not valid anymore.
+If this message is posted by the pipeline, the pipeline will
+select a new clock again when it goes to PLAYING. It might therefore
+be needed to set the pipeline to PAUSED and PLAYING again.
+MT safe.">
+        <return-value transfer-ownership="full">
+          <type name="Message" c:type="GstMessage*"/>
+        </return-value>
+        <parameters>
+          <parameter name="src" transfer-ownership="none">
+            <type name="Object" c:type="GstObject*"/>
+          </parameter>
+          <parameter name="clock" transfer-ownership="none">
+            <type name="Clock" c:type="GstClock*"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <constructor name="new_new_clock"
+                   c:identifier="gst_message_new_new_clock"
+                   doc="Create a new clock message. This message is posted whenever the
+pipeline selectes a new clock for the pipeline.
+MT safe.">
+        <return-value transfer-ownership="full">
+          <type name="Message" c:type="GstMessage*"/>
+        </return-value>
+        <parameters>
+          <parameter name="src" transfer-ownership="none">
+            <type name="Object" c:type="GstObject*"/>
+          </parameter>
+          <parameter name="clock" transfer-ownership="none">
+            <type name="Clock" c:type="GstClock*"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <constructor name="new_application"
+                   c:identifier="gst_message_new_application"
+                   doc="the structure.
+Create a new application-typed message. GStreamer will never create these
+messages; they are a gift from us to you. Enjoy.
+MT safe.">
+        <return-value transfer-ownership="full">
+          <type name="Message" c:type="GstMessage*"/>
+        </return-value>
+        <parameters>
+          <parameter name="src" transfer-ownership="none">
+            <type name="Object" c:type="GstObject*"/>
+          </parameter>
+          <parameter name="structure" transfer-ownership="none">
+            <type name="Structure" c:type="GstStructure*"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <constructor name="new_element"
+                   c:identifier="gst_message_new_element"
+                   doc="the structure.
+Create a new element-specific message. This is meant as a generic way of
+allowing one-way communication from an element to an application, for example
+&quot;the firewire cable was unplugged&quot;. The format of the message should be
+documented in the element&apos;s documentation. The structure field can be NULL.
+MT safe.">
+        <return-value transfer-ownership="full">
+          <type name="Message" c:type="GstMessage*"/>
+        </return-value>
+        <parameters>
+          <parameter name="src" transfer-ownership="none">
+            <type name="Object" c:type="GstObject*"/>
+          </parameter>
+          <parameter name="structure" transfer-ownership="none">
+            <type name="Structure" c:type="GstStructure*"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <constructor name="new_segment_start"
+                   c:identifier="gst_message_new_segment_start"
+                   doc="Create a new segment message. This message is posted by elements that
+start playback of a segment as a result of a segment seek. This message
+is not received by the application but is used for maintenance reasons in
+container elements.
+MT safe.">
+        <return-value transfer-ownership="full">
+          <type name="Message" c:type="GstMessage*"/>
+        </return-value>
+        <parameters>
+          <parameter name="src" transfer-ownership="none">
+            <type name="Object" c:type="GstObject*"/>
+          </parameter>
+          <parameter name="format" transfer-ownership="none">
+            <type name="Format" c:type="GstFormat"/>
+          </parameter>
+          <parameter name="position" transfer-ownership="none">
+            <type name="int64" c:type="gint64"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <constructor name="new_segment_done"
+                   c:identifier="gst_message_new_segment_done"
+                   doc="Create a new segment done message. This message is posted by elements that
+finish playback of a segment as a result of a segment seek. This message
+is received by the application after all elements that posted a segment_start
+have posted the segment_done.
+MT safe.">
+        <return-value transfer-ownership="full">
+          <type name="Message" c:type="GstMessage*"/>
+        </return-value>
+        <parameters>
+          <parameter name="src" transfer-ownership="none">
+            <type name="Object" c:type="GstObject*"/>
+          </parameter>
+          <parameter name="format" transfer-ownership="none">
+            <type name="Format" c:type="GstFormat"/>
+          </parameter>
+          <parameter name="position" transfer-ownership="none">
+            <type name="int64" c:type="gint64"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <constructor name="new_duration"
+                   c:identifier="gst_message_new_duration"
+                   doc="Create a new duration message. This message is posted by elements that
+know the duration of a stream in a specific format. This message
+is received by bins and is used to calculate the total duration of a
+pipeline. Elements may post a duration message with a duration of
+GST_CLOCK_TIME_NONE to indicate that the duration has changed and the
+cached duration should be discarded. The new duration can then be
+retrieved via a query.
+MT safe.">
+        <return-value transfer-ownership="full">
+          <type name="Message" c:type="GstMessage*"/>
+        </return-value>
+        <parameters>
+          <parameter name="src" transfer-ownership="none">
+            <type name="Object" c:type="GstObject*"/>
+          </parameter>
+          <parameter name="format" transfer-ownership="none">
+            <type name="Format" c:type="GstFormat"/>
+          </parameter>
+          <parameter name="duration" transfer-ownership="none">
+            <type name="int64" c:type="gint64"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <constructor name="new_latency"
+                   c:identifier="gst_message_new_latency"
+                   doc="This message can be posted by elements when their latency requirements have
+changed.
+MT safe."
+                   version="0.10.12">
+        <return-value transfer-ownership="full">
+          <type name="Message" c:type="GstMessage*"/>
+        </return-value>
+        <parameters>
+          <parameter name="src" transfer-ownership="none">
+            <type name="Object" c:type="GstObject*"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <constructor name="new_async_start"
+                   c:identifier="gst_message_new_async_start"
+                   doc="This message is posted by elements when they start an ASYNC state change.
+PLAYING.
+MT safe."
+                   version="0.10.13">
+        <return-value transfer-ownership="full">
+          <type name="Message" c:type="GstMessage*"/>
+        </return-value>
+        <parameters>
+          <parameter name="src" transfer-ownership="none">
+            <type name="Object" c:type="GstObject*"/>
+          </parameter>
+          <parameter name="new_base_time" transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <constructor name="new_async_done"
+                   c:identifier="gst_message_new_async_done"
+                   doc="The message is posted when elements completed an ASYNC state change.
+MT safe."
+                   version="0.10.13">
+        <return-value transfer-ownership="full">
+          <type name="Message" c:type="GstMessage*"/>
+        </return-value>
+        <parameters>
+          <parameter name="src" transfer-ownership="none">
+            <type name="Object" c:type="GstObject*"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <constructor name="new_structure_change"
+                   c:identifier="gst_message_new_structure_change"
+                   doc="Create a new structure change message. This message is posted when the
+structure of a pipeline is in the process of being changed, for example
+when pads are linked or unlinked.
+MT safe."
+                   version="0.10.22.">
+        <return-value transfer-ownership="full">
+          <type name="Message" c:type="GstMessage*"/>
+        </return-value>
+        <parameters>
+          <parameter name="src" transfer-ownership="none">
+            <type name="Object" c:type="GstObject*"/>
+          </parameter>
+          <parameter name="type" transfer-ownership="none">
+            <type name="StructureChangeType" c:type="GstStructureChangeType"/>
+          </parameter>
+          <parameter name="owner" transfer-ownership="none">
+            <type name="Element" c:type="GstElement*"/>
+          </parameter>
+          <parameter name="busy" transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <constructor name="new_stream_status"
+                   c:identifier="gst_message_new_stream_status"
+                   doc="Create a new stream status message. This message is posted when a streaming
+thread is created/destroyed or when the state changed.
+MT safe."
+                   version="0.10.24.">
+        <return-value transfer-ownership="full">
+          <type name="Message" c:type="GstMessage*"/>
+        </return-value>
+        <parameters>
+          <parameter name="src" transfer-ownership="none">
+            <type name="Object" c:type="GstObject*"/>
+          </parameter>
+          <parameter name="type" transfer-ownership="none">
+            <type name="StreamStatusType" c:type="GstStreamStatusType"/>
+          </parameter>
+          <parameter name="owner" transfer-ownership="none">
+            <type name="Element" c:type="GstElement*"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <constructor name="new_request_state"
+                   c:identifier="gst_message_new_request_state"
+                   doc="This message can be posted by elements when they want to have their state
+changed. A typical use case would be an audio server that wants to pause the
+pipeline because a higher priority stream is being played.
+MT safe."
+                   version="0.10.23">
+        <return-value transfer-ownership="full">
+          <type name="Message" c:type="GstMessage*"/>
+        </return-value>
+        <parameters>
+          <parameter name="src" transfer-ownership="none">
+            <type name="Object" c:type="GstObject*"/>
+          </parameter>
+          <parameter name="state" transfer-ownership="none">
+            <type name="State" c:type="GstState"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <constructor name="new_step_start"
+                   c:identifier="gst_message_new_step_start"
+                   doc="This message is posted by elements when they accept or activate a new step
+event for @amount in @format.
+queued it for execution in the streaming threads.
+is now ready to start executing the step in the streaming thread. After this
+message is emited, the application can queue a new step operation in the
+element.
+MT safe."
+                   version="0.10.24">
+        <return-value transfer-ownership="full">
+          <type name="Message" c:type="GstMessage*"/>
+        </return-value>
+        <parameters>
+          <parameter name="src" transfer-ownership="none">
+            <type name="Object" c:type="GstObject*"/>
+          </parameter>
+          <parameter name="active" transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </parameter>
+          <parameter name="format" transfer-ownership="none">
+            <type name="Format" c:type="GstFormat"/>
+          </parameter>
+          <parameter name="amount" transfer-ownership="none">
+            <type name="uint64" c:type="guint64"/>
+          </parameter>
+          <parameter name="rate" transfer-ownership="none">
+            <type name="double" c:type="gdouble"/>
+          </parameter>
+          <parameter name="flush" transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </parameter>
+          <parameter name="intermediate" transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <constructor name="new_qos"
+                   c:identifier="gst_message_new_qos"
+                   doc="A QOS message is posted on the bus whenever an element decides to drop a
+buffer because of QoS reasons or whenever it changes its processing strategy
+because of QoS reasons (quality adjustments such as processing at lower
+accuracy).
+This message can be posted by an element that performs synchronisation against the
+clock (live) or it could be dropped by an element that performs QoS because of QOS
+events received from a downstream element (!live).
+respective running-time, stream-time, timestamp and duration of the (dropped)
+buffer that generated the QoS event. Values can be left to
+GST_CLOCK_TIME_NONE when unknown.
+MT safe."
+                   version="0.10.29">
+        <return-value transfer-ownership="full">
+          <type name="Message" c:type="GstMessage*"/>
+        </return-value>
+        <parameters>
+          <parameter name="src" transfer-ownership="none">
+            <type name="Object" c:type="GstObject*"/>
+          </parameter>
+          <parameter name="live" transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </parameter>
+          <parameter name="running_time" transfer-ownership="none">
+            <type name="uint64" c:type="guint64"/>
+          </parameter>
+          <parameter name="stream_time" transfer-ownership="none">
+            <type name="uint64" c:type="guint64"/>
+          </parameter>
+          <parameter name="timestamp" transfer-ownership="none">
+            <type name="uint64" c:type="guint64"/>
+          </parameter>
+          <parameter name="duration" transfer-ownership="none">
+            <type name="uint64" c:type="guint64"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <constructor name="new_custom"
+                   c:identifier="gst_message_new_custom"
+                   doc="the structure.
+Create a new custom-typed message. This can be used for anything not
+handled by other message-specific functions to pass a message to the
+app. The structure field can be NULL.
+MT safe.">
+        <return-value transfer-ownership="full">
+          <type name="Message" c:type="GstMessage*"/>
+        </return-value>
+        <parameters>
+          <parameter name="type" transfer-ownership="none">
+            <type name="MessageType" c:type="GstMessageType"/>
+          </parameter>
+          <parameter name="src" transfer-ownership="none">
+            <type name="Object" c:type="GstObject*"/>
+          </parameter>
+          <parameter name="structure" transfer-ownership="none">
+            <type name="Structure" c:type="GstStructure*"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <method name="get_seqnum"
+              c:identifier="gst_message_get_seqnum"
+              doc="Retrieve the sequence number of a message.
+Messages have ever-incrementing sequence numbers, which may also be set
+explicitly via gst_message_set_seqnum(). Sequence numbers are typically used
+to indicate that a message corresponds to some other set of messages or
+events, for example a SEGMENT_DONE message corresponding to a SEEK event. It
+is considered good practice to make this correspondence when possible, though
+it is not required.
+Note that events and messages share the same sequence number incrementor;
+two events or messages will never not have the same sequence number unless
+that correspondence was made explicitly.
+MT safe."
+              version="0.10.22">
+        <return-value transfer-ownership="none">
+          <type name="uint32" c:type="guint32"/>
+        </return-value>
+      </method>
+      <method name="set_seqnum"
+              c:identifier="gst_message_set_seqnum"
+              doc="Set the sequence number of a message.
+This function might be called by the creator of a message to indicate that
+the message relates to other messages or events. See gst_message_get_seqnum()
+for more information.
+MT safe."
+              version="0.10.22">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="seqnum" transfer-ownership="none">
+            <type name="uint32" c:type="guint32"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="parse_error"
+              c:identifier="gst_message_parse_error"
+              doc="Extracts the GError and debug string from the GstMessage. The values returned
+in the output arguments are copies; the caller must free them when done.
+Typical usage of this function might be:
+|[
+...
+switch (GST_MESSAGE_TYPE (msg)) {
+GError *err = NULL;
+gchar *dbg_info = NULL;
+gst_message_parse_error (msg, &amp;amp;err, &amp;amp;dbg_info);
+GST_OBJECT_NAME (msg-&gt;src), err-&gt;message);
+g_error_free (err);
+g_free (dbg_info);
+break;
+}
+...
+}
+...
+]|
+MT safe.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="gerror" transfer-ownership="none">
+            <type name="GLib.Error" c:type="GError**"/>
+          </parameter>
+          <parameter name="debug" transfer-ownership="none">
+            <array c:type="gchar**">
+              <type name="utf8"/>
+            </array>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="parse_warning"
+              c:identifier="gst_message_parse_warning"
+              doc="Extracts the GError and debug string from the GstMessage. The values returned
+in the output arguments are copies; the caller must free them when done.
+MT safe.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="gerror" transfer-ownership="none">
+            <type name="GLib.Error" c:type="GError**"/>
+          </parameter>
+          <parameter name="debug" transfer-ownership="none">
+            <array c:type="gchar**">
+              <type name="utf8"/>
+            </array>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="parse_info"
+              c:identifier="gst_message_parse_info"
+              doc="Extracts the GError and debug string from the GstMessage. The values returned
+in the output arguments are copies; the caller must free them when done.
+MT safe."
+              version="0.10.12">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="gerror" transfer-ownership="none">
+            <type name="GLib.Error" c:type="GError**"/>
+          </parameter>
+          <parameter name="debug" transfer-ownership="none">
+            <array c:type="gchar**">
+              <type name="utf8"/>
+            </array>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="parse_tag"
+              c:identifier="gst_message_parse_tag"
+              doc="Extracts the tag list from the GstMessage. The tag list returned in the
+output argument is a copy; the caller must free it when done.
+Typical usage of this function might be:
+|[
+...
+switch (GST_MESSAGE_TYPE (msg)) {
+GstTagList *tags = NULL;
+gst_message_parse_tag (msg, &amp;amp;tags);
+g_print (&quot;Got tags from element %s\n&quot;, GST_OBJECT_NAME (msg-&gt;src));
+handle_tags (tags);
+gst_tag_list_free (tags);
+break;
+}
+...
+}
+...
+]|
+MT safe.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="tag_list" transfer-ownership="none">
+            <type name="TagList" c:type="GstTagList**"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="parse_tag_full"
+              c:identifier="gst_message_parse_tag_full"
+              doc="Extracts the tag list from the GstMessage. The tag list returned in the
+output argument is a copy; the caller must free it when done.
+MT safe."
+              version="0.10.24">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="pad" transfer-ownership="none">
+            <type name="Pad" c:type="GstPad**"/>
+          </parameter>
+          <parameter name="tag_list" transfer-ownership="none">
+            <type name="TagList" c:type="GstTagList**"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="parse_buffering"
+              c:identifier="gst_message_parse_buffering"
+              doc="Extracts the buffering percent from the GstMessage. see also
+gst_message_new_buffering().
+MT safe."
+              version="0.10.11">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="percent" direction="out" transfer-ownership="full">
+            <type name="int" c:type="gint*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_buffering_stats"
+              c:identifier="gst_message_set_buffering_stats"
+              doc="Configures the buffering stats values in @message."
+              version="0.10.20">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="mode" transfer-ownership="none">
+            <type name="BufferingMode" c:type="GstBufferingMode"/>
+          </parameter>
+          <parameter name="avg_in" transfer-ownership="none">
+            <type name="int" c:type="gint"/>
+          </parameter>
+          <parameter name="avg_out" transfer-ownership="none">
+            <type name="int" c:type="gint"/>
+          </parameter>
+          <parameter name="buffering_left" transfer-ownership="none">
+            <type name="int64" c:type="gint64"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="parse_buffering_stats"
+              c:identifier="gst_message_parse_buffering_stats"
+              doc="Extracts the buffering stats values from @message."
+              version="0.10.20">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="mode" transfer-ownership="none">
+            <type name="BufferingMode" c:type="GstBufferingMode*"/>
+          </parameter>
+          <parameter name="avg_in" direction="out" transfer-ownership="full">
+            <type name="int" c:type="gint*"/>
+          </parameter>
+          <parameter name="avg_out" direction="out" transfer-ownership="full">
+            <type name="int" c:type="gint*"/>
+          </parameter>
+          <parameter name="buffering_left"
+                     direction="out"
+                     transfer-ownership="full">
+            <type name="int64" c:type="gint64*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="parse_state_changed"
+              c:identifier="gst_message_parse_state_changed"
+              doc="Extracts the old and new states from the GstMessage.
+Typical usage of this function might be:
+|[
+...
+switch (GST_MESSAGE_TYPE (msg)) {
+GstState old_state, new_state;
+gst_message_parse_state_changed (msg, &amp;amp;old_state, &amp;amp;new_state, NULL);
+g_print (&quot;Element %s changed state from %s to %s.\n&quot;,
+GST_OBJECT_NAME (msg-&gt;src),
+gst_element_state_get_name (old_state),
+gst_element_state_get_name (new_state));
+break;
+}
+...
+}
+...
+]|
+MT safe.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="oldstate" transfer-ownership="none">
+            <type name="State" c:type="GstState*"/>
+          </parameter>
+          <parameter name="newstate"
+                     transfer-ownership="none"
+                     doc="state, or NULL">
+            <type name="State" c:type="GstState*"/>
+          </parameter>
+          <parameter name="pending"
+                     transfer-ownership="none"
+                     doc="state, or NULL">
+            <type name="State" c:type="GstState*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="parse_step_done"
+              c:identifier="gst_message_parse_step_done"
+              doc="Extract the values the step_done message.
+MT safe."
+              version="0.10.24">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="format" transfer-ownership="none">
+            <type name="Format" c:type="GstFormat*"/>
+          </parameter>
+          <parameter name="amount" direction="out" transfer-ownership="full">
+            <type name="uint64" c:type="guint64*"/>
+          </parameter>
+          <parameter name="rate" direction="out" transfer-ownership="full">
+            <type name="double" c:type="gdouble*"/>
+          </parameter>
+          <parameter name="flush" direction="out" transfer-ownership="full">
+            <type name="boolean" c:type="gboolean*"/>
+          </parameter>
+          <parameter name="intermediate"
+                     direction="out"
+                     transfer-ownership="full">
+            <type name="boolean" c:type="gboolean*"/>
+          </parameter>
+          <parameter name="duration" direction="out" transfer-ownership="full">
+            <type name="uint64" c:type="guint64*"/>
+          </parameter>
+          <parameter name="eos" direction="out" transfer-ownership="full">
+            <type name="boolean" c:type="gboolean*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="parse_clock_provide"
+              c:identifier="gst_message_parse_clock_provide"
+              doc="Extracts the clock and ready flag from the GstMessage.
+The clock object returned remains valid until the message is freed.
+MT safe.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="clock" transfer-ownership="none">
+            <type name="Clock" c:type="GstClock**"/>
+          </parameter>
+          <parameter name="ready" direction="out" transfer-ownership="full">
+            <type name="boolean" c:type="gboolean*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="parse_clock_lost"
+              c:identifier="gst_message_parse_clock_lost"
+              doc="Extracts the lost clock from the GstMessage.
+The clock object returned remains valid until the message is freed.
+MT safe.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="clock" transfer-ownership="none">
+            <type name="Clock" c:type="GstClock**"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="parse_new_clock"
+              c:identifier="gst_message_parse_new_clock"
+              doc="Extracts the new clock from the GstMessage.
+The clock object returned remains valid until the message is freed.
+MT safe.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="clock" transfer-ownership="none">
+            <type name="Clock" c:type="GstClock**"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="parse_segment_start"
+              c:identifier="gst_message_parse_segment_start"
+              doc="Extracts the position and format from the segment start message.
+MT safe.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="format" transfer-ownership="none">
+            <type name="Format" c:type="GstFormat*"/>
+          </parameter>
+          <parameter name="position" direction="out" transfer-ownership="full">
+            <type name="int64" c:type="gint64*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="parse_segment_done"
+              c:identifier="gst_message_parse_segment_done"
+              doc="Extracts the position and format from the segment start message.
+MT safe.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="format" transfer-ownership="none">
+            <type name="Format" c:type="GstFormat*"/>
+          </parameter>
+          <parameter name="position" direction="out" transfer-ownership="full">
+            <type name="int64" c:type="gint64*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="parse_duration"
+              c:identifier="gst_message_parse_duration"
+              doc="Extracts the duration and format from the duration message. The duration
+might be GST_CLOCK_TIME_NONE, which indicates that the duration has
+changed. Applications should always use a query to retrieve the duration
+of a pipeline.
+MT safe.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="format" transfer-ownership="none">
+            <type name="Format" c:type="GstFormat*"/>
+          </parameter>
+          <parameter name="duration" direction="out" transfer-ownership="full">
+            <type name="int64" c:type="gint64*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="parse_async_start"
+              c:identifier="gst_message_parse_async_start"
+              doc="Extract the new_base_time from the async_start message.
+MT safe."
+              version="0.10.13">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="new_base_time"
+                     direction="out"
+                     transfer-ownership="full">
+            <type name="boolean" c:type="gboolean*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="parse_structure_change"
+              c:identifier="gst_message_parse_structure_change"
+              doc="completed
+Extracts the change type and completion status from the GstMessage.
+MT safe."
+              version="0.10.22">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="type" transfer-ownership="none">
+            <type name="StructureChangeType" c:type="GstStructureChangeType*"/>
+          </parameter>
+          <parameter name="owner" transfer-ownership="none">
+            <type name="Element" c:type="GstElement**"/>
+          </parameter>
+          <parameter name="busy" direction="out" transfer-ownership="full">
+            <type name="boolean" c:type="gboolean*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="parse_stream_status"
+              c:identifier="gst_message_parse_stream_status"
+              doc="Extracts the stream status type and owner the GstMessage. The returned
+owner remains valid for as long as the reference to @message is valid and
+should thus not be unreffed.
+MT safe."
+              version="0.10.24.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="type" transfer-ownership="none">
+            <type name="StreamStatusType" c:type="GstStreamStatusType*"/>
+          </parameter>
+          <parameter name="owner" transfer-ownership="none">
+            <type name="Element" c:type="GstElement**"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_stream_status_object"
+              c:identifier="gst_message_set_stream_status_object"
+              doc="Configures the object handling the streaming thread. This is usually a
+GstTask object but other objects might be added in the future."
+              version="0.10.24">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="object" transfer-ownership="none">
+            <type name="GObject.Value" c:type="GValue*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_stream_status_object"
+              c:identifier="gst_message_get_stream_status_object"
+              doc="Extracts the object managing the streaming thread from @message.
+This object is usually of type GstTask but other types can be added in the
+future. The object remains valid as long as @message is valid."
+              version="0.10.24">
+        <return-value transfer-ownership="none">
+          <type name="GObject.Value" c:type="GValue*"/>
+        </return-value>
+      </method>
+      <method name="parse_request_state"
+              c:identifier="gst_message_parse_request_state"
+              doc="Extract the requested state from the request_state message.
+MT safe."
+              version="0.10.23">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="state" transfer-ownership="none">
+            <type name="State" c:type="GstState*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="parse_step_start"
+              c:identifier="gst_message_parse_step_start"
+              doc="Extract the values from step_start message.
+MT safe."
+              version="0.10.24">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="active" direction="out" transfer-ownership="full">
+            <type name="boolean" c:type="gboolean*"/>
+          </parameter>
+          <parameter name="format" transfer-ownership="none">
+            <type name="Format" c:type="GstFormat*"/>
+          </parameter>
+          <parameter name="amount" direction="out" transfer-ownership="full">
+            <type name="uint64" c:type="guint64*"/>
+          </parameter>
+          <parameter name="rate" direction="out" transfer-ownership="full">
+            <type name="double" c:type="gdouble*"/>
+          </parameter>
+          <parameter name="flush" direction="out" transfer-ownership="full">
+            <type name="boolean" c:type="gboolean*"/>
+          </parameter>
+          <parameter name="intermediate"
+                     direction="out"
+                     transfer-ownership="full">
+            <type name="boolean" c:type="gboolean*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_qos_values"
+              c:identifier="gst_message_set_qos_values"
+              doc="to get optimal quality.
+quality level of the element. The default maximum quality is 1000000.
+Set the QoS values that have been calculated/analysed from the QoS data
+MT safe."
+              version="0.10.29">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="jitter" transfer-ownership="none">
+            <type name="int64" c:type="gint64"/>
+          </parameter>
+          <parameter name="proportion" transfer-ownership="none">
+            <type name="double" c:type="gdouble"/>
+          </parameter>
+          <parameter name="quality" transfer-ownership="none">
+            <type name="int" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_qos_stats"
+              c:identifier="gst_message_set_qos_stats"
+              doc="filters will use GST_FORMAT_BUFFERS (frames). Audio sinks and audio filters
+will likely use GST_FORMAT_DEFAULT (samples).
+change to READY or a flushing operation.
+or a flushing operation.
+Set the QoS stats representing the history of the current continuous pipeline
+playback period.
+When @format is @GST_FORMAT_UNDEFINED both @dropped and @processed are
+invalid. Values of -1 for either @processed or @dropped mean unknown values.
+MT safe."
+              version="0.10.29">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="format" transfer-ownership="none">
+            <type name="Format" c:type="GstFormat"/>
+          </parameter>
+          <parameter name="processed" transfer-ownership="none">
+            <type name="uint64" c:type="guint64"/>
+          </parameter>
+          <parameter name="dropped" transfer-ownership="none">
+            <type name="uint64" c:type="guint64"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="parse_qos"
+              c:identifier="gst_message_parse_qos"
+              doc="Extract the timestamps and live status from the QoS message.
+The returned values give the running_time, stream_time, timestamp and
+duration of the dropped buffer. Values of GST_CLOCK_TIME_NONE mean unknown
+values.
+MT safe."
+              version="0.10.29">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="live" direction="out" transfer-ownership="full">
+            <type name="boolean" c:type="gboolean*"/>
+          </parameter>
+          <parameter name="running_time"
+                     direction="out"
+                     transfer-ownership="full">
+            <type name="uint64" c:type="guint64*"/>
+          </parameter>
+          <parameter name="stream_time"
+                     direction="out"
+                     transfer-ownership="full">
+            <type name="uint64" c:type="guint64*"/>
+          </parameter>
+          <parameter name="timestamp"
+                     direction="out"
+                     transfer-ownership="full">
+            <type name="uint64" c:type="guint64*"/>
+          </parameter>
+          <parameter name="duration" direction="out" transfer-ownership="full">
+            <type name="uint64" c:type="guint64*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="parse_qos_values"
+              c:identifier="gst_message_parse_qos_values"
+              doc="to get optimal quality.
+quality level of the element. The default maximum quality is 1000000.
+Extract the QoS values that have been calculated/analysed from the QoS data
+MT safe."
+              version="0.10.29">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="jitter" direction="out" transfer-ownership="full">
+            <type name="int64" c:type="gint64*"/>
+          </parameter>
+          <parameter name="proportion"
+                     direction="out"
+                     transfer-ownership="full">
+            <type name="double" c:type="gdouble*"/>
+          </parameter>
+          <parameter name="quality" direction="out" transfer-ownership="full">
+            <type name="int" c:type="gint*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="parse_qos_stats"
+              c:identifier="gst_message_parse_qos_stats"
+              doc="filters will use GST_FORMAT_BUFFERS (frames). Audio sinks and audio filters
+will likely use GST_FORMAT_DEFAULT (samples).
+change to READY or a flushing operation.
+or a flushing operation.
+Extract the QoS stats representing the history of the current continuous
+pipeline playback period.
+When @format is @GST_FORMAT_UNDEFINED both @dropped and @processed are
+invalid. Values of -1 for either @processed or @dropped mean unknown values.
+MT safe."
+              version="0.10.29">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="format" transfer-ownership="none">
+            <type name="Format" c:type="GstFormat*"/>
+          </parameter>
+          <parameter name="processed"
+                     direction="out"
+                     transfer-ownership="full">
+            <type name="uint64" c:type="guint64*"/>
+          </parameter>
+          <parameter name="dropped" direction="out" transfer-ownership="full">
+            <type name="uint64" c:type="guint64*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_structure"
+              c:identifier="gst_message_get_structure"
+              doc="Access the structure of the message.
+owned by the message, which means that you should not free it and
+that the pointer becomes invalid when you free the message.
+MT safe.">
+        <return-value transfer-ownership="none">
+          <type name="Structure" c:type="GstStructure*"/>
+        </return-value>
+      </method>
+    </record>
+    <record name="MessageClass" c:type="GstMessageClass">
+      <field name="mini_object_class" writable="1">
+        <type name="MiniObjectClass" c:type="GstMiniObjectClass"/>
+      </field>
+      <field name="_gst_reserved" writable="1">
+        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+          <type name="any"/>
+        </array>
+      </field>
+    </record>
+    <bitfield name="MessageType"
+              doc="only receive this message in the PLAYING state and every time it sets a
+pipeline to PLAYING that is in the EOS state. The application can perform a
+flushing seek in the pipeline, which will undo the EOS state again.
+message it should stop playback of the pipeline and not assume that more
+data will be played.
+receives a buffering message in the PLAYING state for a non-live pipeline it
+must PAUSE the pipeline until the buffering completes, when the percentage
+field in the message is 100%. For live pipelines, no action must be
+performed and the buffering percentage can be used to inform the user about
+the progress.
+This message is deprecated.
+a clock. This message is used internally and
+never forwarded to the application.
+unusable. The pipeline will select a new clock on
+the next PLAYING state change. The application
+should set the pipeline to PAUSED and back to
+PLAYING when this message is received.
+message is used internally and never forwarded to the application.
+stops, errors, etc..
+via an application-specific element.
+documentation
+message is used internally and never forwarded to the application.
+message is forwarded to the application after all elements that posted
+can get the new duration with a duration query.
+change. This message is not forwarded to the application but is used
+change. The application will only receive this message from the toplevel
+change state. This message is a suggestion to the application which can
+The different message types that are available."
+              c:type="GstMessageType">
+      <member name="unknown" value="0" c:identifier="GST_MESSAGE_UNKNOWN"/>
+      <member name="eos" value="1" c:identifier="GST_MESSAGE_EOS"/>
+      <member name="error" value="2" c:identifier="GST_MESSAGE_ERROR"/>
+      <member name="warning" value="4" c:identifier="GST_MESSAGE_WARNING"/>
+      <member name="info" value="8" c:identifier="GST_MESSAGE_INFO"/>
+      <member name="tag" value="16" c:identifier="GST_MESSAGE_TAG"/>
+      <member name="buffering"
+              value="32"
+              c:identifier="GST_MESSAGE_BUFFERING"/>
+      <member name="state_changed"
+              value="64"
+              c:identifier="GST_MESSAGE_STATE_CHANGED"/>
+      <member name="state_dirty"
+              value="128"
+              c:identifier="GST_MESSAGE_STATE_DIRTY"/>
+      <member name="step_done"
+              value="256"
+              c:identifier="GST_MESSAGE_STEP_DONE"/>
+      <member name="clock_provide"
+              value="512"
+              c:identifier="GST_MESSAGE_CLOCK_PROVIDE"/>
+      <member name="clock_lost"
+              value="1024"
+              c:identifier="GST_MESSAGE_CLOCK_LOST"/>
+      <member name="new_clock"
+              value="2048"
+              c:identifier="GST_MESSAGE_NEW_CLOCK"/>
+      <member name="structure_change"
+              value="4096"
+              c:identifier="GST_MESSAGE_STRUCTURE_CHANGE"/>
+      <member name="stream_status"
+              value="8192"
+              c:identifier="GST_MESSAGE_STREAM_STATUS"/>
+      <member name="application"
+              value="16384"
+              c:identifier="GST_MESSAGE_APPLICATION"/>
+      <member name="element" value="32768" c:identifier="GST_MESSAGE_ELEMENT"/>
+      <member name="segment_start"
+              value="65536"
+              c:identifier="GST_MESSAGE_SEGMENT_START"/>
+      <member name="segment_done"
+              value="131072"
+              c:identifier="GST_MESSAGE_SEGMENT_DONE"/>
+      <member name="duration"
+              value="262144"
+              c:identifier="GST_MESSAGE_DURATION"/>
+      <member name="latency"
+              value="524288"
+              c:identifier="GST_MESSAGE_LATENCY"/>
+      <member name="async_start"
+              value="1048576"
+              c:identifier="GST_MESSAGE_ASYNC_START"/>
+      <member name="async_done"
+              value="2097152"
+              c:identifier="GST_MESSAGE_ASYNC_DONE"/>
+      <member name="request_state"
+              value="4194304"
+              c:identifier="GST_MESSAGE_REQUEST_STATE"/>
+      <member name="step_start"
+              value="8388608"
+              c:identifier="GST_MESSAGE_STEP_START"/>
+      <member name="qos" value="16777216" c:identifier="GST_MESSAGE_QOS"/>
+      <member name="any" value="-1" c:identifier="GST_MESSAGE_ANY"/>
+    </bitfield>
+    <record name="MiniObject"
+            c:type="GstMiniObject"
+            doc="Base class for refcounted lightweight objects.">
+      <field name="instance" writable="1">
+        <type name="GObject.TypeInstance" c:type="GTypeInstance"/>
+      </field>
+      <field name="refcount" writable="1">
+        <type name="int" c:type="gint"/>
+      </field>
+      <field name="flags" writable="1">
+        <type name="uint" c:type="guint"/>
+      </field>
+      <field name="_gst_reserved" writable="1">
+        <type name="any" c:type="gpointer"/>
+      </field>
+      <constructor name="new"
+                   c:identifier="gst_mini_object_new"
+                   doc="Creates a new mini-object of the desired type.
+MT safe">
+        <return-value transfer-ownership="full">
+          <type name="MiniObject" c:type="GstMiniObject*"/>
+        </return-value>
+        <parameters>
+          <parameter name="type" transfer-ownership="none">
+            <type name="GType" c:type="GType"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <method name="copy"
+              c:identifier="gst_mini_object_copy"
+              doc="Creates a copy of the mini-object.
+MT safe">
+        <return-value transfer-ownership="full">
+          <type name="MiniObject" c:type="GstMiniObject*"/>
+        </return-value>
+      </method>
+      <method name="is_writable"
+              c:identifier="gst_mini_object_is_writable"
+              doc="Checks if a mini-object is writable.  A mini-object is writable
+if the reference count is one and the #GST_MINI_OBJECT_FLAG_READONLY
+flag is not set.  Modification of a mini-object should only be
+done after verifying that it is writable.
+MT safe">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+      </method>
+      <method name="make_writable"
+              c:identifier="gst_mini_object_make_writable"
+              doc="Checks if a mini-object is writable.  If not, a writable copy is made and
+returned.  This gives away the reference to the original mini object,
+and returns a reference to the new object.
+MT safe">
+        <return-value transfer-ownership="full" doc="that is writable.">
+          <type name="MiniObject" c:type="GstMiniObject*"/>
+        </return-value>
+      </method>
+      <method name="ref"
+              c:identifier="gst_mini_object_ref"
+              doc="Increase the reference count of the mini-object.
+Note that the refcount affects the writeability
+of @mini-object, see gst_mini_object_is_writable(). It is
+important to note that keeping additional references to
+GstMiniObject instances can potentially increase the number
+of memcpy operations in a pipeline, especially if the miniobject
+is a #GstBuffer.">
+        <return-value transfer-ownership="full">
+          <type name="MiniObject" c:type="GstMiniObject*"/>
+        </return-value>
+      </method>
+      <method name="unref"
+              c:identifier="gst_mini_object_unref"
+              doc="Decreases the reference count of the mini-object, possibly freeing
+the mini-object.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </method>
+      <method name="replace"
+              c:identifier="gst_mini_object_replace"
+              doc="Modifies a pointer to point to a new mini-object.  The modification
+is done atomically, and the reference counts are updated correctly.
+Either @newdata and the value pointed to by @olddata may be NULL.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="newdata" transfer-ownership="none">
+            <type name="MiniObject" c:type="GstMiniObject*"/>
+          </parameter>
+        </parameters>
+      </method>
+    </record>
+    <record name="MiniObjectClass" c:type="GstMiniObjectClass">
+      <field name="type_class" writable="1">
+        <type name="GObject.TypeClass" c:type="GTypeClass"/>
+      </field>
+      <field name="copy" writable="1">
+        <type name="MiniObjectCopyFunction"
+              c:type="GstMiniObjectCopyFunction"/>
+      </field>
+      <field name="finalize" writable="1">
+        <type name="MiniObjectFinalizeFunction"
+              c:type="GstMiniObjectFinalizeFunction"/>
+      </field>
+      <field name="_gst_reserved" writable="1">
+        <type name="any" c:type="gpointer"/>
+      </field>
+    </record>
+    <callback name="MiniObjectCopyFunction"
+              c:type="GstMiniObjectCopyFunction"
+              doc="Virtual function prototype for methods to create copies of instances.">
+      <return-value transfer-ownership="full">
+        <type name="MiniObject" c:type="GstMiniObject*"/>
+      </return-value>
+      <parameters>
+        <parameter name="obj" transfer-ownership="none">
+          <type name="MiniObject" c:type="GstMiniObject*"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <callback name="MiniObjectFinalizeFunction"
+              c:type="GstMiniObjectFinalizeFunction"
+              doc="Virtual function prototype for methods to free ressources used by
+mini-objects. Subclasses of the mini object are allowed to revive the
+passed object by doing a gst_mini_object_ref(). If the object is not
+revived after the finalize function, the memory associated with the
+object is freed.">
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="obj" transfer-ownership="none">
+          <type name="MiniObject" c:type="GstMiniObject*"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <bitfield name="MiniObjectFlags"
+              doc="Flags for the padtemplate"
+              c:type="GstMiniObjectFlags">
+      <member name="readonly"
+              value="1"
+              c:identifier="GST_MINI_OBJECT_FLAG_READONLY"/>
+      <member name="last" value="16" c:identifier="GST_MINI_OBJECT_FLAG_LAST"/>
+    </bitfield>
+    <constant name="NSECOND" value="0">
+      <type name="int"/>
+    </constant>
+    <class name="Object"
+           c:type="GstObject"
+           doc="GStreamer base object class."
+           parent="GObject.Object"
+           abstract="1"
+           glib:type-name="GstObject"
+           glib:get-type="gst_object_get_type"
+           glib:type-struct="ObjectClass">
+      <function name="default_deep_notify"
+                c:identifier="gst_object_default_deep_notify"
+                doc="NULL to show all changes.
+A default deep_notify signal callback for an object. The user data
+should contain a pointer to an array of strings that should be excluded
+from the notify. The default handler will print the new value of the property
+using g_print.
+MT safe. This function grabs and releases @object&apos;s LOCK for getting its
+path string.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="object" transfer-ownership="none">
+            <type name="GObject.Object" c:type="GObject*"/>
+          </parameter>
+          <parameter name="orig" transfer-ownership="none">
+            <type name="Object" c:type="GstObject*"/>
+          </parameter>
+          <parameter name="pspec" transfer-ownership="none">
+            <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
+          </parameter>
+          <parameter name="excluded_props" transfer-ownership="none">
+            <array c:type="gchar**">
+              <type name="utf8"/>
+            </array>
+          </parameter>
+        </parameters>
+      </function>
+      <function name="ref"
+                c:identifier="gst_object_ref"
+                doc="Increments the reference count on @object. This function
+does not take the lock on @object because it relies on
+atomic refcounting.
+This object returns the input parameter to ease writing
+constructs like :
+result = gst_object_ref (object-&gt;parent);">
+        <return-value transfer-ownership="none">
+          <type name="any" c:type="gpointer"/>
+        </return-value>
+        <parameters>
+          <parameter name="object" transfer-ownership="none">
+            <type name="any" c:type="gpointer"/>
+          </parameter>
+        </parameters>
+      </function>
+      <function name="unref"
+                c:identifier="gst_object_unref"
+                doc="Decrements the reference count on @object.  If reference count hits
+zero, destroy @object. This function does not take the lock
+on @object as it relies on atomic refcounting.
+The unref method should never be called with the LOCK held since
+this might deadlock the dispose function.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="object" transfer-ownership="none">
+            <type name="any" c:type="gpointer"/>
+          </parameter>
+        </parameters>
+      </function>
+      <function name="ref_sink"
+                c:identifier="gst_object_ref_sink"
+                doc="Increase the reference count of @object, and possibly remove the floating
+reference, if @object has a floating reference.
+In other words, if the object is floating, then this call &quot;assumes ownership&quot;
+of the floating reference, converting it to a normal reference by clearing
+the floating flag while leaving the reference count unchanged. If the object
+is not floating, then this call adds a new normal reference increasing the
+reference count by one.
+MT safe. This function grabs and releases @object lock."
+                version="0.10.24">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="object" transfer-ownership="none">
+            <type name="any" c:type="gpointer"/>
+          </parameter>
+        </parameters>
+      </function>
+      <function name="sink"
+                c:identifier="gst_object_sink"
+                doc="If @object was floating, the #GST_OBJECT_FLOATING flag is removed
+and @object is unreffed. When @object was not floating,
+this function does nothing.
+Any newly created object has a refcount of 1 and is floating.
+This function should be used when creating a new object to
+symbolically &apos;take ownership&apos; of @object. This done by first doing a
+gst_object_ref() to keep a reference to @object and then gst_object_sink()
+to remove and unref any floating references to @object.
+Use gst_object_set_parent() to have this done for you.
+MT safe. This function grabs and releases @object lock.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="object" transfer-ownership="none">
+            <type name="any" c:type="gpointer"/>
+          </parameter>
+        </parameters>
+      </function>
+      <function name="check_uniqueness"
+                c:identifier="gst_object_check_uniqueness"
+                doc="Checks to see if there is any object named @name in @list. This function
+does not do any locking of any kind. You might want to protect the
+provided list with the lock of the owner of the list. This function
+will lock each #GstObject in the list to compare the name, so be
+carefull when passing a list with a locked object.
+FALSE if it does.
+MT safe. Grabs and releases the LOCK of each object in the list.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="list" transfer-ownership="none">
+            <type name="GLib.List" c:type="GList*"/>
+          </parameter>
+          <parameter name="name" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </function>
+      <virtual-method name="save_thyself" invoker="save_thyself">
+        <return-value transfer-ownership="full">
+          <type name="libxml2.NodePtr" c:type="xmlNodePtr"/>
+        </return-value>
+        <parameters>
+          <parameter name="parent" transfer-ownership="none">
+            <type name="libxml2.NodePtr" c:type="xmlNodePtr"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="restore_thyself" invoker="restore_thyself">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="self" transfer-ownership="none">
+            <type name="libxml2.NodePtr" c:type="xmlNodePtr"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <method name="set_name"
+              c:identifier="gst_object_set_name"
+              doc="Sets the name of @object, or gives @object a guaranteed unique
+name (if @name is NULL).
+This function makes a copy of the provided name, so the caller
+retains ownership of the name it sent.
+a parent cannot be renamed, this function returns FALSE in those
+cases.
+MT safe.  This function grabs and releases @object&apos;s LOCK.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="name" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_name"
+              c:identifier="gst_object_get_name"
+              doc="Returns a copy of the name of @object.
+Caller should g_free() the return value after usage.
+For a nameless object, this returns NULL, which you can safely g_free()
+as well.
+MT safe. This function grabs and releases @object&apos;s LOCK.">
+        <return-value transfer-ownership="full" doc="after usage.">
+          <type name="utf8" c:type="gchar*"/>
+        </return-value>
+      </method>
+      <method name="set_name_prefix"
+              c:identifier="gst_object_set_name_prefix"
+              doc="Sets the name prefix of @object to @name_prefix.
+This function makes a copy of the provided name prefix, so the caller
+retains ownership of the name prefix it sent.
+MT safe.  This function grabs and releases @object&apos;s LOCK.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="name_prefix" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_name_prefix"
+              c:identifier="gst_object_get_name_prefix"
+              doc="Returns a copy of the name prefix of @object.
+Caller should g_free() the return value after usage.
+For a prefixless object, this returns NULL, which you can safely g_free()
+as well.
+MT safe. This function grabs and releases @object&apos;s LOCK.">
+        <return-value transfer-ownership="full" doc="after usage.">
+          <type name="utf8" c:type="gchar*"/>
+        </return-value>
+      </method>
+      <method name="set_parent"
+              c:identifier="gst_object_set_parent"
+              doc="Sets the parent of @object to @parent. The object&apos;s reference count will
+be incremented, and any floating reference will be removed (see gst_object_sink()).
+This function causes the parent-set signal to be emitted when the parent
+was successfully set.
+already had a parent or @object and @parent are the same.
+MT safe. Grabs and releases @object&apos;s LOCK.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="parent" transfer-ownership="none">
+            <type name="Object" c:type="GstObject*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_parent"
+              c:identifier="gst_object_get_parent"
+              doc="Returns the parent of @object. This function increases the refcount
+of the parent object so you should gst_object_unref() it after usage.
+parent. unref after usage.
+MT safe. Grabs and releases @object&apos;s LOCK.">
+        <return-value transfer-ownership="full">
+          <type name="Object" c:type="GstObject*"/>
+        </return-value>
+      </method>
+      <method name="unparent"
+              c:identifier="gst_object_unparent"
+              doc="Clear the parent of @object, removing the associated reference.
+This function decreases the refcount of @object.
+MT safe. Grabs and releases @object&apos;s lock.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </method>
+      <method name="has_ancestor"
+              c:identifier="gst_object_has_ancestor"
+              doc="Check if @object has an ancestor @ancestor somewhere up in
+the hierarchy.
+MT safe. Grabs and releases @object&apos;s locks.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="ancestor" transfer-ownership="none">
+            <type name="Object" c:type="GstObject*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="replace"
+              c:identifier="gst_object_replace"
+              doc="Unrefs the #GstObject pointed to by @oldobj, refs @newobj and
+puts @newobj in *@oldobj. Be carefull when calling this
+function, it does not take any locks. You might want to lock
+the object owning @oldobj pointer before calling this
+function.
+Make sure not to LOCK @oldobj because it might be unreffed
+which could cause a deadlock when it is disposed.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="newobj" transfer-ownership="none">
+            <type name="Object" c:type="GstObject*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_path_string"
+              c:identifier="gst_object_get_path_string"
+              doc="Generates a string describing the path of @object in
+the object hierarchy. Only useful (or used) for debugging.
+g_free() the string after usage.
+MT safe. Grabs and releases the #GstObject&apos;s LOCK for all objects
+in the hierarchy.">
+        <return-value transfer-ownership="full">
+          <type name="utf8" c:type="gchar*"/>
+        </return-value>
+      </method>
+      <method name="save_thyself"
+              c:identifier="gst_object_save_thyself"
+              doc="Saves @object into the parent XML node.">
+        <return-value transfer-ownership="full">
+          <type name="libxml2.NodePtr" c:type="xmlNodePtr"/>
+        </return-value>
+        <parameters>
+          <parameter name="parent" transfer-ownership="none">
+            <type name="libxml2.NodePtr" c:type="xmlNodePtr"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="restore_thyself"
+              c:identifier="gst_object_restore_thyself"
+              doc="Restores @object with the data from the parent XML node.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="self" transfer-ownership="none">
+            <type name="libxml2.NodePtr" c:type="xmlNodePtr"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="default_error"
+              c:identifier="gst_object_default_error"
+              doc="A default error function.
+The default handler will simply print the error string using g_print.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="error" transfer-ownership="none">
+            <type name="GLib.Error" c:type="GError*"/>
+          </parameter>
+          <parameter name="debug" transfer-ownership="full">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <property name="name" writable="1" construct="1">
+        <type name="utf8" c:type="gchararray"/>
+      </property>
+      <field name="object">
+        <type name="GObject.Object" c:type="GObject"/>
+      </field>
+      <field name="refcount">
+        <type name="int" c:type="gint"/>
+      </field>
+      <field name="lock">
+        <type name="GLib.Mutex" c:type="GMutex*"/>
+      </field>
+      <field name="name">
+        <type name="utf8" c:type="gchar*"/>
+      </field>
+      <field name="name_prefix">
+        <type name="utf8" c:type="gchar*"/>
+      </field>
+      <field name="parent">
+        <type name="Object" c:type="GstObject*"/>
+      </field>
+      <field name="flags">
+        <type name="uint32" c:type="guint32"/>
+      </field>
+      <field name="_gst_reserved">
+        <type name="any" c:type="gpointer"/>
+      </field>
+      <glib:signal name="deep-notify"
+                   doc="The deep notify signal is used to be notified of property changes. It is
+typically attached to the toplevel bin to receive notifications from all
+the elements contained in that bin.">
+        <return-value transfer-ownership="full">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="prop_object" transfer-ownership="none">
+            <type name="Object" c:type="GstObject"/>
+          </parameter>
+          <parameter name="prop" transfer-ownership="none">
+            <type name="GObject.ParamSpec" c:type="GParam"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="object-saved"
+                   doc="Trigered whenever a new object is saved to XML. You can connect to this
+signal to insert custom XML tags into the core XML.">
+        <return-value transfer-ownership="full">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="xml_node" transfer-ownership="none">
+            <type name="any" c:type="gpointer"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="parent-set"
+                   doc="Emitted when the parent of an object is set.">
+        <return-value transfer-ownership="full">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="parent" transfer-ownership="none">
+            <type name="Object" c:type="GstObject"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="parent-unset"
+                   doc="Emitted when the parent of an object is unset.">
+        <return-value transfer-ownership="full">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="parent" transfer-ownership="none">
+            <type name="Object" c:type="GstObject"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+    </class>
+    <record name="ObjectClass"
+            c:type="GstObjectClass"
+            glib:is-gtype-struct-for="Object"
+            doc="GStreamer base object class.">
+      <field name="parent_class">
+        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
+      </field>
+      <field name="path_string_separator">
+        <type name="utf8" c:type="gchar*"/>
+      </field>
+      <field name="signal_object">
+        <type name="GObject.Object" c:type="GObject*"/>
+      </field>
+      <field name="lock">
+        <type name="GLib.StaticRecMutex" c:type="GStaticRecMutex*"/>
+      </field>
+      <field name="parent_set">
+        <callback name="parent_set" c:type="parent_set">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="object" transfer-ownership="none">
+              <type name="Object" c:type="GstObject*"/>
+            </parameter>
+            <parameter name="parent" transfer-ownership="none">
+              <type name="Object" c:type="GstObject*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="parent_unset">
+        <callback name="parent_unset" c:type="parent_unset">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="object" transfer-ownership="none">
+              <type name="Object" c:type="GstObject*"/>
+            </parameter>
+            <parameter name="parent" transfer-ownership="none">
+              <type name="Object" c:type="GstObject*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="object_saved">
+        <callback name="object_saved" c:type="object_saved">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="object" transfer-ownership="none">
+              <type name="Object" c:type="GstObject*"/>
+            </parameter>
+            <parameter name="parent" transfer-ownership="none">
+              <type name="libxml2.NodePtr" c:type="xmlNodePtr"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="deep_notify">
+        <callback name="deep_notify" c:type="deep_notify">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="object" transfer-ownership="none">
+              <type name="Object" c:type="GstObject*"/>
+            </parameter>
+            <parameter name="orig" transfer-ownership="none">
+              <type name="Object" c:type="GstObject*"/>
+            </parameter>
+            <parameter name="pspec" transfer-ownership="none">
+              <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="save_thyself">
+        <callback name="save_thyself" c:type="save_thyself">
+          <return-value transfer-ownership="full">
+            <type name="libxml2.NodePtr" c:type="xmlNodePtr"/>
+          </return-value>
+          <parameters>
+            <parameter name="object" transfer-ownership="none">
+              <type name="Object" c:type="GstObject*"/>
+            </parameter>
+            <parameter name="parent" transfer-ownership="none">
+              <type name="libxml2.NodePtr" c:type="xmlNodePtr"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="restore_thyself">
+        <callback name="restore_thyself" c:type="restore_thyself">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="object" transfer-ownership="none">
+              <type name="Object" c:type="GstObject*"/>
+            </parameter>
+            <parameter name="self" transfer-ownership="none">
+              <type name="libxml2.NodePtr" c:type="xmlNodePtr"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="_gst_reserved">
+        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+          <type name="any"/>
+        </array>
+      </field>
+    </record>
+    <bitfield name="ObjectFlags"
+              doc="not assigned to a bin)
+The standard flags that an gstobject may have."
+              c:type="GstObjectFlags">
+      <member name="disposing" value="1" c:identifier="GST_OBJECT_DISPOSING"/>
+      <member name="floating" value="2" c:identifier="GST_OBJECT_FLOATING"/>
+      <member name="flag_last" value="16" c:identifier="GST_OBJECT_FLAG_LAST"/>
+    </bitfield>
+    <constant name="PARAM_CONTROLLABLE" value="2">
+      <type name="int"/>
+    </constant>
+    <constant name="PARAM_MUTABLE_PAUSED" value="8">
+      <type name="int"/>
+    </constant>
+    <constant name="PARAM_MUTABLE_PLAYING" value="16">
+      <type name="int"/>
+    </constant>
+    <constant name="PARAM_MUTABLE_READY" value="4">
+      <type name="int"/>
+    </constant>
+    <constant name="PARAM_USER_SHIFT" value="256">
+      <type name="int"/>
+    </constant>
+    <class name="Pad"
+           c:type="GstPad"
+           doc="the pad.
+the data used in streaming.
+The #GstPad structure. Use the functions to update the variables."
+           parent="Object"
+           glib:type-name="GstPad"
+           glib:get-type="gst_pad_get_type"
+           glib:type-struct="PadClass">
+      <constructor name="new"
+                   c:identifier="gst_pad_new"
+                   doc="Creates a new pad with the given name in the given direction.
+If name is NULL, a guaranteed unique name (across all pads)
+will be assigned.
+This function makes a copy of the name so you can safely free the name.
+MT safe.">
+        <return-value transfer-ownership="full">
+          <type name="Pad" c:type="GstPad*"/>
+        </return-value>
+        <parameters>
+          <parameter name="name" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="direction" transfer-ownership="none">
+            <type name="PadDirection" c:type="GstPadDirection"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <constructor name="new_from_template"
+                   c:identifier="gst_pad_new_from_template"
+                   doc="Creates a new pad with the given name from the given template.
+If name is NULL, a guaranteed unique name (across all pads)
+will be assigned.
+This function makes a copy of the name so you can safely free the name.">
+        <return-value transfer-ownership="full">
+          <type name="Pad" c:type="GstPad*"/>
+        </return-value>
+        <parameters>
+          <parameter name="templ" transfer-ownership="none">
+            <type name="PadTemplate" c:type="GstPadTemplate*"/>
+          </parameter>
+          <parameter name="name" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <constructor name="new_from_static_template"
+                   c:identifier="gst_pad_new_from_static_template"
+                   doc="Creates a new pad with the given name from the given static template.
+If name is NULL, a guaranteed unique name (across all pads)
+will be assigned.
+This function makes a copy of the name so you can safely free the name.">
+        <return-value transfer-ownership="full">
+          <type name="Pad" c:type="GstPad*"/>
+        </return-value>
+        <parameters>
+          <parameter name="templ" transfer-ownership="none">
+            <type name="StaticPadTemplate" c:type="GstStaticPadTemplate*"/>
+          </parameter>
+          <parameter name="name" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <function name="load_and_link"
+                c:identifier="gst_pad_load_and_link"
+                doc="Reads the pad definition from the XML node and links the given pad
+in the element to a pad of an element up in the hierarchy.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="self" transfer-ownership="none">
+            <type name="libxml2.NodePtr" c:type="xmlNodePtr"/>
+          </parameter>
+          <parameter name="parent" transfer-ownership="none">
+            <type name="Object" c:type="GstObject*"/>
+          </parameter>
+        </parameters>
+      </function>
+      <method name="get_direction"
+              c:identifier="gst_pad_get_direction"
+              doc="Gets the direction of the pad. The direction of the pad is
+decided at construction time so this function does not take
+the LOCK.
+MT safe.">
+        <return-value transfer-ownership="full">
+          <type name="PadDirection" c:type="GstPadDirection"/>
+        </return-value>
+      </method>
+      <method name="set_active"
+              c:identifier="gst_pad_set_active"
+              doc="Activates or deactivates the given pad.
+Normally called from within core state change functions.
+If @active, makes sure the pad is active. If it is already active, either in
+push or pull mode, just return. Otherwise dispatches to the pad&apos;s activate
+function to perform the actual activation.
+If not @active, checks the pad&apos;s current mode and calls
+gst_pad_activate_push() or gst_pad_activate_pull(), as appropriate, with a
+FALSE argument.
+MT safe.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="active" transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="is_active"
+              c:identifier="gst_pad_is_active"
+              doc="Query if a pad is active
+MT safe.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+      </method>
+      <method name="activate_pull"
+              c:identifier="gst_pad_activate_pull"
+              doc="Activates or deactivates the given pad in pull mode via dispatching to the
+pad&apos;s activatepullfunc. For use from within pad activation functions only.
+When called on sink pads, will first proxy the call to the peer pad, which
+is expected to activate its internally linked pads from within its
+activate_pull function.
+If you don&apos;t know what this is, you probably don&apos;t want to call it.
+MT safe.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="active" transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="activate_push"
+              c:identifier="gst_pad_activate_push"
+              doc="Activates or deactivates the given pad in push mode via dispatching to the
+pad&apos;s activatepushfunc. For use from within pad activation functions only.
+If you don&apos;t know what this is, you probably don&apos;t want to call it.
+MT safe.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="active" transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_blocked"
+              c:identifier="gst_pad_set_blocked"
+              doc="Blocks or unblocks the dataflow on a pad. This function is
+a shortcut for gst_pad_set_blocked_async() with a NULL
+callback.
+wrong parameters were passed or the pad was already in the requested state.
+MT safe.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="blocked" transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_blocked_async"
+              c:identifier="gst_pad_set_blocked_async"
+              doc="operation succeeds
+Blocks or unblocks the dataflow on a pad. The provided callback
+is called when the operation succeeds; this happens right before the next
+attempt at pushing a buffer on the pad.
+This can take a while as the pad can only become blocked when real dataflow
+is happening.
+When the pipeline is stalled, for example in PAUSED, this can
+take an indeterminate amount of time.
+You can pass NULL as the callback to make this call block. Be careful with
+this blocking call as it might not return for reasons stated above.
+wrong parameters were passed or the pad was already in the requested state.
+MT safe.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="blocked" transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </parameter>
+          <parameter name="callback"
+                     transfer-ownership="none"
+                     scope="call"
+                     closure="3">
+            <type name="PadBlockCallback" c:type="GstPadBlockCallback"/>
+          </parameter>
+          <parameter name="user_data" transfer-ownership="none">
+            <type name="any" c:type="gpointer"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_blocked_async_full"
+              c:identifier="gst_pad_set_blocked_async_full"
+              doc="operation succeeds
+Blocks or unblocks the dataflow on a pad. The provided callback
+is called when the operation succeeds; this happens right before the next
+attempt at pushing a buffer on the pad.
+This can take a while as the pad can only become blocked when real dataflow
+is happening.
+When the pipeline is stalled, for example in PAUSED, this can
+take an indeterminate amount of time.
+You can pass NULL as the callback to make this call block. Be careful with
+this blocking call as it might not return for reasons stated above.
+wrong parameters were passed or the pad was already in the requested state.
+MT safe."
+              version="0.10.23">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="blocked" transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </parameter>
+          <parameter name="callback"
+                     transfer-ownership="none"
+                     scope="notified"
+                     closure="3"
+                     destroy="4">
+            <type name="PadBlockCallback" c:type="GstPadBlockCallback"/>
+          </parameter>
+          <parameter name="user_data" transfer-ownership="none">
+            <type name="any" c:type="gpointer"/>
+          </parameter>
+          <parameter name="destroy_data"
+                     transfer-ownership="none"
+                     scope="call">
+            <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="is_blocked"
+              c:identifier="gst_pad_is_blocked"
+              doc="Checks if the pad is blocked or not. This function returns the
+last requested state of the pad. It is not certain that the pad
+is actually blocking at this point (see gst_pad_is_blocking()).
+MT safe.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+      </method>
+      <method name="is_blocking"
+              c:identifier="gst_pad_is_blocking"
+              doc="Checks if the pad is blocking or not. This is a guaranteed state
+of whether the pad is actually blocking on a #GstBuffer or a #GstEvent.
+MT safe."
+              version="0.10.11">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+      </method>
+      <method name="set_element_private"
+              c:identifier="gst_pad_set_element_private"
+              doc="Set the given private data gpointer on the pad.
+This function can only be used by the element that owns the pad.
+No locking is performed in this function.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="priv" transfer-ownership="none">
+            <type name="any" c:type="gpointer"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_element_private"
+              c:identifier="gst_pad_get_element_private"
+              doc="Gets the private data of a pad.
+No locking is performed in this function.">
+        <return-value transfer-ownership="none">
+          <type name="any" c:type="gpointer"/>
+        </return-value>
+      </method>
+      <method name="get_pad_template"
+              c:identifier="gst_pad_get_pad_template"
+              doc="Gets the template for @pad.
+if this pad has no template.">
+        <return-value transfer-ownership="full">
+          <type name="PadTemplate" c:type="GstPadTemplate*"/>
+        </return-value>
+      </method>
+      <method name="set_bufferalloc_function"
+              c:identifier="gst_pad_set_bufferalloc_function"
+              doc="Sets the given bufferalloc function for the pad. Note that the
+bufferalloc function can only be set on sinkpads.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="bufalloc" transfer-ownership="none" scope="call">
+            <type name="PadBufferAllocFunction"
+                  c:type="GstPadBufferAllocFunction"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="alloc_buffer"
+              c:identifier="gst_pad_alloc_buffer"
+              doc="Allocates a new, empty buffer optimized to push to pad @pad.  This
+function only works if @pad is a source pad and has a peer.
+A new, empty #GstBuffer will be put in the @buf argument.
+You need to check the caps of the buffer after performing this
+function and renegotiate to the format if needed. If the caps changed, it is
+possible that the buffer returned in @buf is not of the right size for the
+new format, @buf needs to be unreffed and reallocated if this is the case.
+result code other than #GST_FLOW_OK is an error and @buf should
+not be used.
+An error can occur if the pad is not connected or when the downstream
+peer elements cannot provide an acceptable buffer.
+MT safe.">
+        <return-value transfer-ownership="full">
+          <type name="FlowReturn" c:type="GstFlowReturn"/>
+        </return-value>
+        <parameters>
+          <parameter name="offset" transfer-ownership="none">
+            <type name="uint64" c:type="guint64"/>
+          </parameter>
+          <parameter name="size" transfer-ownership="none">
+            <type name="int" c:type="gint"/>
+          </parameter>
+          <parameter name="caps" transfer-ownership="none">
+            <type name="Caps" c:type="GstCaps*"/>
+          </parameter>
+          <parameter name="buf" transfer-ownership="none">
+            <type name="Buffer" c:type="GstBuffer**"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="alloc_buffer_and_set_caps"
+              c:identifier="gst_pad_alloc_buffer_and_set_caps"
+              doc="In addition to the function gst_pad_alloc_buffer(), this function
+automatically calls gst_pad_set_caps() when the caps of the
+newly allocated buffer are different from the @pad caps.
+After a renegotiation, the size of the new buffer returned in @buf could
+be of the wrong size for the new format and must be unreffed an reallocated
+in that case.
+result code other than #GST_FLOW_OK is an error and @buf should
+not be used.
+An error can occur if the pad is not connected or when the downstream
+peer elements cannot provide an acceptable buffer.
+MT safe.">
+        <return-value transfer-ownership="full">
+          <type name="FlowReturn" c:type="GstFlowReturn"/>
+        </return-value>
+        <parameters>
+          <parameter name="offset" transfer-ownership="none">
+            <type name="uint64" c:type="guint64"/>
+          </parameter>
+          <parameter name="size" transfer-ownership="none">
+            <type name="int" c:type="gint"/>
+          </parameter>
+          <parameter name="caps" transfer-ownership="none">
+            <type name="Caps" c:type="GstCaps*"/>
+          </parameter>
+          <parameter name="buf" transfer-ownership="none">
+            <type name="Buffer" c:type="GstBuffer**"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_activate_function"
+              c:identifier="gst_pad_set_activate_function"
+              doc="Sets the given activate function for @pad. The activate function will
+dispatch to gst_pad_activate_push() or gst_pad_activate_pull() to perform
+the actual activation. Only makes sense to set on sink pads.
+Call this function if your sink pad can start a pull-based task.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="activate" transfer-ownership="none" scope="call">
+            <type name="PadActivateFunction" c:type="GstPadActivateFunction"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_activatepull_function"
+              c:identifier="gst_pad_set_activatepull_function"
+              doc="Sets the given activate_pull function for the pad. An activate_pull function
+prepares the element and any upstream connections for pulling. See XXX
+part-activation.txt for details.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="activatepull"
+                     transfer-ownership="none"
+                     scope="call">
+            <type name="PadActivateModeFunction"
+                  c:type="GstPadActivateModeFunction"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_activatepush_function"
+              c:identifier="gst_pad_set_activatepush_function"
+              doc="Sets the given activate_push function for the pad. An activate_push function
+prepares the element for pushing. See XXX part-activation.txt for details.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="activatepush"
+                     transfer-ownership="none"
+                     scope="call">
+            <type name="PadActivateModeFunction"
+                  c:type="GstPadActivateModeFunction"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_chain_function"
+              c:identifier="gst_pad_set_chain_function"
+              doc="Sets the given chain function for the pad. The chain function is called to
+process a #GstBuffer input buffer. see #GstPadChainFunction for more details.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="chain" transfer-ownership="none" scope="call">
+            <type name="PadChainFunction" c:type="GstPadChainFunction"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_chain_list_function"
+              c:identifier="gst_pad_set_chain_list_function"
+              doc="Sets the given chain list function for the pad. The chainlist function is
+called to process a #GstBufferList input buffer list. See
+#GstPadChainListFunction for more details."
+              version="0.10.24">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="chainlist" transfer-ownership="none" scope="call">
+            <type name="PadChainListFunction"
+                  c:type="GstPadChainListFunction"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_getrange_function"
+              c:identifier="gst_pad_set_getrange_function"
+              doc="Sets the given getrange function for the pad. The getrange function is
+called to produce a new #GstBuffer to start the processing pipeline. see
+#GstPadGetRangeFunction for a description of the getrange function.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="get" transfer-ownership="none" scope="call">
+            <type name="PadGetRangeFunction" c:type="GstPadGetRangeFunction"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_checkgetrange_function"
+              c:identifier="gst_pad_set_checkgetrange_function"
+              doc="Sets the given checkgetrange function for the pad. Implement this function
+on a pad if you dynamically support getrange based scheduling on the pad.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="check" transfer-ownership="none" scope="call">
+            <type name="PadCheckGetRangeFunction"
+                  c:type="GstPadCheckGetRangeFunction"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_event_function"
+              c:identifier="gst_pad_set_event_function"
+              doc="Sets the given event handler for the pad.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="event" transfer-ownership="none" scope="call">
+            <type name="PadEventFunction" c:type="GstPadEventFunction"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_link_function"
+              c:identifier="gst_pad_set_link_function"
+              doc="Sets the given link function for the pad. It will be called when
+the pad is linked with another pad.
+The return value #GST_PAD_LINK_OK should be used when the connection can be
+made.
+The return value #GST_PAD_LINK_REFUSED should be used when the connection
+cannot be made for some reason.
+If @link is installed on a source pad, it should call the #GstPadLinkFunction
+of the peer sink pad, if present.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="link" transfer-ownership="none" scope="call">
+            <type name="PadLinkFunction" c:type="GstPadLinkFunction"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_unlink_function"
+              c:identifier="gst_pad_set_unlink_function"
+              doc="Sets the given unlink function for the pad. It will be called
+when the pad is unlinked.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="unlink" transfer-ownership="none" scope="call">
+            <type name="PadUnlinkFunction" c:type="GstPadUnlinkFunction"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="can_link"
+              c:identifier="gst_pad_can_link"
+              doc="Checks if the source pad and the sink pad are compatible so they can be
+linked.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="sinkpad" transfer-ownership="none">
+            <type name="Pad" c:type="GstPad*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="link"
+              c:identifier="gst_pad_link"
+              doc="Links the source pad and the sink pad.
+what went wrong.
+MT Safe.">
+        <return-value transfer-ownership="full">
+          <type name="PadLinkReturn" c:type="GstPadLinkReturn"/>
+        </return-value>
+        <parameters>
+          <parameter name="sinkpad" transfer-ownership="none">
+            <type name="Pad" c:type="GstPad*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="unlink"
+              c:identifier="gst_pad_unlink"
+              doc="Unlinks the source pad from the sink pad. Will emit the #GstPad::unlinked
+signal on both pads.
+the pads were not linked together.
+MT safe.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="sinkpad" transfer-ownership="none">
+            <type name="Pad" c:type="GstPad*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="is_linked"
+              c:identifier="gst_pad_is_linked"
+              doc="Checks if a @pad is linked to another pad or not.
+MT safe.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+      </method>
+      <method name="get_peer"
+              c:identifier="gst_pad_get_peer"
+              doc="Gets the peer of @pad. This function refs the peer pad so
+you need to unref it after use.
+MT safe.">
+        <return-value transfer-ownership="full">
+          <type name="Pad" c:type="GstPad*"/>
+        </return-value>
+      </method>
+      <method name="set_getcaps_function"
+              c:identifier="gst_pad_set_getcaps_function"
+              doc="Sets the given getcaps function for the pad. @getcaps should return the
+allowable caps for a pad in the context of the element&apos;s state, its link to
+other elements, and the devices or files it has opened. These caps must be a
+subset of the pad template caps. In the NULL state with no links, @getcaps
+should ideally return the same caps as the pad template. In rare
+circumstances, an object property can affect the caps returned by @getcaps,
+but this is discouraged.
+You do not need to call this function if @pad&apos;s allowed caps are always the
+same as the pad template caps. This can only be true if the padtemplate
+has fixed simple caps.
+For most filters, the caps returned by @getcaps is directly affected by the
+allowed caps on other pads. For demuxers and decoders, the caps returned by
+the srcpad&apos;s getcaps function is directly related to the stream data. Again,
+helps with autoplugging.
+Note that the return value from @getcaps is owned by the caller, so the
+caller should unref the caps after usage.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="getcaps" transfer-ownership="none" scope="call">
+            <type name="PadGetCapsFunction" c:type="GstPadGetCapsFunction"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_acceptcaps_function"
+              c:identifier="gst_pad_set_acceptcaps_function"
+              doc="Sets the given acceptcaps function for the pad.  The acceptcaps function
+will be called to check if the pad can accept the given caps. Setting the
+acceptcaps function to NULL restores the default behaviour of allowing
+any caps that matches the caps from gst_pad_get_caps.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="acceptcaps" transfer-ownership="none" scope="call">
+            <type name="PadAcceptCapsFunction"
+                  c:type="GstPadAcceptCapsFunction"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_fixatecaps_function"
+              c:identifier="gst_pad_set_fixatecaps_function"
+              doc="Sets the given fixatecaps function for the pad.  The fixatecaps function
+will be called whenever the default values for a GstCaps needs to be
+filled in.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="fixatecaps" transfer-ownership="none" scope="call">
+            <type name="PadFixateCapsFunction"
+                  c:type="GstPadFixateCapsFunction"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_setcaps_function"
+              c:identifier="gst_pad_set_setcaps_function"
+              doc="Sets the given setcaps function for the pad.  The setcaps function
+will be called whenever a buffer with a new media type is pushed or
+pulled from the pad. The pad/element needs to update its internal
+structures to process the new media type. If this new type is not
+acceptable, the setcaps function should return FALSE.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="setcaps" transfer-ownership="none" scope="call">
+            <type name="PadSetCapsFunction" c:type="GstPadSetCapsFunction"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_pad_template_caps"
+              c:identifier="gst_pad_get_pad_template_caps"
+              doc="Gets the capabilities for @pad&apos;s template.
+reference on the caps, make a copy (see gst_caps_copy ()).">
+        <return-value transfer-ownership="none">
+          <type name="Caps" c:type="GstCaps*"/>
+        </return-value>
+      </method>
+      <method name="get_caps_reffed"
+              c:identifier="gst_pad_get_caps_reffed"
+              doc="Gets the capabilities this pad can produce or consume. Preferred function if
+one only wants to read or intersect the caps."
+              version="0.10.26">
+        <return-value transfer-ownership="full">
+          <type name="Caps" c:type="GstCaps*"/>
+        </return-value>
+      </method>
+      <method name="get_caps"
+              c:identifier="gst_pad_get_caps"
+              doc="Gets the capabilities this pad can produce or consume.
+Note that this method doesn&apos;t necessarily return the caps set by
+gst_pad_set_caps() - use GST_PAD_CAPS() for that instead.
+gst_pad_get_caps returns all possible caps a pad can operate with, using
+the pad&apos;s get_caps function;
+this returns the pad template caps if not explicitly set.
+MT safe.">
+        <return-value transfer-ownership="full">
+          <type name="Caps" c:type="GstCaps*"/>
+        </return-value>
+      </method>
+      <method name="fixate_caps"
+              c:identifier="gst_pad_fixate_caps"
+              doc="Fixate a caps on the given pad. Modifies the caps in place, so you should
+make sure that the caps are actually writable (see gst_caps_make_writable()).">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="caps" transfer-ownership="none">
+            <type name="Caps" c:type="GstCaps*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="accept_caps"
+              c:identifier="gst_pad_accept_caps"
+              doc="Check if the given pad accepts the caps.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="caps" transfer-ownership="none">
+            <type name="Caps" c:type="GstCaps*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_caps"
+              c:identifier="gst_pad_set_caps"
+              doc="Sets the capabilities of this pad. The caps must be fixed. Any previous
+caps on the pad will be unreffed. This function refs the caps so you should
+unref if as soon as you don&apos;t need it anymore.
+It is possible to set NULL caps, which will make the pad unnegotiated
+again.
+or bad parameters were provided to this function.
+MT safe.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="caps" transfer-ownership="none">
+            <type name="Caps" c:type="GstCaps*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="peer_get_caps_reffed"
+              c:identifier="gst_pad_peer_get_caps_reffed"
+              doc="Gets the capabilities of the peer connected to this pad. Preferred function
+if one only wants to read or intersect the caps."
+              version="0.10.26">
+        <return-value transfer-ownership="full">
+          <type name="Caps" c:type="GstCaps*"/>
+        </return-value>
+      </method>
+      <method name="peer_get_caps"
+              c:identifier="gst_pad_peer_get_caps"
+              doc="Gets the capabilities of the peer connected to this pad. Similar to
+gst_pad_get_caps().
+gst_caps_unref() to get rid of it. This function returns %NULL if there is
+no peer pad.">
+        <return-value transfer-ownership="full">
+          <type name="Caps" c:type="GstCaps*"/>
+        </return-value>
+      </method>
+      <method name="peer_accept_caps"
+              c:identifier="gst_pad_peer_accept_caps"
+              doc="Check if the peer of @pad accepts @caps. If @pad has no peer, this function
+returns TRUE.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="caps" transfer-ownership="none">
+            <type name="Caps" c:type="GstCaps*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_allowed_caps"
+              c:identifier="gst_pad_get_allowed_caps"
+              doc="Gets the capabilities of the allowed media types that can flow through
+The allowed capabilities is calculated as the intersection of the results of
+calling gst_pad_get_caps() on @pad and its peer. The caller owns a reference
+on the resulting caps.
+longer need it. This function returns NULL when @pad has no peer.
+MT safe.">
+        <return-value transfer-ownership="full">
+          <type name="Caps" c:type="GstCaps*"/>
+        </return-value>
+      </method>
+      <method name="get_negotiated_caps"
+              c:identifier="gst_pad_get_negotiated_caps"
+              doc="Gets the capabilities of the media type that currently flows through @pad
+and its peer.
+This function can be used on both src and sinkpads. Note that srcpads are
+always negotiated before sinkpads so it is possible that the negotiated caps
+on the srcpad do not match the negotiated caps of the peer.
+you no longer need it. This function returns NULL when the @pad has no
+peer or is not negotiated yet.
+MT safe.">
+        <return-value transfer-ownership="full">
+          <type name="Caps" c:type="GstCaps*"/>
+        </return-value>
+      </method>
+      <method name="push"
+              c:identifier="gst_pad_push"
+              doc="Pushes a buffer to the peer of @pad.
+This function will call an installed pad block before triggering any
+installed pad probes.
+If the caps on @buffer are different from the currently configured caps on
+gst_pad_set_setcaps_function()). In case of failure to renegotiate the new
+format, this function returns #GST_FLOW_NOT_NEGOTIATED.
+The function proceeds calling gst_pad_chain() on the peer pad and returns
+the value from that function. If @pad has no peer, #GST_FLOW_NOT_LINKED will
+be returned.
+In all cases, success or failure, the caller loses its reference to @buffer
+after calling this function.
+MT safe.">
+        <return-value transfer-ownership="full">
+          <type name="FlowReturn" c:type="GstFlowReturn"/>
+        </return-value>
+        <parameters>
+          <parameter name="buffer" transfer-ownership="none">
+            <type name="Buffer" c:type="GstBuffer*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="push_list"
+              c:identifier="gst_pad_push_list"
+              doc="Pushes a buffer list to the peer of @pad.
+This function will call an installed pad block before triggering any
+installed pad probes.
+If the caps on the first buffer in the first group of @list are different
+from the currently configured caps on @pad, this function will call any
+installed setcaps function on @pad (see gst_pad_set_setcaps_function()). In
+case of failure to renegotiate the new format, this function returns
+#GST_FLOW_NOT_NEGOTIATED.
+If there are any probes installed on @pad every group of the buffer list
+will be merged into a normal #GstBuffer and pushed via gst_pad_push and the
+buffer list will be unreffed.
+The function proceeds calling the chain function on the peer pad and returns
+the value from that function. If @pad has no peer, #GST_FLOW_NOT_LINKED will
+be returned. If the peer pad does not have any installed chainlist function
+every group buffer of the list will be merged into a normal #GstBuffer and
+chained via gst_pad_chain().
+In all cases, success or failure, the caller loses its reference to @list
+after calling this function.
+MT safe."
+              version="0.10.24">
+        <return-value transfer-ownership="full">
+          <type name="FlowReturn" c:type="GstFlowReturn"/>
+        </return-value>
+        <parameters>
+          <parameter name="list" transfer-ownership="none">
+            <type name="BufferList" c:type="GstBufferList*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="check_pull_range"
+              c:identifier="gst_pad_check_pull_range"
+              doc="Checks if a gst_pad_pull_range() can be performed on the peer
+source pad. This function is used by plugins that want to check
+if they can use random access on the peer source pad.
+The peer sourcepad can implement a custom #GstPadCheckGetRangeFunction
+if it needs to perform some logic to determine if pull_range is
+possible.
+MT safe.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+      </method>
+      <method name="pull_range"
+              c:identifier="gst_pad_pull_range"
+              doc="Pulls a @buffer from the peer pad.
+This function will first trigger the pad block signal if it was
+installed.
+When @pad is not linked #GST_FLOW_NOT_LINKED is returned else this
+function returns the result of gst_pad_get_range() on the peer pad.
+See gst_pad_get_range() for a list of return values and for the
+semantics of the arguments of this function.
+configured on @pad. Renegotiation within a running pull-mode pipeline is not
+supported.
+When this function returns #GST_FLOW_OK, @buffer will contain a valid
+#GstBuffer that should be freed with gst_buffer_unref() after usage.
+#GST_FLOW_OK is returned.
+MT safe.">
+        <return-value transfer-ownership="full">
+          <type name="FlowReturn" c:type="GstFlowReturn"/>
+        </return-value>
+        <parameters>
+          <parameter name="offset" transfer-ownership="none">
+            <type name="uint64" c:type="guint64"/>
+          </parameter>
+          <parameter name="size" transfer-ownership="none">
+            <type name="uint" c:type="guint"/>
+          </parameter>
+          <parameter name="buffer" transfer-ownership="none">
+            <type name="Buffer" c:type="GstBuffer**"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="push_event"
+              c:identifier="gst_pad_push_event"
+              doc="Sends the event to the peer of the given pad. This function is
+mainly used by elements to send events to their peer
+elements.
+This function takes owership of the provided event so you should
+gst_event_ref() it if you want to reuse the event after this call.
+MT safe.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="event" transfer-ownership="none">
+            <type name="Event" c:type="GstEvent*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="event_default"
+              c:identifier="gst_pad_event_default"
+              doc="Invokes the default event handler for the given pad. End-of-stream and
+discontinuity events are handled specially, and then the event is sent to all
+pads internally linked to @pad. Note that if there are many possible sink
+pads that are internally linked to @pad, only one will be sent an event.
+Multi-sinkpad elements should implement custom event handlers.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="event" transfer-ownership="none">
+            <type name="Event" c:type="GstEvent*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="chain"
+              c:identifier="gst_pad_chain"
+              doc="Chain a buffer to @pad.
+The function returns #GST_FLOW_WRONG_STATE if the pad was flushing.
+If the caps on @buffer are different from the current caps on @pad, this
+function will call any setcaps function (see gst_pad_set_setcaps_function())
+installed on @pad. If the new caps are not acceptable for @pad, this
+function returns #GST_FLOW_NOT_NEGOTIATED.
+The function proceeds calling the chain function installed on @pad (see
+gst_pad_set_chain_function()) and the return value of that function is
+returned to the caller. #GST_FLOW_NOT_SUPPORTED is returned if @pad has no
+chain function.
+In all cases, success or failure, the caller loses its reference to @buffer
+after calling this function.
+MT safe.">
+        <return-value transfer-ownership="full">
+          <type name="FlowReturn" c:type="GstFlowReturn"/>
+        </return-value>
+        <parameters>
+          <parameter name="buffer" transfer-ownership="none">
+            <type name="Buffer" c:type="GstBuffer*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="chain_list"
+              c:identifier="gst_pad_chain_list"
+              doc="Chain a bufferlist to @pad.
+The function returns #GST_FLOW_WRONG_STATE if the pad was flushing.
+If the caps on the first buffer of @list are different from the current
+caps on @pad, this function will call any setcaps function
+(see gst_pad_set_setcaps_function()) installed on @pad. If the new caps
+are not acceptable for @pad, this function returns #GST_FLOW_NOT_NEGOTIATED.
+The function proceeds calling the chainlist function installed on @pad (see
+gst_pad_set_chain_list_function()) and the return value of that function is
+returned to the caller. #GST_FLOW_NOT_SUPPORTED is returned if @pad has no
+chainlist function.
+In all cases, success or failure, the caller loses its reference to @list
+after calling this function.
+MT safe."
+              version="0.10.24">
+        <return-value transfer-ownership="full">
+          <type name="FlowReturn" c:type="GstFlowReturn"/>
+        </return-value>
+        <parameters>
+          <parameter name="list" transfer-ownership="none">
+            <type name="BufferList" c:type="GstBufferList*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_range"
+              c:identifier="gst_pad_get_range"
+              doc="When @pad is flushing this function returns #GST_FLOW_WRONG_STATE
+immediatly.
+Calls the getrange function of @pad, see #GstPadGetRangeFunction for a
+description of a getrange function. If @pad has no getrange function
+installed (see gst_pad_set_getrange_function()) this function returns
+#GST_FLOW_NOT_SUPPORTED.
+This is a lowlevel function. Usualy gst_pad_pull_range() is used.
+MT safe.">
+        <return-value transfer-ownership="full">
+          <type name="FlowReturn" c:type="GstFlowReturn"/>
+        </return-value>
+        <parameters>
+          <parameter name="offset" transfer-ownership="none">
+            <type name="uint64" c:type="guint64"/>
+          </parameter>
+          <parameter name="size" transfer-ownership="none">
+            <type name="uint" c:type="guint"/>
+          </parameter>
+          <parameter name="buffer" transfer-ownership="none">
+            <type name="Buffer" c:type="GstBuffer**"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="send_event"
+              c:identifier="gst_pad_send_event"
+              doc="Sends the event to the pad. This function can be used
+by applications to send events in the pipeline.
+If @pad is a source pad, @event should be an upstream event. If @pad is a
+sink pad, @event should be a downstream event. For example, you would not
+send a #GST_EVENT_EOS on a src pad; EOS events only propagate downstream.
+Furthermore, some downstream events have to be serialized with data flow,
+like EOS, while some can travel out-of-band, like #GST_EVENT_FLUSH_START. If
+the event needs to be serialized with data flow, this function will take the
+pad&apos;s stream lock while calling its event function.
+To find out whether an event type is upstream, downstream, or downstream and
+serialized, see #GstEventTypeFlags, gst_event_type_get_flags(),
+#GST_EVENT_IS_UPSTREAM, #GST_EVENT_IS_DOWNSTREAM, and
+#GST_EVENT_IS_SERIALIZED. Note that in practice that an application or
+plugin doesn&apos;t need to bother itself with this information; the core handles
+all necessary locks and checks.
+This function takes owership of the provided event so you should
+gst_event_ref() it if you want to reuse the event after this call.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="event" transfer-ownership="none">
+            <type name="Event" c:type="GstEvent*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="start_task"
+              c:identifier="gst_pad_start_task"
+              doc="Starts a task that repeatedly calls @func with @data. This function
+is mostly used in pad activation functions to start the dataflow.
+The #GST_PAD_STREAM_LOCK of @pad will automatically be acquired
+before @func is called.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="func"
+                     transfer-ownership="none"
+                     scope="call"
+                     closure="2">
+            <type name="TaskFunction" c:type="GstTaskFunction"/>
+          </parameter>
+          <parameter name="data" transfer-ownership="none">
+            <type name="any" c:type="gpointer"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="pause_task"
+              c:identifier="gst_pad_pause_task"
+              doc="Pause the task of @pad. This function will also wait until the
+function executed by the task is finished if this function is not
+called from the task function.
+has no task.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+      </method>
+      <method name="stop_task"
+              c:identifier="gst_pad_stop_task"
+              doc="Stop the task of @pad. This function will also make sure that the
+function executed by the task will effectively stop if not called
+from the GstTaskFunction.
+This function will deadlock if called from the GstTaskFunction of
+the task. Use gst_task_pause() instead.
+Regardless of whether the pad has a task, the stream lock is acquired and
+released so as to ensure that streaming through this pad has finished.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+      </method>
+      <method name="set_internal_link_function"
+              c:identifier="gst_pad_set_internal_link_function"
+              doc="Sets the given internal link function for the pad."
+              deprecated="Use the thread-safe gst_pad_set_iterate_internal_links_function()">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="intlink" transfer-ownership="none" scope="call">
+            <type name="PadIntLinkFunction" c:type="GstPadIntLinkFunction"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_internal_links"
+              c:identifier="gst_pad_get_internal_links"
+              doc="Gets a list of pads to which the given pad is linked to
+inside of the parent element.
+The caller must free this list after use.
+Not MT safe.
+could become invalid by the time the application accesses them. It&apos;s also
+possible that the list changes while handling the pads, which the caller of
+this function is unable to know. Use the thread-safe
+gst_pad_iterate_internal_links() instead."
+              deprecated="This function does not ref the pads in the list so that they">
+        <return-value transfer-ownership="full">
+          <type name="GLib.List" c:type="GList*"/>
+        </return-value>
+      </method>
+      <method name="get_internal_links_default"
+              c:identifier="gst_pad_get_internal_links_default"
+              doc="Gets a list of pads to which the given pad is linked to
+inside of the parent element.
+This is the default handler, and thus returns a list of all of the
+pads inside the parent element with opposite direction.
+The caller must free this list after use with g_list_free().
+Not MT safe.
+could become invalid by the time the application accesses them. It&apos;s also
+possible that the list changes while handling the pads, which the caller of
+this function is unable to know. Use the thread-safe
+gst_pad_iterate_internal_links_default() instead."
+              deprecated="This function does not ref the pads in the list so that they">
+        <return-value transfer-ownership="full">
+          <type name="GLib.List" c:type="GList*"/>
+        </return-value>
+      </method>
+      <method name="set_iterate_internal_links_function"
+              c:identifier="gst_pad_set_iterate_internal_links_function"
+              doc="Sets the given internal link iterator function for the pad."
+              version="0.10.21">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="iterintlink" transfer-ownership="none" scope="call">
+            <type name="PadIterIntLinkFunction"
+                  c:type="GstPadIterIntLinkFunction"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="iterate_internal_links"
+              c:identifier="gst_pad_iterate_internal_links"
+              doc="Gets an iterator for the pads to which the given pad is linked to inside
+of the parent element.
+Each #GstPad element yielded by the iterator will have its refcount increased,
+so unref after use.
+iterator function configured. Use gst_iterator_free() after usage."
+              version="0.10.21">
+        <return-value transfer-ownership="full">
+          <type name="Iterator" c:type="GstIterator*"/>
+        </return-value>
+      </method>
+      <method name="iterate_internal_links_default"
+              c:identifier="gst_pad_iterate_internal_links_default"
+              doc="Iterate the list of pads to which the given pad is linked to inside of
+the parent element.
+This is the default handler, and thus returns an iterator of all of the
+pads inside the parent element with opposite direction.
+The caller must free this iterator after use with gst_iterator_free().
+returned pad with gst_object_unref()."
+              version="0.10.21">
+        <return-value transfer-ownership="full">
+          <type name="Iterator" c:type="GstIterator*"/>
+        </return-value>
+      </method>
+      <method name="set_query_type_function"
+              c:identifier="gst_pad_set_query_type_function"
+              doc="Set the given query type function for the pad.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="type_func" transfer-ownership="none" scope="call">
+            <type name="PadQueryTypeFunction"
+                  c:type="GstPadQueryTypeFunction"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_query_types"
+              c:identifier="gst_pad_get_query_types"
+              doc="Get an array of supported queries that can be performed
+on this pad.">
+        <return-value transfer-ownership="none">
+          <type name="QueryType" c:type="GstQueryType*"/>
+        </return-value>
+      </method>
+      <method name="get_query_types_default"
+              c:identifier="gst_pad_get_query_types_default"
+              doc="Invoke the default dispatcher for the query types on
+the pad.
+internally-linked pads has a query types function.">
+        <return-value transfer-ownership="none">
+          <type name="QueryType" c:type="GstQueryType*"/>
+        </return-value>
+      </method>
+      <method name="query"
+              c:identifier="gst_pad_query"
+              doc="Dispatches a query to a pad. The query should have been allocated by the
+caller via one of the type-specific allocation functions in gstquery.h. The
+element is responsible for filling the query with an appropriate response,
+which should then be parsed with a type-specific query parsing function.
+Again, the caller is responsible for both the allocation and deallocation of
+the query structure.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="query" transfer-ownership="none">
+            <type name="Query" c:type="GstQuery*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="peer_query"
+              c:identifier="gst_pad_peer_query"
+              doc="Performs gst_pad_query() on the peer of @pad.
+The caller is responsible for both the allocation and deallocation of
+the query structure.
+if @pad has no peer."
+              version="0.10.15">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="query" transfer-ownership="none">
+            <type name="Query" c:type="GstQuery*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_query_function"
+              c:identifier="gst_pad_set_query_function"
+              doc="Set the given query function for the pad.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="query" transfer-ownership="none" scope="call">
+            <type name="PadQueryFunction" c:type="GstPadQueryFunction"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="query_default"
+              c:identifier="gst_pad_query_default"
+              doc="Invokes the default query handler for the given pad.
+The query is sent to all pads internally linked to @pad. Note that
+if there are many possible sink pads that are internally linked to
+Multi-sinkpad elements should implement custom query handlers.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="query" transfer-ownership="none">
+            <type name="Query" c:type="GstQuery*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="dispatcher"
+              c:identifier="gst_pad_dispatcher"
+              doc="Invokes the given dispatcher function on each respective peer of
+all pads that are internally linked to the given pad.
+The GstPadDispatcherFunction should return TRUE when no further pads
+need to be processed.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="dispatch"
+                     transfer-ownership="none"
+                     scope="call"
+                     closure="2">
+            <type name="PadDispatcherFunction"
+                  c:type="GstPadDispatcherFunction"/>
+          </parameter>
+          <parameter name="data" transfer-ownership="none">
+            <type name="any" c:type="gpointer"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="use_fixed_caps"
+              c:identifier="gst_pad_use_fixed_caps"
+              doc="A helper function you can use that sets the
+pad. This way the function will always return the negotiated caps
+or in case the pad is not negotiated, the padtemplate caps.
+Use this function on a pad that, once gst_pad_set_caps() has been called
+on it, cannot be renegotiated to something else.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </method>
+      <method name="get_fixed_caps_func"
+              c:identifier="gst_pad_get_fixed_caps_func"
+              doc="A helper function you can use as a GetCaps function that
+will return the currently negotiated caps or the padtemplate
+when NULL.">
+        <return-value transfer-ownership="full">
+          <type name="Caps" c:type="GstCaps*"/>
+        </return-value>
+      </method>
+      <method name="proxy_getcaps"
+              c:identifier="gst_pad_proxy_getcaps"
+              doc="Calls gst_pad_get_allowed_caps() for every other pad belonging to the
+same element as @pad, and returns the intersection of the results.
+This function is useful as a default getcaps function for an element
+that can handle any stream format, but requires all its pads to have
+the same caps.  Two such elements are tee and adder.">
+        <return-value transfer-ownership="full">
+          <type name="Caps" c:type="GstCaps*"/>
+        </return-value>
+      </method>
+      <method name="proxy_setcaps" c:identifier="gst_pad_proxy_setcaps">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="caps" transfer-ownership="none">
+            <type name="Caps" c:type="GstCaps*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_parent_element"
+              c:identifier="gst_pad_get_parent_element"
+              doc="Gets the parent of @pad, cast to a #GstElement. If a @pad has no parent or
+its parent is not an element, return NULL.
+unref when you&apos;re finished with it.
+MT safe.">
+        <return-value transfer-ownership="full">
+          <type name="Element" c:type="GstElement*"/>
+        </return-value>
+      </method>
+      <method name="query_position"
+              c:identifier="gst_pad_query_position"
+              doc="On return contains the #GstFormat used.
+Queries a pad for the stream position.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="format"
+                     direction="inout"
+                     transfer-ownership="full"
+                     doc="a pointer to the #GstFormat asked for.">
+            <type name="Format" c:type="GstFormat*"/>
+          </parameter>
+          <parameter name="cur"
+                     direction="out"
+                     transfer-ownership="full"
+                     doc="A location in which to store the current position, or NULL.">
+            <type name="int64" c:type="gint64*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="query_duration"
+              c:identifier="gst_pad_query_duration"
+              doc="On return contains the #GstFormat used.
+Queries a pad for the total stream duration.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="format" transfer-ownership="none">
+            <type name="Format" c:type="GstFormat*"/>
+          </parameter>
+          <parameter name="duration" direction="out" transfer-ownership="full">
+            <type name="int64" c:type="gint64*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="query_convert"
+              c:identifier="gst_pad_query_convert"
+              doc="Queries a pad to convert @src_val in @src_format to @dest_format.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="src_format" transfer-ownership="none">
+            <type name="Format" c:type="GstFormat"/>
+          </parameter>
+          <parameter name="src_val" transfer-ownership="none">
+            <type name="int64" c:type="gint64"/>
+          </parameter>
+          <parameter name="dest_format" transfer-ownership="none">
+            <type name="Format" c:type="GstFormat*"/>
+          </parameter>
+          <parameter name="dest_val" direction="out" transfer-ownership="full">
+            <type name="int64" c:type="gint64*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="query_peer_position"
+              c:identifier="gst_pad_query_peer_position"
+              doc="Must be a sink pad.
+On return contains the #GstFormat used.
+Queries the peer of a given sink pad for the stream position.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="format" transfer-ownership="none">
+            <type name="Format" c:type="GstFormat*"/>
+          </parameter>
+          <parameter name="cur" direction="out" transfer-ownership="full">
+            <type name="int64" c:type="gint64*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="query_peer_duration"
+              c:identifier="gst_pad_query_peer_duration"
+              doc="Must be a sink pad.
+On return contains the #GstFormat used.
+Queries the peer pad of a given sink pad for the total stream duration.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="format" transfer-ownership="none">
+            <type name="Format" c:type="GstFormat*"/>
+          </parameter>
+          <parameter name="duration" direction="out" transfer-ownership="full">
+            <type name="int64" c:type="gint64*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="query_peer_convert"
+              c:identifier="gst_pad_query_peer_convert"
+              doc="Must be a sink pad.
+Queries the peer pad of a given sink pad to convert @src_val in @src_format
+to @dest_format.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="src_format" transfer-ownership="none">
+            <type name="Format" c:type="GstFormat"/>
+          </parameter>
+          <parameter name="src_val" transfer-ownership="none">
+            <type name="int64" c:type="gint64"/>
+          </parameter>
+          <parameter name="dest_format" transfer-ownership="none">
+            <type name="Format" c:type="GstFormat*"/>
+          </parameter>
+          <parameter name="dest_val" direction="out" transfer-ownership="full">
+            <type name="int64" c:type="gint64*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="add_data_probe"
+              c:identifier="gst_pad_add_data_probe"
+              doc="Adds a &quot;data probe&quot; to a pad. This function will be called whenever data
+passes through a pad. In this case data means both events and buffers. The
+probe will be called with the data as an argument, meaning @handler should
+have the same callback signature as the #GstPad::have-data signal.
+Note that the data will have a reference count greater than 1, so it will
+be immutable -- you must not change it.
+For source pads, the probe will be called after the blocking function, if any
+(see gst_pad_set_blocked_async()), but before looking up the peer to chain
+to. For sink pads, the probe function will be called before configuring the
+sink with new caps, if any, and before calling the pad&apos;s chain function.
+Your data probe should return TRUE to let the data continue to flow, or FALSE
+to drop it. Dropping data is rarely useful, but occasionally comes in handy
+with events.
+Although probes are implemented internally by connecting @handler to the
+have-data signal on the pad, if you want to remove a probe it is insufficient
+to only call g_signal_handler_disconnect on the returned handler id. To
+remove a probe, use the appropriate function, such as
+gst_pad_remove_data_probe().">
+        <return-value transfer-ownership="none">
+          <type name="ulong" c:type="gulong"/>
+        </return-value>
+        <parameters>
+          <parameter name="handler"
+                     transfer-ownership="none"
+                     scope="call"
+                     closure="2">
+            <type name="GObject.Callback" c:type="GCallback"/>
+          </parameter>
+          <parameter name="data" transfer-ownership="none">
+            <type name="any" c:type="gpointer"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="add_data_probe_full"
+              c:identifier="gst_pad_add_data_probe_full"
+              doc="Adds a &quot;data probe&quot; to a pad. This function will be called whenever data
+passes through a pad. In this case data means both events and buffers. The
+probe will be called with the data as an argument, meaning @handler should
+have the same callback signature as the #GstPad::have-data signal.
+Note that the data will have a reference count greater than 1, so it will
+be immutable -- you must not change it.
+For source pads, the probe will be called after the blocking function, if any
+(see gst_pad_set_blocked_async()), but before looking up the peer to chain
+to. For sink pads, the probe function will be called before configuring the
+sink with new caps, if any, and before calling the pad&apos;s chain function.
+Your data probe should return TRUE to let the data continue to flow, or FALSE
+to drop it. Dropping data is rarely useful, but occasionally comes in handy
+with events.
+Although probes are implemented internally by connecting @handler to the
+have-data signal on the pad, if you want to remove a probe it is insufficient
+to only call g_signal_handler_disconnect on the returned handler id. To
+remove a probe, use the appropriate function, such as
+gst_pad_remove_data_probe().
+The @notify function is called when the probe is disconnected and usually
+used to free @data."
+              version="0.10.20">
+        <return-value transfer-ownership="none">
+          <type name="ulong" c:type="gulong"/>
+        </return-value>
+        <parameters>
+          <parameter name="handler"
+                     transfer-ownership="none"
+                     scope="notified"
+                     closure="2"
+                     destroy="3">
+            <type name="GObject.Callback" c:type="GCallback"/>
+          </parameter>
+          <parameter name="data" transfer-ownership="none">
+            <type name="any" c:type="gpointer"/>
+          </parameter>
+          <parameter name="notify" transfer-ownership="none" scope="call">
+            <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="remove_data_probe"
+              c:identifier="gst_pad_remove_data_probe"
+              doc="Removes a data probe from @pad.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="handler_id" transfer-ownership="none">
+            <type name="uint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="add_event_probe"
+              c:identifier="gst_pad_add_event_probe"
+              doc="Adds a probe that will be called for all events passing through a pad. See
+gst_pad_add_data_probe() for more information.">
+        <return-value transfer-ownership="none">
+          <type name="ulong" c:type="gulong"/>
+        </return-value>
+        <parameters>
+          <parameter name="handler"
+                     transfer-ownership="none"
+                     scope="call"
+                     closure="2">
+            <type name="GObject.Callback" c:type="GCallback"/>
+          </parameter>
+          <parameter name="data" transfer-ownership="none">
+            <type name="any" c:type="gpointer"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="add_event_probe_full"
+              c:identifier="gst_pad_add_event_probe_full"
+              doc="Adds a probe that will be called for all events passing through a pad. See
+gst_pad_add_data_probe() for more information.
+The @notify function is called when the probe is disconnected and usually
+used to free @data."
+              version="0.10.20">
+        <return-value transfer-ownership="none">
+          <type name="ulong" c:type="gulong"/>
+        </return-value>
+        <parameters>
+          <parameter name="handler"
+                     transfer-ownership="none"
+                     scope="notified"
+                     closure="2"
+                     destroy="3">
+            <type name="GObject.Callback" c:type="GCallback"/>
+          </parameter>
+          <parameter name="data" transfer-ownership="none">
+            <type name="any" c:type="gpointer"/>
+          </parameter>
+          <parameter name="notify" transfer-ownership="none" scope="call">
+            <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="remove_event_probe"
+              c:identifier="gst_pad_remove_event_probe"
+              doc="Removes an event probe from @pad.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="handler_id" transfer-ownership="none">
+            <type name="uint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="add_buffer_probe"
+              c:identifier="gst_pad_add_buffer_probe"
+              doc="Adds a probe that will be called for all buffers passing through a pad. See
+gst_pad_add_data_probe() for more information.">
+        <return-value transfer-ownership="none">
+          <type name="ulong" c:type="gulong"/>
+        </return-value>
+        <parameters>
+          <parameter name="handler"
+                     transfer-ownership="none"
+                     scope="call"
+                     closure="2">
+            <type name="GObject.Callback" c:type="GCallback"/>
+          </parameter>
+          <parameter name="data" transfer-ownership="none">
+            <type name="any" c:type="gpointer"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="add_buffer_probe_full"
+              c:identifier="gst_pad_add_buffer_probe_full"
+              doc="Adds a probe that will be called for all buffers passing through a pad. See
+gst_pad_add_data_probe() for more information.
+The @notify function is called when the probe is disconnected and usually
+used to free @data."
+              version="0.10.20">
+        <return-value transfer-ownership="none">
+          <type name="ulong" c:type="gulong"/>
+        </return-value>
+        <parameters>
+          <parameter name="handler"
+                     transfer-ownership="none"
+                     scope="notified"
+                     closure="2"
+                     destroy="3">
+            <type name="GObject.Callback" c:type="GCallback"/>
+          </parameter>
+          <parameter name="data" transfer-ownership="none">
+            <type name="any" c:type="gpointer"/>
+          </parameter>
+          <parameter name="notify" transfer-ownership="none" scope="call">
+            <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="remove_buffer_probe"
+              c:identifier="gst_pad_remove_buffer_probe"
+              doc="Removes a buffer probe from @pad.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="handler_id" transfer-ownership="none">
+            <type name="uint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <property name="caps">
+        <type name="Caps" c:type="GstCaps"/>
+      </property>
+      <property name="direction" writable="1" construct-only="1">
+        <type name="PadDirection" c:type="GstPadDirection"/>
+      </property>
+      <property name="template" writable="1">
+        <type name="PadTemplate" c:type="GstPadTemplate"/>
+      </property>
+      <field name="object">
+        <type name="Object" c:type="GstObject"/>
+      </field>
+      <field name="element_private">
+        <type name="any" c:type="gpointer"/>
+      </field>
+      <field name="padtemplate">
+        <type name="PadTemplate" c:type="GstPadTemplate*"/>
+      </field>
+      <field name="direction">
+        <type name="PadDirection" c:type="GstPadDirection"/>
+      </field>
+      <field name="stream_rec_lock">
+        <type name="GLib.StaticRecMutex" c:type="GStaticRecMutex*"/>
+      </field>
+      <field name="task">
+        <type name="Task" c:type="GstTask*"/>
+      </field>
+      <field name="preroll_lock">
+        <type name="GLib.Mutex" c:type="GMutex*"/>
+      </field>
+      <field name="preroll_cond">
+        <type name="GLib.Cond" c:type="GCond*"/>
+      </field>
+      <field name="block_cond">
+        <type name="GLib.Cond" c:type="GCond*"/>
+      </field>
+      <field name="block_callback">
+        <type name="PadBlockCallback" c:type="GstPadBlockCallback"/>
+      </field>
+      <field name="block_data">
+        <type name="any" c:type="gpointer"/>
+      </field>
+      <field name="caps">
+        <type name="Caps" c:type="GstCaps*"/>
+      </field>
+      <field name="getcapsfunc">
+        <type name="PadGetCapsFunction" c:type="GstPadGetCapsFunction"/>
+      </field>
+      <field name="setcapsfunc">
+        <type name="PadSetCapsFunction" c:type="GstPadSetCapsFunction"/>
+      </field>
+      <field name="acceptcapsfunc">
+        <type name="PadAcceptCapsFunction" c:type="GstPadAcceptCapsFunction"/>
+      </field>
+      <field name="fixatecapsfunc">
+        <type name="PadFixateCapsFunction" c:type="GstPadFixateCapsFunction"/>
+      </field>
+      <field name="activatefunc">
+        <type name="PadActivateFunction" c:type="GstPadActivateFunction"/>
+      </field>
+      <field name="activatepushfunc">
+        <type name="PadActivateModeFunction"
+              c:type="GstPadActivateModeFunction"/>
+      </field>
+      <field name="activatepullfunc">
+        <type name="PadActivateModeFunction"
+              c:type="GstPadActivateModeFunction"/>
+      </field>
+      <field name="linkfunc">
+        <type name="PadLinkFunction" c:type="GstPadLinkFunction"/>
+      </field>
+      <field name="unlinkfunc">
+        <type name="PadUnlinkFunction" c:type="GstPadUnlinkFunction"/>
+      </field>
+      <field name="peer">
+        <type name="Pad" c:type="GstPad*"/>
+      </field>
+      <field name="sched_private">
+        <type name="any" c:type="gpointer"/>
+      </field>
+      <field name="chainfunc">
+        <type name="PadChainFunction" c:type="GstPadChainFunction"/>
+      </field>
+      <field name="checkgetrangefunc">
+        <type name="PadCheckGetRangeFunction"
+              c:type="GstPadCheckGetRangeFunction"/>
+      </field>
+      <field name="getrangefunc">
+        <type name="PadGetRangeFunction" c:type="GstPadGetRangeFunction"/>
+      </field>
+      <field name="eventfunc">
+        <type name="PadEventFunction" c:type="GstPadEventFunction"/>
+      </field>
+      <field name="mode">
+        <type name="ActivateMode" c:type="GstActivateMode"/>
+      </field>
+      <field name="querytypefunc">
+        <type name="PadQueryTypeFunction" c:type="GstPadQueryTypeFunction"/>
+      </field>
+      <field name="queryfunc">
+        <type name="PadQueryFunction" c:type="GstPadQueryFunction"/>
+      </field>
+      <field name="intlinkfunc">
+        <type name="PadIntLinkFunction" c:type="GstPadIntLinkFunction"/>
+      </field>
+      <field name="bufferallocfunc">
+        <type name="PadBufferAllocFunction"
+              c:type="GstPadBufferAllocFunction"/>
+      </field>
+      <field name="do_buffer_signals">
+        <type name="int" c:type="gint"/>
+      </field>
+      <field name="do_event_signals">
+        <type name="int" c:type="gint"/>
+      </field>
+      <field name="iterintlinkfunc">
+        <type name="PadIterIntLinkFunction"
+              c:type="GstPadIterIntLinkFunction"/>
+      </field>
+      <field name="block_destroy_data">
+        <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
+      </field>
+      <union name="abidata" c:type="abidata">
+        <record name="ABI" c:type="ABI">
+          <field name="block_callback_called" writable="1">
+            <type name="boolean" c:type="gboolean"/>
+          </field>
+          <field name="priv" writable="1">
+            <type name="PadPrivate" c:type="GstPadPrivate*"/>
+          </field>
+        </record>
+        <field name="_gst_reserved" writable="1">
+          <array zero-terminated="0" c:type="gpointer" fixed-size="2">
+            <type name="any"/>
+          </array>
+        </field>
+      </union>
+      <glib:signal name="have-data"
+                   doc="Signals that new data is available on the pad. This signal is used
+internally for implementing pad probes.
+See gst_pad_add_*_probe functions.">
+        <return-value transfer-ownership="full">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="mini_obj" transfer-ownership="none">
+            <type name="MiniObject" c:type="GstMiniObject"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="linked"
+                   doc="Signals that a pad has been linked to the peer pad.">
+        <return-value transfer-ownership="full">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="peer" transfer-ownership="none">
+            <type name="Pad" c:type="GstPad"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="request-link"
+                   doc="Signals that a pad connection has been requested.">
+        <return-value transfer-ownership="full">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </glib:signal>
+      <glib:signal name="unlinked"
+                   doc="Signals that a pad has been unlinked from the peer pad.">
+        <return-value transfer-ownership="full">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="peer" transfer-ownership="none">
+            <type name="Pad" c:type="GstPad"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+    </class>
+    <callback name="PadAcceptCapsFunction"
+              c:type="GstPadAcceptCapsFunction"
+              doc="Check if @pad can accept @caps. By default this function will see if @caps
+intersect with the result from gst_pad_get_caps() by can be overridden to
+perform extra checks.">
+      <return-value transfer-ownership="none">
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="pad" transfer-ownership="none">
+          <type name="Pad" c:type="GstPad*"/>
+        </parameter>
+        <parameter name="caps" transfer-ownership="none">
+          <type name="Caps" c:type="GstCaps*"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <callback name="PadActivateFunction"
+              c:type="GstPadActivateFunction"
+              doc="This function is called when the pad is activated during the element
+READY to PAUSED state change. By default this function will call the
+activate function that puts the pad in push mode but elements can
+override this function to activate the pad in pull mode if they wish.">
+      <return-value transfer-ownership="none">
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="pad" transfer-ownership="none">
+          <type name="Pad" c:type="GstPad*"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <callback name="PadActivateModeFunction"
+              c:type="GstPadActivateModeFunction"
+              doc="The prototype of the push and pull activate functions.">
+      <return-value transfer-ownership="none">
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="pad" transfer-ownership="none">
+          <type name="Pad" c:type="GstPad*"/>
+        </parameter>
+        <parameter name="active" transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <callback name="PadBlockCallback"
+              c:type="GstPadBlockCallback"
+              doc="Callback used by gst_pad_set_blocked_async(). Gets called when the blocking
+operation succeeds.">
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="pad" transfer-ownership="none">
+          <type name="Pad" c:type="GstPad*"/>
+        </parameter>
+        <parameter name="blocked" transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </parameter>
+        <parameter name="user_data" transfer-ownership="none" closure="2">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <callback name="PadBufferAllocFunction"
+              c:type="GstPadBufferAllocFunction"
+              doc="Ask the sinkpad @pad to allocate a buffer with @offset, @size and @caps.
+The result will be stored in @buf.
+The purpose of this function is to allocate a buffer that is optimal to
+be processed by @pad. The function is mostly overridden by elements that can
+provide a hardware buffer in order to avoid additional memcpy operations.
+The function can return a buffer that has caps different from the requested
+new caps.
+If a format change was requested, the returned buffer will be one to hold
+the data of said new caps, so its size might be different from the requested
+When this function returns anything else than #GST_FLOW_OK, the buffer allocation
+failed and @buf does not contain valid data. If the function returns #GST_FLOW_OK and
+the @buf is NULL, a #GstBuffer will be created with @caps, @offset and @size.
+By default this function returns a new buffer of @size and with @caps containing
+purely malloced data. The buffer should be freed with gst_buffer_unref()
+after usage.
+value means @buf does not hold a valid buffer.">
+      <return-value transfer-ownership="full">
+        <type name="FlowReturn" c:type="GstFlowReturn"/>
+      </return-value>
+      <parameters>
+        <parameter name="pad" transfer-ownership="none">
+          <type name="Pad" c:type="GstPad*"/>
+        </parameter>
+        <parameter name="offset" transfer-ownership="none">
+          <type name="uint64" c:type="guint64"/>
+        </parameter>
+        <parameter name="size" transfer-ownership="none">
+          <type name="uint" c:type="guint"/>
+        </parameter>
+        <parameter name="caps" transfer-ownership="none">
+          <type name="Caps" c:type="GstCaps*"/>
+        </parameter>
+        <parameter name="buf" transfer-ownership="none">
+          <type name="Buffer" c:type="GstBuffer**"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <callback name="PadChainFunction"
+              c:type="GstPadChainFunction"
+              doc="A function that will be called on sinkpads when chaining buffers.
+The function typically processes the data contained in the buffer and
+either consumes the data or passes it on to the internally linked pad(s).
+The implementer of this function receives a refcount to @buffer and should
+gst_buffer_unref() when the buffer is no longer needed.
+When a chain function detects an error in the data stream, it must post an
+error on the bus and return an appropriate #GstFlowReturn value.">
+      <return-value transfer-ownership="full">
+        <type name="FlowReturn" c:type="GstFlowReturn"/>
+      </return-value>
+      <parameters>
+        <parameter name="pad" transfer-ownership="none">
+          <type name="Pad" c:type="GstPad*"/>
+        </parameter>
+        <parameter name="buffer" transfer-ownership="none">
+          <type name="Buffer" c:type="GstBuffer*"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <callback name="PadChainListFunction"
+              c:type="GstPadChainListFunction"
+              doc="A function that will be called on sinkpads when chaining buffer lists.
+The function typically processes the data contained in the buffer list and
+either consumes the data or passes it on to the internally linked pad(s).
+The implementer of this function receives a refcount to @list and
+should gst_buffer_list_unref() when the list is no longer needed.
+When a chainlist function detects an error in the data stream, it must
+post an error on the bus and return an appropriate #GstFlowReturn value.">
+      <return-value transfer-ownership="full">
+        <type name="FlowReturn" c:type="GstFlowReturn"/>
+      </return-value>
+      <parameters>
+        <parameter name="pad" transfer-ownership="none">
+          <type name="Pad" c:type="GstPad*"/>
+        </parameter>
+        <parameter name="list" transfer-ownership="none">
+          <type name="BufferList" c:type="GstBufferList*"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <callback name="PadCheckGetRangeFunction"
+              c:type="GstPadCheckGetRangeFunction"
+              doc="Check if @pad can be activated in pull mode.
+This function will be deprecated after 0.10; use the seeking query to check
+if a pad can support random access.">
+      <return-value transfer-ownership="none">
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="pad" transfer-ownership="none">
+          <type name="Pad" c:type="GstPad*"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <record name="PadClass"
+            c:type="GstPadClass"
+            glib:is-gtype-struct-for="Pad">
+      <field name="parent_class">
+        <type name="ObjectClass" c:type="GstObjectClass"/>
+      </field>
+      <field name="linked">
+        <callback name="linked" c:type="linked">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="pad" transfer-ownership="none">
+              <type name="Pad" c:type="GstPad*"/>
+            </parameter>
+            <parameter name="peer" transfer-ownership="none">
+              <type name="Pad" c:type="GstPad*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="unlinked">
+        <callback name="unlinked" c:type="unlinked">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="pad" transfer-ownership="none">
+              <type name="Pad" c:type="GstPad*"/>
+            </parameter>
+            <parameter name="peer" transfer-ownership="none">
+              <type name="Pad" c:type="GstPad*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="request_link">
+        <callback name="request_link" c:type="request_link">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="pad" transfer-ownership="none">
+              <type name="Pad" c:type="GstPad*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="have_data">
+        <callback name="have_data" c:type="have_data">
+          <return-value transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="pad" transfer-ownership="none">
+              <type name="Pad" c:type="GstPad*"/>
+            </parameter>
+            <parameter name="data" transfer-ownership="none">
+              <type name="MiniObject" c:type="GstMiniObject*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="_gst_reserved">
+        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+          <type name="any"/>
+        </array>
+      </field>
+    </record>
+    <enumeration name="PadDirection"
+                 doc="The direction of a pad."
+                 c:type="GstPadDirection">
+      <member name="unknown" value="0" c:identifier="GST_PAD_UNKNOWN"/>
+      <member name="src" value="1" c:identifier="GST_PAD_SRC"/>
+      <member name="sink" value="2" c:identifier="GST_PAD_SINK"/>
+    </enumeration>
+    <callback name="PadDispatcherFunction"
+              c:type="GstPadDispatcherFunction"
+              doc="A dispatcher function is called for all internally linked pads, see
+gst_pad_dispatcher().">
+      <return-value transfer-ownership="none">
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="pad" transfer-ownership="none">
+          <type name="Pad" c:type="GstPad*"/>
+        </parameter>
+        <parameter name="data" transfer-ownership="none">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <callback name="PadEventFunction"
+              c:type="GstPadEventFunction"
+              doc="Function signature to handle an event for the pad.">
+      <return-value transfer-ownership="none">
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="pad" transfer-ownership="none">
+          <type name="Pad" c:type="GstPad*"/>
+        </parameter>
+        <parameter name="event" transfer-ownership="none">
+          <type name="Event" c:type="GstEvent*"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <callback name="PadFixateCapsFunction"
+              c:type="GstPadFixateCapsFunction"
+              doc="Given possibly unfixed caps @caps, let @pad use its default prefered
+format to make a fixed caps. @caps should be writable. By default this
+function will pick the first value of any ranges or lists in the caps but
+elements can override this function to perform other behaviour.">
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="pad" transfer-ownership="none">
+          <type name="Pad" c:type="GstPad*"/>
+        </parameter>
+        <parameter name="caps" transfer-ownership="none">
+          <type name="Caps" c:type="GstCaps*"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <bitfield name="PadFlags" doc="Pad state flags" c:type="GstPadFlags">
+      <member name="blocked" value="16" c:identifier="GST_PAD_BLOCKED"/>
+      <member name="flushing" value="32" c:identifier="GST_PAD_FLUSHING"/>
+      <member name="in_getcaps" value="64" c:identifier="GST_PAD_IN_GETCAPS"/>
+      <member name="in_setcaps" value="128" c:identifier="GST_PAD_IN_SETCAPS"/>
+      <member name="blocking" value="256" c:identifier="GST_PAD_BLOCKING"/>
+      <member name="flag_last" value="4096" c:identifier="GST_PAD_FLAG_LAST"/>
+    </bitfield>
+    <callback name="PadGetCapsFunction"
+              c:type="GstPadGetCapsFunction"
+              doc="Returns a copy of the capabilities of the specified pad. By default this
+function will return the pad template capabilities, but can optionally
+be overridden by elements.">
+      <return-value transfer-ownership="full">
+        <type name="Caps" c:type="GstCaps*"/>
+      </return-value>
+      <parameters>
+        <parameter name="pad" transfer-ownership="none">
+          <type name="Pad" c:type="GstPad*"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <callback name="PadGetRangeFunction"
+              c:type="GstPadGetRangeFunction"
+              doc="This function will be called on source pads when a peer element
+request a buffer at the specified @offset and @length. If this function
+returns #GST_FLOW_OK, the result buffer will be stored in @buffer. The
+contents of @buffer is invalid for any other return value.
+This function is installed on a source pad with
+gst_pad_set_getrange_function() and can only be called on source pads after
+they are successfully activated with gst_pad_activate_pull().
+between 0 and the length in bytes of the data available on @pad. The
+length (duration in bytes) can be retrieved with a #GST_QUERY_DURATION or with a
+#GST_QUERY_SEEKING.
+Any @offset larger or equal than the length will make the function return
+#GST_FLOW_UNEXPECTED, which corresponds to EOS. In this case @buffer does not
+contain a valid buffer.
+The buffer size of @buffer might be smaller than @length when @offset is near
+the end of the stream.
+It is allowed to call this function with a 0 @length and valid @offset, in
+which case @buffer will contain a 0-sized buffer and the function returns
+#GST_FLOW_OK.
+When this function is called with a -1 @offset, the sequentially next buffer
+of length @length in the stream is returned.
+When this function is called with a -1 @length, a buffer with a default
+optimal length is returned in @buffer. The length might depend on the value
+of @offset.">
+      <return-value transfer-ownership="full">
+        <type name="FlowReturn" c:type="GstFlowReturn"/>
+      </return-value>
+      <parameters>
+        <parameter name="pad" transfer-ownership="none">
+          <type name="Pad" c:type="GstPad*"/>
+        </parameter>
+        <parameter name="offset" transfer-ownership="none">
+          <type name="uint64" c:type="guint64"/>
+        </parameter>
+        <parameter name="length" transfer-ownership="none">
+          <type name="uint" c:type="guint"/>
+        </parameter>
+        <parameter name="buffer" transfer-ownership="none">
+          <type name="Buffer" c:type="GstBuffer**"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <callback name="PadIntLinkFunction"
+              c:type="GstPadIntLinkFunction"
+              doc="The signature of the internal pad link function.
+the inside of the parent element.
+The caller must call g_list_free() on it after use."
+              deprecated="use the threadsafe #GstPadIterIntLinkFunction instead.">
+      <return-value transfer-ownership="full">
+        <type name="GLib.List" c:type="GList*"/>
+      </return-value>
+      <parameters>
+        <parameter name="pad" transfer-ownership="none">
+          <type name="Pad" c:type="GstPad*"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <callback name="PadIterIntLinkFunction"
+              c:type="GstPadIterIntLinkFunction"
+              doc="The signature of the internal pad link iterator function.
+linked to the given pad on the inside of the parent element.
+the caller must call gst_iterator_free() after usage.
+Since 0.10.21">
+      <return-value transfer-ownership="full">
+        <type name="Iterator" c:type="GstIterator*"/>
+      </return-value>
+      <parameters>
+        <parameter name="pad" transfer-ownership="none">
+          <type name="Pad" c:type="GstPad*"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <callback name="PadLinkFunction" c:type="GstPadLinkFunction">
+      <return-value transfer-ownership="full">
+        <type name="PadLinkReturn" c:type="GstPadLinkReturn"/>
+      </return-value>
+      <parameters>
+        <parameter name="pad" transfer-ownership="none">
+          <type name="Pad" c:type="GstPad*"/>
+        </parameter>
+        <parameter name="peer" transfer-ownership="none">
+          <type name="Pad" c:type="GstPad*"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <enumeration name="PadLinkReturn"
+                 doc="Result values from gst_pad_link and friends."
+                 c:type="GstPadLinkReturn">
+      <member name="ok" value="0" c:identifier="GST_PAD_LINK_OK"/>
+      <member name="wrong_hierarchy"
+              value="-1"
+              c:identifier="GST_PAD_LINK_WRONG_HIERARCHY"/>
+      <member name="was_linked"
+              value="-2"
+              c:identifier="GST_PAD_LINK_WAS_LINKED"/>
+      <member name="wrong_direction"
+              value="-3"
+              c:identifier="GST_PAD_LINK_WRONG_DIRECTION"/>
+      <member name="noformat" value="-4" c:identifier="GST_PAD_LINK_NOFORMAT"/>
+      <member name="nosched" value="-5" c:identifier="GST_PAD_LINK_NOSCHED"/>
+      <member name="refused" value="-6" c:identifier="GST_PAD_LINK_REFUSED"/>
+    </enumeration>
+    <enumeration name="PadPresence"
+                 doc="gst_element_get_request_pad().
+Indicates when this pad will become available."
+                 c:type="GstPadPresence">
+      <member name="always" value="0" c:identifier="GST_PAD_ALWAYS"/>
+      <member name="sometimes" value="1" c:identifier="GST_PAD_SOMETIMES"/>
+      <member name="request" value="2" c:identifier="GST_PAD_REQUEST"/>
+    </enumeration>
+    <record name="PadPrivate" c:type="GstPadPrivate">
+    </record>
+    <callback name="PadQueryFunction"
+              c:type="GstPadQueryFunction"
+              doc="The signature of the query function.">
+      <return-value transfer-ownership="none">
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="pad" transfer-ownership="none">
+          <type name="Pad" c:type="GstPad*"/>
+        </parameter>
+        <parameter name="query" transfer-ownership="none">
+          <type name="Query" c:type="GstQuery*"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <callback name="PadQueryTypeFunction"
+              c:type="GstPadQueryTypeFunction"
+              doc="The signature of the query types function.">
+      <return-value transfer-ownership="none">
+        <type name="QueryType" c:type="GstQueryType*"/>
+      </return-value>
+      <parameters>
+        <parameter name="pad" transfer-ownership="none">
+          <type name="Pad" c:type="GstPad*"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <callback name="PadSetCapsFunction"
+              c:type="GstPadSetCapsFunction"
+              doc="Set @caps on @pad. By default this function updates the caps of the
+pad but the function can be overriden by elements to perform extra
+actions or verifications.">
+      <return-value transfer-ownership="none">
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="pad" transfer-ownership="none">
+          <type name="Pad" c:type="GstPad*"/>
+        </parameter>
+        <parameter name="caps" transfer-ownership="none">
+          <type name="Caps" c:type="GstCaps*"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <class name="PadTemplate"
+           c:type="GstPadTemplate"
+           doc="The padtemplate object."
+           parent="Object"
+           glib:type-name="GstPadTemplate"
+           glib:get-type="gst_pad_template_get_type"
+           glib:type-struct="PadTemplateClass">
+      <constructor name="new"
+                   c:identifier="gst_pad_template_new"
+                   doc="Creates a new pad template with a name according to the given template
+and with the given arguments. This functions takes ownership of the provided
+caps, so be sure to not use them afterwards.">
+        <return-value transfer-ownership="full">
+          <type name="PadTemplate" c:type="GstPadTemplate*"/>
+        </return-value>
+        <parameters>
+          <parameter name="name_template" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="direction" transfer-ownership="none">
+            <type name="PadDirection" c:type="GstPadDirection"/>
+          </parameter>
+          <parameter name="presence" transfer-ownership="none">
+            <type name="PadPresence" c:type="GstPadPresence"/>
+          </parameter>
+          <parameter name="caps" transfer-ownership="none">
+            <type name="Caps" c:type="GstCaps*"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <method name="get_caps"
+              c:identifier="gst_pad_template_get_caps"
+              doc="Gets the capabilities of the pad template.
+the caps, take a ref (see gst_caps_ref ()).">
+        <return-value transfer-ownership="full">
+          <type name="Caps" c:type="GstCaps*"/>
+        </return-value>
+      </method>
+      <method name="pad_created"
+              c:identifier="gst_pad_template_pad_created"
+              doc="Emit the pad-created signal for this template when created by this pad.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="pad" transfer-ownership="none">
+            <type name="Pad" c:type="GstPad*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <property name="caps" writable="1" construct-only="1">
+        <type name="Caps" c:type="GstCaps"/>
+      </property>
+      <property name="direction" writable="1" construct-only="1">
+        <type name="PadDirection" c:type="GstPadDirection"/>
+      </property>
+      <property name="name-template" writable="1" construct-only="1">
+        <type name="utf8" c:type="gchararray"/>
+      </property>
+      <property name="presence" writable="1" construct-only="1">
+        <type name="PadPresence" c:type="GstPadPresence"/>
+      </property>
+      <field name="object">
+        <type name="Object" c:type="GstObject"/>
+      </field>
+      <field name="name_template">
+        <type name="utf8" c:type="gchar*"/>
+      </field>
+      <field name="direction">
+        <type name="PadDirection" c:type="GstPadDirection"/>
+      </field>
+      <field name="presence">
+        <type name="PadPresence" c:type="GstPadPresence"/>
+      </field>
+      <field name="caps">
+        <type name="Caps" c:type="GstCaps*"/>
+      </field>
+      <field name="_gst_reserved">
+        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+          <type name="any"/>
+        </array>
+      </field>
+      <glib:signal name="pad-created"
+                   doc="This signal is fired when an element creates a pad from this template.">
+        <return-value transfer-ownership="full">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="pad" transfer-ownership="none">
+            <type name="Pad" c:type="GstPad"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+    </class>
+    <record name="PadTemplateClass"
+            c:type="GstPadTemplateClass"
+            glib:is-gtype-struct-for="PadTemplate">
+      <field name="parent_class">
+        <type name="ObjectClass" c:type="GstObjectClass"/>
+      </field>
+      <field name="pad_created">
+        <callback name="pad_created" c:type="pad_created">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="templ" transfer-ownership="none">
+              <type name="PadTemplate" c:type="GstPadTemplate*"/>
+            </parameter>
+            <parameter name="pad" transfer-ownership="none">
+              <type name="Pad" c:type="GstPad*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="_gst_reserved">
+        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+          <type name="any"/>
+        </array>
+      </field>
+    </record>
+    <bitfield name="PadTemplateFlags"
+              doc="Flags for the padtemplate"
+              c:type="GstPadTemplateFlags">
+      <member name="fixed" value="16" c:identifier="GST_PAD_TEMPLATE_FIXED"/>
+      <member name="flag_last"
+              value="256"
+              c:identifier="GST_PAD_TEMPLATE_FLAG_LAST"/>
+    </bitfield>
+    <callback name="PadUnlinkFunction" c:type="GstPadUnlinkFunction">
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="pad" transfer-ownership="none">
+          <type name="Pad" c:type="GstPad*"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <record name="ParamSpecFraction"
+            c:type="GstParamSpecFraction"
+            doc="A GParamSpec derived structure that contains the meta data for fractional
+properties.">
+      <field name="parent_instance" writable="1">
+        <type name="GObject.ParamSpec" c:type="GParamSpec"/>
+      </field>
+      <field name="min_num" writable="1">
+        <type name="int" c:type="gint"/>
+      </field>
+      <field name="min_den" writable="1">
+        <type name="int" c:type="gint"/>
+      </field>
+      <field name="max_num" writable="1">
+        <type name="int" c:type="gint"/>
+      </field>
+      <field name="max_den" writable="1">
+        <type name="int" c:type="gint"/>
+      </field>
+      <field name="def_num" writable="1">
+        <type name="int" c:type="gint"/>
+      </field>
+      <field name="def_den" writable="1">
+        <type name="int" c:type="gint"/>
+      </field>
+    </record>
+    <record name="ParamSpecMiniObject"
+            c:type="GstParamSpecMiniObject"
+            doc="A %GParamSpec derived structure that contains the meta data
+for %GstMiniObject properties.">
+      <field name="parent_instance" writable="1">
+        <type name="GObject.ParamSpec" c:type="GParamSpec"/>
+      </field>
+    </record>
+    <record name="ParseContext"
+            c:type="GstParseContext"
+            doc="Opaque structure."
+            version="0.10.20">
+      <constructor name="new"
+                   c:identifier="gst_parse_context_new"
+                   doc="Allocates a parse context for use with gst_parse_launch_full() or
+gst_parse_launchv_full().
+when no longer needed."
+                   version="0.10.20">
+        <return-value transfer-ownership="full">
+          <type name="ParseContext" c:type="GstParseContext*"/>
+        </return-value>
+      </constructor>
+      <method name="get_missing_elements"
+              c:identifier="gst_parse_context_get_missing_elements"
+              doc="Retrieve missing elements from a previous run of gst_parse_launch_full()
+or gst_parse_launchv_full(). Will only return results if an error code
+of %GST_PARSE_ERROR_NO_SUCH_ELEMENT was returned.
+missing elements. Free with g_strfreev() when no longer needed."
+              version="0.10.20">
+        <return-value transfer-ownership="full">
+          <array c:type="gchar**">
+            <type name="utf8"/>
+          </array>
+        </return-value>
+      </method>
+      <method name="free"
+              c:identifier="gst_parse_context_free"
+              doc="Frees a parse context previously allocated with gst_parse_context_new()."
+              version="0.10.20">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </method>
+    </record>
+    <enumeration name="ParseError"
+                 doc="The different parsing errors that can occur."
+                 c:type="GstParseError"
+                 glib:error-quark="gst_parse_error_quark">
+      <member name="syntax" value="0" c:identifier="GST_PARSE_ERROR_SYNTAX"/>
+      <member name="no_such_element"
+              value="1"
+              c:identifier="GST_PARSE_ERROR_NO_SUCH_ELEMENT"/>
+      <member name="no_such_property"
+              value="2"
+              c:identifier="GST_PARSE_ERROR_NO_SUCH_PROPERTY"/>
+      <member name="link" value="3" c:identifier="GST_PARSE_ERROR_LINK"/>
+      <member name="could_not_set_property"
+              value="4"
+              c:identifier="GST_PARSE_ERROR_COULD_NOT_SET_PROPERTY"/>
+      <member name="empty_bin"
+              value="5"
+              c:identifier="GST_PARSE_ERROR_EMPTY_BIN"/>
+      <member name="empty" value="6" c:identifier="GST_PARSE_ERROR_EMPTY"/>
+    </enumeration>
+    <bitfield name="ParseFlags"
+              doc="(default behaviour is to return partially constructed bins or elements
+in some cases)
+Parsing options."
+              version="0.10.20"
+              c:type="GstParseFlags">
+      <member name="none" value="0" c:identifier="GST_PARSE_FLAG_NONE"/>
+      <member name="fatal_errors"
+              value="1"
+              c:identifier="GST_PARSE_FLAG_FATAL_ERRORS"/>
+    </bitfield>
+    <class name="Pipeline"
+           c:type="GstPipeline"
+           doc="GST_PIPELINE_FLAG_FIXED_CLOCK is set.
+property would be the running_time, the total time spent in the
+PLAYING state without being flushed. (deprecated, use the start_time
+on GstElement).
+when setting elements to PLAYING.
+The #GstPipeline structure."
+           parent="Bin"
+           glib:type-name="GstPipeline"
+           glib:get-type="gst_pipeline_get_type"
+           glib:type-struct="PipelineClass">
+      <implements name="ChildProxy"/>
+      <constructor name="new"
+                   c:identifier="gst_pipeline_new"
+                   doc="Create a new pipeline with the given name.
+MT safe.">
+        <return-value transfer-ownership="full">
+          <type name="Pipeline" c:type="GstElement*"/>
+        </return-value>
+        <parameters>
+          <parameter name="name" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <method name="get_bus"
+              c:identifier="gst_pipeline_get_bus"
+              doc="Gets the #GstBus of @pipeline. The bus allows applications to receive
+#GstMessage packets.
+MT safe.">
+        <return-value transfer-ownership="full">
+          <type name="Bus" c:type="GstBus*"/>
+        </return-value>
+      </method>
+      <method name="set_new_stream_time"
+              c:identifier="gst_pipeline_set_new_stream_time"
+              doc="Set the new start time of @pipeline to @time. The start time is used to
+set the base time on the elements (see gst_element_set_base_time())
+in the PAUSED-&gt;PLAYING state transition.
+Setting @time to #GST_CLOCK_TIME_NONE will disable the pipeline&apos;s management
+of element base time. The application will then be responsible for
+performing base time distribution. This is sometimes useful if you want to
+synchronize capture from multiple pipelines, and you can also ensure that the
+pipelines have the same clock.
+MT safe.
+gst_element_set_start_time()."
+              deprecated="This function has the wrong name and is equivalent to">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="time" transfer-ownership="none">
+            <type name="ClockTime" c:type="GstClockTime"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_last_stream_time"
+              c:identifier="gst_pipeline_get_last_stream_time"
+              doc="Gets the last running time of @pipeline. If the pipeline is PLAYING,
+the returned time is the running time used to configure the element&apos;s
+base time in the PAUSED-&gt;PLAYING state. If the pipeline is PAUSED, the
+returned time is the running time when the pipeline was paused.
+This function returns #GST_CLOCK_TIME_NONE if the pipeline was
+configured to not handle the management of the element&apos;s base time
+(see gst_pipeline_set_new_stream_time()).
+MT safe.
+gst_element_get_start_time()."
+              deprecated="This function has the wrong name and is equivalent to">
+        <return-value transfer-ownership="full">
+          <type name="ClockTime" c:type="GstClockTime"/>
+        </return-value>
+      </method>
+      <method name="use_clock"
+              c:identifier="gst_pipeline_use_clock"
+              doc="Force @pipeline to use the given @clock. The pipeline will
+always use the given clock even if new clock providers are added
+to this pipeline.
+If @clock is NULL all clocking will be disabled which will make
+the pipeline run as fast as possible.
+MT safe.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="clock" transfer-ownership="none">
+            <type name="Clock" c:type="GstClock*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_clock"
+              c:identifier="gst_pipeline_set_clock"
+              doc="Set the clock for @pipeline. The clock will be distributed
+to all the elements managed by the pipeline.
+some element did not accept the clock.
+MT safe.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="clock" transfer-ownership="none">
+            <type name="Clock" c:type="GstClock*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_clock"
+              c:identifier="gst_pipeline_get_clock"
+              doc="Gets the current clock used by @pipeline.">
+        <return-value transfer-ownership="full">
+          <type name="Clock" c:type="GstClock*"/>
+        </return-value>
+      </method>
+      <method name="auto_clock"
+              c:identifier="gst_pipeline_auto_clock"
+              doc="Let @pipeline select a clock automatically. This is the default
+behaviour.
+Use this function if you previous forced a fixed clock with
+gst_pipeline_use_clock() and want to restore the default
+pipeline clock selection algorithm.
+MT safe.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </method>
+      <method name="set_delay"
+              c:identifier="gst_pipeline_set_delay"
+              doc="Set the expected delay needed for all elements to perform the
+PAUSED to PLAYING state change. @delay will be added to the
+base time of the elements so that they wait an additional @delay
+amount of time before starting to process buffers and cannot be
+#GST_CLOCK_TIME_NONE.
+This option is used for tuning purposes and should normally not be
+used.
+MT safe."
+              version="0.10.5">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="delay" transfer-ownership="none">
+            <type name="ClockTime" c:type="GstClockTime"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_delay"
+              c:identifier="gst_pipeline_get_delay"
+              doc="Get the configured delay (see gst_pipeline_set_delay()).
+MT safe."
+              version="0.10.5">
+        <return-value transfer-ownership="full">
+          <type name="ClockTime" c:type="GstClockTime"/>
+        </return-value>
+      </method>
+      <method name="set_auto_flush_bus"
+              c:identifier="gst_pipeline_set_auto_flush_bus"
+              doc="the pipeline goes from READY to NULL state
+Usually, when a pipeline goes from READY to NULL state, it automatically
+flushes all pending messages on the bus, which is done for refcounting
+purposes, to break circular references.
+This means that applications that update state using (async) bus messages
+(e.g. do certain things when a pipeline goes from PAUSED to READY) might
+not get to see messages when the pipeline is shut down, because they might
+be flushed before they can be dispatched in the main thread. This behaviour
+can be disabled using this function.
+It is important that all messages on the bus are handled when the
+automatic flushing is disabled else memory leaks will be introduced.
+MT safe."
+              version="0.10.4">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="auto_flush" transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_auto_flush_bus"
+              c:identifier="gst_pipeline_get_auto_flush_bus"
+              doc="Check if @pipeline will automatically flush messages when going to
+the NULL state.
+going from READY to NULL state or not.
+MT safe."
+              version="0.10.4">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+      </method>
+      <property name="auto-flush-bus"
+                version="0.10.4"
+                writable="1"
+                doc="Whether or not to automatically flush all messages on the
+pipeline&apos;s bus when going from READY to NULL state. Please see
+gst_pipeline_set_auto_flush_bus() for more information on this option.">
+        <type name="boolean" c:type="gboolean"/>
+      </property>
+      <property name="delay" writable="1">
+        <type name="uint64" c:type="guint64"/>
+      </property>
+      <field name="bin">
+        <type name="Bin" c:type="GstBin"/>
+      </field>
+      <field name="fixed_clock">
+        <type name="Clock" c:type="GstClock*"/>
+      </field>
+      <field name="stream_time">
+        <type name="ClockTime" c:type="GstClockTime"/>
+      </field>
+      <field name="delay">
+        <type name="ClockTime" c:type="GstClockTime"/>
+      </field>
+      <field name="priv">
+        <type name="PipelinePrivate" c:type="GstPipelinePrivate*"/>
+      </field>
+      <field name="_gst_reserved">
+        <array zero-terminated="0" c:type="gpointer" fixed-size="3">
+          <type name="any"/>
+        </array>
+      </field>
+    </class>
+    <record name="PipelineClass"
+            c:type="GstPipelineClass"
+            glib:is-gtype-struct-for="Pipeline">
+      <field name="parent_class">
+        <type name="BinClass" c:type="GstBinClass"/>
+      </field>
+      <field name="_gst_reserved">
+        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+          <type name="any"/>
+        </array>
+      </field>
+    </record>
+    <bitfield name="PipelineFlags"
+              doc="Pipeline flags"
+              c:type="GstPipelineFlags">
+      <member name="fixed_clock"
+              value="33554432"
+              c:identifier="GST_PIPELINE_FLAG_FIXED_CLOCK"/>
+      <member name="last"
+              value="536870912"
+              c:identifier="GST_PIPELINE_FLAG_LAST"/>
+    </bitfield>
+    <record name="PipelinePrivate" c:type="GstPipelinePrivate">
+    </record>
+    <class name="Plugin"
+           c:type="GstPlugin"
+           doc="The plugin object"
+           parent="Object"
+           glib:type-name="GstPlugin"
+           glib:get-type="gst_plugin_get_type"
+           glib:type-struct="PluginClass">
+      <function name="register_static"
+                c:identifier="gst_plugin_register_static"
+                doc="plugin was compiled for, you can just use GST_VERSION_MAJOR here
+plugin was compiled for, you can just use GST_VERSION_MINOR here
+library-specific namespace prefix in order to avoid name conflicts in
+case a similar plugin with the same name ever gets added to GStreamer)
+(see #GstPluginDesc above) or the plugin will not be registered.
+Registers a static plugin, ie. a plugin which is private to an application
+or library and contained within the application or library (as opposed to
+being shipped as a separate module file).
+You must make sure that GStreamer has been initialised (with gst_init() or
+via gst_init_get_option_group()) before calling this function."
+                version="0.10.16">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="major_version" transfer-ownership="none">
+            <type name="int" c:type="gint"/>
+          </parameter>
+          <parameter name="minor_version" transfer-ownership="none">
+            <type name="int" c:type="gint"/>
+          </parameter>
+          <parameter name="name" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="description" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="init_func" transfer-ownership="none" scope="call">
+            <type name="PluginInitFunc" c:type="GstPluginInitFunc"/>
+          </parameter>
+          <parameter name="version" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="license" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="source" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="package" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="origin" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </function>
+      <function name="register_static_full"
+                c:identifier="gst_plugin_register_static_full"
+                doc="plugin was compiled for, you can just use GST_VERSION_MAJOR here
+plugin was compiled for, you can just use GST_VERSION_MINOR here
+library-specific namespace prefix in order to avoid name conflicts in
+case a similar plugin with the same name ever gets added to GStreamer)
+(see #GstPluginDesc above) or the plugin will not be registered.
+Registers a static plugin, ie. a plugin which is private to an application
+or library and contained within the application or library (as opposed to
+being shipped as a separate module file) with a #GstPluginInitFullFunc
+which allows user data to be passed to the callback function (useful
+for bindings).
+You must make sure that GStreamer has been initialised (with gst_init() or
+via gst_init_get_option_group()) before calling this function."
+                version="0.10.24">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="major_version" transfer-ownership="none">
+            <type name="int" c:type="gint"/>
+          </parameter>
+          <parameter name="minor_version" transfer-ownership="none">
+            <type name="int" c:type="gint"/>
+          </parameter>
+          <parameter name="name" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="description" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="init_full_func"
+                     transfer-ownership="none"
+                     scope="call">
+            <type name="PluginInitFullFunc" c:type="GstPluginInitFullFunc"/>
+          </parameter>
+          <parameter name="version" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="license" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="source" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="package" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="origin" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="user_data" transfer-ownership="none">
+            <type name="any" c:type="gpointer"/>
+          </parameter>
+        </parameters>
+      </function>
+      <function name="load_file"
+                c:identifier="gst_plugin_load_file"
+                doc="Loads the given plugin and refs it.  Caller needs to unref after use.
+newly-loaded GstPlugin, or NULL if an error occurred."
+                throws="1">
+        <return-value transfer-ownership="full">
+          <type name="Plugin" c:type="GstPlugin*"/>
+        </return-value>
+        <parameters>
+          <parameter name="filename" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </function>
+      <function name="load_by_name"
+                c:identifier="gst_plugin_load_by_name"
+                doc="Load the named plugin. Refs the plugin.">
+        <return-value transfer-ownership="full">
+          <type name="Plugin" c:type="GstPlugin*"/>
+        </return-value>
+        <parameters>
+          <parameter name="name" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </function>
+      <function name="list_free"
+                c:identifier="gst_plugin_list_free"
+                doc="Unrefs each member of @list, then frees the list.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="list" transfer-ownership="none">
+            <type name="GLib.List" c:type="GList*"/>
+          </parameter>
+        </parameters>
+      </function>
+      <method name="get_name"
+              c:identifier="gst_plugin_get_name"
+              doc="Get the short name of the plugin">
+        <return-value transfer-ownership="none">
+          <type name="utf8" c:type="gchar*"/>
+        </return-value>
+      </method>
+      <method name="get_description"
+              c:identifier="gst_plugin_get_description"
+              doc="Get the long descriptive name of the plugin">
+        <return-value transfer-ownership="none">
+          <type name="utf8" c:type="gchar*"/>
+        </return-value>
+      </method>
+      <method name="get_filename"
+              c:identifier="gst_plugin_get_filename"
+              doc="get the filename of the plugin">
+        <return-value transfer-ownership="none">
+          <type name="utf8" c:type="gchar*"/>
+        </return-value>
+      </method>
+      <method name="get_version"
+              c:identifier="gst_plugin_get_version"
+              doc="get the version of the plugin">
+        <return-value transfer-ownership="none">
+          <type name="utf8" c:type="gchar*"/>
+        </return-value>
+      </method>
+      <method name="get_license"
+              c:identifier="gst_plugin_get_license"
+              doc="get the license of the plugin">
+        <return-value transfer-ownership="none">
+          <type name="utf8" c:type="gchar*"/>
+        </return-value>
+      </method>
+      <method name="get_source"
+              c:identifier="gst_plugin_get_source"
+              doc="get the source module the plugin belongs to.">
+        <return-value transfer-ownership="none">
+          <type name="utf8" c:type="gchar*"/>
+        </return-value>
+      </method>
+      <method name="get_package"
+              c:identifier="gst_plugin_get_package"
+              doc="get the package the plugin belongs to.">
+        <return-value transfer-ownership="none">
+          <type name="utf8" c:type="gchar*"/>
+        </return-value>
+      </method>
+      <method name="get_origin"
+              c:identifier="gst_plugin_get_origin"
+              doc="get the URL where the plugin comes from">
+        <return-value transfer-ownership="none">
+          <type name="utf8" c:type="gchar*"/>
+        </return-value>
+      </method>
+      <method name="get_cache_data"
+              c:identifier="gst_plugin_get_cache_data"
+              doc="Gets the plugin specific data cache. If it is %NULL there is no cached data
+stored. This is the case when the registry is getting rebuilt."
+              version="0.10.24">
+        <return-value transfer-ownership="none">
+          <type name="Structure" c:type="GstStructure*"/>
+        </return-value>
+      </method>
+      <method name="set_cache_data"
+              c:identifier="gst_plugin_set_cache_data"
+              doc="Adds plugin specific data to cache. Passes the ownership of the structure to
+the @plugin.
+The cache is flushed every time the registry is rebuilt."
+              version="0.10.24">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="cache_data" transfer-ownership="none">
+            <type name="Structure" c:type="GstStructure*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_module"
+              c:identifier="gst_plugin_get_module"
+              doc="Gets the #GModule of the plugin. If the plugin isn&apos;t loaded yet, NULL is
+returned.
+loaded yet.">
+        <return-value transfer-ownership="full">
+          <type name="GModule.Module" c:type="GModule*"/>
+        </return-value>
+      </method>
+      <method name="is_loaded"
+              c:identifier="gst_plugin_is_loaded"
+              doc="queries if the plugin is loaded into memory">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+      </method>
+      <method name="name_filter"
+              c:identifier="gst_plugin_name_filter"
+              doc="A standard filter that returns TRUE when the plugin is of the
+given name.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="name" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="load"
+              c:identifier="gst_plugin_load"
+              doc="Loads @plugin. Note that the *return value* is the loaded plugin; @plugin is
+untouched. The normal use pattern of this function goes like this:
+&lt;programlisting&gt;
+GstPlugin *loaded_plugin;
+loaded_plugin = gst_plugin_load (plugin);
+// presumably, we&apos;re no longer interested in the potentially-unloaded plugin
+gst_object_unref (plugin);
+plugin = loaded_plugin;
+&lt;/programlisting&gt;">
+        <return-value transfer-ownership="full">
+          <type name="Plugin" c:type="GstPlugin*"/>
+        </return-value>
+      </method>
+      <method name="add_dependency"
+              c:identifier="gst_plugin_add_dependency"
+              doc="feature set of the plugin (e.g. an environment variable containing
+paths where to look for additional modules/plugins of a library),
+or NULL. Environment variable names may be followed by a path component
+which will be added to the content of the environment variable, e.g.
+&quot;HOME/.mystuff/plugins&quot;.
+may be.
+depending on @flags) to be used in combination with the paths from
+Make GStreamer aware of external dependencies which affect the feature
+set of this plugin (ie. the elements or typefinders associated with it).
+GStreamer will re-inspect plugins with external dependencies whenever any
+of the external dependencies change. This is useful for plugins which wrap
+other plugin systems, e.g. a plugin which wraps a plugin-based visualisation
+library and makes visualisations available as GStreamer elements, or a
+codec loader which exposes elements and/or caps dependent on what external
+codec libraries are currently installed."
+              version="0.10.22">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="env_vars" transfer-ownership="none">
+            <array c:type="gchar**">
+              <type name="utf8"/>
+            </array>
+          </parameter>
+          <parameter name="paths" transfer-ownership="none">
+            <array c:type="gchar**">
+              <type name="utf8"/>
+            </array>
+          </parameter>
+          <parameter name="names" transfer-ownership="none">
+            <array c:type="gchar**">
+              <type name="utf8"/>
+            </array>
+          </parameter>
+          <parameter name="flags" transfer-ownership="none">
+            <type name="PluginDependencyFlags"
+                  c:type="GstPluginDependencyFlags"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="add_dependency_simple"
+              c:identifier="gst_plugin_add_dependency_simple"
+              doc="or NULL. Environment variable names may be followed by a path component
+which will be added to the content of the environment variable, e.g.
+&quot;HOME/.mystuff/plugins:MYSTUFF_PLUGINS_PATH&quot;
+or NULL
+Make GStreamer aware of external dependencies which affect the feature
+set of this plugin (ie. the elements or typefinders associated with it).
+GStreamer will re-inspect plugins with external dependencies whenever any
+of the external dependencies change. This is useful for plugins which wrap
+other plugin systems, e.g. a plugin which wraps a plugin-based visualisation
+library and makes visualisations available as GStreamer elements, or a
+codec loader which exposes elements and/or caps dependent on what external
+codec libraries are currently installed.
+Convenience wrapper function for gst_plugin_add_dependency() which
+takes simple strings as arguments instead of string arrays, with multiple
+arguments separated by predefined delimiters (see above)."
+              version="0.10.22">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="env_vars" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="paths" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="names" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="flags" transfer-ownership="none">
+            <type name="PluginDependencyFlags"
+                  c:type="GstPluginDependencyFlags"/>
+          </parameter>
+        </parameters>
+      </method>
+      <field name="object">
+        <type name="Object" c:type="GstObject"/>
+      </field>
+      <field name="desc">
+        <type name="PluginDesc" c:type="GstPluginDesc"/>
+      </field>
+      <field name="orig_desc">
+        <type name="PluginDesc" c:type="GstPluginDesc*"/>
+      </field>
+      <field name="flags">
+        <type name="uint" c:type="unsigned"/>
+      </field>
+      <field name="filename">
+        <type name="utf8" c:type="gchar*"/>
+      </field>
+      <field name="basename">
+        <type name="utf8" c:type="gchar*"/>
+      </field>
+      <field name="module">
+        <type name="GModule.Module" c:type="GModule*"/>
+      </field>
+      <field name="file_size">
+        <type name="size_t" c:type="off_t"/>
+      </field>
+      <field name="file_mtime">
+        <type name="time_t" c:type="time_t"/>
+      </field>
+      <field name="registered">
+        <type name="boolean" c:type="gboolean"/>
+      </field>
+      <field name="priv">
+        <type name="PluginPrivate" c:type="GstPluginPrivate*"/>
+      </field>
+      <field name="_gst_reserved">
+        <array zero-terminated="0" c:type="gpointer" fixed-size="3">
+          <type name="any"/>
+        </array>
+      </field>
+    </class>
+    <record name="PluginClass"
+            c:type="GstPluginClass"
+            glib:is-gtype-struct-for="Plugin">
+      <field name="object_class">
+        <type name="ObjectClass" c:type="GstObjectClass"/>
+      </field>
+      <field name="_gst_reserved">
+        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+          <type name="any"/>
+        </array>
+      </field>
+    </record>
+    <bitfield name="PluginDependencyFlags"
+              doc="argument only if none of the environment variables is set
+filename argument as filter suffix and check all matching files in
+the directory
+Flags used in connection with gst_plugin_add_dependency()."
+              version="0.10.22"
+              c:type="GstPluginDependencyFlags">
+      <member name="none"
+              value="0"
+              c:identifier="GST_PLUGIN_DEPENDENCY_FLAG_NONE"/>
+      <member name="recurse"
+              value="1"
+              c:identifier="GST_PLUGIN_DEPENDENCY_FLAG_RECURSE"/>
+      <member name="paths_are_default_only"
+              value="2"
+              c:identifier="GST_PLUGIN_DEPENDENCY_FLAG_PATHS_ARE_DEFAULT_ONLY"/>
+      <member name="file_name_is_suffix"
+              value="4"
+              c:identifier="GST_PLUGIN_DEPENDENCY_FLAG_FILE_NAME_IS_SUFFIX"/>
+    </bitfield>
+    <record name="PluginDesc"
+            c:type="GstPluginDesc"
+            doc="A plugin should export a variable of this type called plugin_desc. The plugin
+loader will use the data provided there to initialize the plugin.
+BSD, MIT/X11, Proprietary, unknown.">
+      <field name="major_version" writable="1">
+        <type name="int" c:type="gint"/>
+      </field>
+      <field name="minor_version" writable="1">
+        <type name="int" c:type="gint"/>
+      </field>
+      <field name="name" writable="1">
+        <type name="utf8" c:type="gchar*"/>
+      </field>
+      <field name="description" writable="1">
+        <type name="utf8" c:type="gchar*"/>
+      </field>
+      <field name="plugin_init" writable="1">
+        <type name="PluginInitFunc" c:type="GstPluginInitFunc"/>
+      </field>
+      <field name="version" writable="1">
+        <type name="utf8" c:type="gchar*"/>
+      </field>
+      <field name="license" writable="1">
+        <type name="utf8" c:type="gchar*"/>
+      </field>
+      <field name="source" writable="1">
+        <type name="utf8" c:type="gchar*"/>
+      </field>
+      <field name="package" writable="1">
+        <type name="utf8" c:type="gchar*"/>
+      </field>
+      <field name="origin" writable="1">
+        <type name="utf8" c:type="gchar*"/>
+      </field>
+      <field name="_gst_reserved" writable="1">
+        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+          <type name="any"/>
+        </array>
+      </field>
+    </record>
+    <enumeration name="PluginError"
+                 doc="The plugin loading errors"
+                 c:type="GstPluginError"
+                 glib:error-quark="gst_plugin_error_quark">
+      <member name="module" value="0" c:identifier="GST_PLUGIN_ERROR_MODULE"/>
+      <member name="dependencies"
+              value="1"
+              c:identifier="GST_PLUGIN_ERROR_DEPENDENCIES"/>
+      <member name="name_mismatch"
+              value="2"
+              c:identifier="GST_PLUGIN_ERROR_NAME_MISMATCH"/>
+    </enumeration>
+    <class name="PluginFeature"
+           c:type="GstPluginFeature"
+           doc="Opaque #GstPluginFeature structure."
+           parent="Object"
+           abstract="1"
+           glib:type-name="GstPluginFeature"
+           glib:get-type="gst_plugin_feature_get_type"
+           glib:type-struct="PluginFeatureClass">
+      <function name="list_free"
+                c:identifier="gst_plugin_feature_list_free"
+                doc="Unrefs each member of @list, then frees the list.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="list" transfer-ownership="none">
+            <type name="GLib.List" c:type="GList*"/>
+          </parameter>
+        </parameters>
+      </function>
+      <function name="list_copy"
+                c:identifier="gst_plugin_feature_list_copy"
+                doc="Copies the list of features. Caller should call @gst_plugin_feature_list_free
+when done with the list."
+                version="0.10.26">
+        <return-value transfer-ownership="full">
+          <type name="GLib.List" c:type="GList*"/>
+        </return-value>
+        <parameters>
+          <parameter name="list" transfer-ownership="none">
+            <type name="GLib.List" c:type="GList*"/>
+          </parameter>
+        </parameters>
+      </function>
+      <method name="load"
+              c:identifier="gst_plugin_feature_load"
+              doc="Loads the plugin containing @feature if it&apos;s not already loaded. @feature is
+unaffected; use the return value instead.
+Normally this function is used like this:
+|[
+GstPluginFeature *loaded_feature;
+loaded_feature = gst_plugin_feature_load (feature);
+// presumably, we&apos;re no longer interested in the potentially-unloaded feature
+gst_object_unref (feature);
+feature = loaded_feature;
+]|">
+        <return-value transfer-ownership="full">
+          <type name="PluginFeature" c:type="GstPluginFeature*"/>
+        </return-value>
+      </method>
+      <method name="type_name_filter"
+              c:identifier="gst_plugin_feature_type_name_filter"
+              doc="Compares type and name of plugin feature. Can be used with gst_filter_run().">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="data" transfer-ownership="none">
+            <type name="TypeNameData" c:type="GstTypeNameData*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_rank"
+              c:identifier="gst_plugin_feature_set_rank"
+              doc="Specifies a rank for a plugin feature, so that autoplugging uses
+the most appropriate feature.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="rank" transfer-ownership="none">
+            <type name="uint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_name"
+              c:identifier="gst_plugin_feature_set_name"
+              doc="Sets the name of a plugin feature. The name uniquely identifies a feature
+within all features of the same type. Renaming a plugin feature is not
+allowed. A copy is made of the name so you should free the supplied @name
+after calling this function.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="name" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_rank"
+              c:identifier="gst_plugin_feature_get_rank"
+              doc="Gets the rank of a plugin feature.">
+        <return-value transfer-ownership="none">
+          <type name="uint" c:type="guint"/>
+        </return-value>
+      </method>
+      <method name="get_name"
+              c:identifier="gst_plugin_feature_get_name"
+              doc="Gets the name of a plugin feature.">
+        <return-value transfer-ownership="none">
+          <type name="utf8" c:type="gchar*"/>
+        </return-value>
+      </method>
+      <method name="check_version"
+              c:identifier="gst_plugin_feature_check_version"
+              doc="Checks whether the given plugin feature is at least
+the required version
+the required version, otherwise #FALSE.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="min_major" transfer-ownership="none">
+            <type name="uint" c:type="guint"/>
+          </parameter>
+          <parameter name="min_minor" transfer-ownership="none">
+            <type name="uint" c:type="guint"/>
+          </parameter>
+          <parameter name="min_micro" transfer-ownership="none">
+            <type name="uint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <field name="object">
+        <type name="Object" c:type="GstObject"/>
+      </field>
+      <field name="loaded">
+        <type name="boolean" c:type="gboolean"/>
+      </field>
+      <field name="name">
+        <type name="utf8" c:type="gchar*"/>
+      </field>
+      <field name="rank">
+        <type name="uint" c:type="guint"/>
+      </field>
+      <field name="plugin_name">
+        <type name="utf8" c:type="gchar*"/>
+      </field>
+      <field name="_gst_reserved">
+        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+          <type name="any"/>
+        </array>
+      </field>
+    </class>
+    <record name="PluginFeatureClass"
+            c:type="GstPluginFeatureClass"
+            glib:is-gtype-struct-for="PluginFeature">
+      <field name="parent_class">
+        <type name="ObjectClass" c:type="GstObjectClass"/>
+      </field>
+      <field name="_gst_reserved">
+        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+          <type name="any"/>
+        </array>
+      </field>
+    </record>
+    <callback name="PluginFeatureFilter"
+              c:type="GstPluginFeatureFilter"
+              doc="gst_registry_feature_filter()
+A function that can be used with e.g. gst_registry_feature_filter()
+to get a list of pluginfeature that match certain criteria.">
+      <return-value transfer-ownership="none">
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="feature" transfer-ownership="none">
+          <type name="PluginFeature" c:type="GstPluginFeature*"/>
+        </parameter>
+        <parameter name="user_data" transfer-ownership="none" closure="1">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <callback name="PluginFilter"
+              c:type="GstPluginFilter"
+              doc="A function that can be used with e.g. gst_registry_plugin_filter()
+to get a list of plugins that match certain criteria.">
+      <return-value transfer-ownership="none">
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="plugin" transfer-ownership="none">
+          <type name="Plugin" c:type="GstPlugin*"/>
+        </parameter>
+        <parameter name="user_data" transfer-ownership="none" closure="1">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <bitfield name="PluginFlags"
+              doc="The plugin loading state"
+              c:type="GstPluginFlags">
+      <member name="cached" value="1" c:identifier="GST_PLUGIN_FLAG_CACHED"/>
+      <member name="blacklisted"
+              value="2"
+              c:identifier="GST_PLUGIN_FLAG_BLACKLISTED"/>
+    </bitfield>
+    <callback name="PluginInitFullFunc"
+              c:type="GstPluginInitFullFunc"
+              doc="A plugin should provide a pointer to a function of either #GstPluginInitFunc
+or this type in the plugin_desc struct.
+The function will be called by the loader at startup. One would then
+register each #GstPluginFeature. This version allows
+user data to be passed to init function (useful for bindings)."
+              version="0.10.24">
+      <return-value transfer-ownership="none">
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="plugin" transfer-ownership="none">
+          <type name="Plugin" c:type="GstPlugin*"/>
+        </parameter>
+        <parameter name="user_data" transfer-ownership="none" closure="1">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <callback name="PluginInitFunc"
+              c:type="GstPluginInitFunc"
+              doc="A plugin should provide a pointer to a function of this type in the
+plugin_desc struct.
+This function will be called by the loader at startup. One would then
+register each #GstPluginFeature.">
+      <return-value transfer-ownership="none">
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="plugin" transfer-ownership="none">
+          <type name="Plugin" c:type="GstPlugin*"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <record name="PluginPrivate" c:type="GstPluginPrivate">
+    </record>
+    <record name="Poll"
+            c:type="GstPoll"
+            doc="A set of file/network descriptors.">
+      <constructor name="new"
+                   c:identifier="gst_poll_new"
+                   doc="Create a new file descriptor set. If @controllable, it
+is possible to restart or flush a call to gst_poll_wait() with
+gst_poll_restart() and gst_poll_set_flushing() respectively.
+gst_poll_free()."
+                   version="0.10.18">
+        <return-value transfer-ownership="full">
+          <type name="Poll" c:type="GstPoll*"/>
+        </return-value>
+        <parameters>
+          <parameter name="controllable" transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <constructor name="new_timer"
+                   c:identifier="gst_poll_new_timer"
+                   doc="Create a new poll object that can be used for scheduling cancellable
+timeouts.
+A timeout is performed with gst_poll_wait(). Multiple timeouts can be
+performed from different threads.
+gst_poll_free()."
+                   version="0.10.23">
+        <return-value transfer-ownership="full">
+          <type name="Poll" c:type="GstPoll*"/>
+        </return-value>
+      </constructor>
+      <method name="free"
+              c:identifier="gst_poll_free"
+              doc="Free a file descriptor set."
+              version="0.10.18">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </method>
+      <method name="add_fd"
+              c:identifier="gst_poll_add_fd"
+              doc="Add a file descriptor to the file descriptor set."
+              version="0.10.18">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="fd" transfer-ownership="none">
+            <type name="PollFD" c:type="GstPollFD*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="remove_fd"
+              c:identifier="gst_poll_remove_fd"
+              doc="Remove a file descriptor from the file descriptor set."
+              version="0.10.18">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="fd" transfer-ownership="none">
+            <type name="PollFD" c:type="GstPollFD*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="fd_ctl_write"
+              c:identifier="gst_poll_fd_ctl_write"
+              doc="Control whether the descriptor @fd in @set will be monitored for
+writability."
+              version="0.10.18">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="fd" transfer-ownership="none">
+            <type name="PollFD" c:type="GstPollFD*"/>
+          </parameter>
+          <parameter name="active" transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="fd_ctl_read"
+              c:identifier="gst_poll_fd_ctl_read"
+              doc="Control whether the descriptor @fd in @set will be monitored for
+readability."
+              version="0.10.18">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="fd" transfer-ownership="none">
+            <type name="PollFD" c:type="GstPollFD*"/>
+          </parameter>
+          <parameter name="active" transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="fd_ignored"
+              c:identifier="gst_poll_fd_ignored"
+              doc="Mark @fd as ignored so that the next call to gst_poll_wait() will yield
+the same result for @fd as last time. This function must be called if no
+operation (read/write/recv/send/etc.) will be performed on @fd before
+the next call to gst_poll_wait().
+The reason why this is needed is because the underlying implementation
+might not allow querying the fd more than once between calls to one of
+the re-enabling operations."
+              version="0.10.18">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="fd" transfer-ownership="none">
+            <type name="PollFD" c:type="GstPollFD*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="fd_has_closed"
+              c:identifier="gst_poll_fd_has_closed"
+              doc="Check if @fd in @set has closed the connection."
+              version="0.10.18">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="fd" transfer-ownership="none">
+            <type name="PollFD" c:type="GstPollFD*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="fd_has_error"
+              c:identifier="gst_poll_fd_has_error"
+              doc="Check if @fd in @set has an error."
+              version="0.10.18">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="fd" transfer-ownership="none">
+            <type name="PollFD" c:type="GstPollFD*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="fd_can_read"
+              c:identifier="gst_poll_fd_can_read"
+              doc="Check if @fd in @set has data to be read."
+              version="0.10.18">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="fd" transfer-ownership="none">
+            <type name="PollFD" c:type="GstPollFD*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="fd_can_write"
+              c:identifier="gst_poll_fd_can_write"
+              doc="Check if @fd in @set can be used for writing."
+              version="0.10.18">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="fd" transfer-ownership="none">
+            <type name="PollFD" c:type="GstPollFD*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="wait"
+              c:identifier="gst_poll_wait"
+              doc="Wait for activity on the file descriptors in @set. This function waits up to
+the specified @timeout.  A timeout of #GST_CLOCK_TIME_NONE waits forever.
+For #GstPoll objects created with gst_poll_new(), this function can only be
+called from a single thread at a time.  If called from multiple threads,
+-1 will be returned with errno set to EPERM.
+This is not true for timer #GstPoll objects created with
+gst_poll_new_timer(), where it is allowed to have multiple threads waiting
+simultaneously.
+activity was detected after @timeout. If an error occurs, -1 is returned
+and errno is set."
+              version="0.10.18">
+        <return-value transfer-ownership="none">
+          <type name="int" c:type="gint"/>
+        </return-value>
+        <parameters>
+          <parameter name="timeout" transfer-ownership="none">
+            <type name="ClockTime" c:type="GstClockTime"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_controllable"
+              c:identifier="gst_poll_set_controllable"
+              doc="When @controllable is %TRUE, this function ensures that future calls to
+gst_poll_wait() will be affected by gst_poll_restart() and
+gst_poll_set_flushing()."
+              version="0.10.18">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="controllable" transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="restart"
+              c:identifier="gst_poll_restart"
+              doc="Restart any gst_poll_wait() that is in progress. This function is typically
+used after adding or removing descriptors to @set.
+If @set is not controllable, then this call will have no effect."
+              version="0.10.18">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </method>
+      <method name="set_flushing"
+              c:identifier="gst_poll_set_flushing"
+              doc="When @flushing is %TRUE, this function ensures that current and future calls
+to gst_poll_wait() will return -1, with errno set to EBUSY.
+Unsetting the flushing state will restore normal operation of @set."
+              version="0.10.18">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="flushing" transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="write_control"
+              c:identifier="gst_poll_write_control"
+              doc="Write a byte to the control socket of the controllable @set.
+This function is mostly useful for timer #GstPoll objects created with
+gst_poll_new_timer().
+It will make any current and future gst_poll_wait() function return with
+1, meaning the control socket is set. After an equal amount of calls to
+gst_poll_read_control() have been performed, calls to gst_poll_wait() will
+block again until their timeout expired.
+byte could not be written."
+              version="0.10.23">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+      </method>
+      <method name="read_control"
+              c:identifier="gst_poll_read_control"
+              doc="Read a byte from the control socket of the controllable @set.
+This function is mostly useful for timer #GstPoll objects created with
+gst_poll_new_timer().
+was no byte to read."
+              version="0.10.23">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+      </method>
+    </record>
+    <record name="PollFD" c:type="GstPollFD" doc="A file descriptor object.">
+      <field name="fd" writable="1">
+        <type name="int" c:type="int"/>
+      </field>
+      <field name="idx" writable="1">
+        <type name="int" c:type="gint"/>
+      </field>
+      <method name="init"
+              c:identifier="gst_poll_fd_init"
+              doc="Initializes @fd. Alternatively you can initialize it with
+#GST_POLL_FD_INIT."
+              version="0.10.18">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </method>
+    </record>
+    <interface name="Preset"
+               c:type="GstPreset"
+               doc="Opaque #GstPreset data structure."
+               glib:type-name="GstPreset"
+               glib:get-type="gst_preset_get_type"
+               glib:type-struct="PresetInterface">
+      <virtual-method name="get_preset_names" invoker="get_preset_names">
+        <return-value transfer-ownership="full">
+          <array c:type="gchar**">
+            <type name="utf8"/>
+          </array>
+        </return-value>
+      </virtual-method>
+      <virtual-method name="get_property_names" invoker="get_property_names">
+        <return-value transfer-ownership="full">
+          <array c:type="gchar**">
+            <type name="utf8"/>
+          </array>
+        </return-value>
+      </virtual-method>
+      <virtual-method name="load_preset" invoker="load_preset">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="name" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="save_preset" invoker="save_preset">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="name" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="rename_preset" invoker="rename_preset">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="old_name" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="new_name" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="delete_preset" invoker="delete_preset">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="name" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="set_meta" invoker="set_meta">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="name" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="tag" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="value" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="get_meta" invoker="get_meta">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="name" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="tag" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="value" transfer-ownership="none">
+            <array c:type="gchar**">
+              <type name="utf8"/>
+            </array>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <method name="get_preset_names"
+              c:identifier="gst_preset_get_preset_names"
+              doc="Get a copy of preset names as a NULL terminated string array."
+              version="0.10.20">
+        <return-value transfer-ownership="full" doc="after usage.">
+          <array c:type="gchar**">
+            <type name="utf8"/>
+          </array>
+        </return-value>
+      </method>
+      <method name="get_property_names"
+              c:identifier="gst_preset_get_property_names"
+              doc="Get a the names of the GObject properties that can be used for presets."
+              version="0.10.20">
+        <return-value transfer-ownership="full" doc="after use.">
+          <array c:type="gchar**">
+            <type name="utf8"/>
+          </array>
+        </return-value>
+      </method>
+      <method name="load_preset"
+              c:identifier="gst_preset_load_preset"
+              doc="Load the given preset."
+              version="0.10.20">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="name" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="save_preset"
+              c:identifier="gst_preset_save_preset"
+              doc="Save the current object settings as a preset under the given name. If there
+is already a preset by this @name it will be overwritten."
+              version="0.10.20">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="name" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="rename_preset"
+              c:identifier="gst_preset_rename_preset"
+              doc="Renames a preset. If there is already a preset by the @new_name it will be
+overwritten."
+              version="0.10.20">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="old_name" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="new_name" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="delete_preset"
+              c:identifier="gst_preset_delete_preset"
+              doc="Delete the given preset."
+              version="0.10.20">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="name" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_meta"
+              c:identifier="gst_preset_set_meta"
+              doc="Sets a new @value for an existing meta data item or adds a new item. Meta
+data @tag names can be something like e.g. &quot;comment&quot;. Supplying %NULL for the"
+              version="0.10.20">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="name" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="tag" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="value" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_meta"
+              c:identifier="gst_preset_get_meta"
+              doc="Gets the @value for an existing meta data @tag. Meta data @tag names can be
+something like e.g. &quot;comment&quot;. Returned values need to be released when done.
+or no value for the given @tag"
+              version="0.10.20">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="name" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="tag" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="value" transfer-ownership="none">
+            <array c:type="gchar**">
+              <type name="utf8"/>
+            </array>
+          </parameter>
+        </parameters>
+      </method>
+    </interface>
+    <record name="PresetInterface"
+            c:type="GstPresetInterface"
+            glib:is-gtype-struct-for="Preset"
+            doc="#GstPreset interface.">
+      <field name="parent">
+        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
+      </field>
+      <field name="get_preset_names">
+        <callback name="get_preset_names" c:type="get_preset_names">
+          <return-value transfer-ownership="full">
+            <array c:type="gchar**">
+              <type name="utf8"/>
+            </array>
+          </return-value>
+          <parameters>
+            <parameter name="preset" transfer-ownership="none">
+              <type name="Preset" c:type="GstPreset*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="get_property_names">
+        <callback name="get_property_names" c:type="get_property_names">
+          <return-value transfer-ownership="full">
+            <array c:type="gchar**">
+              <type name="utf8"/>
+            </array>
+          </return-value>
+          <parameters>
+            <parameter name="preset" transfer-ownership="none">
+              <type name="Preset" c:type="GstPreset*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="load_preset">
+        <callback name="load_preset" c:type="load_preset">
+          <return-value transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="preset" transfer-ownership="none">
+              <type name="Preset" c:type="GstPreset*"/>
+            </parameter>
+            <parameter name="name" transfer-ownership="none">
+              <type name="utf8" c:type="gchar*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="save_preset">
+        <callback name="save_preset" c:type="save_preset">
+          <return-value transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="preset" transfer-ownership="none">
+              <type name="Preset" c:type="GstPreset*"/>
+            </parameter>
+            <parameter name="name" transfer-ownership="none">
+              <type name="utf8" c:type="gchar*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="rename_preset">
+        <callback name="rename_preset" c:type="rename_preset">
+          <return-value transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="preset" transfer-ownership="none">
+              <type name="Preset" c:type="GstPreset*"/>
+            </parameter>
+            <parameter name="old_name" transfer-ownership="none">
+              <type name="utf8" c:type="gchar*"/>
+            </parameter>
+            <parameter name="new_name" transfer-ownership="none">
+              <type name="utf8" c:type="gchar*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="delete_preset">
+        <callback name="delete_preset" c:type="delete_preset">
+          <return-value transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="preset" transfer-ownership="none">
+              <type name="Preset" c:type="GstPreset*"/>
+            </parameter>
+            <parameter name="name" transfer-ownership="none">
+              <type name="utf8" c:type="gchar*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="set_meta">
+        <callback name="set_meta" c:type="set_meta">
+          <return-value transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="preset" transfer-ownership="none">
+              <type name="Preset" c:type="GstPreset*"/>
+            </parameter>
+            <parameter name="name" transfer-ownership="none">
+              <type name="utf8" c:type="gchar*"/>
+            </parameter>
+            <parameter name="tag" transfer-ownership="none">
+              <type name="utf8" c:type="gchar*"/>
+            </parameter>
+            <parameter name="value" transfer-ownership="none">
+              <type name="utf8" c:type="gchar*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="get_meta">
+        <callback name="get_meta" c:type="get_meta">
+          <return-value transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="preset" transfer-ownership="none">
+              <type name="Preset" c:type="GstPreset*"/>
+            </parameter>
+            <parameter name="name" transfer-ownership="none">
+              <type name="utf8" c:type="gchar*"/>
+            </parameter>
+            <parameter name="tag" transfer-ownership="none">
+              <type name="utf8" c:type="gchar*"/>
+            </parameter>
+            <parameter name="value" transfer-ownership="none">
+              <array c:type="gchar**">
+                <type name="utf8"/>
+              </array>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="_gst_reserved">
+        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+          <type name="any"/>
+        </array>
+      </field>
+    </record>
+    <class name="ProxyPad"
+           c:type="GstProxyPad"
+           parent="Pad"
+           glib:type-name="GstProxyPad"
+           glib:get-type="gst_proxy_pad_get_type"
+           glib:type-struct="ProxyPadClass">
+      <field name="pad">
+        <type name="Pad" c:type="GstPad"/>
+      </field>
+      <field name="priv">
+        <type name="ProxyPadPrivate" c:type="GstProxyPadPrivate*"/>
+      </field>
+    </class>
+    <record name="ProxyPadClass"
+            c:type="GstProxyPadClass"
+            glib:is-gtype-struct-for="ProxyPad">
+      <field name="parent_class">
+        <type name="PadClass" c:type="GstPadClass"/>
+      </field>
+      <field name="_gst_reserved">
+        <array zero-terminated="0" c:type="gpointer" fixed-size="1">
+          <type name="any"/>
+        </array>
+      </field>
+    </record>
+    <record name="ProxyPadPrivate" c:type="GstProxyPadPrivate">
+    </record>
+    <record name="Query" c:type="GstQuery" doc="The #GstQuery structure.">
+      <field name="mini_object" writable="1">
+        <type name="MiniObject" c:type="GstMiniObject"/>
+      </field>
+      <field name="type" writable="1">
+        <type name="QueryType" c:type="GstQueryType"/>
+      </field>
+      <field name="structure" writable="1">
+        <type name="Structure" c:type="GstStructure*"/>
+      </field>
+      <field name="_gst_reserved" writable="1">
+        <type name="any" c:type="gpointer"/>
+      </field>
+      <constructor name="new_position"
+                   c:identifier="gst_query_new_position"
+                   doc="Constructs a new query stream position query object. Use gst_query_unref()
+when done with it. A position query is used to query the current position
+of playback in the streams, in some format.">
+        <return-value transfer-ownership="full">
+          <type name="Query" c:type="GstQuery*"/>
+        </return-value>
+        <parameters>
+          <parameter name="format" transfer-ownership="none">
+            <type name="Format" c:type="GstFormat"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <constructor name="new_duration"
+                   c:identifier="gst_query_new_duration"
+                   doc="Constructs a new stream duration query object to query in the given format.
+Use gst_query_unref() when done with it. A duration query will give the
+total length of the stream.">
+        <return-value transfer-ownership="full">
+          <type name="Query" c:type="GstQuery*"/>
+        </return-value>
+        <parameters>
+          <parameter name="format" transfer-ownership="none">
+            <type name="Format" c:type="GstFormat"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <constructor name="new_latency"
+                   c:identifier="gst_query_new_latency"
+                   doc="Constructs a new latency query object.
+Use gst_query_unref() when done with it. A latency query is usually performed
+by sinks to compensate for additional latency introduced by elements in the
+pipeline."
+                   version="0.10.12">
+        <return-value transfer-ownership="full">
+          <type name="Query" c:type="GstQuery*"/>
+        </return-value>
+      </constructor>
+      <constructor name="new_convert"
+                   c:identifier="gst_query_new_convert"
+                   doc="Constructs a new convert query object. Use gst_query_unref()
+when done with it. A convert query is used to ask for a conversion between
+one format and another.">
+        <return-value transfer-ownership="full">
+          <type name="Query" c:type="GstQuery*"/>
+        </return-value>
+        <parameters>
+          <parameter name="src_format" transfer-ownership="none">
+            <type name="Format" c:type="GstFormat"/>
+          </parameter>
+          <parameter name="value" transfer-ownership="none">
+            <type name="int64" c:type="gint64"/>
+          </parameter>
+          <parameter name="dest_format" transfer-ownership="none">
+            <type name="Format" c:type="GstFormat"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <constructor name="new_segment"
+                   c:identifier="gst_query_new_segment"
+                   doc="Constructs a new segment query object. Use gst_query_unref()
+when done with it. A segment query is used to discover information about the
+currently configured segment for playback.">
+        <return-value transfer-ownership="full">
+          <type name="Query" c:type="GstQuery*"/>
+        </return-value>
+        <parameters>
+          <parameter name="format" transfer-ownership="none">
+            <type name="Format" c:type="GstFormat"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <constructor name="new_application"
+                   c:identifier="gst_query_new_application"
+                   doc="Constructs a new custom application query object. Use gst_query_unref()
+when done with it.">
+        <return-value transfer-ownership="full">
+          <type name="Query" c:type="GstQuery*"/>
+        </return-value>
+        <parameters>
+          <parameter name="type" transfer-ownership="none">
+            <type name="QueryType" c:type="GstQueryType"/>
+          </parameter>
+          <parameter name="structure" transfer-ownership="none">
+            <type name="Structure" c:type="GstStructure*"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <constructor name="new_seeking"
+                   c:identifier="gst_query_new_seeking"
+                   doc="Constructs a new query object for querying seeking properties of
+the stream.">
+        <return-value transfer-ownership="full">
+          <type name="Query" c:type="GstQuery*"/>
+        </return-value>
+        <parameters>
+          <parameter name="format" transfer-ownership="none">
+            <type name="Format" c:type="GstFormat"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <constructor name="new_formats"
+                   c:identifier="gst_query_new_formats"
+                   doc="Constructs a new query object for querying formats of
+the stream."
+                   version="0.10.4">
+        <return-value transfer-ownership="full">
+          <type name="Query" c:type="GstQuery*"/>
+        </return-value>
+      </constructor>
+      <constructor name="new_buffering" c:identifier="gst_query_new_buffering">
+        <return-value transfer-ownership="full">
+          <type name="Query" c:type="GstQuery*"/>
+        </return-value>
+        <parameters>
+          <parameter name="format" transfer-ownership="none">
+            <type name="Format" c:type="GstFormat"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <constructor name="new_uri"
+                   c:identifier="gst_query_new_uri"
+                   doc="Constructs a new query URI query object. Use gst_query_unref()
+when done with it. An URI query is used to query the current URI
+that is used by the source or sink."
+                   version="0.10.22">
+        <return-value transfer-ownership="full">
+          <type name="Query" c:type="GstQuery*"/>
+        </return-value>
+      </constructor>
+      <method name="set_position"
+              c:identifier="gst_query_set_position"
+              doc="Answer a position query by setting the requested value in the given format.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="format" transfer-ownership="none">
+            <type name="Format" c:type="GstFormat"/>
+          </parameter>
+          <parameter name="cur" transfer-ownership="none">
+            <type name="int64" c:type="gint64"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="parse_position"
+              c:identifier="gst_query_parse_position"
+              doc="Parse a position query, writing the format into @format, and the position
+into @cur, if the respective parameters are non-NULL.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="format" transfer-ownership="none">
+            <type name="Format" c:type="GstFormat*"/>
+          </parameter>
+          <parameter name="cur" direction="out" transfer-ownership="full">
+            <type name="int64" c:type="gint64*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_duration"
+              c:identifier="gst_query_set_duration"
+              doc="Answer a duration query by setting the requested value in the given format.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="format" transfer-ownership="none">
+            <type name="Format" c:type="GstFormat"/>
+          </parameter>
+          <parameter name="duration" transfer-ownership="none">
+            <type name="int64" c:type="gint64"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="parse_duration"
+              c:identifier="gst_query_parse_duration"
+              doc="Parse a duration query answer. Write the format of the duration into @format,
+and the value into @duration, if the respective variables are non-NULL.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="format" transfer-ownership="none">
+            <type name="Format" c:type="GstFormat*"/>
+          </parameter>
+          <parameter name="duration" direction="out" transfer-ownership="full">
+            <type name="int64" c:type="gint64*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_latency"
+              c:identifier="gst_query_set_latency"
+              doc="Answer a latency query by setting the requested values in the given format."
+              version="0.10.12">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="live" transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </parameter>
+          <parameter name="min_latency" transfer-ownership="none">
+            <type name="ClockTime" c:type="GstClockTime"/>
+          </parameter>
+          <parameter name="max_latency" transfer-ownership="none">
+            <type name="ClockTime" c:type="GstClockTime"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="parse_latency"
+              c:identifier="gst_query_parse_latency"
+              doc="Parse a latency query answer."
+              version="0.10.12">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="live" direction="out" transfer-ownership="full">
+            <type name="boolean" c:type="gboolean*"/>
+          </parameter>
+          <parameter name="min_latency" transfer-ownership="none">
+            <type name="ClockTime" c:type="GstClockTime*"/>
+          </parameter>
+          <parameter name="max_latency" transfer-ownership="none">
+            <type name="ClockTime" c:type="GstClockTime*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_convert"
+              c:identifier="gst_query_set_convert"
+              doc="Answer a convert query by setting the requested values.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="src_format" transfer-ownership="none">
+            <type name="Format" c:type="GstFormat"/>
+          </parameter>
+          <parameter name="src_value" transfer-ownership="none">
+            <type name="int64" c:type="gint64"/>
+          </parameter>
+          <parameter name="dest_format" transfer-ownership="none">
+            <type name="Format" c:type="GstFormat"/>
+          </parameter>
+          <parameter name="dest_value" transfer-ownership="none">
+            <type name="int64" c:type="gint64"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="parse_convert"
+              c:identifier="gst_query_parse_convert"
+              doc="Parse a convert query answer. Any of @src_format, @src_value, @dest_format,
+and @dest_value may be NULL, in which case that value is omitted.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="src_format" transfer-ownership="none">
+            <type name="Format" c:type="GstFormat*"/>
+          </parameter>
+          <parameter name="src_value"
+                     direction="out"
+                     transfer-ownership="full">
+            <type name="int64" c:type="gint64*"/>
+          </parameter>
+          <parameter name="dest_format" transfer-ownership="none">
+            <type name="Format" c:type="GstFormat*"/>
+          </parameter>
+          <parameter name="dest_value"
+                     direction="out"
+                     transfer-ownership="full">
+            <type name="int64" c:type="gint64*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_segment"
+              c:identifier="gst_query_set_segment"
+              doc="Answer a segment query by setting the requested values. The normal
+playback segment of a pipeline is 0 to duration at the default rate of
+1.0. If a seek was performed on the pipeline to play a different
+segment, this query will return the range specified in the last seek.
+playback range start and stop values expressed in @format.
+The values are always between 0 and the duration of the media and
+negative rates, playback will actually happen from @stop_value to">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="rate" transfer-ownership="none">
+            <type name="double" c:type="gdouble"/>
+          </parameter>
+          <parameter name="format" transfer-ownership="none">
+            <type name="Format" c:type="GstFormat"/>
+          </parameter>
+          <parameter name="start_value" transfer-ownership="none">
+            <type name="int64" c:type="gint64"/>
+          </parameter>
+          <parameter name="stop_value" transfer-ownership="none">
+            <type name="int64" c:type="gint64"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="parse_segment"
+              c:identifier="gst_query_parse_segment"
+              doc="Parse a segment query answer. Any of @rate, @format, @start_value, and
+See gst_query_set_segment() for an explanation of the function arguments.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="rate" direction="out" transfer-ownership="full">
+            <type name="double" c:type="gdouble*"/>
+          </parameter>
+          <parameter name="format" transfer-ownership="none">
+            <type name="Format" c:type="GstFormat*"/>
+          </parameter>
+          <parameter name="start_value"
+                     direction="out"
+                     transfer-ownership="full">
+            <type name="int64" c:type="gint64*"/>
+          </parameter>
+          <parameter name="stop_value"
+                     direction="out"
+                     transfer-ownership="full">
+            <type name="int64" c:type="gint64*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_structure"
+              c:identifier="gst_query_get_structure"
+              doc="Get the structure of a query.
+by the query and will therefore be freed when the query is unreffed.">
+        <return-value transfer-ownership="full">
+          <type name="Structure" c:type="GstStructure*"/>
+        </return-value>
+      </method>
+      <method name="set_seeking"
+              c:identifier="gst_query_set_seeking"
+              doc="Set the seeking query result fields in @query.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="format" transfer-ownership="none">
+            <type name="Format" c:type="GstFormat"/>
+          </parameter>
+          <parameter name="seekable" transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </parameter>
+          <parameter name="segment_start" transfer-ownership="none">
+            <type name="int64" c:type="gint64"/>
+          </parameter>
+          <parameter name="segment_end" transfer-ownership="none">
+            <type name="int64" c:type="gint64"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="parse_seeking"
+              c:identifier="gst_query_parse_seeking"
+              doc="Parse a seeking query, writing the format into @format, and
+other results into the passed parameters, if the respective parameters
+are non-NULL">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="format" transfer-ownership="none">
+            <type name="Format" c:type="GstFormat*"/>
+          </parameter>
+          <parameter name="seekable" direction="out" transfer-ownership="full">
+            <type name="boolean" c:type="gboolean*"/>
+          </parameter>
+          <parameter name="segment_start"
+                     direction="out"
+                     transfer-ownership="full">
+            <type name="int64" c:type="gint64*"/>
+          </parameter>
+          <parameter name="segment_end"
+                     direction="out"
+                     transfer-ownership="full">
+            <type name="int64" c:type="gint64*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_formats"
+              c:identifier="gst_query_set_formats"
+              doc="Set the formats query result fields in @query. The number of formats passed
+must be equal to @n_formats.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="n_formats" transfer-ownership="none">
+            <type name="int" c:type="gint"/>
+          </parameter>
+          <parameter transfer-ownership="none">
+            <varargs>
+            </varargs>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_formatsv"
+              c:identifier="gst_query_set_formatsv"
+              doc="Set the formats query result fields in @query. The number of formats passed
+in the @formats array must be equal to @n_formats."
+              version="0.10.4">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="n_formats" transfer-ownership="none">
+            <type name="int" c:type="gint"/>
+          </parameter>
+          <parameter name="formats" transfer-ownership="none">
+            <type name="Format" c:type="GstFormat*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="parse_formats_length"
+              c:identifier="gst_query_parse_formats_length"
+              doc="Parse the number of formats in the formats @query."
+              version="0.10.4">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="n_formats"
+                     direction="out"
+                     transfer-ownership="full">
+            <type name="uint" c:type="guint*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="parse_formats_nth"
+              c:identifier="gst_query_parse_formats_nth"
+              doc="Parse the format query and retrieve the @nth format from it into
+set to GST_FORMAT_UNDEFINED."
+              version="0.10.4">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="nth" transfer-ownership="none">
+            <type name="uint" c:type="guint"/>
+          </parameter>
+          <parameter name="format" transfer-ownership="none">
+            <type name="Format" c:type="GstFormat*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_buffering_percent"
+              c:identifier="gst_query_set_buffering_percent">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="busy" transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </parameter>
+          <parameter name="percent" transfer-ownership="none">
+            <type name="int" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="parse_buffering_percent"
+              c:identifier="gst_query_parse_buffering_percent">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="busy" direction="out" transfer-ownership="full">
+            <type name="boolean" c:type="gboolean*"/>
+          </parameter>
+          <parameter name="percent" direction="out" transfer-ownership="full">
+            <type name="int" c:type="gint*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_buffering_stats"
+              c:identifier="gst_query_set_buffering_stats"
+              doc="Configures the buffering stats values in @query."
+              version="0.10.20">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="mode" transfer-ownership="none">
+            <type name="BufferingMode" c:type="GstBufferingMode"/>
+          </parameter>
+          <parameter name="avg_in" transfer-ownership="none">
+            <type name="int" c:type="gint"/>
+          </parameter>
+          <parameter name="avg_out" transfer-ownership="none">
+            <type name="int" c:type="gint"/>
+          </parameter>
+          <parameter name="buffering_left" transfer-ownership="none">
+            <type name="int64" c:type="gint64"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="parse_buffering_stats"
+              c:identifier="gst_query_parse_buffering_stats"
+              doc="Extracts the buffering stats values from @query."
+              version="0.10.20">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="mode" transfer-ownership="none">
+            <type name="BufferingMode" c:type="GstBufferingMode*"/>
+          </parameter>
+          <parameter name="avg_in" direction="out" transfer-ownership="full">
+            <type name="int" c:type="gint*"/>
+          </parameter>
+          <parameter name="avg_out" direction="out" transfer-ownership="full">
+            <type name="int" c:type="gint*"/>
+          </parameter>
+          <parameter name="buffering_left"
+                     direction="out"
+                     transfer-ownership="full">
+            <type name="int64" c:type="gint64*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_buffering_range"
+              c:identifier="gst_query_set_buffering_range"
+              doc="Set the available query result fields in @query."
+              version="0.10.20">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="format" transfer-ownership="none">
+            <type name="Format" c:type="GstFormat"/>
+          </parameter>
+          <parameter name="start" transfer-ownership="none">
+            <type name="int64" c:type="gint64"/>
+          </parameter>
+          <parameter name="stop" transfer-ownership="none">
+            <type name="int64" c:type="gint64"/>
+          </parameter>
+          <parameter name="estimated_total" transfer-ownership="none">
+            <type name="int64" c:type="gint64"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="parse_buffering_range"
+              c:identifier="gst_query_parse_buffering_range"
+              doc="Parse an available query, writing the format into @format, and
+other results into the passed parameters, if the respective parameters
+are non-NULL"
+              version="0.10.20">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="format" transfer-ownership="none">
+            <type name="Format" c:type="GstFormat*"/>
+          </parameter>
+          <parameter name="start" direction="out" transfer-ownership="full">
+            <type name="int64" c:type="gint64*"/>
+          </parameter>
+          <parameter name="stop" direction="out" transfer-ownership="full">
+            <type name="int64" c:type="gint64*"/>
+          </parameter>
+          <parameter name="estimated_total"
+                     direction="out"
+                     transfer-ownership="full">
+            <type name="int64" c:type="gint64*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="parse_uri"
+              c:identifier="gst_query_parse_uri"
+              doc="Parse an URI query, writing the URI into @uri as a newly
+allocated string, if the respective parameters are non-NULL.
+Free the string with g_free() after usage."
+              version="0.10.22">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="uri" transfer-ownership="none">
+            <array c:type="gchar**">
+              <type name="utf8"/>
+            </array>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_uri"
+              c:identifier="gst_query_set_uri"
+              doc="Answer a URI query by setting the requested URI."
+              version="0.10.22">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="uri" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+    </record>
+    <record name="QueryClass" c:type="GstQueryClass">
+      <field name="mini_object_class" writable="1">
+        <type name="MiniObjectClass" c:type="GstMiniObjectClass"/>
+      </field>
+      <field name="_gst_reserved" writable="1">
+        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+          <type name="any"/>
+        </array>
+      </field>
+    </record>
+    <enumeration name="QueryType"
+                 doc="0.10.20.
+0.10.22.
+Standard predefined Query types"
+                 c:type="GstQueryType">
+      <member name="none" value="0" c:identifier="GST_QUERY_NONE"/>
+      <member name="position" value="1" c:identifier="GST_QUERY_POSITION"/>
+      <member name="duration" value="2" c:identifier="GST_QUERY_DURATION"/>
+      <member name="latency" value="3" c:identifier="GST_QUERY_LATENCY"/>
+      <member name="jitter" value="4" c:identifier="GST_QUERY_JITTER"/>
+      <member name="rate" value="5" c:identifier="GST_QUERY_RATE"/>
+      <member name="seeking" value="6" c:identifier="GST_QUERY_SEEKING"/>
+      <member name="segment" value="7" c:identifier="GST_QUERY_SEGMENT"/>
+      <member name="convert" value="8" c:identifier="GST_QUERY_CONVERT"/>
+      <member name="formats" value="9" c:identifier="GST_QUERY_FORMATS"/>
+      <member name="buffering" value="10" c:identifier="GST_QUERY_BUFFERING"/>
+      <member name="custom" value="11" c:identifier="GST_QUERY_CUSTOM"/>
+      <member name="uri" value="12" c:identifier="GST_QUERY_URI"/>
+    </enumeration>
+    <record name="QueryTypeDefinition"
+            c:type="GstQueryTypeDefinition"
+            doc="A Query Type definition">
+      <field name="value" writable="1">
+        <type name="QueryType" c:type="GstQueryType"/>
+      </field>
+      <field name="nick" writable="1">
+        <type name="utf8" c:type="gchar*"/>
+      </field>
+      <field name="description" writable="1">
+        <type name="utf8" c:type="gchar*"/>
+      </field>
+      <field name="quark" writable="1">
+        <type name="GLib.Quark" c:type="GQuark"/>
+      </field>
+    </record>
+    <enumeration name="Rank"
+                 doc="Element priority ranks. Defines the order in which the autoplugger (or
+similar rank-picking mechanisms, such as e.g. gst_element_make_from_uri())
+will choose this element over an alternative one with the same function.
+These constants serve as a rough guidance for defining the rank of a
+#GstPluginFeature. Any value is valid, including values bigger than"
+                 c:type="GstRank">
+      <member name="none" value="0" c:identifier="GST_RANK_NONE"/>
+      <member name="marginal" value="64" c:identifier="GST_RANK_MARGINAL"/>
+      <member name="secondary" value="128" c:identifier="GST_RANK_SECONDARY"/>
+      <member name="primary" value="256" c:identifier="GST_RANK_PRIMARY"/>
+    </enumeration>
+    <class name="Registry"
+           c:type="GstRegistry"
+           doc="Opaque #GstRegistry structure."
+           parent="Object"
+           glib:type-name="GstRegistry"
+           glib:get-type="gst_registry_get_type"
+           glib:type-struct="RegistryClass">
+      <function name="get_default"
+                c:identifier="gst_registry_get_default"
+                doc="Retrieves the default registry. The caller does not own a reference on the
+registry, as it is alive as long as GStreamer is initialized.">
+        <return-value transfer-ownership="full">
+          <type name="Registry" c:type="GstRegistry*"/>
+        </return-value>
+      </function>
+      <function name="fork_is_enabled"
+                c:identifier="gst_registry_fork_is_enabled"
+                doc="By default GStreamer will perform scanning and rebuilding of the
+registry file using a helper child process.
+Applications might want to disable this behaviour with the
+gst_registry_fork_set_enabled() function, in which case new plugins
+are scanned (and loaded) into the application process.
+rebuilding the registry."
+                version="0.10.10">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+      </function>
+      <function name="fork_set_enabled"
+                c:identifier="gst_registry_fork_set_enabled"
+                doc="Applications might want to disable/enable spawning of a child helper process
+when rebuilding the registry. See gst_registry_fork_is_enabled() for more
+information."
+                version="0.10.10">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="enabled" transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </function>
+      <method name="scan_path"
+              c:identifier="gst_registry_scan_path"
+              doc="Scan the given path for plugins to add to the registry. The syntax of the
+path is specific to the registry.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="path" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="add_path"
+              c:identifier="gst_registry_add_path"
+              doc="Add the given path to the registry. The syntax of the
+path is specific to the registry. If the path has already been
+added, do nothing.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="path" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_path_list"
+              c:identifier="gst_registry_get_path_list"
+              doc="Get the list of paths for the given registry.
+MT safe.">
+        <return-value transfer-ownership="full">
+          <type name="GLib.List" c:type="GList*"/>
+        </return-value>
+      </method>
+      <method name="add_plugin"
+              c:identifier="gst_registry_add_plugin"
+              doc="Add the plugin to the registry. The plugin-added signal will be emitted.
+This function will sink @plugin.
+MT safe.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="plugin" transfer-ownership="none">
+            <type name="Plugin" c:type="GstPlugin*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="remove_plugin"
+              c:identifier="gst_registry_remove_plugin"
+              doc="Remove the plugin from the registry.
+MT safe.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="plugin" transfer-ownership="none">
+            <type name="Plugin" c:type="GstPlugin*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="add_feature"
+              c:identifier="gst_registry_add_feature"
+              doc="Add the feature to the registry. The feature-added signal will be emitted.
+This function sinks @feature.
+MT safe.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="feature" transfer-ownership="none">
+            <type name="PluginFeature" c:type="GstPluginFeature*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="remove_feature"
+              c:identifier="gst_registry_remove_feature"
+              doc="Remove the feature from the registry.
+MT safe.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="feature" transfer-ownership="none">
+            <type name="PluginFeature" c:type="GstPluginFeature*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_plugin_list"
+              c:identifier="gst_registry_get_plugin_list"
+              doc="Get a copy of all plugins registered in the given registry. The refcount
+of each element in the list in incremented.
+MT safe.">
+        <return-value transfer-ownership="full" doc="after usage.">
+          <type name="GLib.List" c:type="GList*"/>
+        </return-value>
+      </method>
+      <method name="plugin_filter"
+              c:identifier="gst_registry_plugin_filter"
+              doc="Runs a filter against all plugins in the registry and returns a #GList with
+the results. If the first flag is set, only the first match is
+returned (as a list with a single object).
+Every plugin is reffed; use gst_plugin_list_free() after use, which
+will unref again.
+MT safe.">
+        <return-value transfer-ownership="full" doc="after usage.">
+          <type name="GLib.List" c:type="GList*"/>
+        </return-value>
+        <parameters>
+          <parameter name="filter" transfer-ownership="none" scope="call">
+            <type name="PluginFilter" c:type="GstPluginFilter"/>
+          </parameter>
+          <parameter name="first" transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </parameter>
+          <parameter name="user_data" transfer-ownership="none">
+            <type name="any" c:type="gpointer"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="feature_filter"
+              c:identifier="gst_registry_feature_filter"
+              doc="Runs a filter against all features of the plugins in the registry
+and returns a GList with the results.
+If the first flag is set, only the first match is
+returned (as a list with a single object).
+after usage.
+MT safe.">
+        <return-value transfer-ownership="full">
+          <type name="GLib.List" c:type="GList*"/>
+        </return-value>
+        <parameters>
+          <parameter name="filter" transfer-ownership="none" scope="call">
+            <type name="PluginFeatureFilter" c:type="GstPluginFeatureFilter"/>
+          </parameter>
+          <parameter name="first" transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </parameter>
+          <parameter name="user_data" transfer-ownership="none">
+            <type name="any" c:type="gpointer"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_feature_list"
+              c:identifier="gst_registry_get_feature_list"
+              doc="Retrieves a #GList of #GstPluginFeature of @type.
+gst_plugin_feature_list_free() after usage.
+MT safe.">
+        <return-value transfer-ownership="full">
+          <type name="GLib.List" c:type="GList*"/>
+        </return-value>
+        <parameters>
+          <parameter name="type" transfer-ownership="none">
+            <type name="GType" c:type="GType"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_feature_list_by_plugin"
+              c:identifier="gst_registry_get_feature_list_by_plugin"
+              doc="Retrieves a #GList of features of the plugin with name @name.
+after usage.">
+        <return-value transfer-ownership="full">
+          <type name="GLib.List" c:type="GList*"/>
+        </return-value>
+        <parameters>
+          <parameter name="name" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_feature_list_cookie"
+              c:identifier="gst_registry_get_feature_list_cookie"
+              doc="Returns the registrys feature list cookie. This changes
+every time a feature is added or removed from the registry."
+              version="0.10.26">
+        <return-value transfer-ownership="none">
+          <type name="uint32" c:type="guint32"/>
+        </return-value>
+      </method>
+      <method name="find_plugin"
+              c:identifier="gst_registry_find_plugin"
+              doc="Find the plugin with the given name in the registry.
+The plugin will be reffed; caller is responsible for unreffing.
+gst_object_unref() after usage.
+MT safe.">
+        <return-value transfer-ownership="full">
+          <type name="Plugin" c:type="GstPlugin*"/>
+        </return-value>
+        <parameters>
+          <parameter name="name" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="find_feature"
+              c:identifier="gst_registry_find_feature"
+              doc="Find the pluginfeature with the given name and type in the registry.
+if the plugin was not found. gst_object_unref() after usage.
+MT safe.">
+        <return-value transfer-ownership="full">
+          <type name="PluginFeature" c:type="GstPluginFeature*"/>
+        </return-value>
+        <parameters>
+          <parameter name="name" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="type" transfer-ownership="none">
+            <type name="GType" c:type="GType"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="lookup"
+              c:identifier="gst_registry_lookup"
+              doc="Look up a plugin in the given registry with the given filename.
+If found, plugin is reffed.
+after usage.">
+        <return-value transfer-ownership="full">
+          <type name="Plugin" c:type="GstPlugin*"/>
+        </return-value>
+        <parameters>
+          <parameter name="filename" transfer-ownership="none">
+            <type name="utf8" c:type="char*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="lookup_feature"
+              c:identifier="gst_registry_lookup_feature"
+              doc="Find a #GstPluginFeature with @name in @registry.
+gst_object_unref() after usage.
+MT safe.">
+        <return-value transfer-ownership="full">
+          <type name="PluginFeature" c:type="GstPluginFeature*"/>
+        </return-value>
+        <parameters>
+          <parameter name="name" transfer-ownership="none">
+            <type name="utf8" c:type="char*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="xml_read_cache" c:identifier="gst_registry_xml_read_cache">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="location" transfer-ownership="none">
+            <type name="utf8" c:type="char*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="xml_write_cache"
+              c:identifier="gst_registry_xml_write_cache">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="location" transfer-ownership="none">
+            <type name="utf8" c:type="char*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <field name="object">
+        <type name="Object" c:type="GstObject"/>
+      </field>
+      <field name="plugins">
+        <type name="GLib.List" c:type="GList*"/>
+      </field>
+      <field name="features">
+        <type name="GLib.List" c:type="GList*"/>
+      </field>
+      <field name="paths">
+        <type name="GLib.List" c:type="GList*"/>
+      </field>
+      <field name="cache_file">
+        <type name="int" c:type="int"/>
+      </field>
+      <field name="feature_hash">
+        <type name="GLib.HashTable" c:type="GHashTable*"/>
+      </field>
+      <field name="basename_hash">
+        <type name="GLib.HashTable" c:type="GHashTable*"/>
+      </field>
+      <field name="priv">
+        <type name="RegistryPrivate" c:type="GstRegistryPrivate*"/>
+      </field>
+      <field name="_gst_reserved">
+        <array zero-terminated="0" c:type="gpointer" fixed-size="1">
+          <type name="any"/>
+        </array>
+      </field>
+      <glib:signal name="feature-added"
+                   doc="Signals that a feature has been added to the registry (possibly
+replacing a previously-added one by the same name)">
+        <return-value transfer-ownership="full">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="feature" transfer-ownership="none">
+            <type name="any" c:type="gpointer"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="plugin-added"
+                   doc="Signals that a plugin has been added to the registry (possibly
+replacing a previously-added one by the same name)">
+        <return-value transfer-ownership="full">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="plugin" transfer-ownership="none">
+            <type name="any" c:type="gpointer"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+    </class>
+    <record name="RegistryClass"
+            c:type="GstRegistryClass"
+            glib:is-gtype-struct-for="Registry">
+      <field name="parent_class">
+        <type name="ObjectClass" c:type="GstObjectClass"/>
+      </field>
+      <field name="plugin_added">
+        <callback name="plugin_added" c:type="plugin_added">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="registry" transfer-ownership="none">
+              <type name="Registry" c:type="GstRegistry*"/>
+            </parameter>
+            <parameter name="plugin" transfer-ownership="none">
+              <type name="Plugin" c:type="GstPlugin*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="feature_added">
+        <callback name="feature_added" c:type="feature_added">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="registry" transfer-ownership="none">
+              <type name="Registry" c:type="GstRegistry*"/>
+            </parameter>
+            <parameter name="feature" transfer-ownership="none">
+              <type name="PluginFeature" c:type="GstPluginFeature*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="_gst_reserved">
+        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+          <type name="any"/>
+        </array>
+      </field>
+    </record>
+    <record name="RegistryPrivate" c:type="GstRegistryPrivate">
+    </record>
+    <enumeration name="ResourceError"
+                 doc="category.  Make sure you add a custom message to the error call.
+deciding where to go while developing code.
+both reading and writing, or either (but unspecified which).
+Resource errors are for any resource used by an element:
+memory, files, network connections, process space, ...
+They&apos;re typically used by source and sink elements."
+                 c:type="GstResourceError"
+                 glib:error-quark="gst_resource_error_quark">
+      <member name="failed"
+              value="1"
+              c:identifier="GST_RESOURCE_ERROR_FAILED"/>
+      <member name="too_lazy"
+              value="2"
+              c:identifier="GST_RESOURCE_ERROR_TOO_LAZY"/>
+      <member name="not_found"
+              value="3"
+              c:identifier="GST_RESOURCE_ERROR_NOT_FOUND"/>
+      <member name="busy" value="4" c:identifier="GST_RESOURCE_ERROR_BUSY"/>
+      <member name="open_read"
+              value="5"
+              c:identifier="GST_RESOURCE_ERROR_OPEN_READ"/>
+      <member name="open_write"
+              value="6"
+              c:identifier="GST_RESOURCE_ERROR_OPEN_WRITE"/>
+      <member name="open_read_write"
+              value="7"
+              c:identifier="GST_RESOURCE_ERROR_OPEN_READ_WRITE"/>
+      <member name="close" value="8" c:identifier="GST_RESOURCE_ERROR_CLOSE"/>
+      <member name="read" value="9" c:identifier="GST_RESOURCE_ERROR_READ"/>
+      <member name="write" value="10" c:identifier="GST_RESOURCE_ERROR_WRITE"/>
+      <member name="seek" value="11" c:identifier="GST_RESOURCE_ERROR_SEEK"/>
+      <member name="sync" value="12" c:identifier="GST_RESOURCE_ERROR_SYNC"/>
+      <member name="settings"
+              value="13"
+              c:identifier="GST_RESOURCE_ERROR_SETTINGS"/>
+      <member name="no_space_left"
+              value="14"
+              c:identifier="GST_RESOURCE_ERROR_NO_SPACE_LEFT"/>
+      <member name="num_errors"
+              value="15"
+              c:identifier="GST_RESOURCE_ERROR_NUM_ERRORS"/>
+    </enumeration>
+    <constant name="SECOND" value="0">
+      <type name="int"/>
+    </constant>
+    <enumeration name="SearchMode"
+                 doc="The different search modes."
+                 version="0.10.23"
+                 c:type="GstSearchMode">
+      <member name="exact" value="0" c:identifier="GST_SEARCH_MODE_EXACT"/>
+      <member name="before" value="1" c:identifier="GST_SEARCH_MODE_BEFORE"/>
+      <member name="after" value="2" c:identifier="GST_SEARCH_MODE_AFTER"/>
+    </enumeration>
+    <bitfield name="SeekFlags"
+              doc="be considerably slower for some formats.
+faster but less accurate.
+elements to skip frames instead of generating all
+frames. Since 0.10.22.
+Flags to be used with gst_element_seek() or gst_event_new_seek(). All flags
+can be used together.
+A non flushing seek might take some time to perform as the currently
+playing data in the pipeline will not be cleared.
+An accurate seek might be slower for formats that don&apos;t have any indexes
+or timestamp markers in the stream. Specifying this flag might require a
+complete scan of the file in those cases.
+no EOS will be emmited by the element that performed the seek, but a
+#GST_MESSAGE_SEGMENT_DONE message will be posted on the bus by the element.
+When this message is posted, it is possible to send a new seek event to
+continue playback. With this seek method it is possible to perform seemless
+looping or simple linear editing.
+When doing fast forward (rate &gt; 1.0) or fast reverse (rate &lt; -1.0) trickmode
+playback, the @GST_SEEK_FLAG_SKIP flag can be used to instruct decoders
+and demuxers to adjust the playback rate by skipping frames. This can improve
+performance and decrease CPU usage because not all frames need to be decoded."
+              c:type="GstSeekFlags">
+      <member name="none" value="0" c:identifier="GST_SEEK_FLAG_NONE"/>
+      <member name="flush" value="1" c:identifier="GST_SEEK_FLAG_FLUSH"/>
+      <member name="accurate" value="2" c:identifier="GST_SEEK_FLAG_ACCURATE"/>
+      <member name="key_unit" value="4" c:identifier="GST_SEEK_FLAG_KEY_UNIT"/>
+      <member name="segment" value="8" c:identifier="GST_SEEK_FLAG_SEGMENT"/>
+      <member name="skip" value="16" c:identifier="GST_SEEK_FLAG_SKIP"/>
+    </bitfield>
+    <enumeration name="SeekType"
+                 doc="can&apos;t be used to seek relative to the current playback position - do a
+position query, calculate the desired position and then do an absolute
+position seek instead if that&apos;s what you want to do.
+The different types of seek events. When constructing a seek event with
+gst_event_new_seek(), a format, a seek method and optional flags are to
+be provided. The seek event is then inserted into the graph with
+gst_pad_send_event() or gst_element_send_event()."
+                 c:type="GstSeekType">
+      <member name="none" value="0" c:identifier="GST_SEEK_TYPE_NONE"/>
+      <member name="cur" value="1" c:identifier="GST_SEEK_TYPE_CUR"/>
+      <member name="set" value="2" c:identifier="GST_SEEK_TYPE_SET"/>
+      <member name="end" value="3" c:identifier="GST_SEEK_TYPE_END"/>
+    </enumeration>
+    <record name="Segment"
+            c:type="GstSegment"
+            doc="A helper structure that holds the configured region of
+interest in a media file."
+            glib:type-name="GstSegment"
+            glib:get-type="gst_segment_get_type">
+      <field name="rate" writable="1">
+        <type name="double" c:type="gdouble"/>
+      </field>
+      <field name="abs_rate" writable="1">
+        <type name="double" c:type="gdouble"/>
+      </field>
+      <field name="format" writable="1">
+        <type name="Format" c:type="GstFormat"/>
+      </field>
+      <field name="flags" writable="1">
+        <type name="SeekFlags" c:type="GstSeekFlags"/>
+      </field>
+      <field name="start" writable="1">
+        <type name="int64" c:type="gint64"/>
+      </field>
+      <field name="stop" writable="1">
+        <type name="int64" c:type="gint64"/>
+      </field>
+      <field name="time" writable="1">
+        <type name="int64" c:type="gint64"/>
+      </field>
+      <field name="accum" writable="1">
+        <type name="int64" c:type="gint64"/>
+      </field>
+      <field name="last_stop" writable="1">
+        <type name="int64" c:type="gint64"/>
+      </field>
+      <field name="duration" writable="1">
+        <type name="int64" c:type="gint64"/>
+      </field>
+      <field name="applied_rate" writable="1">
+        <type name="double" c:type="gdouble"/>
+      </field>
+      <field name="_gst_reserved" writable="1">
+        <array zero-terminated="0" c:type="guint8" fixed-size="0">
+          <type name="uint8"/>
+        </array>
+      </field>
+      <constructor name="new"
+                   c:identifier="gst_segment_new"
+                   doc="Allocate a new #GstSegment structure and initialize it using
+gst_segment_init().">
+        <return-value transfer-ownership="full">
+          <type name="Segment" c:type="GstSegment*"/>
+        </return-value>
+      </constructor>
+      <method name="copy"
+              c:identifier="gst_segment_copy"
+              doc="Create a copy of given @segment."
+              version="0.10.20">
+        <return-value transfer-ownership="full">
+          <type name="Segment" c:type="GstSegment*"/>
+        </return-value>
+      </method>
+      <method name="free"
+              c:identifier="gst_segment_free"
+              doc="Free the allocated segment @segment.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </method>
+      <method name="init"
+              c:identifier="gst_segment_init"
+              doc="The start/last_stop positions are set to 0 and the stop/duration
+fields are set to -1 (unknown). The default rate of 1.0 and no
+flags are set.
+Initialize @segment to its default values.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="format" transfer-ownership="none">
+            <type name="Format" c:type="GstFormat"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_duration"
+              c:identifier="gst_segment_set_duration"
+              doc="Set the duration of the segment to @duration. This function is mainly
+used by elements that perform seeking and know the total duration of the
+segment.
+This field should be set to allow seeking requests relative to the
+duration.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="format" transfer-ownership="none">
+            <type name="Format" c:type="GstFormat"/>
+          </parameter>
+          <parameter name="duration" transfer-ownership="none">
+            <type name="int64" c:type="gint64"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_last_stop"
+              c:identifier="gst_segment_set_last_stop"
+              doc="Set the last observed stop position in the segment to @position.
+This field should be set to allow seeking requests relative to the
+current playing position.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="format" transfer-ownership="none">
+            <type name="Format" c:type="GstFormat"/>
+          </parameter>
+          <parameter name="position" transfer-ownership="none">
+            <type name="int64" c:type="gint64"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_seek"
+              c:identifier="gst_segment_set_seek"
+              doc="Update the segment structure with the field values of a seek event (see
+gst_event_new_seek()).
+After calling this method, the segment field last_stop and time will
+contain the requested new position in the segment. The new requested
+position in the segment depends on @rate and @start_type and @stop_type.
+For positive @rate, the new position in the segment is the new @segment
+start field when it was updated with a @start_type different from
+#GST_SEEK_TYPE_NONE. If no update was performed on @segment start position
+(#GST_SEEK_TYPE_NONE), @start is ignored and @segment last_stop is
+unmodified.
+For negative @rate, the new position in the segment is the new @segment
+stop field when it was updated with a @stop_type different from
+#GST_SEEK_TYPE_NONE. If no stop was previously configured in the segment, the
+duration of the segment will be used to update the stop position.
+If no update was performed on @segment stop position (#GST_SEEK_TYPE_NONE),
+The applied rate of the segment will be set to 1.0 by default.
+If the caller can apply a rate change, it should update @segment
+rate and applied_rate after calling this function.
+last_stop field. This field can be FALSE if, for example, only the @rate
+has been changed but not the playback position.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="rate" transfer-ownership="none">
+            <type name="double" c:type="gdouble"/>
+          </parameter>
+          <parameter name="format" transfer-ownership="none">
+            <type name="Format" c:type="GstFormat"/>
+          </parameter>
+          <parameter name="flags" transfer-ownership="none">
+            <type name="SeekFlags" c:type="GstSeekFlags"/>
+          </parameter>
+          <parameter name="start_type" transfer-ownership="none">
+            <type name="SeekType" c:type="GstSeekType"/>
+          </parameter>
+          <parameter name="start" transfer-ownership="none">
+            <type name="int64" c:type="gint64"/>
+          </parameter>
+          <parameter name="stop_type" transfer-ownership="none">
+            <type name="SeekType" c:type="GstSeekType"/>
+          </parameter>
+          <parameter name="stop" transfer-ownership="none">
+            <type name="int64" c:type="gint64"/>
+          </parameter>
+          <parameter name="update" direction="out" transfer-ownership="full">
+            <type name="boolean" c:type="gboolean*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_newsegment"
+              c:identifier="gst_segment_set_newsegment"
+              doc="Update the segment structure with the field values of a new segment event and
+with a default applied_rate of 1.0."
+              version="0.10.6">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="update" transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </parameter>
+          <parameter name="rate" transfer-ownership="none">
+            <type name="double" c:type="gdouble"/>
+          </parameter>
+          <parameter name="format" transfer-ownership="none">
+            <type name="Format" c:type="GstFormat"/>
+          </parameter>
+          <parameter name="start" transfer-ownership="none">
+            <type name="int64" c:type="gint64"/>
+          </parameter>
+          <parameter name="stop" transfer-ownership="none">
+            <type name="int64" c:type="gint64"/>
+          </parameter>
+          <parameter name="time" transfer-ownership="none">
+            <type name="int64" c:type="gint64"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_newsegment_full"
+              c:identifier="gst_segment_set_newsegment_full"
+              doc="Update the segment structure with the field values of a new segment event.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="update" transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </parameter>
+          <parameter name="rate" transfer-ownership="none">
+            <type name="double" c:type="gdouble"/>
+          </parameter>
+          <parameter name="applied_rate" transfer-ownership="none">
+            <type name="double" c:type="gdouble"/>
+          </parameter>
+          <parameter name="format" transfer-ownership="none">
+            <type name="Format" c:type="GstFormat"/>
+          </parameter>
+          <parameter name="start" transfer-ownership="none">
+            <type name="int64" c:type="gint64"/>
+          </parameter>
+          <parameter name="stop" transfer-ownership="none">
+            <type name="int64" c:type="gint64"/>
+          </parameter>
+          <parameter name="time" transfer-ownership="none">
+            <type name="int64" c:type="gint64"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="to_stream_time"
+              c:identifier="gst_segment_to_stream_time"
+              doc="Translate @position to stream time using the currently configured
+segment. The @position value must be between @segment start and
+stop value.
+This function is typically used by elements that need to operate on
+the stream time of the buffers it receives, such as effect plugins.
+In those use cases, @position is typically the buffer timestamp or
+clock time that one wants to convert to the stream time.
+The stream time is always between 0 and the total duration of the
+media stream.
+was given.">
+        <return-value transfer-ownership="none">
+          <type name="int64" c:type="gint64"/>
+        </return-value>
+        <parameters>
+          <parameter name="format" transfer-ownership="none">
+            <type name="Format" c:type="GstFormat"/>
+          </parameter>
+          <parameter name="position" transfer-ownership="none">
+            <type name="int64" c:type="gint64"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="to_running_time"
+              c:identifier="gst_segment_to_running_time"
+              doc="Translate @position to the total running time using the currently configured
+and previously accumulated segments. Position is a value between @segment
+start and stop time.
+This function is typically used by elements that need to synchronize to the
+global clock in a pipeline. The runnning time is a constantly increasing value
+starting from 0. When gst_segment_init() is called, this value will reset to
+0.
+This function returns -1 if the position is outside of @segment start and stop.
+was given.">
+        <return-value transfer-ownership="none">
+          <type name="int64" c:type="gint64"/>
+        </return-value>
+        <parameters>
+          <parameter name="format" transfer-ownership="none">
+            <type name="Format" c:type="GstFormat"/>
+          </parameter>
+          <parameter name="position" transfer-ownership="none">
+            <type name="int64" c:type="gint64"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="to_position"
+              c:identifier="gst_segment_to_position"
+              doc="Convert @running_time into a position in the segment so that
+gst_segment_to_running_time() with that position returns @running_time.
+-1 when @running_time is -1 or when it is not inside @segment."
+              version="0.10.24">
+        <return-value transfer-ownership="none">
+          <type name="int64" c:type="gint64"/>
+        </return-value>
+        <parameters>
+          <parameter name="format" transfer-ownership="none">
+            <type name="Format" c:type="GstFormat"/>
+          </parameter>
+          <parameter name="running_time" transfer-ownership="none">
+            <type name="int64" c:type="gint64"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="clip"
+              c:identifier="gst_segment_clip"
+              doc="Clip the given @start and @stop values to the segment boundaries given
+in @segment. @start and @stop are compared and clipped to @segment
+start and stop values.
+If the function returns FALSE, @start and @stop are known to fall
+outside of @segment and @clip_start and @clip_stop are not updated.
+When the function returns TRUE, @clip_start and @clip_stop will be
+updated. If @clip_start or @clip_stop are different from @start or @stop
+respectively, the region fell partially in the segment.
+Note that when @stop is -1, @clip_stop will be set to the end of the
+segment. Depending on the use case, this may or may not be what you want.
+completely in @segment, FALSE if the values are completely outside
+of the segment.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="format" transfer-ownership="none">
+            <type name="Format" c:type="GstFormat"/>
+          </parameter>
+          <parameter name="start" transfer-ownership="none">
+            <type name="int64" c:type="gint64"/>
+          </parameter>
+          <parameter name="stop" transfer-ownership="none">
+            <type name="int64" c:type="gint64"/>
+          </parameter>
+          <parameter name="clip_start"
+                     direction="out"
+                     transfer-ownership="full">
+            <type name="int64" c:type="gint64*"/>
+          </parameter>
+          <parameter name="clip_stop"
+                     direction="out"
+                     transfer-ownership="full">
+            <type name="int64" c:type="gint64*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_running_time"
+              c:identifier="gst_segment_set_running_time"
+              doc="Adjust the start/stop and accum values of @segment such that the next valid
+buffer will be one with @running_time.
+returned, @running_time is -1 or not in @segment."
+              version="0.10.24">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="format" transfer-ownership="none">
+            <type name="Format" c:type="GstFormat"/>
+          </parameter>
+          <parameter name="running_time" transfer-ownership="none">
+            <type name="int64" c:type="gint64"/>
+          </parameter>
+        </parameters>
+      </method>
+    </record>
+    <enumeration name="State"
+                 doc="process data. Sink elements however only accept one
+buffer and then block.
+the data is flowing.
+The possible states an element can be in. States can be changed using
+gst_element_set_state() and checked using gst_element_get_state()."
+                 c:type="GstState">
+      <member name="void_pending"
+              value="0"
+              c:identifier="GST_STATE_VOID_PENDING"/>
+      <member name="null" value="1" c:identifier="GST_STATE_NULL"/>
+      <member name="ready" value="2" c:identifier="GST_STATE_READY"/>
+      <member name="paused" value="3" c:identifier="GST_STATE_PAUSED"/>
+      <member name="playing" value="4" c:identifier="GST_STATE_PLAYING"/>
+    </enumeration>
+    <bitfield name="StateChange"
+              doc="&lt;itemizedlist&gt;
+&lt;listitem&gt;&lt;para&gt;
+The element must check if the resources it needs are available. Device
+sinks and -sources typically try to probe the device to constrain their
+caps.
+&lt;/para&gt;&lt;/listitem&gt;
+&lt;listitem&gt;&lt;para&gt;
+The element opens the device (in case feature need to be probed).
+&lt;/para&gt;&lt;/listitem&gt;
+&lt;/itemizedlist&gt;
+&lt;itemizedlist&gt;
+&lt;listitem&gt;&lt;para&gt;
+The element pads are activated in order to receive data in PAUSED.
+Streaming threads are started.
+&lt;/para&gt;&lt;/listitem&gt;
+&lt;listitem&gt;&lt;para&gt;
+Some elements might need to return ASYNC and complete the state change
+when they have enough information. It is a requirement for sinks to
+return ASYNC and complete the state change when they receive the first
+buffer or EOS event (preroll). Sinks also block the dataflow when in
+PAUSED.
+&lt;/para&gt;&lt;/listitem&gt;
+&lt;listitem&gt;&lt;para&gt;
+A pipeline resets the running_time to 0.
+&lt;/para&gt;&lt;/listitem&gt;
+&lt;listitem&gt;&lt;para&gt;
+Live sources return NO_PREROLL and don&apos;t generate data.
+&lt;/para&gt;&lt;/listitem&gt;
+&lt;/itemizedlist&gt;
+&lt;itemizedlist&gt;
+&lt;listitem&gt;&lt;para&gt;
+Most elements ignore this state change.
+&lt;/para&gt;&lt;/listitem&gt;
+&lt;listitem&gt;&lt;para&gt;
+The pipeline selects a clock and distributes this to all the children
+before setting them to PLAYING. This means that it is only alowed to
+synchronize on the clock in the PLAYING state.
+&lt;/para&gt;&lt;/listitem&gt;
+&lt;listitem&gt;&lt;para&gt;
+The pipeline uses the clock and the running_time to calculate the
+base_time. The base_time is distributed to all children when performing
+the state change.
+&lt;/para&gt;&lt;/listitem&gt;
+&lt;listitem&gt;&lt;para&gt;
+Sink elements stop blocking on the preroll buffer or event and start
+rendering the data.
+&lt;/para&gt;&lt;/listitem&gt;
+&lt;listitem&gt;&lt;para&gt;
+Sinks can post the EOS message in the PLAYING state. It is not allowed to
+post EOS when not in the PLAYING state.
+&lt;/para&gt;&lt;/listitem&gt;
+&lt;listitem&gt;&lt;para&gt;
+While streaming in PAUSED or PLAYING elements can create and remove
+sometimes pads.
+&lt;/para&gt;&lt;/listitem&gt;
+&lt;listitem&gt;&lt;para&gt;
+Live sources start generating data and return SUCCESS.
+&lt;/para&gt;&lt;/listitem&gt;
+&lt;/itemizedlist&gt;
+&lt;itemizedlist&gt;
+&lt;listitem&gt;&lt;para&gt;
+Most elements ignore this state change.
+&lt;/para&gt;&lt;/listitem&gt;
+&lt;listitem&gt;&lt;para&gt;
+The pipeline calculates the running_time based on the last selected clock
+and the base_time. It stores this information to continue playback when
+going back to the PLAYING state.
+&lt;/para&gt;&lt;/listitem&gt;
+&lt;listitem&gt;&lt;para&gt;
+Sinks unblock any clock wait calls.
+&lt;/para&gt;&lt;/listitem&gt;
+&lt;listitem&gt;&lt;para&gt;
+When a sink does not have a pending buffer to play, it returns ASYNC from
+this state change and completes the state change when it receives a new
+buffer or an EOS event.
+&lt;/para&gt;&lt;/listitem&gt;
+&lt;listitem&gt;&lt;para&gt;
+Any queued EOS messages are removed since they will be reposted when going
+back to the PLAYING state. The EOS messages are queued in GstBins.
+&lt;/para&gt;&lt;/listitem&gt;
+&lt;listitem&gt;&lt;para&gt;
+Live sources stop generating data and return NO_PREROLL.
+&lt;/para&gt;&lt;/listitem&gt;
+&lt;/itemizedlist&gt;
+&lt;itemizedlist&gt;
+&lt;listitem&gt;&lt;para&gt;
+Sinks unblock any waits in the preroll.
+&lt;/para&gt;&lt;/listitem&gt;
+&lt;listitem&gt;&lt;para&gt;
+Elements unblock any waits on devices
+&lt;/para&gt;&lt;/listitem&gt;
+&lt;listitem&gt;&lt;para&gt;
+Chain or get_range functions return WRONG_STATE.
+&lt;/para&gt;&lt;/listitem&gt;
+&lt;listitem&gt;&lt;para&gt;
+The element pads are deactivated so that streaming becomes impossible and
+all streaming threads are stopped.
+&lt;/para&gt;&lt;/listitem&gt;
+&lt;listitem&gt;&lt;para&gt;
+The sink forgets all negotiated formats
+&lt;/para&gt;&lt;/listitem&gt;
+&lt;listitem&gt;&lt;para&gt;
+Elements remove all sometimes pads
+&lt;/para&gt;&lt;/listitem&gt;
+&lt;/itemizedlist&gt;
+&lt;itemizedlist&gt;
+&lt;listitem&gt;&lt;para&gt;
+Elements close devices
+&lt;/para&gt;&lt;/listitem&gt;
+&lt;listitem&gt;&lt;para&gt;
+Elements reset any internal state.
+&lt;/para&gt;&lt;/listitem&gt;
+&lt;/itemizedlist&gt;
+These are the different state changes an element goes through.
+%GST_STATE_NULL &amp;rArr; %GST_STATE_PLAYING is called an upwards state change
+and %GST_STATE_PLAYING &amp;rArr; %GST_STATE_NULL a downwards state change."
+              c:type="GstStateChange">
+      <member name="null_to_ready"
+              value="10"
+              c:identifier="GST_STATE_CHANGE_NULL_TO_READY"/>
+      <member name="ready_to_paused"
+              value="19"
+              c:identifier="GST_STATE_CHANGE_READY_TO_PAUSED"/>
+      <member name="paused_to_playing"
+              value="28"
+              c:identifier="GST_STATE_CHANGE_PAUSED_TO_PLAYING"/>
+      <member name="playing_to_paused"
+              value="35"
+              c:identifier="GST_STATE_CHANGE_PLAYING_TO_PAUSED"/>
+      <member name="paused_to_ready"
+              value="26"
+              c:identifier="GST_STATE_CHANGE_PAUSED_TO_READY"/>
+      <member name="ready_to_null"
+              value="17"
+              c:identifier="GST_STATE_CHANGE_READY_TO_NULL"/>
+    </bitfield>
+    <enumeration name="StateChangeReturn"
+                 doc="cannot produce data in %GST_STATE_PAUSED.
+This typically happens with live sources.
+The possible return values from a state change function. Only"
+                 c:type="GstStateChangeReturn">
+      <member name="failure"
+              value="0"
+              c:identifier="GST_STATE_CHANGE_FAILURE"/>
+      <member name="success"
+              value="1"
+              c:identifier="GST_STATE_CHANGE_SUCCESS"/>
+      <member name="async" value="2" c:identifier="GST_STATE_CHANGE_ASYNC"/>
+      <member name="no_preroll"
+              value="3"
+              c:identifier="GST_STATE_CHANGE_NO_PREROLL"/>
+    </enumeration>
+    <record name="StaticCaps"
+            c:type="GstStaticCaps"
+            doc="Datastructure to initialize #GstCaps from a string description usually
+used in conjunction with GST_STATIC_CAPS() and gst_static_caps_get() to
+instantiate a #GstCaps.">
+      <field name="caps" writable="1">
+        <type name="Caps" c:type="GstCaps"/>
+      </field>
+      <field name="string" writable="1">
+        <type name="utf8" c:type="char*"/>
+      </field>
+      <field name="_gst_reserved" writable="1">
+        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+          <type name="any"/>
+        </array>
+      </field>
+      <method name="get"
+              c:identifier="gst_static_caps_get"
+              doc="Converts a #GstStaticCaps to a #GstCaps.
+core holds an additional ref to the returned caps,
+use gst_caps_make_writable() on the returned caps to modify it.">
+        <return-value transfer-ownership="full">
+          <type name="Caps" c:type="GstCaps*"/>
+        </return-value>
+      </method>
+    </record>
+    <record name="StaticPadTemplate" c:type="GstStaticPadTemplate">
+      <field name="name_template" writable="1">
+        <type name="utf8" c:type="gchar*"/>
+      </field>
+      <field name="direction" writable="1">
+        <type name="PadDirection" c:type="GstPadDirection"/>
+      </field>
+      <field name="presence" writable="1">
+        <type name="PadPresence" c:type="GstPadPresence"/>
+      </field>
+      <field name="static_caps" writable="1">
+        <type name="StaticCaps" c:type="GstStaticCaps"/>
+      </field>
+      <method name="get"
+              c:identifier="gst_static_pad_template_get"
+              doc="Converts a #GstStaticPadTemplate into a #GstPadTemplate.">
+        <return-value transfer-ownership="full">
+          <type name="PadTemplate" c:type="GstPadTemplate*"/>
+        </return-value>
+      </method>
+      <method name="get_caps"
+              c:identifier="gst_static_pad_template_get_caps"
+              doc="Gets the capabilities of the static pad template.
+Unref after usage. Since the core holds an additional
+ref to the returned caps, use gst_caps_make_writable()
+on the returned caps to modify it.">
+        <return-value transfer-ownership="full">
+          <type name="Caps" c:type="GstCaps*"/>
+        </return-value>
+      </method>
+    </record>
+    <enumeration name="StreamError"
+                 doc="category.  Make sure you add a custom message to the error call.
+deciding where to go while developing code.
+this functionality yet.
+stream&apos;s type.
+of stream.
+stream&apos;s type.
+(for example, wrong caps).
+Stream errors are for anything related to the stream being processed:
+format errors, media type errors, ...
+They&apos;re typically used by decoders, demuxers, converters, ..."
+                 c:type="GstStreamError"
+                 glib:error-quark="gst_stream_error_quark">
+      <member name="failed" value="1" c:identifier="GST_STREAM_ERROR_FAILED"/>
+      <member name="too_lazy"
+              value="2"
+              c:identifier="GST_STREAM_ERROR_TOO_LAZY"/>
+      <member name="not_implemented"
+              value="3"
+              c:identifier="GST_STREAM_ERROR_NOT_IMPLEMENTED"/>
+      <member name="type_not_found"
+              value="4"
+              c:identifier="GST_STREAM_ERROR_TYPE_NOT_FOUND"/>
+      <member name="wrong_type"
+              value="5"
+              c:identifier="GST_STREAM_ERROR_WRONG_TYPE"/>
+      <member name="codec_not_found"
+              value="6"
+              c:identifier="GST_STREAM_ERROR_CODEC_NOT_FOUND"/>
+      <member name="decode" value="7" c:identifier="GST_STREAM_ERROR_DECODE"/>
+      <member name="encode" value="8" c:identifier="GST_STREAM_ERROR_ENCODE"/>
+      <member name="demux" value="9" c:identifier="GST_STREAM_ERROR_DEMUX"/>
+      <member name="mux" value="10" c:identifier="GST_STREAM_ERROR_MUX"/>
+      <member name="format" value="11" c:identifier="GST_STREAM_ERROR_FORMAT"/>
+      <member name="decrypt"
+              value="12"
+              c:identifier="GST_STREAM_ERROR_DECRYPT"/>
+      <member name="decrypt_nokey"
+              value="13"
+              c:identifier="GST_STREAM_ERROR_DECRYPT_NOKEY"/>
+      <member name="num_errors"
+              value="14"
+              c:identifier="GST_STREAM_ERROR_NUM_ERRORS"/>
+    </enumeration>
+    <enumeration name="StreamStatusType"
+                 doc="The type of a %GST_MESSAGE_STREAM_STATUS. The stream status messages inform the
+application of new streaming threads and their status."
+                 version="0.10.24"
+                 c:type="GstStreamStatusType">
+      <member name="create"
+              value="0"
+              c:identifier="GST_STREAM_STATUS_TYPE_CREATE"/>
+      <member name="enter"
+              value="1"
+              c:identifier="GST_STREAM_STATUS_TYPE_ENTER"/>
+      <member name="leave"
+              value="2"
+              c:identifier="GST_STREAM_STATUS_TYPE_LEAVE"/>
+      <member name="destroy"
+              value="3"
+              c:identifier="GST_STREAM_STATUS_TYPE_DESTROY"/>
+      <member name="start"
+              value="8"
+              c:identifier="GST_STREAM_STATUS_TYPE_START"/>
+      <member name="pause"
+              value="9"
+              c:identifier="GST_STREAM_STATUS_TYPE_PAUSE"/>
+      <member name="stop"
+              value="10"
+              c:identifier="GST_STREAM_STATUS_TYPE_STOP"/>
+    </enumeration>
+    <record name="Structure"
+            c:type="GstStructure"
+            doc="The GstStructure object. Most fields are private."
+            glib:type-name="GstStructure"
+            glib:get-type="gst_structure_get_type">
+      <field name="type" writable="1">
+        <type name="GType" c:type="GType"/>
+      </field>
+      <field name="name" writable="1">
+        <type name="GLib.Quark" c:type="GQuark"/>
+      </field>
+      <field name="parent_refcount" writable="1">
+        <type name="any" c:type="gint*"/>
+      </field>
+      <field name="fields" writable="1">
+        <type name="GLib.Array" c:type="GArray*"/>
+      </field>
+      <field name="_gst_reserved" writable="1">
+        <type name="any" c:type="gpointer"/>
+      </field>
+      <constructor name="new"
+                   c:identifier="gst_structure_new"
+                   doc="Creates a new #GstStructure with the given name.  Parses the
+list of variable arguments and sets fields to the values listed.
+Variable arguments should be passed as field name, field type,
+and value.  Last variable argument should be NULL.">
+        <return-value transfer-ownership="full">
+          <type name="Structure" c:type="GstStructure*"/>
+        </return-value>
+        <parameters>
+          <parameter name="name" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="firstfield" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter transfer-ownership="none">
+            <varargs>
+            </varargs>
+          </parameter>
+        </parameters>
+      </constructor>
+      <method name="copy"
+              c:identifier="gst_structure_copy"
+              doc="Duplicates a #GstStructure and all its fields and values.">
+        <return-value transfer-ownership="full">
+          <type name="Structure" c:type="GstStructure*"/>
+        </return-value>
+      </method>
+      <method name="set_parent_refcount"
+              c:identifier="gst_structure_set_parent_refcount"
+              doc="Sets the parent_refcount field of #GstStructure. This field is used to
+determine whether a structure is mutable or not. This function should only be
+called by code implementing parent objects of #GstStructure, as described in
+the MT Refcounting section of the design documents.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="refcount" direction="out" transfer-ownership="full">
+            <type name="int" c:type="gint*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="free"
+              c:identifier="gst_structure_free"
+              doc="Frees a #GstStructure and all its fields and values. The structure must not
+have a parent when this function is called.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </method>
+      <method name="get_name"
+              c:identifier="gst_structure_get_name"
+              doc="Get the name of @structure as a string.">
+        <return-value transfer-ownership="none">
+          <type name="utf8" c:type="gchar*"/>
+        </return-value>
+      </method>
+      <method name="get_name_id"
+              c:identifier="gst_structure_get_name_id"
+              doc="Get the name of @structure as a GQuark.">
+        <return-value transfer-ownership="full">
+          <type name="GLib.Quark" c:type="GQuark"/>
+        </return-value>
+      </method>
+      <method name="has_name"
+              c:identifier="gst_structure_has_name"
+              doc="Checks if the structure has the given name">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="name" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_name"
+              c:identifier="gst_structure_set_name"
+              doc="Sets the name of the structure to the given @name.  The string
+provided is copied before being used. It must not be empty, start with a
+letter and can be followed by letters, numbers and any of &quot;/-_.:&quot;.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="name" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="id_set_value"
+              c:identifier="gst_structure_id_set_value"
+              doc="Sets the field with the given GQuark @field to @value.  If the field
+does not exist, it is created.  If the field exists, the previous
+value is replaced and freed.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="field" transfer-ownership="none">
+            <type name="GLib.Quark" c:type="GQuark"/>
+          </parameter>
+          <parameter name="value" transfer-ownership="none">
+            <type name="GObject.Value" c:type="GValue*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_value"
+              c:identifier="gst_structure_set_value"
+              doc="Sets the field with the given name @field to @value.  If the field
+does not exist, it is created.  If the field exists, the previous
+value is replaced and freed.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="fieldname" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="value" transfer-ownership="none">
+            <type name="GObject.Value" c:type="GValue*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set"
+              c:identifier="gst_structure_set"
+              doc="Parses the variable arguments and sets fields accordingly.
+Variable arguments should be in the form field name, field type
+(as a GType), value(s).  The last variable argument should be NULL.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="fieldname" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter transfer-ownership="none">
+            <varargs>
+            </varargs>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="id_set"
+              c:identifier="gst_structure_id_set"
+              doc="Identical to gst_structure_set, except that field names are
+passed using the GQuark for the field name. This allows more efficient
+setting of the structure if the caller already knows the associated
+quark values.
+The last variable argument must be NULL."
+              version="0.10.10">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="fieldname" transfer-ownership="none">
+            <type name="GLib.Quark" c:type="GQuark"/>
+          </parameter>
+          <parameter transfer-ownership="none">
+            <varargs>
+            </varargs>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get"
+              c:identifier="gst_structure_get"
+              doc="Parses the variable arguments and reads fields from @structure accordingly.
+Variable arguments should be in the form field name, field type
+(as a GType), pointer(s) to a variable(s) to hold the return value(s).
+The last variable argument should be NULL.
+For refcounted (mini)objects you will acquire your own reference which
+you must release with a suitable _unref() when no longer needed. For
+strings and boxed types you will acquire a copy which you will need to
+release with either g_free() or the suiteable function for the boxed type.
+because the field requested did not exist, or was of a type other
+than the type specified), otherwise TRUE."
+              version="0.10.24">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="first_fieldname" transfer-ownership="none">
+            <type name="utf8" c:type="char*"/>
+          </parameter>
+          <parameter transfer-ownership="none">
+            <varargs>
+            </varargs>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="id_get"
+              c:identifier="gst_structure_id_get"
+              doc="Parses the variable arguments and reads fields from @structure accordingly.
+Variable arguments should be in the form field id quark, field type
+(as a GType), pointer(s) to a variable(s) to hold the return value(s).
+The last variable argument should be NULL (technically it should be a
+0 quark, but we require NULL so compilers that support it can check for
+the NULL terminator and warn if it&apos;s not there).
+This function is just like gst_structure_get() only that it is slightly
+more efficient since it saves the string-to-quark lookup in the global
+quark hashtable.
+For refcounted (mini)objects you will acquire your own reference which
+you must release with a suitable _unref() when no longer needed. For
+strings and boxed types you will acquire a copy which you will need to
+release with either g_free() or the suiteable function for the boxed type.
+because the field requested did not exist, or was of a type other
+than the type specified), otherwise TRUE."
+              version="0.10.24">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="first_field_id" transfer-ownership="none">
+            <type name="GLib.Quark" c:type="GQuark"/>
+          </parameter>
+          <parameter transfer-ownership="none">
+            <varargs>
+            </varargs>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="id_get_value"
+              c:identifier="gst_structure_id_get_value"
+              doc="Get the value of the field with GQuark @field.
+identifier.">
+        <return-value transfer-ownership="none">
+          <type name="GObject.Value" c:type="GValue*"/>
+        </return-value>
+        <parameters>
+          <parameter name="field" transfer-ownership="none">
+            <type name="GLib.Quark" c:type="GQuark"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_value"
+              c:identifier="gst_structure_get_value"
+              doc="Get the value of the field with name @fieldname.">
+        <return-value transfer-ownership="none">
+          <type name="GObject.Value" c:type="GValue*"/>
+        </return-value>
+        <parameters>
+          <parameter name="fieldname" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="remove_field"
+              c:identifier="gst_structure_remove_field"
+              doc="Removes the field with the given name.  If the field with the given
+name does not exist, the structure is unchanged.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="fieldname" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="remove_fields"
+              c:identifier="gst_structure_remove_fields"
+              doc="Removes the fields with the given names. If a field does not exist, the
+argument is ignored.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="fieldname" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter transfer-ownership="none">
+            <varargs>
+            </varargs>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="remove_all_fields"
+              c:identifier="gst_structure_remove_all_fields"
+              doc="Removes all fields in a GstStructure.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </method>
+      <method name="get_field_type"
+              c:identifier="gst_structure_get_field_type"
+              doc="Finds the field with the given name, and returns the type of the
+value it contains.  If the field is not found, G_TYPE_INVALID is
+returned.">
+        <return-value transfer-ownership="none">
+          <type name="GType" c:type="GType"/>
+        </return-value>
+        <parameters>
+          <parameter name="fieldname" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="foreach"
+              c:identifier="gst_structure_foreach"
+              doc="Calls the provided function once for each field in the #GstStructure. The
+function must not modify the fields. Also see gst_structure_map_in_place().
+FALSE otherwise.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="func"
+                     transfer-ownership="none"
+                     scope="call"
+                     closure="2">
+            <type name="StructureForeachFunc"
+                  c:type="GstStructureForeachFunc"/>
+          </parameter>
+          <parameter name="user_data" transfer-ownership="none">
+            <type name="any" c:type="gpointer"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="map_in_place"
+              c:identifier="gst_structure_map_in_place"
+              doc="Calls the provided function once for each field in the #GstStructure. In
+contrast to gst_structure_foreach(), the function may modify but not delete the
+fields. The structure must be mutable.
+FALSE otherwise.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="func"
+                     transfer-ownership="none"
+                     scope="call"
+                     closure="2">
+            <type name="StructureMapFunc" c:type="GstStructureMapFunc"/>
+          </parameter>
+          <parameter name="user_data" transfer-ownership="none">
+            <type name="any" c:type="gpointer"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="n_fields"
+              c:identifier="gst_structure_n_fields"
+              doc="Get the number of fields in the structure.">
+        <return-value transfer-ownership="none">
+          <type name="int" c:type="gint"/>
+        </return-value>
+      </method>
+      <method name="nth_field_name"
+              c:identifier="gst_structure_nth_field_name"
+              doc="Get the name of the given field number, counting from 0 onwards.">
+        <return-value transfer-ownership="none">
+          <type name="utf8" c:type="gchar*"/>
+        </return-value>
+        <parameters>
+          <parameter name="index" transfer-ownership="none">
+            <type name="uint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="id_has_field"
+              c:identifier="gst_structure_id_has_field"
+              doc="Check if @structure contains a field named @field."
+              version="0.10.26">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="field" transfer-ownership="none">
+            <type name="GLib.Quark" c:type="GQuark"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="id_has_field_typed"
+              c:identifier="gst_structure_id_has_field_typed"
+              doc="Check if @structure contains a field named @field and with GType @type."
+              version="0.10.26">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="field" transfer-ownership="none">
+            <type name="GLib.Quark" c:type="GQuark"/>
+          </parameter>
+          <parameter name="type" transfer-ownership="none">
+            <type name="GType" c:type="GType"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="has_field"
+              c:identifier="gst_structure_has_field"
+              doc="Check if @structure contains a field named @fieldname.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="fieldname" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="has_field_typed"
+              c:identifier="gst_structure_has_field_typed"
+              doc="Check if @structure contains a field named @fieldname and with GType @type.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="fieldname" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="type" transfer-ownership="none">
+            <type name="GType" c:type="GType"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_boolean"
+              c:identifier="gst_structure_get_boolean"
+              doc="Sets the boolean pointed to by @value corresponding to the value of the
+given field.  Caller is responsible for making sure the field exists
+and has the correct type.
+with @fieldname or the existing field did not contain a boolean, this
+function returns FALSE.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="fieldname" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="value" direction="out" transfer-ownership="full">
+            <type name="boolean" c:type="gboolean*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_int"
+              c:identifier="gst_structure_get_int"
+              doc="Sets the int pointed to by @value corresponding to the value of the
+given field.  Caller is responsible for making sure the field exists
+and has the correct type.
+with @fieldname or the existing field did not contain an int, this function
+returns %FALSE.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="fieldname" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="value" direction="out" transfer-ownership="full">
+            <type name="int" c:type="gint*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_uint"
+              c:identifier="gst_structure_get_uint"
+              doc="Sets the uint pointed to by @value corresponding to the value of the
+given field.  Caller is responsible for making sure the field exists
+and has the correct type.
+with @fieldname or the existing field did not contain a uint, this function
+returns %FALSE."
+              version="0.10.15">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="fieldname" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="value" direction="out" transfer-ownership="full">
+            <type name="uint" c:type="guint*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_fourcc"
+              c:identifier="gst_structure_get_fourcc"
+              doc="Sets the Fourcc pointed to by @value corresponding to the value of the
+given field.  Caller is responsible for making sure the field exists
+and has the correct type.
+with @fieldname or the existing field did not contain a fourcc, this function
+returns FALSE.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="fieldname" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="value" direction="out" transfer-ownership="full">
+            <type name="uint32" c:type="guint32*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_double"
+              c:identifier="gst_structure_get_double"
+              doc="Sets the double pointed to by @value corresponding to the value of the
+given field.  Caller is responsible for making sure the field exists
+and has the correct type.
+with @fieldname or the existing field did not contain a double, this
+function returns FALSE.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="fieldname" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="value" direction="out" transfer-ownership="full">
+            <type name="double" c:type="gdouble*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_date"
+              c:identifier="gst_structure_get_date"
+              doc="Sets the date pointed to by @value corresponding to the date of the
+given field.  Caller is responsible for making sure the field exists
+and has the correct type.
+On success @value will point to a newly-allocated copy of the date which
+inconsistent with e.g. gst_structure_get_string() which doesn&apos;t return a
+copy of the string).
+with @fieldname or the existing field did not contain a data, this function
+returns FALSE.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="fieldname" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="value" transfer-ownership="none">
+            <type name="GLib.Date" c:type="GDate**"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_clock_time"
+              c:identifier="gst_structure_get_clock_time"
+              doc="Sets the clock time pointed to by @value corresponding to the clock time
+of the given field.  Caller is responsible for making sure the field exists
+and has the correct type.
+with @fieldname or the existing field did not contain a #GstClockTime, this
+function returns FALSE.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="fieldname" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="value" transfer-ownership="none">
+            <type name="ClockTime" c:type="GstClockTime*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_string"
+              c:identifier="gst_structure_get_string"
+              doc="Finds the field corresponding to @fieldname, and returns the string
+contained in the field&apos;s value.  Caller is responsible for making
+sure the field exists and has the correct type.
+The string should not be modified, and remains valid until the next
+call to a gst_structure_*() function with the given structure.
+or did not contain a string.">
+        <return-value transfer-ownership="none">
+          <type name="utf8" c:type="gchar*"/>
+        </return-value>
+        <parameters>
+          <parameter name="fieldname" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_enum"
+              c:identifier="gst_structure_get_enum"
+              doc="Sets the int pointed to by @value corresponding to the value of the
+given field.  Caller is responsible for making sure the field exists,
+has the correct type and that the enumtype is correct.
+with @fieldname or the existing field did not contain an enum of the given
+type, this function returns FALSE.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="fieldname" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="enumtype" transfer-ownership="none">
+            <type name="GType" c:type="GType"/>
+          </parameter>
+          <parameter name="value" direction="out" transfer-ownership="full">
+            <type name="int" c:type="gint*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_fraction"
+              c:identifier="gst_structure_get_fraction"
+              doc="Sets the integers pointed to by @value_numerator and @value_denominator
+corresponding to the value of the given field.  Caller is responsible
+for making sure the field exists and has the correct type.
+with @fieldname or the existing field did not contain a GstFraction, this
+function returns FALSE.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="fieldname" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="value_numerator"
+                     direction="out"
+                     transfer-ownership="full">
+            <type name="int" c:type="gint*"/>
+          </parameter>
+          <parameter name="value_denominator"
+                     direction="out"
+                     transfer-ownership="full">
+            <type name="int" c:type="gint*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="to_string"
+              c:identifier="gst_structure_to_string"
+              doc="Converts @structure to a human-readable string representation.
+For debugging purposes its easier to do something like this:
+|[
+GST_LOG (&quot;structure is %&quot; GST_PTR_FORMAT, structure);
+]|
+This prints the structure in human readble form.
+usage.">
+        <return-value transfer-ownership="full" doc="after">
+          <type name="utf8" c:type="gchar*"/>
+        </return-value>
+      </method>
+      <method name="fixate_field_nearest_int"
+              c:identifier="gst_structure_fixate_field_nearest_int"
+              doc="Fixates a #GstStructure by changing the given field to the nearest
+integer to @target that is a subset of the existing field.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="field_name" transfer-ownership="none">
+            <type name="utf8" c:type="char*"/>
+          </parameter>
+          <parameter name="target" transfer-ownership="none">
+            <type name="int" c:type="int"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="fixate_field_nearest_double"
+              c:identifier="gst_structure_fixate_field_nearest_double"
+              doc="Fixates a #GstStructure by changing the given field to the nearest
+double to @target that is a subset of the existing field.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="field_name" transfer-ownership="none">
+            <type name="utf8" c:type="char*"/>
+          </parameter>
+          <parameter name="target" transfer-ownership="none">
+            <type name="double" c:type="double"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="fixate_field_boolean"
+              c:identifier="gst_structure_fixate_field_boolean"
+              doc="Fixates a #GstStructure by changing the given @field_name field to the given">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="field_name" transfer-ownership="none">
+            <type name="utf8" c:type="char*"/>
+          </parameter>
+          <parameter name="target" transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="fixate_field_nearest_fraction"
+              c:identifier="gst_structure_fixate_field_nearest_fraction"
+              doc="Fixates a #GstStructure by changing the given field to the nearest
+fraction to @target_numerator/@target_denominator that is a subset
+of the existing field.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="field_name" transfer-ownership="none">
+            <type name="utf8" c:type="char*"/>
+          </parameter>
+          <parameter name="target_numerator" transfer-ownership="none">
+            <type name="int" c:type="gint"/>
+          </parameter>
+          <parameter name="target_denominator" transfer-ownership="none">
+            <type name="int" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </method>
+    </record>
+    <enumeration name="StructureChangeType"
+                 doc="The type of a %GST_MESSAGE_STRUCTURE_CHANGE."
+                 version="0.10.22"
+                 c:type="GstStructureChangeType">
+      <member name="link"
+              value="0"
+              c:identifier="GST_STRUCTURE_CHANGE_TYPE_PAD_LINK"/>
+      <member name="unlink"
+              value="1"
+              c:identifier="GST_STRUCTURE_CHANGE_TYPE_PAD_UNLINK"/>
+    </enumeration>
+    <callback name="StructureForeachFunc"
+              c:type="GstStructureForeachFunc"
+              doc="A function that will be called in gst_structure_foreach(). The function may
+not modify @value.
+the foreach operation should stop with FALSE.">
+      <return-value transfer-ownership="none">
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="field_id" transfer-ownership="none">
+          <type name="GLib.Quark" c:type="GQuark"/>
+        </parameter>
+        <parameter name="value" transfer-ownership="none">
+          <type name="GObject.Value" c:type="GValue*"/>
+        </parameter>
+        <parameter name="user_data" transfer-ownership="none" closure="2">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <callback name="StructureMapFunc"
+              c:type="GstStructureMapFunc"
+              doc="A function that will be called in gst_structure_map_in_place(). The function
+may modify @value.
+the map operation should stop with FALSE.">
+      <return-value transfer-ownership="none">
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="field_id" transfer-ownership="none">
+          <type name="GLib.Quark" c:type="GQuark"/>
+        </parameter>
+        <parameter name="value" transfer-ownership="none">
+          <type name="GObject.Value" c:type="GValue*"/>
+        </parameter>
+        <parameter name="user_data" transfer-ownership="none" closure="2">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <class name="SystemClock"
+           c:type="GstSystemClock"
+           doc="The default implementation of a #GstClock that uses the system time."
+           parent="Clock"
+           glib:type-name="GstSystemClock"
+           glib:get-type="gst_system_clock_get_type"
+           glib:type-struct="SystemClockClass">
+      <function name="obtain"
+                c:identifier="gst_system_clock_obtain"
+                doc="Get a handle to the default system clock. The refcount of the
+clock will be increased so you need to unref the clock after
+usage.
+MT safe.">
+        <return-value transfer-ownership="full">
+          <type name="Clock" c:type="GstClock*"/>
+        </return-value>
+      </function>
+      <property name="clock-type" writable="1">
+        <type name="ClockType" c:type="GstClockType"/>
+      </property>
+      <field name="clock">
+        <type name="Clock" c:type="GstClock"/>
+      </field>
+      <field name="thread">
+        <type name="GLib.Thread" c:type="GThread*"/>
+      </field>
+      <field name="stopping">
+        <type name="boolean" c:type="gboolean"/>
+      </field>
+      <field name="priv">
+        <type name="SystemClockPrivate" c:type="GstSystemClockPrivate*"/>
+      </field>
+      <field name="_gst_reserved">
+        <array zero-terminated="0" c:type="gpointer" fixed-size="3">
+          <type name="any"/>
+        </array>
+      </field>
+    </class>
+    <record name="SystemClockClass"
+            c:type="GstSystemClockClass"
+            glib:is-gtype-struct-for="SystemClock">
+      <field name="parent_class">
+        <type name="ClockClass" c:type="GstClockClass"/>
+      </field>
+      <field name="_gst_reserved">
+        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+          <type name="any"/>
+        </array>
+      </field>
+    </record>
+    <record name="SystemClockPrivate" c:type="GstSystemClockPrivate">
+    </record>
+    <constant name="TAG_ALBUM" value="album">
+      <type name="utf8"/>
+    </constant>
+    <constant name="TAG_ALBUM_ARTIST" value="album-artist">
+      <type name="utf8"/>
+    </constant>
+    <constant name="TAG_ALBUM_ARTIST_SORTNAME" value="album-artist-sortname">
+      <type name="utf8"/>
+    </constant>
+    <constant name="TAG_ALBUM_GAIN" value="replaygain-album-gain">
+      <type name="utf8"/>
+    </constant>
+    <constant name="TAG_ALBUM_PEAK" value="replaygain-album-peak">
+      <type name="utf8"/>
+    </constant>
+    <constant name="TAG_ALBUM_SORTNAME" value="album-sortname">
+      <type name="utf8"/>
+    </constant>
+    <constant name="TAG_ALBUM_VOLUME_COUNT" value="album-disc-count">
+      <type name="utf8"/>
+    </constant>
+    <constant name="TAG_ALBUM_VOLUME_NUMBER" value="album-disc-number">
+      <type name="utf8"/>
+    </constant>
+    <constant name="TAG_ARTIST" value="artist">
+      <type name="utf8"/>
+    </constant>
+    <constant name="TAG_ARTIST_SORTNAME" value="musicbrainz-sortname">
+      <type name="utf8"/>
+    </constant>
+    <constant name="TAG_ATTACHMENT" value="attachment">
+      <type name="utf8"/>
+    </constant>
+    <constant name="TAG_AUDIO_CODEC" value="audio-codec">
+      <type name="utf8"/>
+    </constant>
+    <constant name="TAG_BEATS_PER_MINUTE" value="beats-per-minute">
+      <type name="utf8"/>
+    </constant>
+    <constant name="TAG_BITRATE" value="bitrate">
+      <type name="utf8"/>
+    </constant>
+    <constant name="TAG_CODEC" value="codec">
+      <type name="utf8"/>
+    </constant>
+    <constant name="TAG_COMMENT" value="comment">
+      <type name="utf8"/>
+    </constant>
+    <constant name="TAG_COMPOSER" value="composer">
+      <type name="utf8"/>
+    </constant>
+    <constant name="TAG_COMPOSER_SORTNAME" value="composer-sortname">
+      <type name="utf8"/>
+    </constant>
+    <constant name="TAG_CONTACT" value="contact">
+      <type name="utf8"/>
+    </constant>
+    <constant name="TAG_CONTAINER_FORMAT" value="container-format">
+      <type name="utf8"/>
+    </constant>
+    <constant name="TAG_COPYRIGHT" value="copyright">
+      <type name="utf8"/>
+    </constant>
+    <constant name="TAG_COPYRIGHT_URI" value="copyright-uri">
+      <type name="utf8"/>
+    </constant>
+    <constant name="TAG_DATE" value="date">
+      <type name="utf8"/>
+    </constant>
+    <constant name="TAG_DESCRIPTION" value="description">
+      <type name="utf8"/>
+    </constant>
+    <constant name="TAG_DURATION" value="duration">
+      <type name="utf8"/>
+    </constant>
+    <constant name="TAG_ENCODER" value="encoder">
+      <type name="utf8"/>
+    </constant>
+    <constant name="TAG_ENCODER_VERSION" value="encoder-version">
+      <type name="utf8"/>
+    </constant>
+    <constant name="TAG_EXTENDED_COMMENT" value="extended-comment">
+      <type name="utf8"/>
+    </constant>
+    <constant name="TAG_GENRE" value="genre">
+      <type name="utf8"/>
+    </constant>
+    <constant name="TAG_GEO_LOCATION_CITY" value="geo-location-city">
+      <type name="utf8"/>
+    </constant>
+    <constant name="TAG_GEO_LOCATION_COUNTRY" value="geo-location-country">
+      <type name="utf8"/>
+    </constant>
+    <constant name="TAG_GEO_LOCATION_ELEVATION" value="geo-location-elevation">
+      <type name="utf8"/>
+    </constant>
+    <constant name="TAG_GEO_LOCATION_LATITUDE" value="geo-location-latitude">
+      <type name="utf8"/>
+    </constant>
+    <constant name="TAG_GEO_LOCATION_LONGITUDE" value="geo-location-longitude">
+      <type name="utf8"/>
+    </constant>
+    <constant name="TAG_GEO_LOCATION_NAME" value="geo-location-name">
+      <type name="utf8"/>
+    </constant>
+    <constant name="TAG_GEO_LOCATION_SUBLOCATION"
+              value="geo-location-sublocation">
+      <type name="utf8"/>
+    </constant>
+    <constant name="TAG_GROUPING" value="grouping">
+      <type name="utf8"/>
+    </constant>
+    <constant name="TAG_HOMEPAGE" value="homepage">
+      <type name="utf8"/>
+    </constant>
+    <constant name="TAG_IMAGE" value="image">
+      <type name="utf8"/>
+    </constant>
+    <constant name="TAG_ISRC" value="isrc">
+      <type name="utf8"/>
+    </constant>
+    <constant name="TAG_KEYWORDS" value="keywords">
+      <type name="utf8"/>
+    </constant>
+    <constant name="TAG_LANGUAGE_CODE" value="language-code">
+      <type name="utf8"/>
+    </constant>
+    <constant name="TAG_LICENSE" value="license">
+      <type name="utf8"/>
+    </constant>
+    <constant name="TAG_LICENSE_URI" value="license-uri">
+      <type name="utf8"/>
+    </constant>
+    <constant name="TAG_LOCATION" value="location">
+      <type name="utf8"/>
+    </constant>
+    <constant name="TAG_LYRICS" value="lyrics">
+      <type name="utf8"/>
+    </constant>
+    <constant name="TAG_MAXIMUM_BITRATE" value="maximum-bitrate">
+      <type name="utf8"/>
+    </constant>
+    <constant name="TAG_MINIMUM_BITRATE" value="minimum-bitrate">
+      <type name="utf8"/>
+    </constant>
+    <constant name="TAG_NOMINAL_BITRATE" value="nominal-bitrate">
+      <type name="utf8"/>
+    </constant>
+    <constant name="TAG_ORGANIZATION" value="organization">
+      <type name="utf8"/>
+    </constant>
+    <constant name="TAG_PERFORMER" value="performer">
+      <type name="utf8"/>
+    </constant>
+    <constant name="TAG_PREVIEW_IMAGE" value="preview-image">
+      <type name="utf8"/>
+    </constant>
+    <constant name="TAG_REFERENCE_LEVEL" value="replaygain-reference-level">
+      <type name="utf8"/>
+    </constant>
+    <constant name="TAG_SERIAL" value="serial">
+      <type name="utf8"/>
+    </constant>
+    <constant name="TAG_SHOW_EPISODE_NUMBER" value="show-episode-number">
+      <type name="utf8"/>
+    </constant>
+    <constant name="TAG_SHOW_NAME" value="show-name">
+      <type name="utf8"/>
+    </constant>
+    <constant name="TAG_SHOW_SEASON_NUMBER" value="show-season-number">
+      <type name="utf8"/>
+    </constant>
+    <constant name="TAG_SHOW_SORTNAME" value="show-sortname">
+      <type name="utf8"/>
+    </constant>
+    <constant name="TAG_SUBTITLE_CODEC" value="subtitle-codec">
+      <type name="utf8"/>
+    </constant>
+    <constant name="TAG_TITLE" value="title">
+      <type name="utf8"/>
+    </constant>
+    <constant name="TAG_TITLE_SORTNAME" value="title-sortname">
+      <type name="utf8"/>
+    </constant>
+    <constant name="TAG_TRACK_COUNT" value="track-count">
+      <type name="utf8"/>
+    </constant>
+    <constant name="TAG_TRACK_GAIN" value="replaygain-track-gain">
+      <type name="utf8"/>
+    </constant>
+    <constant name="TAG_TRACK_NUMBER" value="track-number">
+      <type name="utf8"/>
+    </constant>
+    <constant name="TAG_TRACK_PEAK" value="replaygain-track-peak">
+      <type name="utf8"/>
+    </constant>
+    <constant name="TAG_USER_RATING" value="user-rating">
+      <type name="utf8"/>
+    </constant>
+    <constant name="TAG_VERSION" value="version">
+      <type name="utf8"/>
+    </constant>
+    <constant name="TAG_VIDEO_CODEC" value="video-codec">
+      <type name="utf8"/>
+    </constant>
+    <constant name="TIME_FORMAT" value="u:%02u:%02u.%09u">
+      <type name="utf8"/>
+    </constant>
+    <enumeration name="TagFlag"
+                 doc="Extra tag flags used when registering tags."
+                 c:type="GstTagFlag">
+      <member name="undefined"
+              value="0"
+              c:identifier="GST_TAG_FLAG_UNDEFINED"/>
+      <member name="meta" value="1" c:identifier="GST_TAG_FLAG_META"/>
+      <member name="encoded" value="2" c:identifier="GST_TAG_FLAG_ENCODED"/>
+      <member name="decoded" value="3" c:identifier="GST_TAG_FLAG_DECODED"/>
+      <member name="count" value="4" c:identifier="GST_TAG_FLAG_COUNT"/>
+    </enumeration>
+    <callback name="TagForeachFunc"
+              c:type="GstTagForeachFunc"
+              doc="A function that will be called in gst_tag_list_foreach(). The function may
+not modify the tag list.">
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="list" transfer-ownership="none">
+          <type name="TagList" c:type="GstTagList*"/>
+        </parameter>
+        <parameter name="tag" transfer-ownership="none">
+          <type name="utf8" c:type="gchar*"/>
+        </parameter>
+        <parameter name="user_data" transfer-ownership="none" closure="2">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <record name="TagList"
+            c:type="GstTagList"
+            doc="Opaque #GstTagList data structure."
+            glib:type-name="GstTagList"
+            glib:get-type="gst_tag_list_get_type">
+      <constructor name="new"
+                   c:identifier="gst_tag_list_new"
+                   doc="Creates a new empty GstTagList.">
+        <return-value transfer-ownership="full">
+          <type name="TagList" c:type="GstTagList*"/>
+        </return-value>
+      </constructor>
+      <constructor name="new_full"
+                   c:identifier="gst_tag_list_new_full"
+                   doc="Creates a new taglist and appends the values for the given tags. It expects
+tag-value pairs like gst_tag_list_add(), and a NULL terminator after the
+last pair. The type of the values is implicit and is documented in the API
+reference, but can also be queried at runtime with gst_tag_get_type(). It
+is an error to pass a value of a type not matching the tag type into this
+function. The tag list will make copies of any arguments passed
+(e.g. strings, buffers).
+needed."
+                   version="0.10.24">
+        <return-value transfer-ownership="full" doc="when no longer">
+          <type name="TagList" c:type="GstTagList*"/>
+        </return-value>
+        <parameters>
+          <parameter name="tag" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter transfer-ownership="none">
+            <varargs>
+            </varargs>
+          </parameter>
+        </parameters>
+      </constructor>
+      <method name="copy"
+              c:identifier="gst_tag_list_copy"
+              doc="Copies a given #GstTagList.">
+        <return-value transfer-ownership="full">
+          <type name="TagList" c:type="GstTagList*"/>
+        </return-value>
+      </method>
+      <method name="is_empty"
+              c:identifier="gst_tag_list_is_empty"
+              doc="Checks if the given taglist is empty."
+              version="0.10.11">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+      </method>
+      <method name="insert"
+              c:identifier="gst_tag_list_insert"
+              doc="Inserts the tags of the @from list into the first list using the given mode.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="from" transfer-ownership="none">
+            <type name="TagList" c:type="GstTagList*"/>
+          </parameter>
+          <parameter name="mode" transfer-ownership="none">
+            <type name="TagMergeMode" c:type="GstTagMergeMode"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="merge"
+              c:identifier="gst_tag_list_merge"
+              doc="Merges the two given lists into a new list. If one of the lists is NULL, a
+copy of the other is returned. If both lists are NULL, NULL is returned.">
+        <return-value transfer-ownership="full">
+          <type name="TagList" c:type="GstTagList*"/>
+        </return-value>
+        <parameters>
+          <parameter name="list2" transfer-ownership="none">
+            <type name="TagList" c:type="GstTagList*"/>
+          </parameter>
+          <parameter name="mode" transfer-ownership="none">
+            <type name="TagMergeMode" c:type="GstTagMergeMode"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="free"
+              c:identifier="gst_tag_list_free"
+              doc="Frees the given list and all associated values.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </method>
+      <method name="get_tag_size"
+              c:identifier="gst_tag_list_get_tag_size"
+              doc="Checks how many value are stored in this tag list for the given tag.">
+        <return-value transfer-ownership="none">
+          <type name="uint" c:type="guint"/>
+        </return-value>
+        <parameters>
+          <parameter name="tag" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="add"
+              c:identifier="gst_tag_list_add"
+              doc="Sets the values for the given tags using the specified mode.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="mode" transfer-ownership="none">
+            <type name="TagMergeMode" c:type="GstTagMergeMode"/>
+          </parameter>
+          <parameter name="tag" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter transfer-ownership="none">
+            <varargs>
+            </varargs>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="add_values"
+              c:identifier="gst_tag_list_add_values"
+              doc="Sets the GValues for the given tags using the specified mode.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="mode" transfer-ownership="none">
+            <type name="TagMergeMode" c:type="GstTagMergeMode"/>
+          </parameter>
+          <parameter name="tag" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter transfer-ownership="none">
+            <varargs>
+            </varargs>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="add_value"
+              c:identifier="gst_tag_list_add_value"
+              doc="Sets the GValue for a given tag using the specified mode."
+              version="0.10.24">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="mode" transfer-ownership="none">
+            <type name="TagMergeMode" c:type="GstTagMergeMode"/>
+          </parameter>
+          <parameter name="tag" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="value" transfer-ownership="none">
+            <type name="GObject.Value" c:type="GValue*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="remove_tag"
+              c:identifier="gst_tag_list_remove_tag"
+              doc="Removes the given tag from the taglist.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="tag" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="foreach"
+              c:identifier="gst_tag_list_foreach"
+              doc="Calls the given function for each tag inside the tag list. Note that if there
+is no tag, the function won&apos;t be called at all.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="func"
+                     transfer-ownership="none"
+                     scope="call"
+                     closure="2">
+            <type name="TagForeachFunc" c:type="GstTagForeachFunc"/>
+          </parameter>
+          <parameter name="user_data" transfer-ownership="none">
+            <type name="any" c:type="gpointer"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_value_index"
+              c:identifier="gst_tag_list_get_value_index"
+              doc="Gets the value that is at the given index for the given tag in the given
+list.
+available or the tag doesn&apos;t have as many entries">
+        <return-value transfer-ownership="none">
+          <type name="GObject.Value" c:type="GValue*"/>
+        </return-value>
+        <parameters>
+          <parameter name="tag" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="index" transfer-ownership="none">
+            <type name="uint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_char"
+              c:identifier="gst_tag_list_get_char"
+              doc="Copies the contents for the given tag into the value, merging multiple values
+into one if multiple values are associated with the tag.
+given list.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="tag" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="value" transfer-ownership="full">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_char_index"
+              c:identifier="gst_tag_list_get_char_index"
+              doc="Gets the value that is at the given index for the given tag in the given
+list.
+given list.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="tag" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="index" transfer-ownership="none">
+            <type name="uint" c:type="guint"/>
+          </parameter>
+          <parameter name="value" transfer-ownership="full">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_uchar"
+              c:identifier="gst_tag_list_get_uchar"
+              doc="Copies the contents for the given tag into the value, merging multiple values
+into one if multiple values are associated with the tag.
+given list.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="tag" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="value" transfer-ownership="none">
+            <array c:type="guchar*">
+              <type name="uint8"/>
+            </array>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_uchar_index"
+              c:identifier="gst_tag_list_get_uchar_index"
+              doc="Gets the value that is at the given index for the given tag in the given
+list.
+given list.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="tag" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="index" transfer-ownership="none">
+            <type name="uint" c:type="guint"/>
+          </parameter>
+          <parameter name="value" transfer-ownership="none">
+            <array c:type="guchar*">
+              <type name="uint8"/>
+            </array>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_boolean"
+              c:identifier="gst_tag_list_get_boolean"
+              doc="Copies the contents for the given tag into the value, merging multiple values
+into one if multiple values are associated with the tag.
+given list.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="tag" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="value" direction="out" transfer-ownership="full">
+            <type name="boolean" c:type="gboolean*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_boolean_index"
+              c:identifier="gst_tag_list_get_boolean_index"
+              doc="Gets the value that is at the given index for the given tag in the given
+list.
+given list.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="tag" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="index" transfer-ownership="none">
+            <type name="uint" c:type="guint"/>
+          </parameter>
+          <parameter name="value" direction="out" transfer-ownership="full">
+            <type name="boolean" c:type="gboolean*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_int"
+              c:identifier="gst_tag_list_get_int"
+              doc="Copies the contents for the given tag into the value, merging multiple values
+into one if multiple values are associated with the tag.
+given list.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="tag" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="value" direction="out" transfer-ownership="full">
+            <type name="int" c:type="gint*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_int_index"
+              c:identifier="gst_tag_list_get_int_index"
+              doc="Gets the value that is at the given index for the given tag in the given
+list.
+given list.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="tag" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="index" transfer-ownership="none">
+            <type name="uint" c:type="guint"/>
+          </parameter>
+          <parameter name="value" direction="out" transfer-ownership="full">
+            <type name="int" c:type="gint*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_uint"
+              c:identifier="gst_tag_list_get_uint"
+              doc="Copies the contents for the given tag into the value, merging multiple values
+into one if multiple values are associated with the tag.
+given list.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="tag" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="value" direction="out" transfer-ownership="full">
+            <type name="uint" c:type="guint*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_uint_index"
+              c:identifier="gst_tag_list_get_uint_index"
+              doc="Gets the value that is at the given index for the given tag in the given
+list.
+given list.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="tag" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="index" transfer-ownership="none">
+            <type name="uint" c:type="guint"/>
+          </parameter>
+          <parameter name="value" direction="out" transfer-ownership="full">
+            <type name="uint" c:type="guint*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_long"
+              c:identifier="gst_tag_list_get_long"
+              doc="Copies the contents for the given tag into the value, merging multiple values
+into one if multiple values are associated with the tag.
+given list.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="tag" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="value" direction="out" transfer-ownership="full">
+            <type name="long" c:type="glong*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_long_index"
+              c:identifier="gst_tag_list_get_long_index"
+              doc="Gets the value that is at the given index for the given tag in the given
+list.
+given list.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="tag" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="index" transfer-ownership="none">
+            <type name="uint" c:type="guint"/>
+          </parameter>
+          <parameter name="value" direction="out" transfer-ownership="full">
+            <type name="long" c:type="glong*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_ulong"
+              c:identifier="gst_tag_list_get_ulong"
+              doc="Copies the contents for the given tag into the value, merging multiple values
+into one if multiple values are associated with the tag.
+given list.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="tag" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="value" direction="out" transfer-ownership="full">
+            <type name="ulong" c:type="gulong*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_ulong_index"
+              c:identifier="gst_tag_list_get_ulong_index"
+              doc="Gets the value that is at the given index for the given tag in the given
+list.
+given list.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="tag" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="index" transfer-ownership="none">
+            <type name="uint" c:type="guint"/>
+          </parameter>
+          <parameter name="value" direction="out" transfer-ownership="full">
+            <type name="ulong" c:type="gulong*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_int64"
+              c:identifier="gst_tag_list_get_int64"
+              doc="Copies the contents for the given tag into the value, merging multiple values
+into one if multiple values are associated with the tag.
+given list.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="tag" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="value" direction="out" transfer-ownership="full">
+            <type name="int64" c:type="gint64*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_int64_index"
+              c:identifier="gst_tag_list_get_int64_index"
+              doc="Gets the value that is at the given index for the given tag in the given
+list.
+given list.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="tag" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="index" transfer-ownership="none">
+            <type name="uint" c:type="guint"/>
+          </parameter>
+          <parameter name="value" direction="out" transfer-ownership="full">
+            <type name="int64" c:type="gint64*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_uint64"
+              c:identifier="gst_tag_list_get_uint64"
+              doc="Copies the contents for the given tag into the value, merging multiple values
+into one if multiple values are associated with the tag.
+given list.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="tag" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="value" direction="out" transfer-ownership="full">
+            <type name="uint64" c:type="guint64*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_uint64_index"
+              c:identifier="gst_tag_list_get_uint64_index"
+              doc="Gets the value that is at the given index for the given tag in the given
+list.
+given list.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="tag" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="index" transfer-ownership="none">
+            <type name="uint" c:type="guint"/>
+          </parameter>
+          <parameter name="value" direction="out" transfer-ownership="full">
+            <type name="uint64" c:type="guint64*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_float"
+              c:identifier="gst_tag_list_get_float"
+              doc="Copies the contents for the given tag into the value, merging multiple values
+into one if multiple values are associated with the tag.
+given list.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="tag" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="value" direction="out" transfer-ownership="full">
+            <type name="float" c:type="gfloat*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_float_index"
+              c:identifier="gst_tag_list_get_float_index"
+              doc="Gets the value that is at the given index for the given tag in the given
+list.
+given list.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="tag" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="index" transfer-ownership="none">
+            <type name="uint" c:type="guint"/>
+          </parameter>
+          <parameter name="value" direction="out" transfer-ownership="full">
+            <type name="float" c:type="gfloat*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_double"
+              c:identifier="gst_tag_list_get_double"
+              doc="Copies the contents for the given tag into the value, merging multiple values
+into one if multiple values are associated with the tag.
+given list.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="tag" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="value" direction="out" transfer-ownership="full">
+            <type name="double" c:type="gdouble*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_double_index"
+              c:identifier="gst_tag_list_get_double_index"
+              doc="Gets the value that is at the given index for the given tag in the given
+list.
+given list.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="tag" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="index" transfer-ownership="none">
+            <type name="uint" c:type="guint"/>
+          </parameter>
+          <parameter name="value" direction="out" transfer-ownership="full">
+            <type name="double" c:type="gdouble*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_string"
+              c:identifier="gst_tag_list_get_string"
+              doc="Copies the contents for the given tag into the value, possibly merging
+multiple values into one if multiple values are associated with the tag.
+Use gst_tag_list_get_string_index (list, tag, 0, value) if you want
+to retrieve the first string associated with this tag unmodified.
+The resulting string in @value will be in UTF-8 encoding and should be
+freed by the caller using g_free when no longer needed. Since 0.10.24 the
+returned string is also guaranteed to be non-NULL and non-empty.
+given list.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="tag" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="value" transfer-ownership="none">
+            <array c:type="gchar**">
+              <type name="utf8"/>
+            </array>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_string_index"
+              c:identifier="gst_tag_list_get_string_index"
+              doc="Gets the value that is at the given index for the given tag in the given
+list.
+The resulting string in @value will be in UTF-8 encoding and should be
+freed by the caller using g_free when no longer needed. Since 0.10.24 the
+returned string is also guaranteed to be non-NULL and non-empty.
+given list.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="tag" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="index" transfer-ownership="none">
+            <type name="uint" c:type="guint"/>
+          </parameter>
+          <parameter name="value" transfer-ownership="none">
+            <array c:type="gchar**">
+              <type name="utf8"/>
+            </array>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_pointer"
+              c:identifier="gst_tag_list_get_pointer"
+              doc="Copies the contents for the given tag into the value, merging multiple values
+into one if multiple values are associated with the tag.
+given list.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="tag" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="value" transfer-ownership="none">
+            <type name="any" c:type="gpointer*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_pointer_index"
+              c:identifier="gst_tag_list_get_pointer_index"
+              doc="Gets the value that is at the given index for the given tag in the given
+list.
+given list.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="tag" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="index" transfer-ownership="none">
+            <type name="uint" c:type="guint"/>
+          </parameter>
+          <parameter name="value" transfer-ownership="none">
+            <type name="any" c:type="gpointer*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_date"
+              c:identifier="gst_tag_list_get_date"
+              doc="Copies the first date for the given tag in the taglist into the variable
+pointed to by @value. Free the date with g_date_free() when it is no longer
+needed.
+given list or if it was #NULL.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="tag" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="value" transfer-ownership="none">
+            <type name="GLib.Date" c:type="GDate**"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_date_index"
+              c:identifier="gst_tag_list_get_date_index"
+              doc="Gets the date that is at the given index for the given tag in the given
+list and copies it into the variable pointed to by @value. Free the date
+with g_date_free() when it is no longer needed.
+given list or if it was #NULL.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="tag" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="index" transfer-ownership="none">
+            <type name="uint" c:type="guint"/>
+          </parameter>
+          <parameter name="value" transfer-ownership="none">
+            <type name="GLib.Date" c:type="GDate**"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_buffer"
+              c:identifier="gst_tag_list_get_buffer"
+              doc="Copies the first buffer for the given tag in the taglist into the variable
+pointed to by @value. Free the buffer with gst_buffer_unref() when it is
+no longer needed.
+given list or if it was #NULL."
+              version="0.10.23">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="tag" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="value" transfer-ownership="none">
+            <type name="Buffer" c:type="GstBuffer**"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_buffer_index"
+              c:identifier="gst_tag_list_get_buffer_index"
+              doc="Gets the buffer that is at the given index for the given tag in the given
+list and copies it into the variable pointed to by @value. Free the buffer
+with gst_buffer_unref() when it is no longer needed.
+given list or if it was #NULL."
+              version="0.10.23">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="tag" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="index" transfer-ownership="none">
+            <type name="uint" c:type="guint"/>
+          </parameter>
+          <parameter name="value" transfer-ownership="none">
+            <type name="Buffer" c:type="GstBuffer**"/>
+          </parameter>
+        </parameters>
+      </method>
+    </record>
+    <callback name="TagMergeFunc"
+              c:type="GstTagMergeFunc"
+              doc="A function for merging multiple values of a tag used when registering
+tags.">
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="dest" transfer-ownership="none">
+          <type name="GObject.Value" c:type="GValue*"/>
+        </parameter>
+        <parameter name="src" transfer-ownership="none">
+          <type name="GObject.Value" c:type="GValue*"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <enumeration name="TagMergeMode"
+                 doc="The different tag merging modes are basically replace, overwrite and append,
+already in the element and (B) the ones that are supplied to the element (
+e.g. via gst_tag_setter_merge_tags() / gst_tag_setter_add_tags() or a
+%GST_EVENT_TAG), how are these tags merged?
+In the table below this is shown for the cases that a tag exists in the list
+(A) or does not exists (!A) and combinations thereof.
+&lt;table frame=&quot;all&quot; colsep=&quot;1&quot; rowsep=&quot;1&quot;&gt;
+&lt;title&gt;merge mode&lt;/title&gt;
+&lt;tgroup cols=&apos;5&apos; align=&apos;left&apos;&gt;
+&lt;thead&gt;
+&lt;row&gt;
+&lt;entry&gt;merge mode&lt;/entry&gt;
+&lt;entry&gt;A + B&lt;/entry&gt;
+&lt;entry&gt;A + !B&lt;/entry&gt;
+&lt;entry&gt;!A + B&lt;/entry&gt;
+&lt;entry&gt;!A + !B&lt;/entry&gt;
+&lt;/row&gt;
+&lt;/thead&gt;
+&lt;tbody&gt;
+&lt;row&gt;
+&lt;entry&gt;REPLACE_ALL&lt;/entry&gt;
+&lt;entry&gt;B&lt;/entry&gt;
+&lt;entry&gt;-&lt;/entry&gt;
+&lt;entry&gt;B&lt;/entry&gt;
+&lt;entry&gt;-&lt;/entry&gt;
+&lt;/row&gt;
+&lt;row&gt;
+&lt;entry&gt;REPLACE&lt;/entry&gt;
+&lt;entry&gt;B&lt;/entry&gt;
+&lt;entry&gt;A&lt;/entry&gt;
+&lt;entry&gt;B&lt;/entry&gt;
+&lt;entry&gt;-&lt;/entry&gt;
+&lt;/row&gt;
+&lt;row&gt;
+&lt;entry&gt;APPEND&lt;/entry&gt;
+&lt;entry&gt;A, B&lt;/entry&gt;
+&lt;entry&gt;A&lt;/entry&gt;
+&lt;entry&gt;B&lt;/entry&gt;
+&lt;entry&gt;-&lt;/entry&gt;
+&lt;/row&gt;
+&lt;row&gt;
+&lt;entry&gt;PREPEND&lt;/entry&gt;
+&lt;entry&gt;B, A&lt;/entry&gt;
+&lt;entry&gt;A&lt;/entry&gt;
+&lt;entry&gt;B&lt;/entry&gt;
+&lt;entry&gt;-&lt;/entry&gt;
+&lt;/row&gt;
+&lt;row&gt;
+&lt;entry&gt;KEEP&lt;/entry&gt;
+&lt;entry&gt;A&lt;/entry&gt;
+&lt;entry&gt;A&lt;/entry&gt;
+&lt;entry&gt;B&lt;/entry&gt;
+&lt;entry&gt;-&lt;/entry&gt;
+&lt;/row&gt;
+&lt;row&gt;
+&lt;entry&gt;KEEP_ALL&lt;/entry&gt;
+&lt;entry&gt;A&lt;/entry&gt;
+&lt;entry&gt;A&lt;/entry&gt;
+&lt;entry&gt;-&lt;/entry&gt;
+&lt;entry&gt;-&lt;/entry&gt;
+&lt;/row&gt;
+&lt;/tbody&gt;
+&lt;/tgroup&gt;
+&lt;/table&gt;"
+                 c:type="GstTagMergeMode">
+      <member name="undefined"
+              value="0"
+              c:identifier="GST_TAG_MERGE_UNDEFINED"/>
+      <member name="replace_all"
+              value="1"
+              c:identifier="GST_TAG_MERGE_REPLACE_ALL"/>
+      <member name="replace" value="2" c:identifier="GST_TAG_MERGE_REPLACE"/>
+      <member name="append" value="3" c:identifier="GST_TAG_MERGE_APPEND"/>
+      <member name="prepend" value="4" c:identifier="GST_TAG_MERGE_PREPEND"/>
+      <member name="keep" value="5" c:identifier="GST_TAG_MERGE_KEEP"/>
+      <member name="keep_all" value="6" c:identifier="GST_TAG_MERGE_KEEP_ALL"/>
+      <member name="count" value="7" c:identifier="GST_TAG_MERGE_COUNT"/>
+    </enumeration>
+    <interface name="TagSetter"
+               c:type="GstTagSetter"
+               doc="Opaque #GstTagSetter data structure."
+               glib:type-name="GstTagSetter"
+               glib:get-type="gst_tag_setter_get_type">
+      <prerequisite name="Element"/>
+      <method name="reset_tags"
+              c:identifier="gst_tag_setter_reset_tags"
+              doc="Reset the internal taglist. Elements should call this from within the
+state-change handler."
+              version="0.10.22">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </method>
+      <method name="merge_tags"
+              c:identifier="gst_tag_setter_merge_tags"
+              doc="Merges the given list into the setter&apos;s list using the given mode.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="list" transfer-ownership="none">
+            <type name="TagList" c:type="GstTagList*"/>
+          </parameter>
+          <parameter name="mode" transfer-ownership="none">
+            <type name="TagMergeMode" c:type="GstTagMergeMode"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="add_tags"
+              c:identifier="gst_tag_setter_add_tags"
+              doc="Adds the given tag / value pairs on the setter using the given merge mode.
+The list must be terminated with NULL.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="mode" transfer-ownership="none">
+            <type name="TagMergeMode" c:type="GstTagMergeMode"/>
+          </parameter>
+          <parameter name="tag" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter transfer-ownership="none">
+            <varargs>
+            </varargs>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="add_tag_values"
+              c:identifier="gst_tag_setter_add_tag_values"
+              doc="Adds the given tag / GValue pairs on the setter using the given merge mode.
+The list must be terminated with NULL.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="mode" transfer-ownership="none">
+            <type name="TagMergeMode" c:type="GstTagMergeMode"/>
+          </parameter>
+          <parameter name="tag" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter transfer-ownership="none">
+            <varargs>
+            </varargs>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="add_tag_value"
+              c:identifier="gst_tag_setter_add_tag_value"
+              doc="Adds the given tag / GValue pair on the setter using the given merge mode."
+              version="0.10.24">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="mode" transfer-ownership="none">
+            <type name="TagMergeMode" c:type="GstTagMergeMode"/>
+          </parameter>
+          <parameter name="tag" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="value" transfer-ownership="none">
+            <type name="GObject.Value" c:type="GValue*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_tag_list"
+              c:identifier="gst_tag_setter_get_tag_list"
+              doc="Returns the current list of tags the setter uses.  The list should not be
+modified or freed.
+or NULL if none is used.">
+        <return-value transfer-ownership="none">
+          <type name="TagList" c:type="GstTagList*"/>
+        </return-value>
+      </method>
+      <method name="set_tag_merge_mode"
+              c:identifier="gst_tag_setter_set_tag_merge_mode"
+              doc="Sets the given merge mode that is used for adding tags from events to tags
+specified by this interface. The default is #GST_TAG_MERGE_KEEP, which keeps
+the tags set with this interface and discards tags from events.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="mode" transfer-ownership="none">
+            <type name="TagMergeMode" c:type="GstTagMergeMode"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_tag_merge_mode"
+              c:identifier="gst_tag_setter_get_tag_merge_mode"
+              doc="Queries the mode by which tags inside the setter are overwritten by tags
+from events">
+        <return-value transfer-ownership="full">
+          <type name="TagMergeMode" c:type="GstTagMergeMode"/>
+        </return-value>
+      </method>
+    </interface>
+    <record name="TagSetterIFace"
+            c:type="GstTagSetterIFace"
+            doc="#GstTagSetterIFace interface.">
+      <field name="g_iface" writable="1">
+        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
+      </field>
+    </record>
+    <class name="Task"
+           c:type="GstTask"
+           doc="The #GstTask object."
+           parent="Object"
+           glib:type-name="GstTask"
+           glib:get-type="gst_task_get_type"
+           glib:type-struct="TaskClass">
+      <function name="cleanup_all"
+                c:identifier="gst_task_cleanup_all"
+                doc="Wait for all tasks to be stopped. This is mainly used internally
+to ensure proper cleanup of internal data structures in test suites.
+MT safe.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </function>
+      <function name="create"
+                c:identifier="gst_task_create"
+                doc="Create a new Task that will repeatedly call the provided @func
+with @data as a parameter. Typically the task will run in
+a new thread.
+The function cannot be changed after the task has been created. You
+must create a new #GstTask to change the function.
+This function will not yet create and start a thread. Use gst_task_start() or
+gst_task_pause() to create and start the GThread.
+Before the task can be used, a #GStaticRecMutex must be configured using the
+gst_task_set_lock() function. This lock will always be acquired while
+MT safe.">
+        <return-value transfer-ownership="full">
+          <type name="Task" c:type="GstTask*"/>
+        </return-value>
+        <parameters>
+          <parameter name="func"
+                     transfer-ownership="none"
+                     scope="call"
+                     closure="1">
+            <type name="TaskFunction" c:type="GstTaskFunction"/>
+          </parameter>
+          <parameter name="data" transfer-ownership="none">
+            <type name="any" c:type="gpointer"/>
+          </parameter>
+        </parameters>
+      </function>
+      <method name="set_lock"
+              c:identifier="gst_task_set_lock"
+              doc="Set the mutex used by the task. The mutex will be acquired before
+calling the #GstTaskFunction.
+This function has to be called before calling gst_task_pause() or
+gst_task_start().
+MT safe.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="mutex" transfer-ownership="none">
+            <type name="GLib.StaticRecMutex" c:type="GStaticRecMutex*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_priority"
+              c:identifier="gst_task_set_priority"
+              doc="Changes the priority of @task to @priority.
+MT safe."
+              version="0.10.24">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="priority" transfer-ownership="none">
+            <type name="GLib.ThreadPriority" c:type="GThreadPriority"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_pool"
+              c:identifier="gst_task_get_pool"
+              doc="Get the #GstTaskPool that this task will use for its streaming
+threads.
+MT safe.
+after usage."
+              version="0.10.24">
+        <return-value transfer-ownership="full">
+          <type name="TaskPool" c:type="GstTaskPool*"/>
+        </return-value>
+      </method>
+      <method name="set_pool"
+              c:identifier="gst_task_set_pool"
+              doc="Set @pool as the new GstTaskPool for @task. Any new streaming threads that
+will be created by @task will now use @pool.
+MT safe."
+              version="0.10.24">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="pool" transfer-ownership="none">
+            <type name="TaskPool" c:type="GstTaskPool*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_thread_callbacks"
+              c:identifier="gst_task_set_thread_callbacks"
+              doc="Set callbacks which will be executed when a new thread is needed, the thread
+function is entered and left and when the thread is joined.
+By default a thread for @task will be created from a default thread pool.
+Objects can use custom GThreads or can perform additional configuration of
+the threads (such as changing the thread priority) by installing callbacks.
+MT safe."
+              version="0.10.24">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="callbacks" transfer-ownership="none">
+            <type name="TaskThreadCallbacks" c:type="GstTaskThreadCallbacks*"/>
+          </parameter>
+          <parameter name="user_data" transfer-ownership="none">
+            <type name="any" c:type="gpointer"/>
+          </parameter>
+          <parameter name="notify" transfer-ownership="none" scope="call">
+            <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_state"
+              c:identifier="gst_task_get_state"
+              doc="Get the current state of the task.
+MT safe.">
+        <return-value transfer-ownership="full">
+          <type name="TaskState" c:type="GstTaskState"/>
+        </return-value>
+      </method>
+      <method name="set_state"
+              c:identifier="gst_task_set_state"
+              doc="Sets the state of @task to @state.
+The @task must have a lock associated with it using
+gst_task_set_lock() when going to GST_TASK_STARTED or GST_TASK_PAUSED or
+this function will return %FALSE.
+MT safe."
+              version="0.10.24">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="state" transfer-ownership="none">
+            <type name="TaskState" c:type="GstTaskState"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="start"
+              c:identifier="gst_task_start"
+              doc="Starts @task. The @task must have a lock associated with it using
+gst_task_set_lock() or this function will return %FALSE.
+MT safe.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+      </method>
+      <method name="stop"
+              c:identifier="gst_task_stop"
+              doc="Stops @task. This method merely schedules the task to stop and
+will not wait for the task to have completely stopped. Use
+gst_task_join() to stop and wait for completion.
+MT safe.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+      </method>
+      <method name="pause"
+              c:identifier="gst_task_pause"
+              doc="Pauses @task. This method can also be called on a task in the
+stopped state, in which case a thread will be started and will remain
+in the paused state. This function does not wait for the task to complete
+the paused state.
+MT safe.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+      </method>
+      <method name="join"
+              c:identifier="gst_task_join"
+              doc="Joins @task. After this call, it is safe to unref the task
+and clean up the lock set with gst_task_set_lock().
+The task will automatically be stopped with this call.
+This function cannot be called from within a task function as this
+would cause a deadlock. The function will detect this and print a
+g_warning.
+MT safe.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+      </method>
+      <field name="object">
+        <type name="Object" c:type="GstObject"/>
+      </field>
+      <field name="state">
+        <type name="TaskState" c:type="GstTaskState"/>
+      </field>
+      <field name="cond">
+        <type name="GLib.Cond" c:type="GCond*"/>
+      </field>
+      <field name="lock">
+        <type name="GLib.StaticRecMutex" c:type="GStaticRecMutex*"/>
+      </field>
+      <field name="func">
+        <type name="TaskFunction" c:type="GstTaskFunction"/>
+      </field>
+      <field name="data">
+        <type name="any" c:type="gpointer"/>
+      </field>
+      <field name="running">
+        <type name="boolean" c:type="gboolean"/>
+      </field>
+      <union name="abidata" c:type="abidata">
+        <record name="ABI" c:type="ABI">
+          <field name="thread" writable="1">
+            <type name="GLib.Thread" c:type="GThread*"/>
+          </field>
+        </record>
+        <field name="_gst_reserved" writable="1">
+          <array zero-terminated="0" c:type="gpointer" fixed-size="3">
+            <type name="any"/>
+          </array>
+        </field>
+      </union>
+      <field name="priv">
+        <type name="TaskPrivate" c:type="GstTaskPrivate*"/>
+      </field>
+    </class>
+    <record name="TaskClass"
+            c:type="GstTaskClass"
+            glib:is-gtype-struct-for="Task">
+      <field name="parent_class">
+        <type name="ObjectClass" c:type="GstObjectClass"/>
+      </field>
+      <field name="pool">
+        <type name="TaskPool" c:type="GstTaskPool*"/>
+      </field>
+      <field name="_gst_reserved">
+        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+          <type name="any"/>
+        </array>
+      </field>
+    </record>
+    <callback name="TaskFunction"
+              c:type="GstTaskFunction"
+              doc="A function that will repeatedly be called in the thread created by
+a #GstTask.">
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="data" transfer-ownership="none">
+          <type name="any" c:type="void*"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <class name="TaskPool"
+           c:type="GstTaskPool"
+           doc="The #GstTaskPool object."
+           parent="Object"
+           glib:type-name="GstTaskPool"
+           glib:get-type="gst_task_pool_get_type"
+           glib:type-struct="TaskPoolClass">
+      <constructor name="new"
+                   c:identifier="gst_task_pool_new"
+                   doc="Create a new default task pool. The default task pool will use a regular
+GThreadPool for threads."
+                   version="0.10.24">
+        <return-value transfer-ownership="full" doc="after usage.">
+          <type name="TaskPool" c:type="GstTaskPool*"/>
+        </return-value>
+      </constructor>
+      <virtual-method name="prepare" invoker="prepare" throws="1">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </virtual-method>
+      <virtual-method name="cleanup" invoker="cleanup">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </virtual-method>
+      <virtual-method name="push" invoker="push" throws="1">
+        <return-value transfer-ownership="none">
+          <type name="any" c:type="gpointer"/>
+        </return-value>
+        <parameters>
+          <parameter name="func" transfer-ownership="none">
+            <type name="TaskPoolFunction" c:type="GstTaskPoolFunction"/>
+          </parameter>
+          <parameter name="user_data" transfer-ownership="none" closure="2">
+            <type name="any" c:type="gpointer"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="join" invoker="join">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="id" transfer-ownership="none">
+            <type name="any" c:type="gpointer"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <method name="prepare"
+              c:identifier="gst_task_pool_prepare"
+              doc="Prepare the taskpool for accepting gst_task_pool_push() operations.
+MT safe."
+              version="0.10.24"
+              throws="1">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </method>
+      <method name="push"
+              c:identifier="gst_task_pool_push"
+              doc="Start the execution of a new thread from @pool.
+function. This pointer can be NULL, you must check @error to detect
+errors."
+              version="0.10.24"
+              throws="1">
+        <return-value transfer-ownership="none">
+          <type name="any" c:type="gpointer"/>
+        </return-value>
+        <parameters>
+          <parameter name="func"
+                     transfer-ownership="none"
+                     scope="call"
+                     closure="2">
+            <type name="TaskPoolFunction" c:type="GstTaskPoolFunction"/>
+          </parameter>
+          <parameter name="user_data" transfer-ownership="none">
+            <type name="any" c:type="gpointer"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="join"
+              c:identifier="gst_task_pool_join"
+              doc="Join a task and/or return it to the pool. @id is the id obtained from
+gst_task_pool_push()."
+              version="0.10.24">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="id" transfer-ownership="none">
+            <type name="any" c:type="gpointer"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="cleanup"
+              c:identifier="gst_task_pool_cleanup"
+              doc="Wait for all tasks to be stopped. This is mainly used internally
+to ensure proper cleanup of internal data structures in test suites.
+MT safe."
+              version="0.10.24">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </method>
+      <field name="object">
+        <type name="Object" c:type="GstObject"/>
+      </field>
+      <field name="pool">
+        <type name="GLib.ThreadPool" c:type="GThreadPool*"/>
+      </field>
+      <field name="_gst_reserved">
+        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+          <type name="any"/>
+        </array>
+      </field>
+    </class>
+    <record name="TaskPoolClass"
+            c:type="GstTaskPoolClass"
+            glib:is-gtype-struct-for="TaskPool"
+            doc="The #GstTaskPoolClass object.">
+      <field name="parent_class">
+        <type name="ObjectClass" c:type="GstObjectClass"/>
+      </field>
+      <field name="prepare">
+        <callback name="prepare" c:type="prepare" throws="1">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="pool" transfer-ownership="none">
+              <type name="TaskPool" c:type="GstTaskPool*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="cleanup">
+        <callback name="cleanup" c:type="cleanup">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="pool" transfer-ownership="none">
+              <type name="TaskPool" c:type="GstTaskPool*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="push">
+        <callback name="push" c:type="push" throws="1">
+          <return-value transfer-ownership="none">
+            <type name="any" c:type="gpointer"/>
+          </return-value>
+          <parameters>
+            <parameter name="pool" transfer-ownership="none">
+              <type name="TaskPool" c:type="GstTaskPool*"/>
+            </parameter>
+            <parameter name="func" transfer-ownership="none">
+              <type name="TaskPoolFunction" c:type="GstTaskPoolFunction"/>
+            </parameter>
+            <parameter name="user_data" transfer-ownership="none" closure="2">
+              <type name="any" c:type="gpointer"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="join">
+        <callback name="join" c:type="join">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="pool" transfer-ownership="none">
+              <type name="TaskPool" c:type="GstTaskPool*"/>
+            </parameter>
+            <parameter name="id" transfer-ownership="none">
+              <type name="any" c:type="gpointer"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="_gst_reserved">
+        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+          <type name="any"/>
+        </array>
+      </field>
+    </record>
+    <callback name="TaskPoolFunction"
+              c:type="GstTaskPoolFunction"
+              doc="Task function, see gst_task_pool_push()."
+              version="0.10.24">
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="data" transfer-ownership="none">
+          <type name="any" c:type="void*"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <record name="TaskPrivate" c:type="GstTaskPrivate">
+    </record>
+    <enumeration name="TaskState"
+                 doc="The different states a task can be in"
+                 c:type="GstTaskState">
+      <member name="started" value="0" c:identifier="GST_TASK_STARTED"/>
+      <member name="stopped" value="1" c:identifier="GST_TASK_STOPPED"/>
+      <member name="paused" value="2" c:identifier="GST_TASK_PAUSED"/>
+    </enumeration>
+    <record name="TaskThreadCallbacks"
+            c:type="GstTaskThreadCallbacks"
+            doc="thread enters its function.
+to leave its function
+Custom GstTask thread callback functions that can be installed."
+            version="0.10.24">
+      <field name="enter_thread">
+        <type name="any" c:type="pointer"/>
+      </field>
+      <field name="leave_thread">
+        <type name="any" c:type="pointer"/>
+      </field>
+      <field name="_gst_reserved" writable="1">
+        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+          <type name="any"/>
+        </array>
+      </field>
+    </record>
+    <record name="Trace" c:type="GstTrace" doc="Opaque #GstTrace structure.">
+      <field name="filename" writable="1">
+        <type name="utf8" c:type="gchar*"/>
+      </field>
+      <field name="fd" writable="1">
+        <type name="int" c:type="int"/>
+      </field>
+      <field name="buf" writable="1">
+        <type name="TraceEntry" c:type="GstTraceEntry*"/>
+      </field>
+      <field name="bufsize" writable="1">
+        <type name="int" c:type="gint"/>
+      </field>
+      <field name="bufoffset" writable="1">
+        <type name="int" c:type="gint"/>
+      </field>
+      <constructor name="new"
+                   c:identifier="gst_trace_new"
+                   doc="Create a ringbuffer of @size in the file with @filename to
+store trace results in.">
+        <return-value transfer-ownership="full">
+          <type name="Trace" c:type="GstTrace*"/>
+        </return-value>
+        <parameters>
+          <parameter name="filename" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="size" transfer-ownership="none">
+            <type name="int" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <method name="destroy"
+              c:identifier="gst_trace_destroy"
+              doc="Flush an close the previously allocated @trace.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </method>
+      <method name="flush"
+              c:identifier="gst_trace_flush"
+              doc="Flush any pending trace entries in @trace to the trace file.
+flushed.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </method>
+      <method name="text_flush"
+              c:identifier="gst_trace_text_flush"
+              doc="Flush any pending trace entries in @trace to the trace file,
+formatted as a text line with timestamp and sequence numbers.
+flushed.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </method>
+      <method name="set_default"
+              c:identifier="gst_trace_set_default"
+              doc="Set the default #GstTrace to @trace.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </method>
+    </record>
+    <record name="TraceEntry" c:type="GstTraceEntry">
+      <field name="timestamp" writable="1">
+        <type name="int64" c:type="gint64"/>
+      </field>
+      <field name="sequence" writable="1">
+        <type name="uint32" c:type="guint32"/>
+      </field>
+      <field name="data" writable="1">
+        <type name="uint32" c:type="guint32"/>
+      </field>
+      <field name="message" writable="1">
+        <array zero-terminated="0" c:type="gchar" fixed-size="112">
+          <type name="int8"/>
+        </array>
+      </field>
+    </record>
+    <record name="TypeFind"
+            c:type="GstTypeFind"
+            doc="Object that stores typefind callbacks. To use with #GstTypeFindFactory.">
+      <field name="peek">
+        <type name="any" c:type="pointer"/>
+      </field>
+      <field name="suggest">
+        <type name="any" c:type="pointer"/>
+      </field>
+      <field name="data" writable="1">
+        <type name="any" c:type="gpointer"/>
+      </field>
+      <field name="get_length">
+        <type name="any" c:type="pointer"/>
+      </field>
+      <field name="_gst_reserved" writable="1">
+        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+          <type name="any"/>
+        </array>
+      </field>
+      <method name="peek"
+              c:identifier="gst_type_find_peek"
+              doc="Returns the @size bytes of the stream to identify beginning at offset. If
+offset is a positive number, the offset is relative to the beginning of the
+stream, if offset is a negative number the offset is relative to the end of
+the stream. The returned memory is valid until the typefinding function
+returns and must not be freed.">
+        <return-value transfer-ownership="full">
+          <array c:type="guint8*">
+            <type name="uint8"/>
+          </array>
+        </return-value>
+        <parameters>
+          <parameter name="offset" transfer-ownership="none">
+            <type name="int64" c:type="gint64"/>
+          </parameter>
+          <parameter name="size" transfer-ownership="none">
+            <type name="uint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="suggest"
+              c:identifier="gst_type_find_suggest"
+              doc="If a #GstTypeFindFunction calls this function it suggests the caps with the
+given probability. A #GstTypeFindFunction may supply different suggestions
+in one call.
+It is up to the caller of the #GstTypeFindFunction to interpret these values.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="probability" transfer-ownership="none">
+            <type name="uint" c:type="guint"/>
+          </parameter>
+          <parameter name="caps" transfer-ownership="none">
+            <type name="Caps" c:type="GstCaps*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="suggest_simple"
+              c:identifier="gst_type_find_suggest_simple"
+              doc="arguments passed to gst_structure_new() (ie. triplets of field name,
+field GType and field value)
+If a #GstTypeFindFunction calls this function it suggests the caps with the
+given probability. A #GstTypeFindFunction may supply different suggestions
+in one call. It is up to the caller of the #GstTypeFindFunction to interpret
+these values.
+This function is similar to gst_type_find_suggest(), only that instead of
+passing a #GstCaps argument you can create the caps on the fly in the same
+way as you can with gst_caps_new_simple().
+Make sure you terminate the list of arguments with a NULL argument and that
+the values passed have the correct type (in terms of width in bytes when
+passed to the vararg function - this applies particularly to gdouble and
+guint64 arguments)."
+              version="0.10.20">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="probability" transfer-ownership="none">
+            <type name="uint" c:type="guint"/>
+          </parameter>
+          <parameter name="media_type" transfer-ownership="none">
+            <type name="utf8" c:type="char*"/>
+          </parameter>
+          <parameter name="fieldname" transfer-ownership="none">
+            <type name="utf8" c:type="char*"/>
+          </parameter>
+          <parameter transfer-ownership="none">
+            <varargs>
+            </varargs>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_length"
+              c:identifier="gst_type_find_get_length"
+              doc="Get the length of the data stream.">
+        <return-value transfer-ownership="none">
+          <type name="uint64" c:type="guint64"/>
+        </return-value>
+      </method>
+    </record>
+    <class name="TypeFindFactory"
+           c:type="GstTypeFindFactory"
+           doc="Object that stores information about a typefind function."
+           parent="PluginFeature"
+           glib:type-name="GstTypeFindFactory"
+           glib:get-type="gst_type_find_factory_get_type"
+           glib:type-struct="TypeFindFactoryClass">
+      <function name="get_list"
+                c:identifier="gst_type_find_factory_get_list"
+                doc="Gets the list of all registered typefind factories. You must free the
+list using gst_plugin_feature_list_free.
+The returned factories are sorted by highest rank first, and then by
+factory name. (behaviour change since 0.10.26)">
+        <return-value transfer-ownership="full">
+          <type name="GLib.List" c:type="GList*"/>
+        </return-value>
+      </function>
+      <method name="get_extensions"
+              c:identifier="gst_type_find_factory_get_extensions"
+              doc="Gets the extensions associated with a #GstTypeFindFactory. The returned
+array should not be changed. If you need to change stuff in it, you should
+copy it using g_strdupv().  This function may return NULL to indicate
+a 0-length list.">
+        <return-value transfer-ownership="full">
+          <array c:type="gchar**">
+            <type name="utf8"/>
+          </array>
+        </return-value>
+      </method>
+      <method name="get_caps"
+              c:identifier="gst_type_find_factory_get_caps"
+              doc="Gets the #GstCaps associated with a typefind factory.">
+        <return-value transfer-ownership="full">
+          <type name="Caps" c:type="GstCaps*"/>
+        </return-value>
+      </method>
+      <method name="call_function"
+              c:identifier="gst_type_find_factory_call_function"
+              doc="members must be set.
+Calls the #GstTypeFindFunction associated with this factory.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="find" transfer-ownership="none">
+            <type name="TypeFind" c:type="GstTypeFind*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <field name="feature">
+        <type name="PluginFeature" c:type="GstPluginFeature"/>
+      </field>
+      <field name="function">
+        <type name="TypeFindFunction" c:type="GstTypeFindFunction"/>
+      </field>
+      <field name="extensions">
+        <type name="utf8" c:type="gchar**"/>
+      </field>
+      <field name="caps">
+        <type name="Caps" c:type="GstCaps*"/>
+      </field>
+      <field name="user_data">
+        <type name="any" c:type="gpointer"/>
+      </field>
+      <field name="user_data_notify">
+        <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
+      </field>
+      <field name="_gst_reserved">
+        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+          <type name="any"/>
+        </array>
+      </field>
+    </class>
+    <record name="TypeFindFactoryClass"
+            c:type="GstTypeFindFactoryClass"
+            glib:is-gtype-struct-for="TypeFindFactory">
+      <field name="parent">
+        <type name="PluginFeatureClass" c:type="GstPluginFeatureClass"/>
+      </field>
+      <field name="_gst_reserved">
+        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+          <type name="any"/>
+        </array>
+      </field>
+    </record>
+    <callback name="TypeFindFunction"
+              c:type="GstTypeFindFunction"
+              doc="A function that will be called by typefinding.">
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="find" transfer-ownership="none">
+          <type name="TypeFind" c:type="GstTypeFind*"/>
+        </parameter>
+        <parameter name="data" transfer-ownership="none">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <enumeration name="TypeFindProbability"
+                 doc="The probability of the typefind function. Higher values have more certainty
+in doing a reliable typefind."
+                 c:type="GstTypeFindProbability">
+      <member name="minimum" value="1" c:identifier="GST_TYPE_FIND_MINIMUM"/>
+      <member name="possible"
+              value="50"
+              c:identifier="GST_TYPE_FIND_POSSIBLE"/>
+      <member name="likely" value="80" c:identifier="GST_TYPE_FIND_LIKELY"/>
+      <member name="nearly_certain"
+              value="99"
+              c:identifier="GST_TYPE_FIND_NEARLY_CERTAIN"/>
+      <member name="maximum" value="100" c:identifier="GST_TYPE_FIND_MAXIMUM"/>
+    </enumeration>
+    <record name="TypeNameData"
+            c:type="GstTypeNameData"
+            doc="Structure used for filtering based on @name and @type.">
+      <field name="name" writable="1">
+        <type name="utf8" c:type="gchar*"/>
+      </field>
+      <field name="type" writable="1">
+        <type name="GType" c:type="GType"/>
+      </field>
+    </record>
+    <interface name="URIHandler"
+               c:type="GstURIHandler"
+               doc="Opaque #GstURIHandler structure."
+               glib:type-name="GstURIHandler"
+               glib:get-type="gst_uri_handler_get_type"
+               glib:type-struct="URIHandlerInterface">
+      <virtual-method name="get_uri" invoker="get_uri">
+        <return-value transfer-ownership="none">
+          <type name="utf8" c:type="gchar*"/>
+        </return-value>
+      </virtual-method>
+      <virtual-method name="set_uri" invoker="set_uri">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="uri" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <method name="get_uri_type"
+              c:identifier="gst_uri_handler_get_uri_type"
+              doc="Gets the type of the given URI handler
+Returns #GST_URI_UNKNOWN if the @handler isn&apos;t implemented correctly.">
+        <return-value transfer-ownership="none">
+          <type name="uint" c:type="guint"/>
+        </return-value>
+      </method>
+      <method name="get_protocols"
+              c:identifier="gst_uri_handler_get_protocols"
+              doc="Gets the list of protocols supported by @handler. This list may not be
+modified.
+Returns NULL if the @handler isn&apos;t implemented properly, or the @handler
+doesn&apos;t support any protocols.">
+        <return-value transfer-ownership="full">
+          <array c:type="gchar**">
+            <type name="utf8"/>
+          </array>
+        </return-value>
+      </method>
+      <method name="get_uri"
+              c:identifier="gst_uri_handler_get_uri"
+              doc="Gets the currently handled URI.
+Returns NULL if there are no URI currently handled. The returned
+string must not be modified or freed.">
+        <return-value transfer-ownership="none">
+          <type name="utf8" c:type="gchar*"/>
+        </return-value>
+      </method>
+      <method name="set_uri"
+              c:identifier="gst_uri_handler_set_uri"
+              doc="Tries to set the URI of the given handler.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="uri" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="new_uri"
+              c:identifier="gst_uri_handler_new_uri"
+              doc="Emits the new-uri signal for a given handler, when that handler has a new URI.
+This function should only be called by URI handlers themselves.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="uri" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <glib:signal name="new-uri"
+                   doc="The URI of the given @handler has changed.">
+        <return-value transfer-ownership="full">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="uri" transfer-ownership="none">
+            <type name="utf8" c:type="gchararray"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+    </interface>
+    <record name="URIHandlerInterface"
+            c:type="GstURIHandlerInterface"
+            glib:is-gtype-struct-for="URIHandler"
+            doc="This is for use by bindings that need to pass context when creating a URI
+Handler. If implemented, get_protocols will be used in preference to
+Any #GstElement using this interface should implement these methods.">
+      <field name="parent">
+        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
+      </field>
+      <field name="new_uri">
+        <callback name="new_uri" c:type="new_uri">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="handler" transfer-ownership="none">
+              <type name="URIHandler" c:type="GstURIHandler*"/>
+            </parameter>
+            <parameter name="uri" transfer-ownership="none">
+              <type name="utf8" c:type="gchar*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="get_type">
+        <callback name="get_type" c:type="get_type">
+          <return-value transfer-ownership="full">
+            <type name="URIType" c:type="GstURIType"/>
+          </return-value>
+        </callback>
+      </field>
+      <field name="get_protocols">
+        <callback name="get_protocols" c:type="get_protocols">
+          <return-value transfer-ownership="full">
+            <array c:type="gchar**">
+              <type name="utf8"/>
+            </array>
+          </return-value>
+        </callback>
+      </field>
+      <field name="get_uri">
+        <callback name="get_uri" c:type="get_uri">
+          <return-value transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </return-value>
+          <parameters>
+            <parameter name="handler" transfer-ownership="none">
+              <type name="URIHandler" c:type="GstURIHandler*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="set_uri">
+        <callback name="set_uri" c:type="set_uri">
+          <return-value transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="handler" transfer-ownership="none">
+              <type name="URIHandler" c:type="GstURIHandler*"/>
+            </parameter>
+            <parameter name="uri" transfer-ownership="none">
+              <type name="utf8" c:type="gchar*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="get_type_full">
+        <callback name="get_type_full" c:type="get_type_full">
+          <return-value transfer-ownership="full">
+            <type name="URIType" c:type="GstURIType"/>
+          </return-value>
+          <parameters>
+            <parameter name="type" transfer-ownership="none">
+              <type name="GType" c:type="GType"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="get_protocols_full">
+        <callback name="get_protocols_full" c:type="get_protocols_full">
+          <return-value transfer-ownership="full">
+            <array c:type="gchar**">
+              <type name="utf8"/>
+            </array>
+          </return-value>
+          <parameters>
+            <parameter name="type" transfer-ownership="none">
+              <type name="GType" c:type="GType"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="_gst_reserved">
+        <array zero-terminated="0" c:type="gpointer" fixed-size="2">
+          <type name="any"/>
+        </array>
+      </field>
+    </record>
+    <enumeration name="URIType"
+                 doc="The different types of URI direction."
+                 c:type="GstURIType">
+      <member name="unknown" value="0" c:identifier="GST_URI_UNKNOWN"/>
+      <member name="sink" value="1" c:identifier="GST_URI_SINK"/>
+      <member name="src" value="2" c:identifier="GST_URI_SRC"/>
+    </enumeration>
+    <constant name="USECOND" value="0">
+      <type name="int"/>
+    </constant>
+    <constant name="VALUE_EQUAL" value="0">
+      <type name="int"/>
+    </constant>
+    <constant name="VALUE_GREATER_THAN" value="1">
+      <type name="int"/>
+    </constant>
+    <constant name="VALUE_LESS_THAN" value="-1">
+      <type name="int"/>
+    </constant>
+    <constant name="VALUE_UNORDERED" value="2">
+      <type name="int"/>
+    </constant>
+    <callback name="ValueCompareFunc"
+              c:type="GstValueCompareFunc"
+              doc="Used together with gst_value_compare() to compare #GValue items.
+or GST_VALUE_UNORDERED">
+      <return-value transfer-ownership="none">
+        <type name="int" c:type="gint"/>
+      </return-value>
+      <parameters>
+        <parameter name="value1" transfer-ownership="none">
+          <type name="GObject.Value" c:type="GValue*"/>
+        </parameter>
+        <parameter name="value2" transfer-ownership="none">
+          <type name="GObject.Value" c:type="GValue*"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <callback name="ValueDeserializeFunc"
+              c:type="GstValueDeserializeFunc"
+              doc="Used by gst_value_deserialize() to parse a non-binary form into the #GValue.">
+      <return-value transfer-ownership="none">
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="dest" transfer-ownership="none">
+          <type name="GObject.Value" c:type="GValue*"/>
+        </parameter>
+        <parameter name="s" transfer-ownership="none">
+          <type name="utf8" c:type="gchar*"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <callback name="ValueIntersectFunc"
+              c:type="GstValueIntersectFunc"
+              doc="Used by gst_value_intersect() to perform intersection for a specific #GValue
+type. If the intersection is non-empty, the result is
+placed in @dest and TRUE is returned.  If the intersection is
+empty, @dest is unmodified and FALSE is returned.
+Register a new implementation with gst_value_register_intersect_func().">
+      <return-value transfer-ownership="none">
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="dest" transfer-ownership="none">
+          <type name="GObject.Value" c:type="GValue*"/>
+        </parameter>
+        <parameter name="value1" transfer-ownership="none">
+          <type name="GObject.Value" c:type="GValue*"/>
+        </parameter>
+        <parameter name="value2" transfer-ownership="none">
+          <type name="GObject.Value" c:type="GValue*"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <callback name="ValueSerializeFunc"
+              c:type="GstValueSerializeFunc"
+              doc="Used by gst_value_serialize() to obtain a non-binary form of the #GValue.">
+      <return-value transfer-ownership="full">
+        <type name="utf8" c:type="gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="value1" transfer-ownership="none">
+          <type name="GObject.Value" c:type="GValue*"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <callback name="ValueSubtractFunc"
+              c:type="GstValueSubtractFunc"
+              doc="Used by gst_value_subtract() to perform subtraction for a specific #GValue
+type. Register a new implementation with gst_value_register_subtract_func().">
+      <return-value transfer-ownership="none">
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="dest" transfer-ownership="none">
+          <type name="GObject.Value" c:type="GValue*"/>
+        </parameter>
+        <parameter name="minuend" transfer-ownership="none">
+          <type name="GObject.Value" c:type="GValue*"/>
+        </parameter>
+        <parameter name="subtrahend" transfer-ownership="none">
+          <type name="GObject.Value" c:type="GValue*"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <record name="ValueTable"
+            c:type="GstValueTable"
+            doc="VTable for the #GValue @type.">
+      <field name="type" writable="1">
+        <type name="GType" c:type="GType"/>
+      </field>
+      <field name="compare" writable="1">
+        <type name="ValueCompareFunc" c:type="GstValueCompareFunc"/>
+      </field>
+      <field name="serialize" writable="1">
+        <type name="ValueSerializeFunc" c:type="GstValueSerializeFunc"/>
+      </field>
+      <field name="deserialize" writable="1">
+        <type name="ValueDeserializeFunc" c:type="GstValueDeserializeFunc"/>
+      </field>
+      <field name="_gst_reserved" writable="1">
+        <array zero-terminated="0" c:type="void*" fixed-size="4">
+          <type name="any"/>
+        </array>
+      </field>
+    </record>
+    <callback name="ValueUnionFunc"
+              c:type="GstValueUnionFunc"
+              doc="Used by gst_value_union() to perform unification for a specific #GValue
+type. Register a new implementation with gst_value_register_union_func().">
+      <return-value transfer-ownership="none">
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="dest" transfer-ownership="none">
+          <type name="GObject.Value" c:type="GValue*"/>
+        </parameter>
+        <parameter name="value1" transfer-ownership="none">
+          <type name="GObject.Value" c:type="GValue*"/>
+        </parameter>
+        <parameter name="value2" transfer-ownership="none">
+          <type name="GObject.Value" c:type="GValue*"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <class name="XML"
+           c:type="GstXML"
+           doc="XML parser object"
+           parent="Object"
+           glib:type-name="GstXML"
+           glib:get-type="gst_xml_get_type"
+           glib:type-struct="XMLClass">
+      <constructor name="new"
+                   c:identifier="gst_xml_new"
+                   doc="Create a new GstXML parser object.">
+        <return-value transfer-ownership="full">
+          <type name="XML" c:type="GstXML*"/>
+        </return-value>
+      </constructor>
+      <function name="write"
+                c:identifier="gst_xml_write"
+                doc="Converts the given element into an XML presentation.">
+        <return-value transfer-ownership="full">
+          <type name="libxml2.DocPtr" c:type="xmlDocPtr"/>
+        </return-value>
+        <parameters>
+          <parameter name="element" transfer-ownership="none">
+            <type name="Element" c:type="GstElement*"/>
+          </parameter>
+        </parameters>
+      </function>
+      <function name="make_element"
+                c:identifier="gst_xml_make_element"
+                doc="Load the element from the XML description">
+        <return-value transfer-ownership="full">
+          <type name="Element" c:type="GstElement*"/>
+        </return-value>
+        <parameters>
+          <parameter name="cur" transfer-ownership="none">
+            <type name="libxml2.NodePtr" c:type="xmlNodePtr"/>
+          </parameter>
+          <parameter name="parent" transfer-ownership="none">
+            <type name="Object" c:type="GstObject*"/>
+          </parameter>
+        </parameters>
+      </function>
+      <virtual-method name="object_saved">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="object" transfer-ownership="none">
+            <type name="Object" c:type="GstObject*"/>
+          </parameter>
+          <parameter name="self" transfer-ownership="none">
+            <type name="libxml2.NodePtr" c:type="xmlNodePtr"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <method name="parse_doc"
+              c:identifier="gst_xml_parse_doc"
+              doc="Fills the GstXML object with the elements from the
+xmlDocPtr.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="doc" transfer-ownership="none">
+            <type name="libxml2.DocPtr" c:type="xmlDocPtr"/>
+          </parameter>
+          <parameter name="root" transfer-ownership="none">
+            <array c:type="guchar*">
+              <type name="uint8"/>
+            </array>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="parse_file"
+              c:identifier="gst_xml_parse_file"
+              doc="Fills the GstXML object with the corresponding elements from
+the XML file fname. Optionally it will only build the element from
+the element node root (if it is not NULL). This feature is useful
+if you only want to build a specific element from an XML file
+but not the pipeline it is embedded in.
+Pass &quot;-&quot; as fname to read from stdin. You can also pass a URI
+of any format that libxml supports, including http.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="fname" transfer-ownership="none">
+            <array c:type="guchar*">
+              <type name="uint8"/>
+            </array>
+          </parameter>
+          <parameter name="root" transfer-ownership="none">
+            <array c:type="guchar*">
+              <type name="uint8"/>
+            </array>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="parse_memory"
+              c:identifier="gst_xml_parse_memory"
+              doc="Fills the GstXML object with the corresponding elements from
+an in memory XML buffer.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="buffer" transfer-ownership="none">
+            <array c:type="guchar*">
+              <type name="uint8"/>
+            </array>
+          </parameter>
+          <parameter name="size" transfer-ownership="none">
+            <type name="uint" c:type="guint"/>
+          </parameter>
+          <parameter name="root" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_element"
+              c:identifier="gst_xml_get_element"
+              doc="This function is used to get a pointer to the GstElement corresponding
+to name in the pipeline description. You would use this if you have
+to do anything to the element after loading.">
+        <return-value transfer-ownership="full">
+          <type name="Element" c:type="GstElement*"/>
+        </return-value>
+        <parameters>
+          <parameter name="name" transfer-ownership="none">
+            <array c:type="guchar*">
+              <type name="uint8"/>
+            </array>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_topelements"
+              c:identifier="gst_xml_get_topelements"
+              doc="Retrieve a list of toplevel elements.
+of the list and must not free or modify the list. The caller also does not
+own a reference to any of the elements in the list and should obtain its own
+reference using gst_object_ref() if necessary.">
+        <return-value transfer-ownership="full">
+          <type name="GLib.List" c:type="GList*"/>
+        </return-value>
+      </method>
+      <field name="object">
+        <type name="Object" c:type="GstObject"/>
+      </field>
+      <field name="topelements">
+        <type name="GLib.List" c:type="GList*"/>
+      </field>
+      <field name="ns">
+        <type name="libxml2.NsPtr" c:type="xmlNsPtr"/>
+      </field>
+      <field name="_gst_reserved">
+        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+          <type name="any"/>
+        </array>
+      </field>
+      <glib:signal name="object-loaded"
+                   doc="Signals that a new object has been deserialized.">
+        <return-value transfer-ownership="full">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="object" transfer-ownership="none">
+            <type name="Object" c:type="GstObject"/>
+          </parameter>
+          <parameter name="xml_node" transfer-ownership="none">
+            <type name="any" c:type="gpointer"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+    </class>
+    <record name="XMLClass"
+            c:type="GstXMLClass"
+            glib:is-gtype-struct-for="XML">
+      <field name="parent_class">
+        <type name="ObjectClass" c:type="GstObjectClass"/>
+      </field>
+      <field name="object_loaded">
+        <callback name="object_loaded" c:type="object_loaded">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="xml" transfer-ownership="none">
+              <type name="XML" c:type="GstXML*"/>
+            </parameter>
+            <parameter name="object" transfer-ownership="none">
+              <type name="Object" c:type="GstObject*"/>
+            </parameter>
+            <parameter name="self" transfer-ownership="none">
+              <type name="libxml2.NodePtr" c:type="xmlNodePtr"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="object_saved">
+        <callback name="object_saved" c:type="object_saved">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="xml" transfer-ownership="none">
+              <type name="XML" c:type="GstXML*"/>
+            </parameter>
+            <parameter name="object" transfer-ownership="none">
+              <type name="Object" c:type="GstObject*"/>
+            </parameter>
+            <parameter name="self" transfer-ownership="none">
+              <type name="libxml2.NodePtr" c:type="xmlNodePtr"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="_gst_reserved">
+        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+          <type name="any"/>
+        </array>
+      </field>
+    </record>
+    <function name="alloc_trace_available"
+              c:identifier="gst_alloc_trace_available"
+              doc="Check if alloc tracing was compiled into the core
+tracing enabled.">
+      <return-value transfer-ownership="none">
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+    </function>
+    <function name="alloc_trace_get"
+              c:identifier="gst_alloc_trace_get"
+              doc="Get the named alloc trace object.
+no alloc tracer was registered with that name.">
+      <return-value transfer-ownership="full">
+        <type name="AllocTrace" c:type="GstAllocTrace*"/>
+      </return-value>
+      <parameters>
+        <parameter name="name" transfer-ownership="none">
+          <type name="utf8" c:type="gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="alloc_trace_list"
+              c:identifier="gst_alloc_trace_list"
+              doc="Get a list of all registered alloc trace objects.">
+      <return-value transfer-ownership="none">
+        <type name="GLib.List" c:type="GList*"/>
+      </return-value>
+    </function>
+    <function name="alloc_trace_live_all"
+              c:identifier="gst_alloc_trace_live_all"
+              doc="Get the total number of live registered alloc trace objects.">
+      <return-value transfer-ownership="none">
+        <type name="int" c:type="int"/>
+      </return-value>
+    </function>
+    <function name="alloc_trace_print_all"
+              c:identifier="gst_alloc_trace_print_all"
+              doc="Print the status of all registered alloc trace objects.">
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+    </function>
+    <function name="alloc_trace_print_live"
+              c:identifier="gst_alloc_trace_print_live"
+              doc="Print the status of all registered alloc trace objects, ignoring those
+without live objects.">
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+    </function>
+    <function name="alloc_trace_set_flags_all"
+              c:identifier="gst_alloc_trace_set_flags_all"
+              doc="Enable the specified options on all registered alloc trace
+objects.">
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="flags" transfer-ownership="none">
+          <type name="AllocTraceFlags" c:type="GstAllocTraceFlags"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="atomic_int_set"
+              c:identifier="gst_atomic_int_set"
+              doc="Unconditionally sets the atomic integer to @value."
+              deprecated="Use g_atomic_int_set().">
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="atomic_int" direction="out" transfer-ownership="full">
+          <type name="int" c:type="gint*"/>
+        </parameter>
+        <parameter name="value" transfer-ownership="none">
+          <type name="int" c:type="gint"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="buffer_try_new_and_alloc"
+              c:identifier="gst_buffer_try_new_and_alloc"
+              doc="Tries to create a newly allocated buffer with data of the given size. If
+the requested amount of memory can&apos;t be allocated, NULL will be returned.
+The buffer memory is not cleared.
+Note that when @size == 0, the buffer data pointer will be NULL.
+MT safe."
+              version="0.10.13">
+      <return-value transfer-ownership="full">
+        <type name="Buffer" c:type="GstBuffer*"/>
+      </return-value>
+      <parameters>
+        <parameter name="size" transfer-ownership="none">
+          <type name="uint" c:type="guint"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="caps_from_string"
+              c:identifier="gst_caps_from_string"
+              doc="Converts @caps from a string representation.">
+      <return-value transfer-ownership="full">
+        <type name="Caps" c:type="GstCaps*"/>
+      </return-value>
+      <parameters>
+        <parameter name="string" transfer-ownership="none">
+          <type name="utf8" c:type="gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="caps_load_thyself"
+              c:identifier="gst_caps_load_thyself"
+              doc="Creates a #GstCaps from its XML serialization.">
+      <return-value transfer-ownership="full">
+        <type name="Caps" c:type="GstCaps*"/>
+      </return-value>
+      <parameters>
+        <parameter name="parent" transfer-ownership="none">
+          <type name="libxml2.NodePtr" c:type="xmlNodePtr"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="child_proxy_child_added"
+              c:identifier="gst_child_proxy_child_added"
+              doc="Emits the &quot;child-added&quot; signal.">
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="object" transfer-ownership="none">
+          <type name="Object" c:type="GstObject*"/>
+        </parameter>
+        <parameter name="child" transfer-ownership="none">
+          <type name="Object" c:type="GstObject*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="child_proxy_child_removed"
+              c:identifier="gst_child_proxy_child_removed"
+              doc="Emits the &quot;child-removed&quot; signal.">
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="object" transfer-ownership="none">
+          <type name="Object" c:type="GstObject*"/>
+        </parameter>
+        <parameter name="child" transfer-ownership="none">
+          <type name="Object" c:type="GstObject*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="child_proxy_get"
+              c:identifier="gst_child_proxy_get"
+              doc="Gets properties of the parent object and its children.">
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="object" transfer-ownership="none">
+          <type name="Object" c:type="GstObject*"/>
+        </parameter>
+        <parameter name="first_property_name" transfer-ownership="none">
+          <type name="utf8" c:type="gchar*"/>
+        </parameter>
+        <parameter transfer-ownership="none">
+          <varargs>
+          </varargs>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="child_proxy_get_property"
+              c:identifier="gst_child_proxy_get_property"
+              doc="Gets a single property using the GstChildProxy mechanism.
+You are responsible for for freeing it by calling g_value_unset()">
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="object" transfer-ownership="none">
+          <type name="Object" c:type="GstObject*"/>
+        </parameter>
+        <parameter name="name" transfer-ownership="none">
+          <type name="utf8" c:type="gchar*"/>
+        </parameter>
+        <parameter name="value" transfer-ownership="none">
+          <type name="GObject.Value" c:type="GValue*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="child_proxy_lookup"
+              c:identifier="gst_child_proxy_lookup"
+              doc="Looks up which object and #GParamSpec would be effected by the given @name.
+case the values for @pspec and @target are not modified. Unref @target after
+usage.
+MT safe.">
+      <return-value transfer-ownership="none">
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="object" transfer-ownership="none">
+          <type name="Object" c:type="GstObject*"/>
+        </parameter>
+        <parameter name="name" transfer-ownership="none">
+          <type name="utf8" c:type="gchar*"/>
+        </parameter>
+        <parameter name="target" transfer-ownership="none">
+          <type name="Object" c:type="GstObject**"/>
+        </parameter>
+        <parameter name="pspec" transfer-ownership="none">
+          <type name="GObject.ParamSpec" c:type="GParamSpec**"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="child_proxy_set"
+              c:identifier="gst_child_proxy_set"
+              doc="Sets properties of the parent object and its children.">
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="object" transfer-ownership="none">
+          <type name="Object" c:type="GstObject*"/>
+        </parameter>
+        <parameter name="first_property_name" transfer-ownership="none">
+          <type name="utf8" c:type="gchar*"/>
+        </parameter>
+        <parameter transfer-ownership="none">
+          <varargs>
+          </varargs>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="child_proxy_set_property"
+              c:identifier="gst_child_proxy_set_property"
+              doc="Sets a single property using the GstChildProxy mechanism.">
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="object" transfer-ownership="none">
+          <type name="Object" c:type="GstObject*"/>
+        </parameter>
+        <parameter name="name" transfer-ownership="none">
+          <type name="utf8" c:type="gchar*"/>
+        </parameter>
+        <parameter name="value" transfer-ownership="none">
+          <type name="GObject.Value" c:type="GValue*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="class_signal_connect"
+              c:identifier="gst_class_signal_connect">
+      <return-value transfer-ownership="none">
+        <type name="uint" c:type="guint"/>
+      </return-value>
+      <parameters>
+        <parameter name="klass" transfer-ownership="none">
+          <type name="ObjectClass" c:type="GstObjectClass*"/>
+        </parameter>
+        <parameter name="name" transfer-ownership="none">
+          <type name="utf8" c:type="gchar*"/>
+        </parameter>
+        <parameter name="func" transfer-ownership="none">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+        <parameter name="func_data" transfer-ownership="none">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="class_signal_emit_by_name"
+              c:identifier="gst_class_signal_emit_by_name"
+              doc="emits the named class signal.">
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="object" transfer-ownership="none">
+          <type name="Object" c:type="GstObject*"/>
+        </parameter>
+        <parameter name="name" transfer-ownership="none">
+          <type name="utf8" c:type="gchar*"/>
+        </parameter>
+        <parameter name="self" transfer-ownership="none">
+          <type name="libxml2.NodePtr" c:type="xmlNodePtr"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="debug_add_log_function"
+              c:identifier="gst_debug_add_log_function"
+              doc="Adds the logging function to the list of logging functions.
+Be sure to use G_GNUC_NO_INSTRUMENT on that function, it is needed.">
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="func"
+                   transfer-ownership="none"
+                   scope="call"
+                   closure="1">
+          <type name="LogFunction" c:type="GstLogFunction"/>
+        </parameter>
+        <parameter name="data" transfer-ownership="none">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="debug_construct_term_color"
+              c:identifier="gst_debug_construct_term_color"
+              doc="Constructs a string that can be used for getting the desired color in color
+terminals.
+You need to free the string after use.">
+      <return-value transfer-ownership="full">
+        <type name="utf8" c:type="gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="colorinfo" transfer-ownership="none">
+          <type name="uint" c:type="guint"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="debug_construct_win_color"
+              c:identifier="gst_debug_construct_win_color"
+              doc="Constructs an integer that can be used for getting the desired color in
+windows&apos; terminals (cmd.exe). As there is no mean to underline, we simply
+ignore this attribute.
+This function returns 0 on non-windows machines."
+              version="0.10.23">
+      <return-value transfer-ownership="none">
+        <type name="int" c:type="gint"/>
+      </return-value>
+      <parameters>
+        <parameter name="colorinfo" transfer-ownership="none">
+          <type name="uint" c:type="guint"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="debug_get_all_categories"
+              c:identifier="gst_debug_get_all_categories"
+              doc="Returns a snapshot of a all categories that are currently in use . This list
+may change anytime.
+The caller has to free the list after use.">
+      <return-value transfer-ownership="full">
+        <type name="GLib.SList" c:type="GSList*"/>
+      </return-value>
+    </function>
+    <function name="debug_get_default_threshold"
+              c:identifier="gst_debug_get_default_threshold"
+              doc="Returns the default threshold that is used for new categories.">
+      <return-value transfer-ownership="full">
+        <type name="DebugLevel" c:type="GstDebugLevel"/>
+      </return-value>
+    </function>
+    <function name="debug_is_active"
+              c:identifier="gst_debug_is_active"
+              doc="Checks if debugging output is activated.">
+      <return-value transfer-ownership="none">
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+    </function>
+    <function name="debug_is_colored"
+              c:identifier="gst_debug_is_colored"
+              doc="Checks if the debugging output should be colored.">
+      <return-value transfer-ownership="none">
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+    </function>
+    <function name="debug_level_get_name"
+              c:identifier="gst_debug_level_get_name"
+              doc="Get the string representation of a debugging level">
+      <return-value transfer-ownership="none">
+        <type name="utf8" c:type="gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="level" transfer-ownership="none">
+          <type name="DebugLevel" c:type="GstDebugLevel"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="debug_log"
+              c:identifier="gst_debug_log"
+              doc="Logs the given message using the currently registered debugging handlers.">
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="category" transfer-ownership="none">
+          <type name="DebugCategory" c:type="GstDebugCategory*"/>
+        </parameter>
+        <parameter name="level" transfer-ownership="none">
+          <type name="DebugLevel" c:type="GstDebugLevel"/>
+        </parameter>
+        <parameter name="file" transfer-ownership="none">
+          <type name="utf8" c:type="gchar*"/>
+        </parameter>
+        <parameter name="function" transfer-ownership="none">
+          <type name="utf8" c:type="gchar*"/>
+        </parameter>
+        <parameter name="line" transfer-ownership="none">
+          <type name="int" c:type="gint"/>
+        </parameter>
+        <parameter name="object" transfer-ownership="none">
+          <type name="GObject.Object" c:type="GObject*"/>
+        </parameter>
+        <parameter name="format" transfer-ownership="none">
+          <type name="utf8" c:type="gchar*"/>
+        </parameter>
+        <parameter transfer-ownership="none">
+          <varargs>
+          </varargs>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="debug_log_default"
+              c:identifier="gst_debug_log_default"
+              doc="The default logging handler used by GStreamer. Logging functions get called
+whenever a macro like GST_DEBUG or similar is used. This function outputs the
+message and additional info using the glib error handler.
+You can add other handlers by using gst_debug_add_log_function().
+And you can remove this handler by calling
+gst_debug_remove_log_function(gst_debug_log_default);">
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="category" transfer-ownership="none">
+          <type name="DebugCategory" c:type="GstDebugCategory*"/>
+        </parameter>
+        <parameter name="level" transfer-ownership="none">
+          <type name="DebugLevel" c:type="GstDebugLevel"/>
+        </parameter>
+        <parameter name="file" transfer-ownership="none">
+          <type name="utf8" c:type="gchar*"/>
+        </parameter>
+        <parameter name="function" transfer-ownership="none">
+          <type name="utf8" c:type="gchar*"/>
+        </parameter>
+        <parameter name="line" transfer-ownership="none">
+          <type name="int" c:type="gint"/>
+        </parameter>
+        <parameter name="object" transfer-ownership="none">
+          <type name="GObject.Object" c:type="GObject*"/>
+        </parameter>
+        <parameter name="message" transfer-ownership="none">
+          <type name="DebugMessage" c:type="GstDebugMessage*"/>
+        </parameter>
+        <parameter name="unused" transfer-ownership="none">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="debug_print_stack_trace"
+              c:identifier="gst_debug_print_stack_trace"
+              doc="If GST_ENABLE_FUNC_INSTRUMENTATION is defined a stacktrace is available for
+gstreamer code, which can be printed with this function.">
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+    </function>
+    <function name="debug_remove_log_function"
+              c:identifier="gst_debug_remove_log_function"
+              doc="Removes all registered instances of the given logging functions.">
+      <return-value transfer-ownership="none">
+        <type name="uint" c:type="guint"/>
+      </return-value>
+      <parameters>
+        <parameter name="func" transfer-ownership="none" scope="call">
+          <type name="LogFunction" c:type="GstLogFunction"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="debug_remove_log_function_by_data"
+              c:identifier="gst_debug_remove_log_function_by_data"
+              doc="Removes all registered instances of log functions with the given user data.">
+      <return-value transfer-ownership="none">
+        <type name="uint" c:type="guint"/>
+      </return-value>
+      <parameters>
+        <parameter name="data" transfer-ownership="none">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="debug_set_active"
+              c:identifier="gst_debug_set_active"
+              doc="If activated, debugging messages are sent to the debugging
+handlers.
+It makes sense to deactivate it for speed issues.
+&lt;note&gt;&lt;para&gt;This function is not threadsafe. It makes sense to only call it
+during initialization.&lt;/para&gt;&lt;/note&gt;">
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="active" transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="debug_set_colored"
+              c:identifier="gst_debug_set_colored"
+              doc="Sets or unsets the use of coloured debugging output.">
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="colored" transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="debug_set_default_threshold"
+              c:identifier="gst_debug_set_default_threshold"
+              doc="Sets the default threshold to the given level and updates all categories to
+use this threshold.">
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="level" transfer-ownership="none">
+          <type name="DebugLevel" c:type="GstDebugLevel"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="debug_set_threshold_for_name"
+              c:identifier="gst_debug_set_threshold_for_name"
+              doc="Sets all categories which match the given glob style pattern to the given
+level.">
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="name" transfer-ownership="none">
+          <type name="utf8" c:type="gchar*"/>
+        </parameter>
+        <parameter name="level" transfer-ownership="none">
+          <type name="DebugLevel" c:type="GstDebugLevel"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="debug_unset_threshold_for_name"
+              c:identifier="gst_debug_unset_threshold_for_name"
+              doc="Resets all categories with the given name back to the default level.">
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="name" transfer-ownership="none">
+          <type name="utf8" c:type="gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="default_registry_check_feature_version"
+              c:identifier="gst_default_registry_check_feature_version"
+              doc="Checks whether a plugin feature by the given name exists in the
+default registry and whether its version is at least the
+version required.
+the same as the required version or newer, and #FALSE otherwise.">
+      <return-value transfer-ownership="none">
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="feature_name" transfer-ownership="none">
+          <type name="utf8" c:type="gchar*"/>
+        </parameter>
+        <parameter name="min_major" transfer-ownership="none">
+          <type name="uint" c:type="guint"/>
+        </parameter>
+        <parameter name="min_minor" transfer-ownership="none">
+          <type name="uint" c:type="guint"/>
+        </parameter>
+        <parameter name="min_micro" transfer-ownership="none">
+          <type name="uint" c:type="guint"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="deinit"
+              c:identifier="gst_deinit"
+              doc="Clean up any resources created by GStreamer in gst_init().
+It is normally not needed to call this function in a normal application
+as the resources will automatically be freed when the program terminates.
+This function is therefore mostly used by testsuites and other memory
+profiling tools.
+After this call GStreamer (including this method) should not be used anymore.">
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+    </function>
+    <function name="error_get_message"
+              c:identifier="gst_error_get_message"
+              doc="Get a string describing the error message in the current locale.
+current locale.">
+      <return-value transfer-ownership="full">
+        <type name="utf8" c:type="gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="domain" transfer-ownership="none">
+          <type name="GLib.Quark" c:type="GQuark"/>
+        </parameter>
+        <parameter name="code" transfer-ownership="none">
+          <type name="int" c:type="gint"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="event_type_get_flags"
+              c:identifier="gst_event_type_get_flags"
+              doc="Gets the #GstEventTypeFlags associated with @type.">
+      <return-value transfer-ownership="full">
+        <type name="EventTypeFlags" c:type="GstEventTypeFlags"/>
+      </return-value>
+      <parameters>
+        <parameter name="type" transfer-ownership="none">
+          <type name="EventType" c:type="GstEventType"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="event_type_get_name"
+              c:identifier="gst_event_type_get_name"
+              doc="Get a printable name for the given event type. Do not modify or free.">
+      <return-value transfer-ownership="none">
+        <type name="utf8" c:type="gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="type" transfer-ownership="none">
+          <type name="EventType" c:type="GstEventType"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="event_type_to_quark"
+              c:identifier="gst_event_type_to_quark"
+              doc="Get the unique quark for the given event type.">
+      <return-value transfer-ownership="full">
+        <type name="GLib.Quark" c:type="GQuark"/>
+      </return-value>
+      <parameters>
+        <parameter name="type" transfer-ownership="none">
+          <type name="EventType" c:type="GstEventType"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="filter_run"
+              c:identifier="gst_filter_run"
+              doc="Iterates over the elements in @list, calling @func with the
+list item data for each item.  If @func returns TRUE, @data is
+prepended to the list of results returned.  If @first is true,
+the search is halted after the first result is found.
+Since gst_filter_run() knows nothing about the type of @data, no
+reference will be taken (if @data refers to an object) and no copy of
+results.
+(the data contained in the list is a flat copy and does need to be
+unreferenced or freed).">
+      <return-value transfer-ownership="full" doc="when no longer needed">
+        <type name="GLib.List" c:type="GList*"/>
+      </return-value>
+      <parameters>
+        <parameter name="list" transfer-ownership="none">
+          <type name="GLib.List" c:type="GList*"/>
+        </parameter>
+        <parameter name="func" transfer-ownership="none" scope="call">
+          <type name="FilterFunc" c:type="GstFilterFunc"/>
+        </parameter>
+        <parameter name="first" transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </parameter>
+        <parameter name="user_data" transfer-ownership="none">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="flow_get_name"
+              c:identifier="gst_flow_get_name"
+              doc="Gets a string representing the given flow return.">
+      <return-value transfer-ownership="none">
+        <type name="utf8" c:type="gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="ret" transfer-ownership="none">
+          <type name="FlowReturn" c:type="GstFlowReturn"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="flow_to_quark"
+              c:identifier="gst_flow_to_quark"
+              doc="Get the unique quark for the given GstFlowReturn.
+invalid return was specified.">
+      <return-value transfer-ownership="full">
+        <type name="GLib.Quark" c:type="GQuark"/>
+      </return-value>
+      <parameters>
+        <parameter name="ret" transfer-ownership="none">
+          <type name="FlowReturn" c:type="GstFlowReturn"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="format_get_by_nick"
+              c:identifier="gst_format_get_by_nick"
+              doc="Return the format registered with the given nick.
+if the format was not registered.">
+      <return-value transfer-ownership="full">
+        <type name="Format" c:type="GstFormat"/>
+      </return-value>
+      <parameters>
+        <parameter name="nick" transfer-ownership="none">
+          <type name="utf8" c:type="gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="format_get_details"
+              c:identifier="gst_format_get_details"
+              doc="Get details about the given format.
+MT safe.">
+      <return-value transfer-ownership="none">
+        <type name="FormatDefinition" c:type="GstFormatDefinition*"/>
+      </return-value>
+      <parameters>
+        <parameter name="format" transfer-ownership="none">
+          <type name="Format" c:type="GstFormat"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="format_get_name"
+              c:identifier="gst_format_get_name"
+              doc="Get a printable name for the given format. Do not modify or free.
+the format is unknown.">
+      <return-value transfer-ownership="none">
+        <type name="utf8" c:type="gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="format" transfer-ownership="none">
+          <type name="Format" c:type="GstFormat"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="format_iterate_definitions"
+              c:identifier="gst_format_iterate_definitions"
+              doc="Iterate all the registered formats. The format definition is read
+only.">
+      <return-value transfer-ownership="full">
+        <type name="Iterator" c:type="GstIterator*"/>
+      </return-value>
+    </function>
+    <function name="format_register"
+              c:identifier="gst_format_register"
+              doc="Create a new GstFormat based on the nick or return an
+already registered format with that nick.
+with the same nick.
+MT safe.">
+      <return-value transfer-ownership="full">
+        <type name="Format" c:type="GstFormat"/>
+      </return-value>
+      <parameters>
+        <parameter name="nick" transfer-ownership="none">
+          <type name="utf8" c:type="gchar*"/>
+        </parameter>
+        <parameter name="description" transfer-ownership="none">
+          <type name="utf8" c:type="gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="format_to_quark"
+              c:identifier="gst_format_to_quark"
+              doc="Get the unique quark for the given format.
+is unknown.">
+      <return-value transfer-ownership="full">
+        <type name="GLib.Quark" c:type="GQuark"/>
+      </return-value>
+      <parameters>
+        <parameter name="format" transfer-ownership="none">
+          <type name="Format" c:type="GstFormat"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="formats_contains"
+              c:identifier="gst_formats_contains"
+              doc="See if the given format is inside the format array.">
+      <return-value transfer-ownership="none">
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="formats" transfer-ownership="none">
+          <type name="Format" c:type="GstFormat*"/>
+        </parameter>
+        <parameter name="format" transfer-ownership="none">
+          <type name="Format" c:type="GstFormat"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="implements_interface_cast"
+              c:identifier="gst_implements_interface_cast"
+              doc="cast a given object to an interface type, and check whether this
+interface is supported for this specific instance.">
+      <return-value transfer-ownership="none">
+        <type name="any" c:type="gpointer"/>
+      </return-value>
+      <parameters>
+        <parameter name="from"
+                   transfer-ownership="none"
+                   doc="from which to cast to the interface">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+        <parameter name="type" transfer-ownership="none">
+          <type name="GType" c:type="GType"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="implements_interface_check"
+              c:identifier="gst_implements_interface_check"
+              doc="check a given object for an interface implementation, and check
+whether this interface is supported for this specific instance.">
+      <return-value transfer-ownership="none">
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="from"
+                   transfer-ownership="none"
+                   doc="from which to check from for the interface">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+        <parameter name="type" transfer-ownership="none">
+          <type name="GType" c:type="GType"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="init"
+              c:identifier="gst_init"
+              doc="Initializes the GStreamer library, setting up internal path lists,
+registering built-in elements, and loading standard plugins.
+Unless the plugin registry is disabled at compile time, the registry will be
+loaded. By default this will also check if the registry cache needs to be
+updated and rescan all plugins if needed. See gst_update_registry() for
+details and section
+&lt;link linkend=&quot;gst-running&quot;&gt;Running GStreamer Applications&lt;/link&gt;
+for how to disable automatic registry updates.
+This function should be called before calling any other GLib functions. If
+this is not an option, your program must initialise the GLib thread system
+using g_thread_init() before any other GLib functions are called.
+&lt;note&gt;&lt;para&gt;
+This function will terminate your program if it was unable to initialize
+GStreamer for some reason.  If you want your program to fall back,
+use gst_init_check() instead.
+&lt;/para&gt;&lt;/note&gt;
+functions in other glib-style libraries, such as gtk_init().  In
+particular, unknown command line options cause this function to
+abort program execution.">
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="argc"
+                   direction="inout"
+                   transfer-ownership="full"
+                   doc="pointer to application&apos;s argc">
+          <type name="int" c:type="int*"/>
+        </parameter>
+        <parameter name="argv"
+                   direction="inout"
+                   transfer-ownership="full"
+                   allow-none="1"
+                   doc="pointer to application&apos;s argv">
+          <array length="0" c:type="char**">
+            <type name="utf8"/>
+          </array>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="init_check"
+              c:identifier="gst_init_check"
+              doc="Initializes the GStreamer library, setting up internal path lists,
+registering built-in elements, and loading standard plugins.
+This function will return %FALSE if GStreamer could not be initialized
+for some reason.  If you want your program to fail fatally,
+use gst_init() instead.
+This function should be called before calling any other GLib functions. If
+this is not an option, your program must initialise the GLib thread system
+using g_thread_init() before any other GLib functions are called."
+              throws="1">
+      <return-value transfer-ownership="none">
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="argc"
+                   direction="inout"
+                   transfer-ownership="full"
+                   doc="pointer to application&apos;s argc">
+          <type name="int" c:type="int*"/>
+        </parameter>
+        <parameter name="argv"
+                   direction="inout"
+                   transfer-ownership="full"
+                   allow-none="1"
+                   doc="pointer to application&apos;s argv">
+          <array length="0" c:type="char**">
+            <type name="utf8"/>
+          </array>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="init_get_option_group"
+              c:identifier="gst_init_get_option_group"
+              doc="Returns a #GOptionGroup with GStreamer&apos;s argument specifications. The
+group is set up to use standard GOption callbacks, so when using this
+group in combination with GOption parsing methods, all argument parsing
+and initialization is automated.
+This function is useful if you want to integrate GStreamer with other
+libraries that use GOption (see g_option_context_add_group() ).
+If you use this function, you should make sure you initialise the GLib
+threading system as one of the very first things in your program
+(see the example at the beginning of this section).">
+      <return-value transfer-ownership="full">
+        <type name="GLib.OptionGroup" c:type="GOptionGroup*"/>
+      </return-value>
+    </function>
+    <function name="is_tag_list"
+              c:identifier="gst_is_tag_list"
+              doc="Checks if the given pointer is a taglist.">
+      <return-value transfer-ownership="none">
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="p" transfer-ownership="none">
+          <type name="any" c:type="gconstpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="message_type_get_name"
+              c:identifier="gst_message_type_get_name"
+              doc="Get a printable name for the given message type. Do not modify or free.">
+      <return-value transfer-ownership="none">
+        <type name="utf8" c:type="gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="type" transfer-ownership="none">
+          <type name="MessageType" c:type="GstMessageType"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="message_type_to_quark"
+              c:identifier="gst_message_type_to_quark"
+              doc="Get the unique quark for the given message type.">
+      <return-value transfer-ownership="full">
+        <type name="GLib.Quark" c:type="GQuark"/>
+      </return-value>
+      <parameters>
+        <parameter name="type" transfer-ownership="none">
+          <type name="MessageType" c:type="GstMessageType"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="param_spec_fraction"
+              c:identifier="gst_param_spec_fraction"
+              doc="This function creates a fraction GParamSpec for use by objects/elements
+that want to expose properties of fraction type. This function is typically
+used in connection with g_object_class_install_property() in a GObjects&apos;s
+instance_init function."
+              version="0.10.14">
+      <return-value transfer-ownership="full">
+        <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
+      </return-value>
+      <parameters>
+        <parameter name="name" transfer-ownership="none">
+          <type name="utf8" c:type="gchar*"/>
+        </parameter>
+        <parameter name="nick" transfer-ownership="none">
+          <type name="utf8" c:type="gchar*"/>
+        </parameter>
+        <parameter name="blurb" transfer-ownership="none">
+          <type name="utf8" c:type="gchar*"/>
+        </parameter>
+        <parameter name="min_num" transfer-ownership="none">
+          <type name="int" c:type="gint"/>
+        </parameter>
+        <parameter name="min_denom" transfer-ownership="none">
+          <type name="int" c:type="gint"/>
+        </parameter>
+        <parameter name="max_num" transfer-ownership="none">
+          <type name="int" c:type="gint"/>
+        </parameter>
+        <parameter name="max_denom" transfer-ownership="none">
+          <type name="int" c:type="gint"/>
+        </parameter>
+        <parameter name="default_num" transfer-ownership="none">
+          <type name="int" c:type="gint"/>
+        </parameter>
+        <parameter name="default_denom" transfer-ownership="none">
+          <type name="int" c:type="gint"/>
+        </parameter>
+        <parameter name="flags" transfer-ownership="none">
+          <type name="GObject.ParamFlags" c:type="GParamFlags"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="param_spec_mini_object"
+              c:identifier="gst_param_spec_mini_object"
+              doc="Creates a new #GParamSpec instance that hold #GstMiniObject references.">
+      <return-value transfer-ownership="full">
+        <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
+      </return-value>
+      <parameters>
+        <parameter name="name" transfer-ownership="none">
+          <type name="utf8" c:type="char*"/>
+        </parameter>
+        <parameter name="nick" transfer-ownership="none">
+          <type name="utf8" c:type="char*"/>
+        </parameter>
+        <parameter name="blurb" transfer-ownership="none">
+          <type name="utf8" c:type="char*"/>
+        </parameter>
+        <parameter name="object_type" transfer-ownership="none">
+          <type name="GType" c:type="GType"/>
+        </parameter>
+        <parameter name="flags" transfer-ownership="none">
+          <type name="GObject.ParamFlags" c:type="GParamFlags"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="parse_bin_from_description"
+              c:identifier="gst_parse_bin_from_description"
+              doc="for unlinked source or sink pads within the bin
+This is a convenience wrapper around gst_parse_launch() to create a
+#GstBin from a gst-launch-style pipeline description. See
+gst_parse_launch() and the gst-launch man page for details about the
+syntax. Ghost pads on the bin for unlinked source or sink pads
+within the bin can automatically be created (but only a maximum of
+one ghost pad for each direction will be created; if you expect
+multiple unlinked source pads or multiple unlinked sink pads
+and want them all ghosted, you will have to create the ghost pads
+yourself)."
+              version="0.10.3"
+              throws="1">
+      <return-value transfer-ownership="full">
+        <type name="Element" c:type="GstElement*"/>
+      </return-value>
+      <parameters>
+        <parameter name="bin_description" transfer-ownership="none">
+          <type name="utf8" c:type="gchar*"/>
+        </parameter>
+        <parameter name="ghost_unlinked_pads" transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="parse_bin_from_description_full"
+              c:identifier="gst_parse_bin_from_description_full"
+              doc="for unlinked source or sink pads within the bin
+This is a convenience wrapper around gst_parse_launch() to create a
+#GstBin from a gst-launch-style pipeline description. See
+gst_parse_launch() and the gst-launch man page for details about the
+syntax. Ghost pads on the bin for unlinked source or sink pads
+within the bin can automatically be created (but only a maximum of
+one ghost pad for each direction will be created; if you expect
+multiple unlinked source pads or multiple unlinked sink pads
+and want them all ghosted, you will have to create the ghost pads
+yourself)."
+              version="0.10.20"
+              throws="1">
+      <return-value transfer-ownership="full">
+        <type name="Element" c:type="GstElement*"/>
+      </return-value>
+      <parameters>
+        <parameter name="bin_description" transfer-ownership="none">
+          <type name="utf8" c:type="gchar*"/>
+        </parameter>
+        <parameter name="ghost_unlinked_pads" transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </parameter>
+        <parameter name="context" transfer-ownership="none" doc="or %NULL">
+          <type name="ParseContext" c:type="GstParseContext*"/>
+        </parameter>
+        <parameter name="flags" transfer-ownership="none">
+          <type name="ParseFlags" c:type="GstParseFlags"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="parse_launch"
+              c:identifier="gst_parse_launch"
+              doc="Create a new pipeline based on command line syntax.
+Please note that you might get a return value that is not %NULL even though
+the @error is set. In this case there was a recoverable parsing error and you
+can try to play the pipeline.
+element is specified by the @pipeline_description, all elements are put into
+a #GstPipeline, which than is returned."
+              throws="1">
+      <return-value transfer-ownership="full">
+        <type name="Element" c:type="GstElement*"/>
+      </return-value>
+      <parameters>
+        <parameter name="pipeline_description" transfer-ownership="none">
+          <type name="utf8" c:type="gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="parse_launch_full"
+              c:identifier="gst_parse_launch_full"
+              doc="Create a new pipeline based on command line syntax.
+Please note that you might get a return value that is not %NULL even though
+the @error is set. In this case there was a recoverable parsing error and you
+can try to play the pipeline.
+element is specified by the @pipeline_description, all elements are put into
+a #GstPipeline, which then is returned."
+              version="0.10.20"
+              throws="1">
+      <return-value transfer-ownership="full">
+        <type name="Element" c:type="GstElement*"/>
+      </return-value>
+      <parameters>
+        <parameter name="pipeline_description" transfer-ownership="none">
+          <type name="utf8" c:type="gchar*"/>
+        </parameter>
+        <parameter name="context" transfer-ownership="none" doc="or %NULL">
+          <type name="ParseContext" c:type="GstParseContext*"/>
+        </parameter>
+        <parameter name="flags" transfer-ownership="none">
+          <type name="ParseFlags" c:type="GstParseFlags"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="parse_launchv"
+              c:identifier="gst_parse_launchv"
+              doc="Create a new element based on command line syntax.
+An error does not mean that the pipeline could not be constructed."
+              throws="1">
+      <return-value transfer-ownership="full">
+        <type name="Element" c:type="GstElement*"/>
+      </return-value>
+      <parameters>
+        <parameter name="argv" transfer-ownership="none">
+          <array c:type="gchar**">
+            <type name="utf8"/>
+          </array>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="parse_launchv_full"
+              c:identifier="gst_parse_launchv_full"
+              doc="Create a new element based on command line syntax.
+An error does not mean that the pipeline could not be constructed.
+partially-constructed bin or element will be returned and @error will be set
+(unless you passed #GST_PARSE_FLAG_FATAL_ERRORS in @flags, then %NULL will
+always be returned on failure)"
+              version="0.10.20"
+              throws="1">
+      <return-value transfer-ownership="full">
+        <type name="Element" c:type="GstElement*"/>
+      </return-value>
+      <parameters>
+        <parameter name="argv" transfer-ownership="none">
+          <array c:type="gchar**">
+            <type name="utf8"/>
+          </array>
+        </parameter>
+        <parameter name="context" transfer-ownership="none" doc="or %NULL">
+          <type name="ParseContext" c:type="GstParseContext*"/>
+        </parameter>
+        <parameter name="flags" transfer-ownership="none">
+          <type name="ParseFlags" c:type="GstParseFlags"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="print_element_args"
+              c:identifier="gst_print_element_args"
+              doc="Print the element argument in a human readable format in the given
+GString.">
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="buf" transfer-ownership="none">
+          <type name="GLib.String" c:type="GString*"/>
+        </parameter>
+        <parameter name="indent" transfer-ownership="none">
+          <type name="int" c:type="gint"/>
+        </parameter>
+        <parameter name="element" transfer-ownership="none">
+          <type name="Element" c:type="GstElement*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="print_pad_caps"
+              c:identifier="gst_print_pad_caps"
+              doc="Write the pad capabilities in a human readable format into
+the given GString.">
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="buf" transfer-ownership="none">
+          <type name="GLib.String" c:type="GString*"/>
+        </parameter>
+        <parameter name="indent" transfer-ownership="none">
+          <type name="int" c:type="gint"/>
+        </parameter>
+        <parameter name="pad" transfer-ownership="none">
+          <type name="Pad" c:type="GstPad*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="query_type_get_by_nick"
+              c:identifier="gst_query_type_get_by_nick"
+              doc="Get the query type registered with @nick.
+if the query was not registered.">
+      <return-value transfer-ownership="full">
+        <type name="QueryType" c:type="GstQueryType"/>
+      </return-value>
+      <parameters>
+        <parameter name="nick" transfer-ownership="none">
+          <type name="utf8" c:type="gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="query_type_get_details"
+              c:identifier="gst_query_type_get_details"
+              doc="Get details about the given #GstQueryType.">
+      <return-value transfer-ownership="none">
+        <type name="QueryTypeDefinition" c:type="GstQueryTypeDefinition*"/>
+      </return-value>
+      <parameters>
+        <parameter name="type" transfer-ownership="none">
+          <type name="QueryType" c:type="GstQueryType"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="query_type_get_name"
+              c:identifier="gst_query_type_get_name"
+              doc="Get a printable name for the given query type. Do not modify or free.">
+      <return-value transfer-ownership="none">
+        <type name="utf8" c:type="gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="query" transfer-ownership="none">
+          <type name="QueryType" c:type="GstQueryType"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="query_type_iterate_definitions"
+              c:identifier="gst_query_type_iterate_definitions"
+              doc="Get a #GstIterator of all the registered query types. The definitions
+iterated over are read only.">
+      <return-value transfer-ownership="full">
+        <type name="Iterator" c:type="GstIterator*"/>
+      </return-value>
+    </function>
+    <function name="query_type_register"
+              c:identifier="gst_query_type_register"
+              doc="Create a new GstQueryType based on the nick or return an
+already registered query with that nick
+with the same nick.">
+      <return-value transfer-ownership="full">
+        <type name="QueryType" c:type="GstQueryType"/>
+      </return-value>
+      <parameters>
+        <parameter name="nick" transfer-ownership="none">
+          <type name="utf8" c:type="gchar*"/>
+        </parameter>
+        <parameter name="description" transfer-ownership="none">
+          <type name="utf8" c:type="gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="query_type_to_quark"
+              c:identifier="gst_query_type_to_quark"
+              doc="Get the unique quark for the given query type.">
+      <return-value transfer-ownership="full">
+        <type name="GLib.Quark" c:type="GQuark"/>
+      </return-value>
+      <parameters>
+        <parameter name="query" transfer-ownership="none">
+          <type name="QueryType" c:type="GstQueryType"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="query_types_contains"
+              c:identifier="gst_query_types_contains"
+              doc="See if the given #GstQueryType is inside the @types query types array.">
+      <return-value transfer-ownership="none">
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="types" transfer-ownership="none">
+          <type name="QueryType" c:type="GstQueryType*"/>
+        </parameter>
+        <parameter name="type" transfer-ownership="none">
+          <type name="QueryType" c:type="GstQueryType"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="segtrap_is_enabled"
+              c:identifier="gst_segtrap_is_enabled"
+              doc="Some functions in the GStreamer core might install a custom SIGSEGV handler
+to better catch and report errors to the application. Currently this feature
+is enabled by default when loading plugins.
+Applications might want to disable this behaviour with the
+gst_segtrap_set_enabled() function. This is typically done if the application
+wants to install its own handler without GStreamer interfering."
+              version="0.10.10">
+      <return-value transfer-ownership="none">
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+    </function>
+    <function name="segtrap_set_enabled"
+              c:identifier="gst_segtrap_set_enabled"
+              doc="Applications might want to disable/enable the SIGSEGV handling of
+the GStreamer core. See gst_segtrap_is_enabled() for more information."
+              version="0.10.10">
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="enabled" transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="structure_empty_new"
+              c:identifier="gst_structure_empty_new"
+              doc="Creates a new, empty #GstStructure with the given @name.
+See gst_structure_set_name() for constraints on the @name parameter.">
+      <return-value transfer-ownership="full">
+        <type name="Structure" c:type="GstStructure*"/>
+      </return-value>
+      <parameters>
+        <parameter name="name" transfer-ownership="none">
+          <type name="utf8" c:type="gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="structure_from_string"
+              c:identifier="gst_structure_from_string"
+              doc="Creates a #GstStructure from a string representation.
+If end is not NULL, a pointer to the place inside the given string
+where parsing ended will be returned.
+be parsed. Free with gst_structure_free() after use.">
+      <return-value transfer-ownership="full">
+        <type name="Structure" c:type="GstStructure*"/>
+      </return-value>
+      <parameters>
+        <parameter name="string" transfer-ownership="none">
+          <type name="utf8" c:type="gchar*"/>
+        </parameter>
+        <parameter name="end" transfer-ownership="none">
+          <array c:type="gchar**">
+            <type name="utf8"/>
+          </array>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="structure_id_empty_new"
+              c:identifier="gst_structure_id_empty_new"
+              doc="Creates a new, empty #GstStructure with the given name as a GQuark.">
+      <return-value transfer-ownership="full">
+        <type name="Structure" c:type="GstStructure*"/>
+      </return-value>
+      <parameters>
+        <parameter name="quark" transfer-ownership="none">
+          <type name="GLib.Quark" c:type="GQuark"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="structure_id_new"
+              c:identifier="gst_structure_id_new"
+              doc="Creates a new #GstStructure with the given name as a GQuark, followed by
+fieldname quark, GType, argument(s) &quot;triplets&quot; in the same format as
+gst_structure_id_set(). Basically a convenience wrapper around
+gst_structure_id_empty_new() and gst_structure_id_set().
+The last variable argument must be NULL (or 0)."
+              version="0.10.24">
+      <return-value transfer-ownership="full">
+        <type name="Structure" c:type="GstStructure*"/>
+      </return-value>
+      <parameters>
+        <parameter name="name_quark" transfer-ownership="none">
+          <type name="GLib.Quark" c:type="GQuark"/>
+        </parameter>
+        <parameter name="field_quark" transfer-ownership="none">
+          <type name="GLib.Quark" c:type="GQuark"/>
+        </parameter>
+        <parameter transfer-ownership="none">
+          <varargs>
+          </varargs>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="tag_exists"
+              c:identifier="gst_tag_exists"
+              doc="Checks if the given type is already registered.">
+      <return-value transfer-ownership="none">
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="tag" transfer-ownership="none">
+          <type name="utf8" c:type="gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="tag_get_description"
+              c:identifier="gst_tag_get_description"
+              doc="Returns the human-readable description of this tag, You must not change or
+free this string.">
+      <return-value transfer-ownership="none">
+        <type name="utf8" c:type="gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="tag" transfer-ownership="none">
+          <type name="utf8" c:type="gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="tag_get_flag"
+              c:identifier="gst_tag_get_flag"
+              doc="Gets the flag of @tag.">
+      <return-value transfer-ownership="full">
+        <type name="TagFlag" c:type="GstTagFlag"/>
+      </return-value>
+      <parameters>
+        <parameter name="tag" transfer-ownership="none">
+          <type name="utf8" c:type="gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="tag_get_nick" c:identifier="gst_tag_get_nick">
+      <return-value transfer-ownership="none">
+        <type name="utf8" c:type="gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="tag" transfer-ownership="none">
+          <type name="utf8" c:type="gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="tag_get_type"
+              c:identifier="gst_tag_get_type"
+              doc="Gets the #GType used for this tag.">
+      <return-value transfer-ownership="none">
+        <type name="GType" c:type="GType"/>
+      </return-value>
+      <parameters>
+        <parameter name="tag" transfer-ownership="none">
+          <type name="utf8" c:type="gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="tag_is_fixed"
+              c:identifier="gst_tag_is_fixed"
+              doc="Checks if the given tag is fixed. A fixed tag can only contain one value.
+Unfixed tags can contain lists of values.">
+      <return-value transfer-ownership="none">
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="tag" transfer-ownership="none">
+          <type name="utf8" c:type="gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="tag_list_copy_value"
+              c:identifier="gst_tag_list_copy_value"
+              doc="Copies the contents for the given tag into the value,
+merging multiple values into one if multiple values are associated
+with the tag.
+You must g_value_unset() the value after use.
+given list.">
+      <return-value transfer-ownership="none">
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="dest" transfer-ownership="none">
+          <type name="GObject.Value" c:type="GValue*"/>
+        </parameter>
+        <parameter name="list" transfer-ownership="none">
+          <type name="TagList" c:type="GstTagList*"/>
+        </parameter>
+        <parameter name="tag" transfer-ownership="none">
+          <type name="utf8" c:type="gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="tag_merge_strings_with_comma"
+              c:identifier="gst_tag_merge_strings_with_comma"
+              doc="This is a convenience function for the func argument of gst_tag_register().
+It concatenates all given strings using a comma. The tag must be registered
+as a G_TYPE_STRING or this function will fail.">
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="dest" transfer-ownership="none">
+          <type name="GObject.Value" c:type="GValue*"/>
+        </parameter>
+        <parameter name="src" transfer-ownership="none">
+          <type name="GObject.Value" c:type="GValue*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="tag_merge_use_first"
+              c:identifier="gst_tag_merge_use_first"
+              doc="This is a convenience function for the func argument of gst_tag_register().
+It creates a copy of the first value from the list.">
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="dest" transfer-ownership="none">
+          <type name="GObject.Value" c:type="GValue*"/>
+        </parameter>
+        <parameter name="src" transfer-ownership="none">
+          <type name="GObject.Value" c:type="GValue*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="tag_register"
+              c:identifier="gst_tag_register"
+              doc="Registers a new tag type for the use with GStreamer&apos;s type system. If a type
+with that name is already registered, that one is used.
+The old registration may have used a different type however. So don&apos;t rely
+on your supplied values.
+that there can only be one single value for this tag in a tag list and
+any additional values will silenty be discarded when being added (unless
+#GST_TAG_MERGE_REPLACE, #GST_TAG_MERGE_REPLACE_ALL, or
+#GST_TAG_MERGE_PREPEND is used as merge mode, in which case the new
+value will replace the old one in the list).
+The merge function will be called from gst_tag_list_copy_value() when
+it is required that one or more values for a tag be condensed into
+one single value. This may happen from gst_tag_list_get_string(),
+gst_tag_list_get_int(), gst_tag_list_get_double() etc. What will happen
+exactly in that case depends on how the tag was registered and if a
+merge function was supplied and if so which one.
+gst_tag_merge_strings_with_comma().">
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="name" transfer-ownership="none">
+          <type name="utf8" c:type="gchar*"/>
+        </parameter>
+        <parameter name="flag" transfer-ownership="none">
+          <type name="TagFlag" c:type="GstTagFlag"/>
+        </parameter>
+        <parameter name="type" transfer-ownership="none">
+          <type name="GType" c:type="GType"/>
+        </parameter>
+        <parameter name="nick" transfer-ownership="none">
+          <type name="utf8" c:type="gchar*"/>
+        </parameter>
+        <parameter name="blurb" transfer-ownership="none">
+          <type name="utf8" c:type="gchar*"/>
+        </parameter>
+        <parameter name="func" transfer-ownership="none" scope="call">
+          <type name="TagMergeFunc" c:type="GstTagMergeFunc"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="trace_read_tsc"
+              c:identifier="gst_trace_read_tsc"
+              doc="Read a platform independent timer value that can be used in
+benchmarks.">
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="dst" direction="out" transfer-ownership="full">
+          <type name="int64" c:type="gint64*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="type_find_register"
+              c:identifier="gst_type_find_register"
+              doc="passing NULL only works in GStreamer 0.10.16 and later)
+succeeds
+is unloaded.
+is unloaded.
+Registers a new typefind function to be used for typefinding. After
+registering this function will be available for typefinding.
+This function is typically called during an element&apos;s plugin initialization.">
+      <return-value transfer-ownership="none">
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="plugin" transfer-ownership="none">
+          <type name="Plugin" c:type="GstPlugin*"/>
+        </parameter>
+        <parameter name="name" transfer-ownership="none">
+          <type name="utf8" c:type="gchar*"/>
+        </parameter>
+        <parameter name="rank"
+                   transfer-ownership="none"
+                   doc="of this typefind function">
+          <type name="uint" c:type="guint"/>
+        </parameter>
+        <parameter name="func" transfer-ownership="none" scope="call">
+          <type name="TypeFindFunction" c:type="GstTypeFindFunction"/>
+        </parameter>
+        <parameter name="extensions" transfer-ownership="none">
+          <array c:type="gchar**">
+            <type name="utf8"/>
+          </array>
+        </parameter>
+        <parameter name="possible_caps" transfer-ownership="none">
+          <type name="Caps" c:type="GstCaps*"/>
+        </parameter>
+        <parameter name="data" transfer-ownership="none">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+        <parameter name="data_notify" transfer-ownership="none" scope="call">
+          <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="type_register_static_full"
+              c:identifier="gst_type_register_static_full"
+              doc="derive from
+Location of the default vtable inititalization function for interface
+types. (optional)
+Location of the default vtable finalization function for interface types.
+(optional)
+instantiatable types only).
+memory for (0 indicates no caching). Ignored on recent GLib&apos;s.
+for instantiatable types only).
+GValues of this type (usually only useful for fundamental types).
+Helper function which constructs a #GTypeInfo structure and registers a
+GType, but which generates less linker overhead than a static const
+#GTypeInfo structure. For further details of the parameters, please see
+#GTypeInfo in the GLib documentation.
+Registers type_name as the name of a new static type derived from
+parent_type. The value of flags determines the nature (e.g. abstract or
+not) of the type. It works by filling a GTypeInfo struct and calling
+g_type_register_static()."
+              version="0.10.14">
+      <return-value transfer-ownership="none">
+        <type name="GType" c:type="GType"/>
+      </return-value>
+      <parameters>
+        <parameter name="parent_type" transfer-ownership="none">
+          <type name="GType" c:type="GType"/>
+        </parameter>
+        <parameter name="type_name" transfer-ownership="none">
+          <type name="utf8" c:type="gchar*"/>
+        </parameter>
+        <parameter name="class_size" transfer-ownership="none">
+          <type name="uint" c:type="guint"/>
+        </parameter>
+        <parameter name="base_init" transfer-ownership="none" scope="call">
+          <type name="GObject.BaseInitFunc" c:type="GBaseInitFunc"/>
+        </parameter>
+        <parameter name="base_finalize" transfer-ownership="none" scope="call">
+          <type name="GObject.BaseFinalizeFunc" c:type="GBaseFinalizeFunc"/>
+        </parameter>
+        <parameter name="class_init" transfer-ownership="none" scope="call">
+          <type name="GObject.ClassInitFunc" c:type="GClassInitFunc"/>
+        </parameter>
+        <parameter name="class_finalize"
+                   transfer-ownership="none"
+                   scope="call"
+                   closure="7">
+          <type name="GObject.ClassFinalizeFunc" c:type="GClassFinalizeFunc"/>
+        </parameter>
+        <parameter name="class_data" transfer-ownership="none">
+          <type name="any" c:type="gconstpointer"/>
+        </parameter>
+        <parameter name="instance_size"
+                   transfer-ownership="none"
+                   doc="structure (required for">
+          <type name="uint" c:type="guint"/>
+        </parameter>
+        <parameter name="n_preallocs"
+                   transfer-ownership="none"
+                   doc="instances to reserve">
+          <type name="uint16" c:type="guint16"/>
+        </parameter>
+        <parameter name="instance_init" transfer-ownership="none" scope="call">
+          <type name="GObject.InstanceInitFunc" c:type="GInstanceInitFunc"/>
+        </parameter>
+        <parameter name="value_table" transfer-ownership="none">
+          <type name="GObject.TypeValueTable" c:type="GTypeValueTable*"/>
+        </parameter>
+        <parameter name="flags" transfer-ownership="none">
+          <type name="GObject.TypeFlags" c:type="GTypeFlags"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="update_registry"
+              c:identifier="gst_update_registry"
+              doc="Forces GStreamer to re-scan its plugin paths and update the default
+plugin registry.
+Applications will almost never need to call this function, it is only
+useful if the application knows new plugins have been installed (or old
+ones removed) since the start of the application (or, to be precise, the
+first call to gst_init()) and the application wants to make use of any
+newly-installed plugins without restarting the application.
+Applications should assume that the registry update is neither atomic nor
+thread-safe and should therefore not have any dynamic pipelines running
+(including the playbin and decodebin elements) and should also not create
+any elements or access the GStreamer registry while the update is in
+progress.
+Note that this function may block for a significant amount of time.
+imply that there were changes), otherwise %FALSE."
+              version="0.10.12">
+      <return-value transfer-ownership="none">
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+    </function>
+    <function name="uri_construct"
+              c:identifier="gst_uri_construct"
+              doc="Constructs a URI for a given valid protocol and location.
+is not valid, or the given location is NULL.">
+      <return-value transfer-ownership="full">
+        <type name="utf8" c:type="gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="protocol" transfer-ownership="none">
+          <type name="utf8" c:type="gchar*"/>
+        </parameter>
+        <parameter name="location" transfer-ownership="none">
+          <type name="utf8" c:type="gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="uri_get_location"
+              c:identifier="gst_uri_get_location"
+              doc="Extracts the location out of a given valid URI, ie. the protocol and &quot;://&quot;
+are stripped from the URI, which means that the location returned includes
+the hostname if one is specified. The returned string must be freed using
+g_free().
+the URI does not contain a location, an empty string is returned.">
+      <return-value transfer-ownership="full">
+        <type name="utf8" c:type="gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="uri" transfer-ownership="none">
+          <type name="utf8" c:type="gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="uri_get_protocol"
+              c:identifier="gst_uri_get_protocol"
+              doc="Extracts the protocol out of a given valid URI. The returned string must be
+freed using g_free().">
+      <return-value transfer-ownership="full">
+        <type name="utf8" c:type="gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="uri" transfer-ownership="none">
+          <type name="utf8" c:type="gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="uri_has_protocol"
+              c:identifier="gst_uri_has_protocol"
+              doc="Checks if the protocol of a given valid URI matches @protocol."
+              version="0.10.4">
+      <return-value transfer-ownership="none">
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="uri" transfer-ownership="none">
+          <type name="utf8" c:type="gchar*"/>
+        </parameter>
+        <parameter name="protocol" transfer-ownership="none">
+          <type name="utf8" c:type="gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="uri_is_valid"
+              c:identifier="gst_uri_is_valid"
+              doc="Tests if the given string is a valid URI identifier. URIs start with a valid
+scheme followed by &quot;:&quot; and maybe a string identifying the location.">
+      <return-value transfer-ownership="none">
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="uri" transfer-ownership="none">
+          <type name="utf8" c:type="gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="uri_protocol_is_supported"
+              c:identifier="gst_uri_protocol_is_supported"
+              doc="Checks if an element exists that supports the given URI protocol. Note
+that a positive return value does not imply that a subsequent call to
+gst_element_make_from_uri() is guaranteed to work."
+              version="0.10.13">
+      <return-value transfer-ownership="none">
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="type" transfer-ownership="none">
+          <type name="URIType" c:type="GstURIType"/>
+        </parameter>
+        <parameter name="protocol" transfer-ownership="none">
+          <type name="utf8" c:type="gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="uri_protocol_is_valid"
+              c:identifier="gst_uri_protocol_is_valid"
+              doc="Tests if the given string is a valid protocol identifier. Protocols
+must consist of alphanumeric characters, &apos;+&apos;, &apos;-&apos; and &apos;.&apos; and must
+start with a alphabetic character. See RFC 3986 Section 3.1.">
+      <return-value transfer-ownership="none">
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="protocol" transfer-ownership="none">
+          <type name="utf8" c:type="gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="util_array_binary_search"
+              c:identifier="gst_util_array_binary_search"
+              doc="Searches inside @array for @search_data by using the comparison function
+As @search_data is always passed as second argument to @search_func it&apos;s
+not required that @search_data has the same type as the array elements.
+The complexity of this search function is O(log (num_elements))."
+              version="0.10.23">
+      <return-value transfer-ownership="none">
+        <type name="any" c:type="gpointer"/>
+      </return-value>
+      <parameters>
+        <parameter name="array" transfer-ownership="none">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+        <parameter name="num_elements" transfer-ownership="none">
+          <type name="uint" c:type="guint"/>
+        </parameter>
+        <parameter name="element_size" transfer-ownership="none">
+          <type name="size_t" c:type="gsize"/>
+        </parameter>
+        <parameter name="search_func" transfer-ownership="none" scope="call">
+          <type name="GLib.CompareDataFunc" c:type="GCompareDataFunc"/>
+        </parameter>
+        <parameter name="mode" transfer-ownership="none">
+          <type name="SearchMode" c:type="GstSearchMode"/>
+        </parameter>
+        <parameter name="search_data" transfer-ownership="none">
+          <type name="any" c:type="gconstpointer"/>
+        </parameter>
+        <parameter name="user_data" transfer-ownership="none">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="util_double_to_fraction"
+              c:identifier="gst_util_double_to_fraction"
+              doc="Transforms a #gdouble to a fraction and simplifies
+the result."
+              version="0.10.26">
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="src" transfer-ownership="none">
+          <type name="double" c:type="gdouble"/>
+        </parameter>
+        <parameter name="dest_n" direction="out" transfer-ownership="full">
+          <type name="int" c:type="gint*"/>
+        </parameter>
+        <parameter name="dest_d" direction="out" transfer-ownership="full">
+          <type name="int" c:type="gint*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="util_dump_mem"
+              c:identifier="gst_util_dump_mem"
+              doc="Dumps the memory block into a hex representation. Useful for debugging.">
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="mem" transfer-ownership="none">
+          <array c:type="guchar*">
+            <type name="uint8"/>
+          </array>
+        </parameter>
+        <parameter name="size" transfer-ownership="none">
+          <type name="uint" c:type="guint"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="util_fraction_add"
+              c:identifier="gst_util_fraction_add"
+              doc="Adds the fractions @a_n/@a_d and @b_n/@b_d and stores
+the result in @res_n and @res_d."
+              version="0.10.26">
+      <return-value transfer-ownership="none">
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="a_n" transfer-ownership="none">
+          <type name="int" c:type="gint"/>
+        </parameter>
+        <parameter name="a_d" transfer-ownership="none">
+          <type name="int" c:type="gint"/>
+        </parameter>
+        <parameter name="b_n" transfer-ownership="none">
+          <type name="int" c:type="gint"/>
+        </parameter>
+        <parameter name="b_d" transfer-ownership="none">
+          <type name="int" c:type="gint"/>
+        </parameter>
+        <parameter name="res_n" direction="out" transfer-ownership="full">
+          <type name="int" c:type="gint*"/>
+        </parameter>
+        <parameter name="res_d" direction="out" transfer-ownership="full">
+          <type name="int" c:type="gint*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="util_fraction_multiply"
+              c:identifier="gst_util_fraction_multiply"
+              doc="Multiplies the fractions @a_n/@a_d and @b_n/@b_d and stores
+the result in @res_n and @res_d."
+              version="0.10.26">
+      <return-value transfer-ownership="none">
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="a_n" transfer-ownership="none">
+          <type name="int" c:type="gint"/>
+        </parameter>
+        <parameter name="a_d" transfer-ownership="none">
+          <type name="int" c:type="gint"/>
+        </parameter>
+        <parameter name="b_n" transfer-ownership="none">
+          <type name="int" c:type="gint"/>
+        </parameter>
+        <parameter name="b_d" transfer-ownership="none">
+          <type name="int" c:type="gint"/>
+        </parameter>
+        <parameter name="res_n" direction="out" transfer-ownership="full">
+          <type name="int" c:type="gint*"/>
+        </parameter>
+        <parameter name="res_d" direction="out" transfer-ownership="full">
+          <type name="int" c:type="gint*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="util_fraction_to_double"
+              c:identifier="gst_util_fraction_to_double"
+              doc="Transforms a #gdouble to a fraction and simplifies the result."
+              version="0.10.26">
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="src_n" transfer-ownership="none">
+          <type name="int" c:type="gint"/>
+        </parameter>
+        <parameter name="src_d" transfer-ownership="none">
+          <type name="int" c:type="gint"/>
+        </parameter>
+        <parameter name="dest" direction="out" transfer-ownership="full">
+          <type name="double" c:type="gdouble*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="util_gdouble_to_guint64"
+              c:identifier="gst_util_gdouble_to_guint64">
+      <return-value transfer-ownership="none">
+        <type name="uint64" c:type="guint64"/>
+      </return-value>
+      <parameters>
+        <parameter name="value" transfer-ownership="none">
+          <type name="double" c:type="gdouble"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="util_get_timestamp"
+              c:identifier="gst_util_get_timestamp"
+              doc="Get a timestamp as GstClockTime to be used for interval meassurements.
+The timestamp should not be interpreted in any other way."
+              version="0.10.16">
+      <return-value transfer-ownership="full">
+        <type name="ClockTime" c:type="GstClockTime"/>
+      </return-value>
+    </function>
+    <function name="util_greatest_common_divisor"
+              c:identifier="gst_util_greatest_common_divisor"
+              doc="Calculates the greatest common divisor of @a
+and @b."
+              version="0.10.26">
+      <return-value transfer-ownership="none">
+        <type name="int" c:type="gint"/>
+      </return-value>
+      <parameters>
+        <parameter name="a" transfer-ownership="none">
+          <type name="int" c:type="gint"/>
+        </parameter>
+        <parameter name="b" transfer-ownership="none">
+          <type name="int" c:type="gint"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="util_guint64_to_gdouble"
+              c:identifier="gst_util_guint64_to_gdouble">
+      <return-value transfer-ownership="none">
+        <type name="double" c:type="gdouble"/>
+      </return-value>
+      <parameters>
+        <parameter name="value" transfer-ownership="none">
+          <type name="uint64" c:type="guint64"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="util_seqnum_compare"
+              c:identifier="gst_util_seqnum_compare"
+              doc="Compare two sequence numbers, handling wraparound.
+The current implementation just returns (gint32)(@s1 - @s2).
+positive number if @s1 is after @s2."
+              version="0.10.22">
+      <return-value transfer-ownership="none">
+        <type name="int32" c:type="gint32"/>
+      </return-value>
+      <parameters>
+        <parameter name="s1" transfer-ownership="none">
+          <type name="uint32" c:type="guint32"/>
+        </parameter>
+        <parameter name="s2" transfer-ownership="none">
+          <type name="uint32" c:type="guint32"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="util_seqnum_next"
+              c:identifier="gst_util_seqnum_next"
+              doc="Return a constantly incrementing sequence number.
+This function is used internally to GStreamer to be able to determine which
+events and messages are &quot;the same&quot;. For example, elements may set the seqnum
+on a segment-done message to be the same as that of the last seek event, to
+indicate that event and the message correspond to the same segment.
+overflow back to 0 at some point. Use gst_util_seqnum_compare() to make sure
+you handle wraparound correctly."
+              version="0.10.22">
+      <return-value transfer-ownership="none">
+        <type name="uint32" c:type="guint32"/>
+      </return-value>
+    </function>
+    <function name="util_set_object_arg"
+              c:identifier="gst_util_set_object_arg"
+              doc="Convertes the string value to the type of the objects argument and
+sets the argument with it.
+Note that this function silently returns if @object has no property named">
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="object" transfer-ownership="none">
+          <type name="GObject.Object" c:type="GObject*"/>
+        </parameter>
+        <parameter name="name" transfer-ownership="none">
+          <type name="utf8" c:type="gchar*"/>
+        </parameter>
+        <parameter name="value" transfer-ownership="none">
+          <type name="utf8" c:type="gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="util_set_value_from_string"
+              c:identifier="gst_util_set_value_from_string"
+              doc="Converts the string to the type of the value and
+sets the value with it.
+Note that this function is dangerous as it does not return any indication
+if the conversion worked or not.">
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="value" transfer-ownership="none">
+          <type name="GObject.Value" c:type="GValue*"/>
+        </parameter>
+        <parameter name="value_str" transfer-ownership="none">
+          <type name="utf8" c:type="gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="util_uint64_scale"
+              c:identifier="gst_util_uint64_scale"
+              doc="Scale @val by the rational number @num / @denom, avoiding overflows and
+underflows and without loss of precision.
+This function can potentially be very slow if val and num are both
+greater than G_MAXUINT32.
+function returns G_MAXUINT64.  If the result is not exactly
+representable as an integer it is truncated.  See also
+gst_util_uint64_scale_round(), gst_util_uint64_scale_ceil(),
+gst_util_uint64_scale_int(), gst_util_uint64_scale_int_round(),
+gst_util_uint64_scale_int_ceil().">
+      <return-value transfer-ownership="none">
+        <type name="uint64" c:type="guint64"/>
+      </return-value>
+      <parameters>
+        <parameter name="val" transfer-ownership="none">
+          <type name="uint64" c:type="guint64"/>
+        </parameter>
+        <parameter name="num" transfer-ownership="none">
+          <type name="uint64" c:type="guint64"/>
+        </parameter>
+        <parameter name="denom" transfer-ownership="none">
+          <type name="uint64" c:type="guint64"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="util_uint64_scale_ceil"
+              c:identifier="gst_util_uint64_scale_ceil"
+              doc="Scale @val by the rational number @num / @denom, avoiding overflows and
+underflows and without loss of precision.
+This function can potentially be very slow if val and num are both
+greater than G_MAXUINT32.
+function returns G_MAXUINT64.  If the result is not exactly
+representable as an integer, it is rounded up.  See also
+gst_util_uint64_scale(), gst_util_uint64_scale_round(),
+gst_util_uint64_scale_int(), gst_util_uint64_scale_int_round(),
+gst_util_uint64_scale_int_ceil().">
+      <return-value transfer-ownership="none">
+        <type name="uint64" c:type="guint64"/>
+      </return-value>
+      <parameters>
+        <parameter name="val" transfer-ownership="none">
+          <type name="uint64" c:type="guint64"/>
+        </parameter>
+        <parameter name="num" transfer-ownership="none">
+          <type name="uint64" c:type="guint64"/>
+        </parameter>
+        <parameter name="denom" transfer-ownership="none">
+          <type name="uint64" c:type="guint64"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="util_uint64_scale_int"
+              c:identifier="gst_util_uint64_scale_int"
+              doc="Scale @val by the rational number @num / @denom, avoiding overflows and
+underflows and without loss of precision.  @num must be non-negative and
+function returns G_MAXUINT64.  If the result is not exactly
+representable as an integer, it is truncated.  See also
+gst_util_uint64_scale_int_round(), gst_util_uint64_scale_int_ceil(),
+gst_util_uint64_scale(), gst_util_uint64_scale_round(),
+gst_util_uint64_scale_ceil().">
+      <return-value transfer-ownership="none">
+        <type name="uint64" c:type="guint64"/>
+      </return-value>
+      <parameters>
+        <parameter name="val" transfer-ownership="none" doc="to scale.">
+          <type name="uint64" c:type="guint64"/>
+        </parameter>
+        <parameter name="num" transfer-ownership="none">
+          <type name="int" c:type="gint"/>
+        </parameter>
+        <parameter name="denom" transfer-ownership="none">
+          <type name="int" c:type="gint"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="util_uint64_scale_int_ceil"
+              c:identifier="gst_util_uint64_scale_int_ceil"
+              doc="Scale @val by the rational number @num / @denom, avoiding overflows and
+underflows and without loss of precision.  @num must be non-negative and
+function returns G_MAXUINT64.  If the result is not exactly
+representable as an integer, it is rounded up.  See also
+gst_util_uint64_scale_int(), gst_util_uint64_scale_int_round(),
+gst_util_uint64_scale(), gst_util_uint64_scale_round(),
+gst_util_uint64_scale_ceil().">
+      <return-value transfer-ownership="none">
+        <type name="uint64" c:type="guint64"/>
+      </return-value>
+      <parameters>
+        <parameter name="val" transfer-ownership="none" doc="to scale.">
+          <type name="uint64" c:type="guint64"/>
+        </parameter>
+        <parameter name="num" transfer-ownership="none">
+          <type name="int" c:type="gint"/>
+        </parameter>
+        <parameter name="denom" transfer-ownership="none">
+          <type name="int" c:type="gint"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="util_uint64_scale_int_round"
+              c:identifier="gst_util_uint64_scale_int_round"
+              doc="Scale @val by the rational number @num / @denom, avoiding overflows and
+underflows and without loss of precision.  @num must be non-negative and
+function returns G_MAXUINT64.  If the result is not exactly
+representable as an integer, it is rounded to the nearest integer
+(half-way cases are rounded up).  See also gst_util_uint64_scale_int(),
+gst_util_uint64_scale_int_ceil(), gst_util_uint64_scale(),
+gst_util_uint64_scale_round(), gst_util_uint64_scale_ceil().">
+      <return-value transfer-ownership="none">
+        <type name="uint64" c:type="guint64"/>
+      </return-value>
+      <parameters>
+        <parameter name="val" transfer-ownership="none" doc="to scale.">
+          <type name="uint64" c:type="guint64"/>
+        </parameter>
+        <parameter name="num" transfer-ownership="none">
+          <type name="int" c:type="gint"/>
+        </parameter>
+        <parameter name="denom" transfer-ownership="none">
+          <type name="int" c:type="gint"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="util_uint64_scale_round"
+              c:identifier="gst_util_uint64_scale_round"
+              doc="Scale @val by the rational number @num / @denom, avoiding overflows and
+underflows and without loss of precision.
+This function can potentially be very slow if val and num are both
+greater than G_MAXUINT32.
+function returns G_MAXUINT64.  If the result is not exactly
+representable as an integer, it is rounded to the nearest integer
+(half-way cases are rounded up).  See also gst_util_uint64_scale(),
+gst_util_uint64_scale_ceil(), gst_util_uint64_scale_int(),
+gst_util_uint64_scale_int_round(), gst_util_uint64_scale_int_ceil().">
+      <return-value transfer-ownership="none">
+        <type name="uint64" c:type="guint64"/>
+      </return-value>
+      <parameters>
+        <parameter name="val" transfer-ownership="none">
+          <type name="uint64" c:type="guint64"/>
+        </parameter>
+        <parameter name="num" transfer-ownership="none">
+          <type name="uint64" c:type="guint64"/>
+        </parameter>
+        <parameter name="denom" transfer-ownership="none">
+          <type name="uint64" c:type="guint64"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="value_array_append_value"
+              c:identifier="gst_value_array_append_value"
+              doc="Appends @append_value to the GstValueArray in @value.">
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="value" transfer-ownership="none">
+          <type name="GObject.Value" c:type="GValue*"/>
+        </parameter>
+        <parameter name="append_value" transfer-ownership="none">
+          <type name="GObject.Value" c:type="GValue*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="value_array_get_size"
+              c:identifier="gst_value_array_get_size"
+              doc="Gets the number of values contained in @value.">
+      <return-value transfer-ownership="none">
+        <type name="uint" c:type="guint"/>
+      </return-value>
+      <parameters>
+        <parameter name="value" transfer-ownership="none">
+          <type name="GObject.Value" c:type="GValue*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="value_array_get_value"
+              c:identifier="gst_value_array_get_value"
+              doc="Gets the value that is a member of the array contained in @value and
+has the index @index.">
+      <return-value transfer-ownership="none">
+        <type name="GObject.Value" c:type="GValue*"/>
+      </return-value>
+      <parameters>
+        <parameter name="value" transfer-ownership="none">
+          <type name="GObject.Value" c:type="GValue*"/>
+        </parameter>
+        <parameter name="index" transfer-ownership="none">
+          <type name="uint" c:type="guint"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="value_array_prepend_value"
+              c:identifier="gst_value_array_prepend_value"
+              doc="Prepends @prepend_value to the GstValueArray in @value.">
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="value" transfer-ownership="none">
+          <type name="GObject.Value" c:type="GValue*"/>
+        </parameter>
+        <parameter name="prepend_value" transfer-ownership="none">
+          <type name="GObject.Value" c:type="GValue*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="value_can_compare"
+              c:identifier="gst_value_can_compare"
+              doc="Determines if @value1 and @value2 can be compared.">
+      <return-value transfer-ownership="none">
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="value1" transfer-ownership="none">
+          <type name="GObject.Value" c:type="GValue*"/>
+        </parameter>
+        <parameter name="value2" transfer-ownership="none">
+          <type name="GObject.Value" c:type="GValue*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="value_can_intersect"
+              c:identifier="gst_value_can_intersect"
+              doc="Determines if intersecting two values will produce a valid result.
+Two values will produce a valid intersection if they have the same
+type, or if there is a method (registered by
+gst_value_register_intersect_func()) to calculate the intersection.">
+      <return-value transfer-ownership="none">
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="value1" transfer-ownership="none">
+          <type name="GObject.Value" c:type="GValue*"/>
+        </parameter>
+        <parameter name="value2" transfer-ownership="none">
+          <type name="GObject.Value" c:type="GValue*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="value_can_subtract"
+              c:identifier="gst_value_can_subtract"
+              doc="Checks if it&apos;s possible to subtract @subtrahend from @minuend.">
+      <return-value transfer-ownership="none">
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="minuend" transfer-ownership="none">
+          <type name="GObject.Value" c:type="GValue*"/>
+        </parameter>
+        <parameter name="subtrahend" transfer-ownership="none">
+          <type name="GObject.Value" c:type="GValue*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="value_can_union"
+              c:identifier="gst_value_can_union"
+              doc="Determines if @value1 and @value2 can be non-trivially unioned.
+Any two values can be trivially unioned by adding both of them
+to a GstValueList.  However, certain types have the possibility
+to be unioned in a simpler way.  For example, an integer range
+and an integer can be unioned if the integer is a subset of the
+integer range.  If there is the possibility that two values can
+be unioned, this function returns TRUE.
+be unioned.">
+      <return-value transfer-ownership="none">
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="value1" transfer-ownership="none">
+          <type name="GObject.Value" c:type="GValue*"/>
+        </parameter>
+        <parameter name="value2" transfer-ownership="none">
+          <type name="GObject.Value" c:type="GValue*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="value_compare"
+              c:identifier="gst_value_compare"
+              doc="Compares @value1 and @value2.  If @value1 and @value2 cannot be
+compared, the function returns GST_VALUE_UNORDERED.  Otherwise,
+if @value1 is greater than @value2, GST_VALUE_GREATER_THAN is returned.
+If @value1 is less than @value2, GST_VALUE_LESS_THAN is returned.
+If the values are equal, GST_VALUE_EQUAL is returned.">
+      <return-value transfer-ownership="none">
+        <type name="int" c:type="gint"/>
+      </return-value>
+      <parameters>
+        <parameter name="value1" transfer-ownership="none">
+          <type name="GObject.Value" c:type="GValue*"/>
+        </parameter>
+        <parameter name="value2" transfer-ownership="none">
+          <type name="GObject.Value" c:type="GValue*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="value_deserialize"
+              c:identifier="gst_value_deserialize"
+              doc="Tries to deserialize a string into the type specified by the given GValue.
+If the operation succeeds, TRUE is returned, FALSE otherwise.">
+      <return-value transfer-ownership="none">
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="dest" transfer-ownership="none">
+          <type name="GObject.Value" c:type="GValue*"/>
+        </parameter>
+        <parameter name="src" transfer-ownership="none">
+          <type name="utf8" c:type="gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="value_dup_mini_object"
+              c:identifier="gst_value_dup_mini_object"
+              doc="Get the contents of a %GST_TYPE_MINI_OBJECT derived #GValue,
+increasing its reference count."
+              version="0.10.20">
+      <return-value transfer-ownership="full">
+        <type name="MiniObject" c:type="GstMiniObject*"/>
+      </return-value>
+      <parameters>
+        <parameter name="value" transfer-ownership="none">
+          <type name="GObject.Value" c:type="GValue*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="value_fraction_multiply"
+              c:identifier="gst_value_fraction_multiply"
+              doc="Multiplies the two #GValue items containing a #GST_TYPE_FRACTION and sets">
+      <return-value transfer-ownership="none" doc="TRUE otherwise.">
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="product" transfer-ownership="none">
+          <type name="GObject.Value" c:type="GValue*"/>
+        </parameter>
+        <parameter name="factor1" transfer-ownership="none">
+          <type name="GObject.Value" c:type="GValue*"/>
+        </parameter>
+        <parameter name="factor2" transfer-ownership="none">
+          <type name="GObject.Value" c:type="GValue*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="value_fraction_subtract"
+              c:identifier="gst_value_fraction_subtract"
+              doc="Subtracts the @subtrahend from the @minuend and sets @dest to the result.">
+      <return-value transfer-ownership="none" doc="TRUE otherwise.">
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="dest" transfer-ownership="none">
+          <type name="GObject.Value" c:type="GValue*"/>
+        </parameter>
+        <parameter name="minuend" transfer-ownership="none">
+          <type name="GObject.Value" c:type="GValue*"/>
+        </parameter>
+        <parameter name="subtrahend" transfer-ownership="none">
+          <type name="GObject.Value" c:type="GValue*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="value_get_caps"
+              c:identifier="gst_value_get_caps"
+              doc="Gets the contents of @value.">
+      <return-value transfer-ownership="none">
+        <type name="Caps" c:type="GstCaps*"/>
+      </return-value>
+      <parameters>
+        <parameter name="value" transfer-ownership="none">
+          <type name="GObject.Value" c:type="GValue*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="value_get_date"
+              c:identifier="gst_value_get_date"
+              doc="Gets the contents of @value.">
+      <return-value transfer-ownership="none">
+        <type name="GLib.Date" c:type="GDate*"/>
+      </return-value>
+      <parameters>
+        <parameter name="value" transfer-ownership="none">
+          <type name="GObject.Value" c:type="GValue*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="value_get_double_range_max"
+              c:identifier="gst_value_get_double_range_max"
+              doc="Gets the maximum of the range specified by @value.">
+      <return-value transfer-ownership="none">
+        <type name="double" c:type="gdouble"/>
+      </return-value>
+      <parameters>
+        <parameter name="value" transfer-ownership="none">
+          <type name="GObject.Value" c:type="GValue*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="value_get_double_range_min"
+              c:identifier="gst_value_get_double_range_min"
+              doc="Gets the minimum of the range specified by @value.">
+      <return-value transfer-ownership="none">
+        <type name="double" c:type="gdouble"/>
+      </return-value>
+      <parameters>
+        <parameter name="value" transfer-ownership="none">
+          <type name="GObject.Value" c:type="GValue*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="value_get_fourcc"
+              c:identifier="gst_value_get_fourcc"
+              doc="Gets the #guint32 fourcc contained in @value.">
+      <return-value transfer-ownership="none">
+        <type name="uint32" c:type="guint32"/>
+      </return-value>
+      <parameters>
+        <parameter name="value" transfer-ownership="none">
+          <type name="GObject.Value" c:type="GValue*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="value_get_fraction_denominator"
+              c:identifier="gst_value_get_fraction_denominator"
+              doc="Gets the denominator of the fraction specified by @value.">
+      <return-value transfer-ownership="none">
+        <type name="int" c:type="gint"/>
+      </return-value>
+      <parameters>
+        <parameter name="value" transfer-ownership="none">
+          <type name="GObject.Value" c:type="GValue*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="value_get_fraction_numerator"
+              c:identifier="gst_value_get_fraction_numerator"
+              doc="Gets the numerator of the fraction specified by @value.">
+      <return-value transfer-ownership="none">
+        <type name="int" c:type="gint"/>
+      </return-value>
+      <parameters>
+        <parameter name="value" transfer-ownership="none">
+          <type name="GObject.Value" c:type="GValue*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="value_get_fraction_range_max"
+              c:identifier="gst_value_get_fraction_range_max"
+              doc="Gets the maximum of the range specified by @value.">
+      <return-value transfer-ownership="none">
+        <type name="GObject.Value" c:type="GValue*"/>
+      </return-value>
+      <parameters>
+        <parameter name="value" transfer-ownership="none">
+          <type name="GObject.Value" c:type="GValue*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="value_get_fraction_range_min"
+              c:identifier="gst_value_get_fraction_range_min"
+              doc="Gets the minimum of the range specified by @value.">
+      <return-value transfer-ownership="none">
+        <type name="GObject.Value" c:type="GValue*"/>
+      </return-value>
+      <parameters>
+        <parameter name="value" transfer-ownership="none">
+          <type name="GObject.Value" c:type="GValue*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="value_get_int_range_max"
+              c:identifier="gst_value_get_int_range_max"
+              doc="Gets the maximum of the range specified by @value.">
+      <return-value transfer-ownership="none">
+        <type name="int" c:type="gint"/>
+      </return-value>
+      <parameters>
+        <parameter name="value" transfer-ownership="none">
+          <type name="GObject.Value" c:type="GValue*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="value_get_int_range_min"
+              c:identifier="gst_value_get_int_range_min"
+              doc="Gets the minimum of the range specified by @value.">
+      <return-value transfer-ownership="none">
+        <type name="int" c:type="gint"/>
+      </return-value>
+      <parameters>
+        <parameter name="value" transfer-ownership="none">
+          <type name="GObject.Value" c:type="GValue*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="value_get_mini_object"
+              c:identifier="gst_value_get_mini_object"
+              doc="Get the contents of a %GST_TYPE_MINI_OBJECT derived #GValue.
+Does not increase the refcount of the returned object.">
+      <return-value transfer-ownership="full">
+        <type name="MiniObject" c:type="GstMiniObject*"/>
+      </return-value>
+      <parameters>
+        <parameter name="value" transfer-ownership="none">
+          <type name="GObject.Value" c:type="GValue*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="value_get_structure"
+              c:identifier="gst_value_get_structure"
+              doc="Gets the contents of @value."
+              version="0.10.15">
+      <return-value transfer-ownership="none">
+        <type name="Structure" c:type="GstStructure*"/>
+      </return-value>
+      <parameters>
+        <parameter name="value" transfer-ownership="none">
+          <type name="GObject.Value" c:type="GValue*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="value_init_and_copy"
+              c:identifier="gst_value_init_and_copy"
+              doc="Initialises the target value to be of the same type as source and then copies
+the contents from source to target.">
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="dest" transfer-ownership="none">
+          <type name="GObject.Value" c:type="GValue*"/>
+        </parameter>
+        <parameter name="src" transfer-ownership="none">
+          <type name="GObject.Value" c:type="GValue*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="value_intersect"
+              c:identifier="gst_value_intersect"
+              doc="intersection value
+Calculates the intersection of two values.  If the values have
+a non-empty intersection, the value representing the intersection
+is placed in @dest.  If the intersection is non-empty, @dest is
+not modified.">
+      <return-value transfer-ownership="none">
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="dest" transfer-ownership="none">
+          <type name="GObject.Value" c:type="GValue*"/>
+        </parameter>
+        <parameter name="value1" transfer-ownership="none">
+          <type name="GObject.Value" c:type="GValue*"/>
+        </parameter>
+        <parameter name="value2" transfer-ownership="none">
+          <type name="GObject.Value" c:type="GValue*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="value_is_fixed"
+              c:identifier="gst_value_is_fixed"
+              doc="Tests if the given GValue, if available in a GstStructure (or any other
+ranges) value.">
+      <return-value transfer-ownership="none">
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="value" transfer-ownership="none">
+          <type name="GObject.Value" c:type="GValue*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="value_list_append_value"
+              c:identifier="gst_value_list_append_value"
+              doc="Appends @append_value to the GstValueList in @value.">
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="value" transfer-ownership="none">
+          <type name="GObject.Value" c:type="GValue*"/>
+        </parameter>
+        <parameter name="append_value" transfer-ownership="none">
+          <type name="GObject.Value" c:type="GValue*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="value_list_concat"
+              c:identifier="gst_value_list_concat"
+              doc="Concatenates copies of @value1 and @value2 into a list.  Values that are not
+of type #GST_TYPE_LIST are treated as if they were lists of length 1.">
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="dest" transfer-ownership="none">
+          <type name="GObject.Value" c:type="GValue*"/>
+        </parameter>
+        <parameter name="value1" transfer-ownership="none">
+          <type name="GObject.Value" c:type="GValue*"/>
+        </parameter>
+        <parameter name="value2" transfer-ownership="none">
+          <type name="GObject.Value" c:type="GValue*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="value_list_get_size"
+              c:identifier="gst_value_list_get_size"
+              doc="Gets the number of values contained in @value.">
+      <return-value transfer-ownership="none">
+        <type name="uint" c:type="guint"/>
+      </return-value>
+      <parameters>
+        <parameter name="value" transfer-ownership="none">
+          <type name="GObject.Value" c:type="GValue*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="value_list_get_value"
+              c:identifier="gst_value_list_get_value"
+              doc="Gets the value that is a member of the list contained in @value and
+has the index @index.">
+      <return-value transfer-ownership="none">
+        <type name="GObject.Value" c:type="GValue*"/>
+      </return-value>
+      <parameters>
+        <parameter name="value" transfer-ownership="none">
+          <type name="GObject.Value" c:type="GValue*"/>
+        </parameter>
+        <parameter name="index" transfer-ownership="none">
+          <type name="uint" c:type="guint"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="value_list_prepend_value"
+              c:identifier="gst_value_list_prepend_value"
+              doc="Prepends @prepend_value to the GstValueList in @value.">
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="value" transfer-ownership="none">
+          <type name="GObject.Value" c:type="GValue*"/>
+        </parameter>
+        <parameter name="prepend_value" transfer-ownership="none">
+          <type name="GObject.Value" c:type="GValue*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="value_register"
+              c:identifier="gst_value_register"
+              doc="Registers functions to perform calculations on #GValue items of a given
+type. Each type can only be added once.">
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="table" transfer-ownership="none">
+          <type name="ValueTable" c:type="GstValueTable*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="value_register_intersect_func"
+              c:identifier="gst_value_register_intersect_func"
+              doc="Registers a function that is called to calculate the intersection
+of the values having the types @type1 and @type2.
+Intersect functions should be registered at startup before any pipelines are
+started, as gst_value_register_intersect_func() is not thread-safe and
+cannot be used at the same time as gst_value_intersect() or
+gst_value_can_intersect().">
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="type1" transfer-ownership="none">
+          <type name="GType" c:type="GType"/>
+        </parameter>
+        <parameter name="type2" transfer-ownership="none">
+          <type name="GType" c:type="GType"/>
+        </parameter>
+        <parameter name="func" transfer-ownership="none" scope="call">
+          <type name="ValueIntersectFunc" c:type="GstValueIntersectFunc"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="value_register_subtract_func"
+              c:identifier="gst_value_register_subtract_func"
+              doc="Registers @func as a function capable of subtracting the values of
+Subtract functions should be registered at startup before any pipelines are
+started, as gst_value_register_subtract_func() is not thread-safe and
+cannot be used at the same time as gst_value_subtract().">
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="minuend_type" transfer-ownership="none">
+          <type name="GType" c:type="GType"/>
+        </parameter>
+        <parameter name="subtrahend_type" transfer-ownership="none">
+          <type name="GType" c:type="GType"/>
+        </parameter>
+        <parameter name="func" transfer-ownership="none" scope="call">
+          <type name="ValueSubtractFunc" c:type="GstValueSubtractFunc"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="value_register_union_func"
+              c:identifier="gst_value_register_union_func"
+              doc="Registers a union function that can create a union between #GValue items
+of the type @type1 and @type2.
+Union functions should be registered at startup before any pipelines are
+started, as gst_value_register_union_func() is not thread-safe and cannot
+be used at the same time as gst_value_union() or gst_value_can_union().">
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="type1" transfer-ownership="none">
+          <type name="GType" c:type="GType"/>
+        </parameter>
+        <parameter name="type2" transfer-ownership="none">
+          <type name="GType" c:type="GType"/>
+        </parameter>
+        <parameter name="func" transfer-ownership="none" scope="call">
+          <type name="ValueUnionFunc" c:type="GstValueUnionFunc"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="value_serialize"
+              c:identifier="gst_value_serialize"
+              doc="tries to transform the given @value into a string representation that allows
+getting back this string later on using gst_value_deserialize().">
+      <return-value transfer-ownership="full">
+        <type name="utf8" c:type="gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="value" transfer-ownership="none">
+          <type name="GObject.Value" c:type="GValue*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="value_set_caps"
+              c:identifier="gst_value_set_caps"
+              doc="Sets the contents of @value to @caps.  The actual
+#GstCaps structure is copied before it is used.">
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="value" transfer-ownership="none">
+          <type name="GObject.Value" c:type="GValue*"/>
+        </parameter>
+        <parameter name="caps" transfer-ownership="none">
+          <type name="Caps" c:type="GstCaps*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="value_set_date"
+              c:identifier="gst_value_set_date"
+              doc="Sets the contents of @value to coorespond to @date.  The actual
+#GDate structure is copied before it is used.">
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="value" transfer-ownership="none">
+          <type name="GObject.Value" c:type="GValue*"/>
+        </parameter>
+        <parameter name="date" transfer-ownership="none">
+          <type name="GLib.Date" c:type="GDate*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="value_set_double_range"
+              c:identifier="gst_value_set_double_range"
+              doc="Sets @value to the range specified by @start and @end.">
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="value" transfer-ownership="none">
+          <type name="GObject.Value" c:type="GValue*"/>
+        </parameter>
+        <parameter name="start" transfer-ownership="none">
+          <type name="double" c:type="gdouble"/>
+        </parameter>
+        <parameter name="end" transfer-ownership="none">
+          <type name="double" c:type="gdouble"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="value_set_fourcc"
+              c:identifier="gst_value_set_fourcc"
+              doc="Sets @value to @fourcc.">
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="value" transfer-ownership="none">
+          <type name="GObject.Value" c:type="GValue*"/>
+        </parameter>
+        <parameter name="fourcc" transfer-ownership="none">
+          <type name="uint32" c:type="guint32"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="value_set_fraction"
+              c:identifier="gst_value_set_fraction"
+              doc="Sets @value to the fraction specified by @numerator over @denominator.
+The fraction gets reduced to the smallest numerator and denominator,
+and if necessary the sign is moved to the numerator.">
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="value" transfer-ownership="none">
+          <type name="GObject.Value" c:type="GValue*"/>
+        </parameter>
+        <parameter name="numerator" transfer-ownership="none">
+          <type name="int" c:type="gint"/>
+        </parameter>
+        <parameter name="denominator" transfer-ownership="none">
+          <type name="int" c:type="gint"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="value_set_fraction_range"
+              c:identifier="gst_value_set_fraction_range"
+              doc="Sets @value to the range specified by @start and @end.">
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="value" transfer-ownership="none">
+          <type name="GObject.Value" c:type="GValue*"/>
+        </parameter>
+        <parameter name="start" transfer-ownership="none">
+          <type name="GObject.Value" c:type="GValue*"/>
+        </parameter>
+        <parameter name="end" transfer-ownership="none">
+          <type name="GObject.Value" c:type="GValue*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="value_set_fraction_range_full"
+              c:identifier="gst_value_set_fraction_range_full"
+              doc="Sets @value to the range specified by @numerator_start/@denominator_start
+and @numerator_end/@denominator_end.">
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="value" transfer-ownership="none">
+          <type name="GObject.Value" c:type="GValue*"/>
+        </parameter>
+        <parameter name="numerator_start" transfer-ownership="none">
+          <type name="int" c:type="gint"/>
+        </parameter>
+        <parameter name="denominator_start" transfer-ownership="none">
+          <type name="int" c:type="gint"/>
+        </parameter>
+        <parameter name="numerator_end" transfer-ownership="none">
+          <type name="int" c:type="gint"/>
+        </parameter>
+        <parameter name="denominator_end" transfer-ownership="none">
+          <type name="int" c:type="gint"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="value_set_int_range"
+              c:identifier="gst_value_set_int_range"
+              doc="Sets @value to the range specified by @start and @end.">
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="value" transfer-ownership="none">
+          <type name="GObject.Value" c:type="GValue*"/>
+        </parameter>
+        <parameter name="start" transfer-ownership="none">
+          <type name="int" c:type="gint"/>
+        </parameter>
+        <parameter name="end" transfer-ownership="none">
+          <type name="int" c:type="gint"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="value_set_mini_object"
+              c:identifier="gst_value_set_mini_object"
+              doc="Set the contents of a %GST_TYPE_MINI_OBJECT derived #GValue to
+The caller retains ownership of the reference.">
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="value" transfer-ownership="none">
+          <type name="GObject.Value" c:type="GValue*"/>
+        </parameter>
+        <parameter name="mini_object" transfer-ownership="none">
+          <type name="MiniObject" c:type="GstMiniObject*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="value_set_structure"
+              c:identifier="gst_value_set_structure"
+              doc="Sets the contents of @value to @structure.  The actual"
+              version="0.10.15">
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="value" transfer-ownership="none">
+          <type name="GObject.Value" c:type="GValue*"/>
+        </parameter>
+        <parameter name="structure" transfer-ownership="none">
+          <type name="Structure" c:type="GstStructure*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="value_subtract"
+              c:identifier="gst_value_subtract"
+              doc="Subtracts @subtrahend from @minuend and stores the result in @dest.
+Note that this means subtraction as in sets, not as in mathematics.">
+      <return-value transfer-ownership="none">
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="dest" transfer-ownership="none">
+          <type name="GObject.Value" c:type="GValue*"/>
+        </parameter>
+        <parameter name="minuend" transfer-ownership="none">
+          <type name="GObject.Value" c:type="GValue*"/>
+        </parameter>
+        <parameter name="subtrahend" transfer-ownership="none">
+          <type name="GObject.Value" c:type="GValue*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="value_take_mini_object"
+              c:identifier="gst_value_take_mini_object"
+              doc="Set the contents of a %GST_TYPE_MINI_OBJECT derived #GValue to
+Takes over the ownership of the caller&apos;s reference to @mini_object;
+the caller doesn&apos;t have to unref it any more.">
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="value" transfer-ownership="none">
+          <type name="GObject.Value" c:type="GValue*"/>
+        </parameter>
+        <parameter name="mini_object" transfer-ownership="none">
+          <type name="MiniObject" c:type="GstMiniObject*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="value_union"
+              c:identifier="gst_value_union"
+              doc="Creates a GValue corresponding to the union of @value1 and @value2.">
+      <return-value transfer-ownership="none">
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="dest" transfer-ownership="none">
+          <type name="GObject.Value" c:type="GValue*"/>
+        </parameter>
+        <parameter name="value1" transfer-ownership="none">
+          <type name="GObject.Value" c:type="GValue*"/>
+        </parameter>
+        <parameter name="value2" transfer-ownership="none">
+          <type name="GObject.Value" c:type="GValue*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="version"
+              c:identifier="gst_version"
+              doc="Gets the version number of the GStreamer library.">
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="major" direction="out" transfer-ownership="full">
+          <type name="uint" c:type="guint*"/>
+        </parameter>
+        <parameter name="minor" direction="out" transfer-ownership="full">
+          <type name="uint" c:type="guint*"/>
+        </parameter>
+        <parameter name="micro" direction="out" transfer-ownership="full">
+          <type name="uint" c:type="guint*"/>
+        </parameter>
+        <parameter name="nano" direction="out" transfer-ownership="full">
+          <type name="uint" c:type="guint*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="version_string"
+              c:identifier="gst_version_string"
+              doc="This function returns a string that is useful for describing this version">
+      <return-value transfer-ownership="full">
+        <type name="utf8" c:type="gchar*"/>
+      </return-value>
+    </function>
+  </namespace>
+</repository>
diff --git a/unmaintained/gstreamer/app/GstApp-0.10.gir b/unmaintained/gstreamer/app/GstApp-0.10.gir
new file mode 100644 (file)
index 0000000..40ccd7e
--- /dev/null
@@ -0,0 +1,951 @@
+<?xml version="1.0"?>
+<!-- This file was automatically generated from C sources - DO NOT EDIT!
+To affect the contents of this file, edit the original C definitions,
+and/or use gtk-doc annotations.  -->
+<repository version="1.0"
+            xmlns="http://www.gtk.org/introspection/core/1.0"
+            xmlns:c="http://www.gtk.org/introspection/c/1.0"
+            xmlns:glib="http://www.gtk.org/introspection/glib/1.0">
+  <include name="GLib" version="2.0"/>
+  <include name="GModule" version="2.0"/>
+  <include name="GObject" version="2.0"/>
+  <include name="Gst" version="0.10"/>
+  <include name="GstBase" version="0.10"/>
+  <include name="libxml2" version="2.0"/>
+  <package name="gstreamer-0.10"/>
+  <package name="gstreamer-base-0.10"/>
+  <c:include name="gst/app/gstappbuffer.h"/>
+  <c:include name="gst/app/gstappsink.h"/>
+  <c:include name="gst/app/gstappsrc.h"/>
+  <namespace name="GstApp"
+             version="0.10"
+             shared-library="libgstapp-0.10.so.0"
+             c:prefix="Gst">
+    <record name="AppBuffer" c:type="GstAppBuffer">
+      <field name="buffer" writable="1">
+        <type name="Gst.Buffer" c:type="GstBuffer"/>
+      </field>
+      <field name="finalize" writable="1">
+        <type name="AppBufferFinalizeFunc" c:type="GstAppBufferFinalizeFunc"/>
+      </field>
+      <field name="priv" writable="1">
+        <type name="any" c:type="void*"/>
+      </field>
+      <constructor name="new" c:identifier="gst_app_buffer_new">
+        <return-value transfer-ownership="full">
+          <type name="AppBuffer" c:type="GstBuffer*"/>
+        </return-value>
+        <parameters>
+          <parameter name="data" transfer-ownership="none">
+            <type name="any" c:type="void*"/>
+          </parameter>
+          <parameter name="length" transfer-ownership="none">
+            <type name="int" c:type="int"/>
+          </parameter>
+          <parameter name="finalize" transfer-ownership="none" scope="call">
+            <type name="AppBufferFinalizeFunc"
+                  c:type="GstAppBufferFinalizeFunc"/>
+          </parameter>
+          <parameter name="priv" transfer-ownership="none">
+            <type name="any" c:type="void*"/>
+          </parameter>
+        </parameters>
+      </constructor>
+    </record>
+    <record name="AppBufferClass" c:type="GstAppBufferClass">
+      <field name="buffer_class" writable="1">
+        <type name="Gst.BufferClass" c:type="GstBufferClass"/>
+      </field>
+    </record>
+    <callback name="AppBufferFinalizeFunc" c:type="GstAppBufferFinalizeFunc">
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="priv" transfer-ownership="none">
+          <type name="any" c:type="void*"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <class name="AppSink"
+           c:type="GstAppSink"
+           parent="GstBase.BaseSink"
+           glib:type-name="GstAppSink"
+           glib:get-type="gst_app_sink_get_type"
+           glib:type-struct="AppSinkClass">
+      <implements name="Gst.URIHandler"/>
+      <method name="set_caps"
+              c:identifier="gst_app_sink_set_caps"
+              doc="Set the capabilities on the appsink element.  This function takes
+a copy of the caps structure. After calling this method, the sink will only
+accept caps that match @caps. If @caps is non-fixed, you must check the caps
+on the buffers to get the actual used caps."
+              version="0.10.22">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="caps" transfer-ownership="none">
+            <type name="Gst.Caps" c:type="GstCaps*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_caps"
+              c:identifier="gst_app_sink_get_caps"
+              doc="Get the configured caps on @appsink."
+              version="0.10.22">
+        <return-value transfer-ownership="full" doc="after usage.">
+          <type name="Gst.Caps" c:type="GstCaps*"/>
+        </return-value>
+      </method>
+      <method name="is_eos"
+              c:identifier="gst_app_sink_is_eos"
+              doc="Check if @appsink is EOS, which is when no more buffers can be pulled because
+an EOS event was received.
+This function also returns %TRUE when the appsink is not in the PAUSED or
+PLAYING state."
+              version="0.10.22">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+      </method>
+      <method name="set_emit_signals"
+              c:identifier="gst_app_sink_set_emit_signals"
+              doc="Make appsink emit the &quot;new-preroll&quot; and &quot;new-buffer&quot; signals. This option is
+by default disabled because signal emission is expensive and unneeded when
+the application prefers to operate in pull mode."
+              version="0.10.22">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="emit" transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_emit_signals"
+              c:identifier="gst_app_sink_get_emit_signals"
+              doc="Check if appsink will emit the &quot;new-preroll&quot; and &quot;new-buffer&quot; signals.
+signals."
+              version="0.10.22">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+      </method>
+      <method name="set_max_buffers"
+              c:identifier="gst_app_sink_set_max_buffers"
+              doc="Set the maximum amount of buffers that can be queued in @appsink. After this
+amount of buffers are queued in appsink, any more buffers will block upstream
+elements until a buffer is pulled from @appsink."
+              version="0.10.22">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="max" transfer-ownership="none">
+            <type name="uint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_max_buffers"
+              c:identifier="gst_app_sink_get_max_buffers"
+              doc="Get the maximum amount of buffers that can be queued in @appsink."
+              version="0.10.22">
+        <return-value transfer-ownership="none">
+          <type name="uint" c:type="guint"/>
+        </return-value>
+      </method>
+      <method name="set_drop"
+              c:identifier="gst_app_sink_set_drop"
+              doc="Instruct @appsink to drop old buffers when the maximum amount of queued
+buffers is reached."
+              version="0.10.22">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="drop" transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_drop"
+              c:identifier="gst_app_sink_get_drop"
+              doc="Check if @appsink will drop old buffers when the maximum amount of queued
+buffers is reached.
+filled."
+              version="0.10.22">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+      </method>
+      <method name="pull_preroll"
+              c:identifier="gst_app_sink_pull_preroll"
+              doc="Get the last preroll buffer in @appsink. This was the buffer that caused the
+appsink to preroll in the PAUSED state. This buffer can be pulled many times
+and remains available to the application even after EOS.
+This function is typically used when dealing with a pipeline in the PAUSED
+state. Calling this function after doing a seek will give the buffer right
+after the seek position.
+Note that the preroll buffer will also be returned as the first buffer
+when calling gst_app_sink_pull_buffer().
+If an EOS event was received before any buffers, this function returns
+%NULL. Use gst_app_sink_is_eos () to check for the EOS condition.
+This function blocks until a preroll buffer or EOS is received or the appsink
+element is set to the READY/NULL state."
+              version="0.10.22">
+        <return-value transfer-ownership="full">
+          <type name="Gst.Buffer" c:type="GstBuffer*"/>
+        </return-value>
+      </method>
+      <method name="pull_buffer"
+              c:identifier="gst_app_sink_pull_buffer"
+              doc="This function blocks until a buffer or EOS becomes available or the appsink
+element is set to the READY/NULL state.
+This function will only return buffers when the appsink is in the PLAYING
+state. All rendered buffers will be put in a queue so that the application
+can pull buffers at its own rate. Note that when the application does not
+pull buffers fast enough, the queued buffers could consume a lot of memory,
+especially when dealing with raw video frames.
+If an EOS event was received before any buffers, this function returns
+%NULL. Use gst_app_sink_is_eos () to check for the EOS condition."
+              version="0.10.22">
+        <return-value transfer-ownership="full">
+          <type name="Gst.Buffer" c:type="GstBuffer*"/>
+        </return-value>
+      </method>
+      <method name="pull_buffer_list"
+              c:identifier="gst_app_sink_pull_buffer_list"
+              doc="This function blocks until a buffer list or EOS becomes available or the
+appsink element is set to the READY/NULL state.
+This function will only return buffer lists when the appsink is in the
+PLAYING state. All rendered buffer lists will be put in a queue so that
+the application can pull buffer lists at its own rate. Note that when
+the application does not pull buffer lists fast enough, the queued buffer
+lists could consume a lot of memory, especially when dealing with raw
+video frames.
+If an EOS event was received before any buffer lists, this function returns
+%NULL. Use gst_app_sink_is_eos () to check for the EOS condition.">
+        <return-value transfer-ownership="full">
+          <type name="Gst.BufferList" c:type="GstBufferList*"/>
+        </return-value>
+      </method>
+      <method name="set_callbacks"
+              c:identifier="gst_app_sink_set_callbacks"
+              doc="Set callbacks which will be executed for each new preroll, new buffer and eos.
+This is an alternative to using the signals, it has lower overhead and is thus
+less expensive, but also less flexible.
+If callbacks are installed, no signals will be emited for performance
+reasons."
+              version="0.10.23">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="callbacks" transfer-ownership="none">
+            <type name="AppSinkCallbacks" c:type="GstAppSinkCallbacks*"/>
+          </parameter>
+          <parameter name="user_data" transfer-ownership="none">
+            <type name="any" c:type="gpointer"/>
+          </parameter>
+          <parameter name="notify" transfer-ownership="none" scope="call">
+            <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
+          </parameter>
+        </parameters>
+      </method>
+      <property name="caps" writable="1">
+        <type name="Gst.Caps" c:type="GstCaps"/>
+      </property>
+      <property name="drop" writable="1">
+        <type name="boolean" c:type="gboolean"/>
+      </property>
+      <property name="emit-signals" writable="1">
+        <type name="boolean" c:type="gboolean"/>
+      </property>
+      <property name="eos">
+        <type name="boolean" c:type="gboolean"/>
+      </property>
+      <property name="max-buffers" writable="1">
+        <type name="uint" c:type="guint"/>
+      </property>
+      <field name="basesink">
+        <type name="GstBase.BaseSink" c:type="GstBaseSink"/>
+      </field>
+      <field name="priv">
+        <type name="AppSinkPrivate" c:type="GstAppSinkPrivate*"/>
+      </field>
+      <field name="_gst_reserved">
+        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+          <type name="any"/>
+        </array>
+      </field>
+      <glib:signal name="eos"
+                   doc="Signal that the end-of-stream has been reached. This signal is emited from
+the steaming thread.">
+        <return-value transfer-ownership="full">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </glib:signal>
+      <glib:signal name="new-buffer"
+                   doc="Signal that a new buffer is available.
+This signal is emited from the steaming thread and only when the
+&quot;emit-signals&quot; property is %TRUE.
+The new buffer can be retrieved with the &quot;pull-buffer&quot; action
+signal or gst_app_sink_pull_buffer() either from this signal callback
+or from any other thread.
+Note that this signal is only emited when the &quot;emit-signals&quot; property is
+set to %TRUE, which it is not by default for performance reasons.">
+        <return-value transfer-ownership="full">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </glib:signal>
+      <glib:signal name="new-buffer-list"
+                   doc="Signal that a new bufferlist is available.
+This signal is emited from the steaming thread and only when the
+&quot;emit-signals&quot; property is %TRUE.
+The new buffer can be retrieved with the &quot;pull-buffer-list&quot; action
+signal or gst_app_sink_pull_buffe_listr() either from this signal callback
+or from any other thread.
+Note that this signal is only emited when the &quot;emit-signals&quot; property is
+set to %TRUE, which it is not by default for performance reasons.">
+        <return-value transfer-ownership="full">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </glib:signal>
+      <glib:signal name="new-preroll"
+                   doc="Signal that a new preroll buffer is available.
+This signal is emited from the steaming thread and only when the
+&quot;emit-signals&quot; property is %TRUE.
+The new preroll buffer can be retrieved with the &quot;pull-preroll&quot; action
+signal or gst_app_sink_pull_preroll() either from this signal callback
+or from any other thread.
+Note that this signal is only emited when the &quot;emit-signals&quot; property is
+set to %TRUE, which it is not by default for performance reasons.">
+        <return-value transfer-ownership="full">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </glib:signal>
+      <glib:signal name="pull-buffer"
+                   doc="This function blocks until a buffer or EOS becomes available or the appsink
+element is set to the READY/NULL state.
+This function will only return buffers when the appsink is in the PLAYING
+state. All rendered buffers will be put in a queue so that the application
+can pull buffers at its own rate.
+Note that when the application does not pull buffers fast enough, the
+queued buffers could consume a lot of memory, especially when dealing with
+raw video frames. It&apos;s possible to control the behaviour of the queue with
+the &quot;drop&quot; and &quot;max-buffers&quot; properties.
+If an EOS event was received before any buffers, this function returns
+%NULL. Use gst_app_sink_is_eos () to check for the EOS condition.">
+        <return-value transfer-ownership="full">
+          <type name="Gst.Buffer" c:type="GstBuffer"/>
+        </return-value>
+      </glib:signal>
+      <glib:signal name="pull-buffer-list"
+                   doc="This function blocks until a buffer list or EOS becomes available or the appsink
+element is set to the READY/NULL state.
+This function will only return bufferlists when the appsink is in the PLAYING
+state. All rendered bufferlists will be put in a queue so that the application
+can pull bufferlists at its own rate.
+Note that when the application does not pull bufferlists fast enough, the
+queued bufferlists could consume a lot of memory, especially when dealing with
+raw video frames. It&apos;s possible to control the behaviour of the queue with
+the &quot;drop&quot; and &quot;max-buffers&quot; properties.
+If an EOS event was received before any buffers, this function returns
+%NULL. Use gst_app_sink_is_eos () to check for the EOS condition.">
+        <return-value transfer-ownership="full">
+          <type name="Gst.BufferList" c:type="GstBufferList"/>
+        </return-value>
+      </glib:signal>
+      <glib:signal name="pull-preroll"
+                   doc="Get the last preroll buffer in @appsink. This was the buffer that caused the
+appsink to preroll in the PAUSED state. This buffer can be pulled many times
+and remains available to the application even after EOS.
+This function is typically used when dealing with a pipeline in the PAUSED
+state. Calling this function after doing a seek will give the buffer right
+after the seek position.
+Note that the preroll buffer will also be returned as the first buffer
+when calling gst_app_sink_pull_buffer() or the &quot;pull-buffer&quot; action signal.
+If an EOS event was received before any buffers, this function returns
+%NULL. Use gst_app_sink_is_eos () to check for the EOS condition.
+This function blocks until a preroll buffer or EOS is received or the appsink
+element is set to the READY/NULL state.">
+        <return-value transfer-ownership="full">
+          <type name="Gst.Buffer" c:type="GstBuffer"/>
+        </return-value>
+      </glib:signal>
+    </class>
+    <record name="AppSinkCallbacks"
+            c:type="GstAppSinkCallbacks"
+            doc="is called from the steaming thread.
+This callback is called from the steaming thread.
+The new preroll buffer can be retrieved with
+gst_app_sink_pull_preroll() either from this callback
+or from any other thread.
+This callback is called from the steaming thread.
+The new buffer can be retrieved with
+gst_app_sink_pull_buffer() either from this callback
+or from any other thread.
+This callback is called from the steaming thread.
+The new bufferlist can be retrieved with
+gst_app_sink_pull_buffer_list() either from this callback
+or from any other thread.
+A set of callbacks that can be installed on the appsink with
+gst_app_sink_set_callbacks()."
+            version="0.10.23">
+      <field name="eos">
+        <type name="any" c:type="pointer"/>
+      </field>
+      <field name="new_preroll">
+        <type name="any" c:type="pointer"/>
+      </field>
+      <field name="new_buffer">
+        <type name="any" c:type="pointer"/>
+      </field>
+      <field name="new_buffer_list">
+        <type name="any" c:type="pointer"/>
+      </field>
+      <field name="_gst_reserved" writable="1">
+        <array zero-terminated="0" c:type="gpointer" fixed-size="3">
+          <type name="any"/>
+        </array>
+      </field>
+    </record>
+    <record name="AppSinkClass"
+            c:type="GstAppSinkClass"
+            glib:is-gtype-struct-for="AppSink">
+      <field name="basesink_class">
+        <type name="GstBase.BaseSinkClass" c:type="GstBaseSinkClass"/>
+      </field>
+      <field name="eos">
+        <callback name="eos" c:type="eos">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="sink" transfer-ownership="none">
+              <type name="AppSink" c:type="GstAppSink*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="new_preroll">
+        <callback name="new_preroll" c:type="new_preroll">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="sink" transfer-ownership="none">
+              <type name="AppSink" c:type="GstAppSink*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="new_buffer">
+        <callback name="new_buffer" c:type="new_buffer">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="sink" transfer-ownership="none">
+              <type name="AppSink" c:type="GstAppSink*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="pull_preroll">
+        <callback name="pull_preroll" c:type="pull_preroll">
+          <return-value transfer-ownership="full">
+            <type name="Gst.Buffer" c:type="GstBuffer*"/>
+          </return-value>
+          <parameters>
+            <parameter name="sink" transfer-ownership="none">
+              <type name="AppSink" c:type="GstAppSink*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="pull_buffer">
+        <callback name="pull_buffer" c:type="pull_buffer">
+          <return-value transfer-ownership="full">
+            <type name="Gst.Buffer" c:type="GstBuffer*"/>
+          </return-value>
+          <parameters>
+            <parameter name="sink" transfer-ownership="none">
+              <type name="AppSink" c:type="GstAppSink*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="new_buffer_list">
+        <callback name="new_buffer_list" c:type="new_buffer_list">
+          <return-value transfer-ownership="full">
+            <type name="Gst.BufferList" c:type="GstBufferList*"/>
+          </return-value>
+          <parameters>
+            <parameter name="sink" transfer-ownership="none">
+              <type name="AppSink" c:type="GstAppSink*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="pull_buffer_list">
+        <callback name="pull_buffer_list" c:type="pull_buffer_list">
+          <return-value transfer-ownership="full">
+            <type name="Gst.BufferList" c:type="GstBufferList*"/>
+          </return-value>
+          <parameters>
+            <parameter name="sink" transfer-ownership="none">
+              <type name="AppSink" c:type="GstAppSink*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="_gst_reserved">
+        <array zero-terminated="0" c:type="gpointer" fixed-size="2">
+          <type name="any"/>
+        </array>
+      </field>
+    </record>
+    <record name="AppSinkPrivate" c:type="GstAppSinkPrivate">
+    </record>
+    <class name="AppSrc"
+           c:type="GstAppSrc"
+           parent="GstBase.BaseSrc"
+           glib:type-name="GstAppSrc"
+           glib:get-type="gst_app_src_get_type"
+           glib:type-struct="AppSrcClass">
+      <implements name="Gst.URIHandler"/>
+      <method name="set_caps"
+              c:identifier="gst_app_src_set_caps"
+              doc="Set the capabilities on the appsrc element.  This function takes
+a copy of the caps structure. After calling this method, the source will
+only produce caps that match @caps. @caps must be fixed and the caps on the
+buffers must match the caps or left NULL."
+              version="0.10.22">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="caps" transfer-ownership="none">
+            <type name="Gst.Caps" c:type="GstCaps*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_caps"
+              c:identifier="gst_app_src_get_caps"
+              doc="Get the configured caps on @appsrc."
+              version="0.10.22">
+        <return-value transfer-ownership="full" doc="after usage.">
+          <type name="Gst.Caps" c:type="GstCaps*"/>
+        </return-value>
+      </method>
+      <method name="set_size"
+              c:identifier="gst_app_src_set_size"
+              doc="Set the size of the stream in bytes. A value of -1 means that the size is
+not known."
+              version="0.10.22">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="size" transfer-ownership="none">
+            <type name="int64" c:type="gint64"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_size"
+              c:identifier="gst_app_src_get_size"
+              doc="Get the size of the stream in bytes. A value of -1 means that the size is
+not known."
+              version="0.10.22">
+        <return-value transfer-ownership="none">
+          <type name="int64" c:type="gint64"/>
+        </return-value>
+      </method>
+      <method name="set_stream_type"
+              c:identifier="gst_app_src_set_stream_type"
+              doc="Set the stream type on @appsrc. For seekable streams, the &quot;seek&quot; signal must
+be connected to.
+A stream_type stream"
+              version="0.10.22">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="type" transfer-ownership="none">
+            <type name="AppStreamType" c:type="GstAppStreamType"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_stream_type"
+              c:identifier="gst_app_src_get_stream_type"
+              doc="Get the stream type. Control the stream type of @appsrc
+with gst_app_src_set_stream_type()."
+              version="0.10.22">
+        <return-value transfer-ownership="full">
+          <type name="AppStreamType" c:type="GstAppStreamType"/>
+        </return-value>
+      </method>
+      <method name="set_max_bytes"
+              c:identifier="gst_app_src_set_max_bytes"
+              doc="Set the maximum amount of bytes that can be queued in @appsrc.
+After the maximum amount of bytes are queued, @appsrc will emit the
+&quot;enough-data&quot; signal."
+              version="0.10.22">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="max" transfer-ownership="none">
+            <type name="uint64" c:type="guint64"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_max_bytes"
+              c:identifier="gst_app_src_get_max_bytes"
+              doc="Get the maximum amount of bytes that can be queued in @appsrc."
+              version="0.10.22">
+        <return-value transfer-ownership="none">
+          <type name="uint64" c:type="guint64"/>
+        </return-value>
+      </method>
+      <method name="set_latency"
+              c:identifier="gst_app_src_set_latency"
+              doc="Configure the @min and @max latency in @src. If @min is set to -1, the
+default latency calculations for pseudo-live sources will be used."
+              version="0.10.22">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="min" transfer-ownership="none">
+            <type name="uint64" c:type="guint64"/>
+          </parameter>
+          <parameter name="max" transfer-ownership="none">
+            <type name="uint64" c:type="guint64"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_latency"
+              c:identifier="gst_app_src_get_latency"
+              doc="Retrieve the min and max latencies in @min and @max respectively."
+              version="0.10.22">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="min" direction="out" transfer-ownership="full">
+            <type name="uint64" c:type="guint64*"/>
+          </parameter>
+          <parameter name="max" direction="out" transfer-ownership="full">
+            <type name="uint64" c:type="guint64*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_emit_signals"
+              c:identifier="gst_app_src_set_emit_signals"
+              doc="Make appsrc emit the &quot;new-preroll&quot; and &quot;new-buffer&quot; signals. This option is
+by default disabled because signal emission is expensive and unneeded when
+the application prefers to operate in pull mode."
+              version="0.10.23">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="emit" transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_emit_signals"
+              c:identifier="gst_app_src_get_emit_signals"
+              doc="Check if appsrc will emit the &quot;new-preroll&quot; and &quot;new-buffer&quot; signals.
+signals."
+              version="0.10.23">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+      </method>
+      <method name="push_buffer"
+              c:identifier="gst_app_src_push_buffer"
+              doc="Adds a buffer to the queue of buffers that the appsrc element will
+push to its source pad.  This function takes ownership of the buffer.
+When the block property is TRUE, this function can block until free
+space becomes available in the queue.
+#GST_FLOW_WRONG_STATE when @appsrc is not PAUSED or PLAYING.
+#GST_FLOW_UNEXPECTED when EOS occured."
+              version="0.10.22">
+        <return-value transfer-ownership="full">
+          <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
+        </return-value>
+        <parameters>
+          <parameter name="buffer" transfer-ownership="none">
+            <type name="Gst.Buffer" c:type="GstBuffer*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="end_of_stream"
+              c:identifier="gst_app_src_end_of_stream"
+              doc="Indicates to the appsrc element that the last buffer queued in the
+element is the last buffer of the stream.
+#GST_FLOW_WRONG_STATE when @appsrc is not PAUSED or PLAYING."
+              version="0.10.22">
+        <return-value transfer-ownership="full">
+          <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
+        </return-value>
+      </method>
+      <method name="set_callbacks"
+              c:identifier="gst_app_src_set_callbacks"
+              doc="Set callbacks which will be executed when data is needed, enough data has
+been collected or when a seek should be performed.
+This is an alternative to using the signals, it has lower overhead and is thus
+less expensive, but also less flexible.
+If callbacks are installed, no signals will be emited for performance
+reasons."
+              version="0.10.23">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="callbacks" transfer-ownership="none">
+            <type name="AppSrcCallbacks" c:type="GstAppSrcCallbacks*"/>
+          </parameter>
+          <parameter name="user_data" transfer-ownership="none">
+            <type name="any" c:type="gpointer"/>
+          </parameter>
+          <parameter name="notify" transfer-ownership="none" scope="call">
+            <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
+          </parameter>
+        </parameters>
+      </method>
+      <property name="block" writable="1">
+        <type name="boolean" c:type="gboolean"/>
+      </property>
+      <property name="caps" writable="1">
+        <type name="Gst.Caps" c:type="GstCaps"/>
+      </property>
+      <property name="emit-signals" writable="1">
+        <type name="boolean" c:type="gboolean"/>
+      </property>
+      <property name="format" writable="1">
+        <type name="Gst.Format" c:type="GstFormat"/>
+      </property>
+      <property name="is-live" writable="1">
+        <type name="boolean" c:type="gboolean"/>
+      </property>
+      <property name="max-bytes" writable="1">
+        <type name="uint64" c:type="guint64"/>
+      </property>
+      <property name="max-latency" writable="1">
+        <type name="int64" c:type="gint64"/>
+      </property>
+      <property name="min-latency" writable="1">
+        <type name="int64" c:type="gint64"/>
+      </property>
+      <property name="min-percent" writable="1">
+        <type name="uint" c:type="guint"/>
+      </property>
+      <property name="size" writable="1">
+        <type name="int64" c:type="gint64"/>
+      </property>
+      <property name="stream-type" writable="1">
+        <type name="AppStreamType" c:type="GstAppStreamType"/>
+      </property>
+      <field name="basesrc">
+        <type name="GstBase.BaseSrc" c:type="GstBaseSrc"/>
+      </field>
+      <field name="priv">
+        <type name="AppSrcPrivate" c:type="GstAppSrcPrivate*"/>
+      </field>
+      <field name="_gst_reserved">
+        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+          <type name="any"/>
+        </array>
+      </field>
+      <glib:signal name="end-of-stream"
+                   doc="Notify @appsrc that no more buffer are available.">
+        <return-value transfer-ownership="full">
+          <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
+        </return-value>
+      </glib:signal>
+      <glib:signal name="enough-data"
+                   doc="Signal that the source has enough data. It is recommended that the
+application stops calling push-buffer until the need-data signal is
+emited again to avoid excessive buffer queueing.">
+        <return-value transfer-ownership="full">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </glib:signal>
+      <glib:signal name="need-data"
+                   doc="Signal that the source needs more data. In the callback or from another
+thread you should call push-buffer or end-of-stream.
+pushed into @appsrc.
+You can call push-buffer multiple times until the enough-data signal is
+fired.">
+        <return-value transfer-ownership="full">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="length" transfer-ownership="none">
+            <type name="uint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="push-buffer"
+                   doc="Adds a buffer to the queue of buffers that the appsrc element will
+push to its source pad. This function does not take ownership of the
+buffer so the buffer needs to be unreffed after calling this function.
+When the block property is TRUE, this function can block until free space
+becomes available in the queue.">
+        <return-value transfer-ownership="full">
+          <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
+        </return-value>
+        <parameters>
+          <parameter name="buffer" transfer-ownership="none">
+            <type name="Gst.Buffer" c:type="GstBuffer"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="seek-data"
+                   doc="Seek to the given offset. The next push-buffer should produce buffers from
+the new @offset.
+This callback is only called for seekable stream types.">
+        <return-value transfer-ownership="full">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="offset" transfer-ownership="none">
+            <type name="uint64" c:type="guint64"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+    </class>
+    <record name="AppSrcCallbacks"
+            c:type="GstAppSrcCallbacks"
+            doc="pushed to appsrc from this thread or another thread. @length is just a hint
+and when it is set to -1, any number of bytes can be pushed into @appsrc.
+application stops calling push-buffer until the need_data callback is
+emited again to avoid excessive buffer queueing.
+The next push-buffer should produce buffers from the new @offset.
+This callback is only called for seekable stream types.
+A set of callbacks that can be installed on the appsrc with
+gst_app_src_set_callbacks()."
+            version="0.10.23">
+      <field name="need_data">
+        <type name="any" c:type="pointer"/>
+      </field>
+      <field name="enough_data">
+        <type name="any" c:type="pointer"/>
+      </field>
+      <field name="seek_data">
+        <type name="any" c:type="pointer"/>
+      </field>
+      <field name="_gst_reserved" writable="1">
+        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+          <type name="any"/>
+        </array>
+      </field>
+    </record>
+    <record name="AppSrcClass"
+            c:type="GstAppSrcClass"
+            glib:is-gtype-struct-for="AppSrc">
+      <field name="basesrc_class">
+        <type name="GstBase.BaseSrcClass" c:type="GstBaseSrcClass"/>
+      </field>
+      <field name="need_data">
+        <callback name="need_data" c:type="need_data">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="src" transfer-ownership="none">
+              <type name="AppSrc" c:type="GstAppSrc*"/>
+            </parameter>
+            <parameter name="length" transfer-ownership="none">
+              <type name="uint" c:type="guint"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="enough_data">
+        <callback name="enough_data" c:type="enough_data">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="src" transfer-ownership="none">
+              <type name="AppSrc" c:type="GstAppSrc*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="seek_data">
+        <callback name="seek_data" c:type="seek_data">
+          <return-value transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="src" transfer-ownership="none">
+              <type name="AppSrc" c:type="GstAppSrc*"/>
+            </parameter>
+            <parameter name="offset" transfer-ownership="none">
+              <type name="uint64" c:type="guint64"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="push_buffer">
+        <callback name="push_buffer" c:type="push_buffer">
+          <return-value transfer-ownership="full">
+            <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
+          </return-value>
+          <parameters>
+            <parameter name="src" transfer-ownership="none">
+              <type name="AppSrc" c:type="GstAppSrc*"/>
+            </parameter>
+            <parameter name="buffer" transfer-ownership="none">
+              <type name="Gst.Buffer" c:type="GstBuffer*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="end_of_stream">
+        <callback name="end_of_stream" c:type="end_of_stream">
+          <return-value transfer-ownership="full">
+            <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
+          </return-value>
+          <parameters>
+            <parameter name="src" transfer-ownership="none">
+              <type name="AppSrc" c:type="GstAppSrc*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="_gst_reserved">
+        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+          <type name="any"/>
+        </array>
+      </field>
+    </record>
+    <record name="AppSrcPrivate" c:type="GstAppSrcPrivate">
+    </record>
+    <enumeration name="AppStreamType"
+                 doc="live stream.
+be very fast, such as data from a webserver.
+such as in a local file.
+The stream type."
+                 c:type="GstAppStreamType">
+      <member name="stream"
+              value="0"
+              c:identifier="GST_APP_STREAM_TYPE_STREAM"/>
+      <member name="seekable"
+              value="1"
+              c:identifier="GST_APP_STREAM_TYPE_SEEKABLE"/>
+      <member name="random_access"
+              value="2"
+              c:identifier="GST_APP_STREAM_TYPE_RANDOM_ACCESS"/>
+    </enumeration>
+  </namespace>
+</repository>
diff --git a/unmaintained/gstreamer/app/app.factor b/unmaintained/gstreamer/app/app.factor
new file mode 100644 (file)
index 0000000..ae80d54
--- /dev/null
@@ -0,0 +1,5 @@
+! Copyright (C) 2010 Anton Gorenko.
+! See http://factorcode.org/license.txt for BSD license.
+USING: gstreamer.app.ffi ;
+IN: gstreamer.app
+
diff --git a/unmaintained/gstreamer/app/ffi/ffi.factor b/unmaintained/gstreamer/app/ffi/ffi.factor
new file mode 100644 (file)
index 0000000..b92d568
--- /dev/null
@@ -0,0 +1,17 @@
+! Copyright (C) 2010 Anton Gorenko.
+! See http://factorcode.org/license.txt for BSD license.
+USING: alien alien.c-types alien.libraries combinators kernel
+system
+gobject-introspection glib.ffi gstreamer.ffi ;
+IN: gstreamer.app.ffi
+
+<<
+"gstreamer.app" {
+    { [ os winnt? ] [ drop ] }
+    { [ os macosx? ] [ drop ] }
+    { [ os unix? ] [ "libgstapp-0.10.so" cdecl add-library ] }
+} cond
+>>
+
+GIR: vocab:gstreamer/app/GstApp-0.10.gir
+
diff --git a/unmaintained/gstreamer/audio/GstAudio-0.10.gir b/unmaintained/gstreamer/audio/GstAudio-0.10.gir
new file mode 100644 (file)
index 0000000..73d9983
--- /dev/null
@@ -0,0 +1,2360 @@
+<?xml version="1.0"?>
+<!-- This file was automatically generated from C sources - DO NOT EDIT!
+To affect the contents of this file, edit the original C definitions,
+and/or use gtk-doc annotations.  -->
+<repository version="1.0"
+            xmlns="http://www.gtk.org/introspection/core/1.0"
+            xmlns:c="http://www.gtk.org/introspection/c/1.0"
+            xmlns:glib="http://www.gtk.org/introspection/glib/1.0">
+  <include name="GLib" version="2.0"/>
+  <include name="GModule" version="2.0"/>
+  <include name="GObject" version="2.0"/>
+  <include name="Gst" version="0.10"/>
+  <include name="GstBase" version="0.10"/>
+  <include name="GstInterfaces" version="0.10"/>
+  <include name="libxml2" version="2.0"/>
+  <package name="gstreamer-0.10"/>
+  <package name="gstreamer-base-0.10"/>
+  <package name="gstreamer-interfaces-0.10"/>
+  <c:include name="gst/audio/audio-enumtypes.h"/>
+  <c:include name="gst/audio/audio.h"/>
+  <c:include name="gst/audio/gstaudioclock.h"/>
+  <c:include name="gst/audio/gstaudiofilter.h"/>
+  <c:include name="gst/audio/gstaudiosink.h"/>
+  <c:include name="gst/audio/gstaudiosrc.h"/>
+  <c:include name="gst/audio/gstbaseaudiosink.h"/>
+  <c:include name="gst/audio/gstbaseaudiosrc.h"/>
+  <c:include name="gst/audio/gstringbuffer.h"/>
+  <c:include name="gst/audio/mixerutils.h"/>
+  <c:include name="gst/audio/multichannel.h"/>
+  <namespace name="GstAudio"
+             version="0.10"
+             shared-library="libgstaudio-0.10.so.0"
+             c:prefix="Gst">
+    <enumeration name="AudioChannelPosition"
+                 doc="from a sound card that records 1024 channels; mutually exclusive with
+any other channel position"
+                 glib:type-name="GstAudioChannelPosition"
+                 glib:get-type="gst_audio_channel_position_get_type"
+                 c:type="GstAudioChannelPosition">
+      <member name="invalid"
+              value="-1"
+              c:identifier="GST_AUDIO_CHANNEL_POSITION_INVALID"
+              glib:nick="invalid"/>
+      <member name="front_mono"
+              value="0"
+              c:identifier="GST_AUDIO_CHANNEL_POSITION_FRONT_MONO"
+              glib:nick="front-mono"/>
+      <member name="front_left"
+              value="1"
+              c:identifier="GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT"
+              glib:nick="front-left"/>
+      <member name="front_right"
+              value="2"
+              c:identifier="GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT"
+              glib:nick="front-right"/>
+      <member name="rear_center"
+              value="3"
+              c:identifier="GST_AUDIO_CHANNEL_POSITION_REAR_CENTER"
+              glib:nick="rear-center"/>
+      <member name="rear_left"
+              value="4"
+              c:identifier="GST_AUDIO_CHANNEL_POSITION_REAR_LEFT"
+              glib:nick="rear-left"/>
+      <member name="rear_right"
+              value="5"
+              c:identifier="GST_AUDIO_CHANNEL_POSITION_REAR_RIGHT"
+              glib:nick="rear-right"/>
+      <member name="lfe"
+              value="6"
+              c:identifier="GST_AUDIO_CHANNEL_POSITION_LFE"
+              glib:nick="lfe"/>
+      <member name="front_center"
+              value="7"
+              c:identifier="GST_AUDIO_CHANNEL_POSITION_FRONT_CENTER"
+              glib:nick="front-center"/>
+      <member name="front_left_of_center"
+              value="8"
+              c:identifier="GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT_OF_CENTER"
+              glib:nick="front-left-of-center"/>
+      <member name="front_right_of_center"
+              value="9"
+              c:identifier="GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT_OF_CENTER"
+              glib:nick="front-right-of-center"/>
+      <member name="side_left"
+              value="10"
+              c:identifier="GST_AUDIO_CHANNEL_POSITION_SIDE_LEFT"
+              glib:nick="side-left"/>
+      <member name="side_right"
+              value="11"
+              c:identifier="GST_AUDIO_CHANNEL_POSITION_SIDE_RIGHT"
+              glib:nick="side-right"/>
+      <member name="none"
+              value="12"
+              c:identifier="GST_AUDIO_CHANNEL_POSITION_NONE"
+              glib:nick="none"/>
+      <member name="num"
+              value="13"
+              c:identifier="GST_AUDIO_CHANNEL_POSITION_NUM"
+              glib:nick="num"/>
+    </enumeration>
+    <class name="AudioClock"
+           c:type="GstAudioClock"
+           doc="Opaque #GstAudioClock."
+           parent="Gst.SystemClock"
+           glib:type-name="GstAudioClock"
+           glib:get-type="gst_audio_clock_get_type"
+           glib:type-struct="AudioClockClass">
+      <constructor name="new"
+                   c:identifier="gst_audio_clock_new"
+                   doc="Create a new #GstAudioClock instance. Whenever the clock time should be
+calculated it will call @func with @user_data. When @func returns
+#GST_CLOCK_TIME_NONE, the clock will return the last reported time.">
+        <return-value transfer-ownership="full">
+          <type name="AudioClock" c:type="GstClock*"/>
+        </return-value>
+        <parameters>
+          <parameter name="name" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="func"
+                     transfer-ownership="none"
+                     scope="call"
+                     closure="2">
+            <type name="AudioClockGetTimeFunc"
+                  c:type="GstAudioClockGetTimeFunc"/>
+          </parameter>
+          <parameter name="user_data" transfer-ownership="none">
+            <type name="any" c:type="gpointer"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <method name="reset"
+              c:identifier="gst_audio_clock_reset"
+              doc="Inform @clock that future calls to #GstAudioClockGetTimeFunc will return values
+starting from @time. The clock will update an internal offset to make sure that
+future calls to internal_time will return an increasing result as required by
+the #GstClock object.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="time" transfer-ownership="none">
+            <type name="Gst.ClockTime" c:type="GstClockTime"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_time"
+              c:identifier="gst_audio_clock_get_time"
+              doc="Report the time as returned by the #GstAudioClockGetTimeFunc without applying
+any offsets."
+              version="0.10.23">
+        <return-value transfer-ownership="full">
+          <type name="Gst.ClockTime" c:type="GstClockTime"/>
+        </return-value>
+      </method>
+      <method name="adjust"
+              c:identifier="gst_audio_clock_adjust"
+              doc="Adjust @time with the internal offset of the audio clock."
+              version="0.10.23">
+        <return-value transfer-ownership="full">
+          <type name="Gst.ClockTime" c:type="GstClockTime"/>
+        </return-value>
+        <parameters>
+          <parameter name="time" transfer-ownership="none">
+            <type name="Gst.ClockTime" c:type="GstClockTime"/>
+          </parameter>
+        </parameters>
+      </method>
+      <field name="clock">
+        <type name="Gst.SystemClock" c:type="GstSystemClock"/>
+      </field>
+      <field name="func">
+        <type name="AudioClockGetTimeFunc" c:type="GstAudioClockGetTimeFunc"/>
+      </field>
+      <field name="user_data">
+        <type name="any" c:type="gpointer"/>
+      </field>
+      <field name="last_time">
+        <type name="Gst.ClockTime" c:type="GstClockTime"/>
+      </field>
+      <union name="abidata" c:type="abidata">
+        <record name="ABI" c:type="ABI">
+          <field name="time_offset" writable="1">
+            <type name="Gst.ClockTimeDiff" c:type="GstClockTimeDiff"/>
+          </field>
+        </record>
+        <field name="_gst_reserved" writable="1">
+          <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+            <type name="any"/>
+          </array>
+        </field>
+      </union>
+    </class>
+    <record name="AudioClockClass"
+            c:type="GstAudioClockClass"
+            glib:is-gtype-struct-for="AudioClock">
+      <field name="parent_class">
+        <type name="Gst.SystemClockClass" c:type="GstSystemClockClass"/>
+      </field>
+      <field name="_gst_reserved">
+        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+          <type name="any"/>
+        </array>
+      </field>
+    </record>
+    <callback name="AudioClockGetTimeFunc"
+              c:type="GstAudioClockGetTimeFunc"
+              doc="This function will be called whenever the current clock time needs to be
+calculated. If this function returns #GST_CLOCK_TIME_NONE, the last reported
+time will be returned by the clock.
+be used.">
+      <return-value transfer-ownership="full">
+        <type name="Gst.ClockTime" c:type="GstClockTime"/>
+      </return-value>
+      <parameters>
+        <parameter name="clock" transfer-ownership="none">
+          <type name="Gst.Clock" c:type="GstClock*"/>
+        </parameter>
+        <parameter name="user_data" transfer-ownership="none" closure="1">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <bitfield name="AudioFieldFlag"
+              doc="Do not use anymore."
+              deprecated="use gst_structure_set() directly"
+              c:type="GstAudioFieldFlag">
+      <member name="rate" value="1" c:identifier="GST_AUDIO_FIELD_RATE"/>
+      <member name="channels"
+              value="2"
+              c:identifier="GST_AUDIO_FIELD_CHANNELS"/>
+      <member name="endianness"
+              value="4"
+              c:identifier="GST_AUDIO_FIELD_ENDIANNESS"/>
+      <member name="width" value="8" c:identifier="GST_AUDIO_FIELD_WIDTH"/>
+      <member name="depth" value="16" c:identifier="GST_AUDIO_FIELD_DEPTH"/>
+      <member name="signed" value="32" c:identifier="GST_AUDIO_FIELD_SIGNED"/>
+    </bitfield>
+    <class name="AudioFilter"
+           c:type="GstAudioFilter"
+           doc="Base class for audio filters with the same format for input and output."
+           version="0.10.12"
+           parent="GstBase.BaseTransform"
+           abstract="1"
+           glib:type-name="GstAudioFilter"
+           glib:get-type="gst_audio_filter_get_type"
+           glib:type-struct="AudioFilterClass">
+      <virtual-method name="setup">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="format" transfer-ownership="none">
+            <type name="RingBufferSpec" c:type="GstRingBufferSpec*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <field name="basetransform">
+        <type name="GstBase.BaseTransform" c:type="GstBaseTransform"/>
+      </field>
+      <field name="format">
+        <type name="RingBufferSpec" c:type="GstRingBufferSpec"/>
+      </field>
+      <field name="_gst_reserved">
+        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+          <type name="any"/>
+        </array>
+      </field>
+    </class>
+    <record name="AudioFilterClass"
+            c:type="GstAudioFilterClass"
+            glib:is-gtype-struct-for="AudioFilter"
+            doc="In addition to the @setup virtual function, you should also override the
+GstBaseTransform::transform and/or GstBaseTransform::transform_ip virtual
+function."
+            version="0.10.12">
+      <field name="basetransformclass">
+        <type name="GstBase.BaseTransformClass"
+              c:type="GstBaseTransformClass"/>
+      </field>
+      <field name="setup">
+        <callback name="setup" c:type="setup">
+          <return-value transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="filter" transfer-ownership="none">
+              <type name="AudioFilter" c:type="GstAudioFilter*"/>
+            </parameter>
+            <parameter name="format" transfer-ownership="none">
+              <type name="RingBufferSpec" c:type="GstRingBufferSpec*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="_gst_reserved">
+        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+          <type name="any"/>
+        </array>
+      </field>
+      <method name="add_pad_templates"
+              c:identifier="gst_audio_filter_class_add_pad_templates"
+              doc="Convenience function to add pad templates to this element class, with
+This function is usually used from within a GObject base_init function."
+              version="0.10.12">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="allowed_caps" transfer-ownership="none">
+            <type name="Gst.Caps" c:type="GstCaps*"/>
+          </parameter>
+        </parameters>
+      </method>
+    </record>
+    <callback name="AudioMixerFilterFunc"
+              c:type="GstAudioMixerFilterFunc"
+              doc="Function that will be called by gst_audio_default_registry_mixer_filter()
+so the caller can decide which mixer elements should be kept and returned.
+When the mixer element is passed to the callback function, it is opened
+and in READY state. If you decide to keep the element, you need to set it
+back to NULL state yourself (unless you want to keep it opened of course).">
+      <return-value transfer-ownership="none">
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="mixer" transfer-ownership="none">
+          <type name="GstInterfaces.Mixer" c:type="GstMixer*"/>
+        </parameter>
+        <parameter name="user_data" transfer-ownership="none" closure="1">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <class name="AudioSink"
+           c:type="GstAudioSink"
+           doc="Opaque #GstAudioSink."
+           parent="BaseAudioSink"
+           glib:type-name="GstAudioSink"
+           glib:get-type="gst_audio_sink_get_type"
+           glib:type-struct="AudioSinkClass">
+      <virtual-method name="open">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+      </virtual-method>
+      <virtual-method name="prepare">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="spec" transfer-ownership="none">
+            <type name="RingBufferSpec" c:type="GstRingBufferSpec*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="unprepare">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+      </virtual-method>
+      <virtual-method name="close">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+      </virtual-method>
+      <virtual-method name="write">
+        <return-value transfer-ownership="none">
+          <type name="uint" c:type="guint"/>
+        </return-value>
+        <parameters>
+          <parameter name="data" transfer-ownership="none">
+            <type name="any" c:type="gpointer"/>
+          </parameter>
+          <parameter name="length" transfer-ownership="none">
+            <type name="uint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="delay">
+        <return-value transfer-ownership="none">
+          <type name="uint" c:type="guint"/>
+        </return-value>
+      </virtual-method>
+      <virtual-method name="reset">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </virtual-method>
+      <field name="element">
+        <type name="BaseAudioSink" c:type="GstBaseAudioSink"/>
+      </field>
+      <field name="thread">
+        <type name="GLib.Thread" c:type="GThread*"/>
+      </field>
+      <field name="_gst_reserved">
+        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+          <type name="any"/>
+        </array>
+      </field>
+    </class>
+    <record name="AudioSinkClass"
+            c:type="GstAudioSinkClass"
+            glib:is-gtype-struct-for="AudioSink"
+            doc="This function is also used to check if the device is available.
+drive the synchronisation.
+samples from the device.
+#GstAudioSink class. Override the vmethods to implement functionality.">
+      <field name="parent_class">
+        <type name="BaseAudioSinkClass" c:type="GstBaseAudioSinkClass"/>
+      </field>
+      <field name="open">
+        <callback name="open" c:type="open">
+          <return-value transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="sink" transfer-ownership="none">
+              <type name="AudioSink" c:type="GstAudioSink*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="prepare">
+        <callback name="prepare" c:type="prepare">
+          <return-value transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="sink" transfer-ownership="none">
+              <type name="AudioSink" c:type="GstAudioSink*"/>
+            </parameter>
+            <parameter name="spec" transfer-ownership="none">
+              <type name="RingBufferSpec" c:type="GstRingBufferSpec*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="unprepare">
+        <callback name="unprepare" c:type="unprepare">
+          <return-value transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="sink" transfer-ownership="none">
+              <type name="AudioSink" c:type="GstAudioSink*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="close">
+        <callback name="close" c:type="close">
+          <return-value transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="sink" transfer-ownership="none">
+              <type name="AudioSink" c:type="GstAudioSink*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="write">
+        <callback name="write" c:type="write">
+          <return-value transfer-ownership="none">
+            <type name="uint" c:type="guint"/>
+          </return-value>
+          <parameters>
+            <parameter name="sink" transfer-ownership="none">
+              <type name="AudioSink" c:type="GstAudioSink*"/>
+            </parameter>
+            <parameter name="data" transfer-ownership="none">
+              <type name="any" c:type="gpointer"/>
+            </parameter>
+            <parameter name="length" transfer-ownership="none">
+              <type name="uint" c:type="guint"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="delay">
+        <callback name="delay" c:type="delay">
+          <return-value transfer-ownership="none">
+            <type name="uint" c:type="guint"/>
+          </return-value>
+          <parameters>
+            <parameter name="sink" transfer-ownership="none">
+              <type name="AudioSink" c:type="GstAudioSink*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="reset">
+        <callback name="reset" c:type="reset">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="sink" transfer-ownership="none">
+              <type name="AudioSink" c:type="GstAudioSink*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="_gst_reserved">
+        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+          <type name="any"/>
+        </array>
+      </field>
+    </record>
+    <class name="AudioSrc"
+           c:type="GstAudioSrc"
+           doc="Base class for simple audio sources."
+           parent="BaseAudioSrc"
+           glib:type-name="GstAudioSrc"
+           glib:get-type="gst_audio_src_get_type"
+           glib:type-struct="AudioSrcClass">
+      <virtual-method name="open">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+      </virtual-method>
+      <virtual-method name="prepare">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="spec" transfer-ownership="none">
+            <type name="RingBufferSpec" c:type="GstRingBufferSpec*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="unprepare">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+      </virtual-method>
+      <virtual-method name="close">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+      </virtual-method>
+      <virtual-method name="read">
+        <return-value transfer-ownership="none">
+          <type name="uint" c:type="guint"/>
+        </return-value>
+        <parameters>
+          <parameter name="data" transfer-ownership="none">
+            <type name="any" c:type="gpointer"/>
+          </parameter>
+          <parameter name="length" transfer-ownership="none">
+            <type name="uint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="delay">
+        <return-value transfer-ownership="none">
+          <type name="uint" c:type="guint"/>
+        </return-value>
+      </virtual-method>
+      <virtual-method name="reset">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </virtual-method>
+      <field name="element">
+        <type name="BaseAudioSrc" c:type="GstBaseAudioSrc"/>
+      </field>
+      <field name="thread">
+        <type name="GLib.Thread" c:type="GThread*"/>
+      </field>
+      <field name="_gst_reserved">
+        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+          <type name="any"/>
+        </array>
+      </field>
+    </class>
+    <record name="AudioSrcClass"
+            c:type="GstAudioSrcClass"
+            glib:is-gtype-struct-for="AudioSrc"
+            doc="#GstAudioSrc class. Override the vmethod to implement
+functionality.">
+      <field name="parent_class">
+        <type name="BaseAudioSrcClass" c:type="GstBaseAudioSrcClass"/>
+      </field>
+      <field name="open">
+        <callback name="open" c:type="open">
+          <return-value transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="src" transfer-ownership="none">
+              <type name="AudioSrc" c:type="GstAudioSrc*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="prepare">
+        <callback name="prepare" c:type="prepare">
+          <return-value transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="src" transfer-ownership="none">
+              <type name="AudioSrc" c:type="GstAudioSrc*"/>
+            </parameter>
+            <parameter name="spec" transfer-ownership="none">
+              <type name="RingBufferSpec" c:type="GstRingBufferSpec*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="unprepare">
+        <callback name="unprepare" c:type="unprepare">
+          <return-value transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="src" transfer-ownership="none">
+              <type name="AudioSrc" c:type="GstAudioSrc*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="close">
+        <callback name="close" c:type="close">
+          <return-value transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="src" transfer-ownership="none">
+              <type name="AudioSrc" c:type="GstAudioSrc*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="read">
+        <callback name="read" c:type="read">
+          <return-value transfer-ownership="none">
+            <type name="uint" c:type="guint"/>
+          </return-value>
+          <parameters>
+            <parameter name="src" transfer-ownership="none">
+              <type name="AudioSrc" c:type="GstAudioSrc*"/>
+            </parameter>
+            <parameter name="data" transfer-ownership="none">
+              <type name="any" c:type="gpointer"/>
+            </parameter>
+            <parameter name="length" transfer-ownership="none">
+              <type name="uint" c:type="guint"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="delay">
+        <callback name="delay" c:type="delay">
+          <return-value transfer-ownership="none">
+            <type name="uint" c:type="guint"/>
+          </return-value>
+          <parameters>
+            <parameter name="src" transfer-ownership="none">
+              <type name="AudioSrc" c:type="GstAudioSrc*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="reset">
+        <callback name="reset" c:type="reset">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="src" transfer-ownership="none">
+              <type name="AudioSrc" c:type="GstAudioSrc*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="_gst_reserved">
+        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+          <type name="any"/>
+        </array>
+      </field>
+    </record>
+    <class name="BaseAudioSink"
+           c:type="GstBaseAudioSink"
+           doc="Opaque #GstBaseAudioSink."
+           parent="GstBase.BaseSink"
+           glib:type-name="GstBaseAudioSink"
+           glib:get-type="gst_base_audio_sink_get_type"
+           glib:type-struct="BaseAudioSinkClass">
+      <virtual-method name="create_ringbuffer" invoker="create_ringbuffer">
+        <return-value transfer-ownership="full">
+          <type name="RingBuffer" c:type="GstRingBuffer*"/>
+        </return-value>
+      </virtual-method>
+      <method name="create_ringbuffer"
+              c:identifier="gst_base_audio_sink_create_ringbuffer"
+              doc="Create and return the #GstRingBuffer for @sink. This function will call the
+::create_ringbuffer vmethod and will set @sink as the parent of the returned
+buffer (see gst_object_set_parent()).">
+        <return-value transfer-ownership="full">
+          <type name="RingBuffer" c:type="GstRingBuffer*"/>
+        </return-value>
+      </method>
+      <method name="set_provide_clock"
+              c:identifier="gst_base_audio_sink_set_provide_clock"
+              doc="Controls whether @sink will provide a clock or not. If @provide is %TRUE,
+gst_element_provide_clock() will return a clock that reflects the datarate
+of @sink. If @provide is %FALSE, gst_element_provide_clock() will return NULL."
+              version="0.10.16">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="provide" transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_provide_clock"
+              c:identifier="gst_base_audio_sink_get_provide_clock"
+              doc="Queries whether @sink will provide a clock or not. See also
+gst_base_audio_sink_set_provide_clock."
+              version="0.10.16">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+      </method>
+      <method name="set_slave_method"
+              c:identifier="gst_base_audio_sink_set_slave_method"
+              doc="Controls how clock slaving will be performed in @sink."
+              version="0.10.16">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="method" transfer-ownership="none">
+            <type name="BaseAudioSinkSlaveMethod"
+                  c:type="GstBaseAudioSinkSlaveMethod"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_slave_method"
+              c:identifier="gst_base_audio_sink_get_slave_method"
+              doc="Get the current slave method used by @sink."
+              version="0.10.16">
+        <return-value transfer-ownership="full">
+          <type name="BaseAudioSinkSlaveMethod"
+                c:type="GstBaseAudioSinkSlaveMethod"/>
+        </return-value>
+      </method>
+      <property name="buffer-time" writable="1">
+        <type name="int64" c:type="gint64"/>
+      </property>
+      <property name="can-activate-pull" writable="1">
+        <type name="boolean" c:type="gboolean"/>
+      </property>
+      <property name="drift-tolerance" writable="1">
+        <type name="int64" c:type="gint64"/>
+      </property>
+      <property name="latency-time" writable="1">
+        <type name="int64" c:type="gint64"/>
+      </property>
+      <property name="provide-clock" writable="1">
+        <type name="boolean" c:type="gboolean"/>
+      </property>
+      <property name="slave-method" writable="1">
+        <type name="BaseAudioSinkSlaveMethod"
+              c:type="GstBaseAudioSinkSlaveMethod"/>
+      </property>
+      <field name="element">
+        <type name="GstBase.BaseSink" c:type="GstBaseSink"/>
+      </field>
+      <field name="ringbuffer">
+        <type name="RingBuffer" c:type="GstRingBuffer*"/>
+      </field>
+      <field name="buffer_time">
+        <type name="uint64" c:type="guint64"/>
+      </field>
+      <field name="latency_time">
+        <type name="uint64" c:type="guint64"/>
+      </field>
+      <field name="next_sample">
+        <type name="uint64" c:type="guint64"/>
+      </field>
+      <field name="provide_clock">
+        <type name="boolean" c:type="gboolean"/>
+      </field>
+      <field name="provided_clock">
+        <type name="Gst.Clock" c:type="GstClock*"/>
+      </field>
+      <field name="priv">
+        <type name="BaseAudioSinkPrivate" c:type="GstBaseAudioSinkPrivate*"/>
+      </field>
+      <field name="_gst_reserved">
+        <array zero-terminated="0" c:type="gpointer" fixed-size="3">
+          <type name="any"/>
+        </array>
+      </field>
+    </class>
+    <record name="BaseAudioSinkClass"
+            c:type="GstBaseAudioSinkClass"
+            glib:is-gtype-struct-for="BaseAudioSink"
+            doc="#GstBaseAudioSink class. Override the vmethod to implement
+functionality.">
+      <field name="parent_class">
+        <type name="GstBase.BaseSinkClass" c:type="GstBaseSinkClass"/>
+      </field>
+      <field name="create_ringbuffer">
+        <callback name="create_ringbuffer" c:type="create_ringbuffer">
+          <return-value transfer-ownership="full">
+            <type name="RingBuffer" c:type="GstRingBuffer*"/>
+          </return-value>
+          <parameters>
+            <parameter name="sink" transfer-ownership="none">
+              <type name="BaseAudioSink" c:type="GstBaseAudioSink*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="_gst_reserved">
+        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+          <type name="any"/>
+        </array>
+      </field>
+    </record>
+    <record name="BaseAudioSinkPrivate" c:type="GstBaseAudioSinkPrivate">
+    </record>
+    <enumeration name="BaseAudioSinkSlaveMethod"
+                 doc="drifts too much.
+Different possible clock slaving algorithms used when the internal audio
+clock is not selected as the pipeline master clock."
+                 glib:type-name="GstBaseAudioSinkSlaveMethod"
+                 glib:get-type="gst_base_audio_sink_slave_method_get_type"
+                 c:type="GstBaseAudioSinkSlaveMethod">
+      <member name="resample"
+              value="0"
+              c:identifier="GST_BASE_AUDIO_SINK_SLAVE_RESAMPLE"
+              glib:nick="resample"/>
+      <member name="skew"
+              value="1"
+              c:identifier="GST_BASE_AUDIO_SINK_SLAVE_SKEW"
+              glib:nick="skew"/>
+      <member name="none"
+              value="2"
+              c:identifier="GST_BASE_AUDIO_SINK_SLAVE_NONE"
+              glib:nick="none"/>
+    </enumeration>
+    <class name="BaseAudioSrc"
+           c:type="GstBaseAudioSrc"
+           doc="Opaque #GstBaseAudioSrc."
+           parent="GstBase.PushSrc"
+           glib:type-name="GstBaseAudioSrc"
+           glib:get-type="gst_base_audio_src_get_type"
+           glib:type-struct="BaseAudioSrcClass">
+      <virtual-method name="create_ringbuffer" invoker="create_ringbuffer">
+        <return-value transfer-ownership="full">
+          <type name="RingBuffer" c:type="GstRingBuffer*"/>
+        </return-value>
+      </virtual-method>
+      <method name="create_ringbuffer"
+              c:identifier="gst_base_audio_src_create_ringbuffer"
+              doc="Create and return the #GstRingBuffer for @src. This function will call the
+::create_ringbuffer vmethod and will set @src as the parent of the returned
+buffer (see gst_object_set_parent()).">
+        <return-value transfer-ownership="full">
+          <type name="RingBuffer" c:type="GstRingBuffer*"/>
+        </return-value>
+      </method>
+      <method name="set_provide_clock"
+              c:identifier="gst_base_audio_src_set_provide_clock"
+              doc="Controls whether @src will provide a clock or not. If @provide is %TRUE,
+gst_element_provide_clock() will return a clock that reflects the datarate
+of @src. If @provide is %FALSE, gst_element_provide_clock() will return NULL."
+              version="0.10.16">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="provide" transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_provide_clock"
+              c:identifier="gst_base_audio_src_get_provide_clock"
+              doc="Queries whether @src will provide a clock or not. See also
+gst_base_audio_src_set_provide_clock."
+              version="0.10.16">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+      </method>
+      <method name="set_slave_method"
+              c:identifier="gst_base_audio_src_set_slave_method"
+              doc="Controls how clock slaving will be performed in @src."
+              version="0.10.20">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="method" transfer-ownership="none">
+            <type name="BaseAudioSrcSlaveMethod"
+                  c:type="GstBaseAudioSrcSlaveMethod"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_slave_method"
+              c:identifier="gst_base_audio_src_get_slave_method"
+              doc="Get the current slave method used by @src."
+              version="0.10.20">
+        <return-value transfer-ownership="full">
+          <type name="BaseAudioSrcSlaveMethod"
+                c:type="GstBaseAudioSrcSlaveMethod"/>
+        </return-value>
+      </method>
+      <property name="actual-buffer-time"
+                version="0.10.20"
+                doc="Actual configured size of audio buffer in microseconds.">
+        <type name="int64" c:type="gint64"/>
+      </property>
+      <property name="actual-latency-time"
+                version="0.10.20"
+                doc="Actual configured audio latency in microseconds.">
+        <type name="int64" c:type="gint64"/>
+      </property>
+      <property name="buffer-time" writable="1">
+        <type name="int64" c:type="gint64"/>
+      </property>
+      <property name="latency-time" writable="1">
+        <type name="int64" c:type="gint64"/>
+      </property>
+      <property name="provide-clock" writable="1">
+        <type name="boolean" c:type="gboolean"/>
+      </property>
+      <property name="slave-method" writable="1">
+        <type name="BaseAudioSrcSlaveMethod"
+              c:type="GstBaseAudioSrcSlaveMethod"/>
+      </property>
+      <field name="element">
+        <type name="GstBase.PushSrc" c:type="GstPushSrc"/>
+      </field>
+      <field name="ringbuffer">
+        <type name="RingBuffer" c:type="GstRingBuffer*"/>
+      </field>
+      <field name="buffer_time">
+        <type name="Gst.ClockTime" c:type="GstClockTime"/>
+      </field>
+      <field name="latency_time">
+        <type name="Gst.ClockTime" c:type="GstClockTime"/>
+      </field>
+      <field name="next_sample">
+        <type name="uint64" c:type="guint64"/>
+      </field>
+      <field name="clock">
+        <type name="Gst.Clock" c:type="GstClock*"/>
+      </field>
+      <field name="priv">
+        <type name="BaseAudioSrcPrivate" c:type="GstBaseAudioSrcPrivate*"/>
+      </field>
+      <field name="_gst_reserved">
+        <array zero-terminated="0" c:type="gpointer" fixed-size="3">
+          <type name="any"/>
+        </array>
+      </field>
+    </class>
+    <record name="BaseAudioSrcClass"
+            c:type="GstBaseAudioSrcClass"
+            glib:is-gtype-struct-for="BaseAudioSrc"
+            doc="#GstBaseAudioSrc class. Override the vmethod to implement
+functionality.">
+      <field name="parent_class">
+        <type name="GstBase.PushSrcClass" c:type="GstPushSrcClass"/>
+      </field>
+      <field name="create_ringbuffer">
+        <callback name="create_ringbuffer" c:type="create_ringbuffer">
+          <return-value transfer-ownership="full">
+            <type name="RingBuffer" c:type="GstRingBuffer*"/>
+          </return-value>
+          <parameters>
+            <parameter name="src" transfer-ownership="none">
+              <type name="BaseAudioSrc" c:type="GstBaseAudioSrc*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="_gst_reserved">
+        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+          <type name="any"/>
+        </array>
+      </field>
+    </record>
+    <record name="BaseAudioSrcPrivate" c:type="GstBaseAudioSrcPrivate">
+    </record>
+    <enumeration name="BaseAudioSrcSlaveMethod"
+                 doc="clock time.
+drifts too much.
+Different possible clock slaving algorithms when the internal audio clock was
+not selected as the pipeline clock."
+                 glib:type-name="GstBaseAudioSrcSlaveMethod"
+                 glib:get-type="gst_base_audio_src_slave_method_get_type"
+                 c:type="GstBaseAudioSrcSlaveMethod">
+      <member name="resample"
+              value="0"
+              c:identifier="GST_BASE_AUDIO_SRC_SLAVE_RESAMPLE"
+              glib:nick="resample"/>
+      <member name="re_timestamp"
+              value="1"
+              c:identifier="GST_BASE_AUDIO_SRC_SLAVE_RETIMESTAMP"
+              glib:nick="re-timestamp"/>
+      <member name="skew" value="2" c:identifier="GST_BASE_AUDIO_SRC_SLAVE_SKEW" glib:nick="skew"/>
+      <member name="none"
+              value="3"
+              c:identifier="GST_BASE_AUDIO_SRC_SLAVE_NONE"
+              glib:nick="none"/>
+    </enumeration>
+    <enumeration name="BufferFormat"
+                 glib:type-name="GstBufferFormat"
+                 glib:get-type="gst_buffer_format_get_type"
+                 c:type="GstBufferFormat">
+      <member name="unknown"
+              value="0"
+              c:identifier="GST_UNKNOWN"
+              glib:nick="unknown"/>
+      <member name="s8" value="1" c:identifier="GST_S8" glib:nick="s8"/>
+      <member name="u8" value="2" c:identifier="GST_U8" glib:nick="u8"/>
+      <member name="s16_le"
+              value="3"
+              c:identifier="GST_S16_LE"
+              glib:nick="s16-le"/>
+      <member name="s16_be"
+              value="4"
+              c:identifier="GST_S16_BE"
+              glib:nick="s16-be"/>
+      <member name="u16_le"
+              value="5"
+              c:identifier="GST_U16_LE"
+              glib:nick="u16-le"/>
+      <member name="u16_be"
+              value="6"
+              c:identifier="GST_U16_BE"
+              glib:nick="u16-be"/>
+      <member name="s24_le"
+              value="7"
+              c:identifier="GST_S24_LE"
+              glib:nick="s24-le"/>
+      <member name="s24_be"
+              value="8"
+              c:identifier="GST_S24_BE"
+              glib:nick="s24-be"/>
+      <member name="u24_le"
+              value="9"
+              c:identifier="GST_U24_LE"
+              glib:nick="u24-le"/>
+      <member name="u24_be"
+              value="10"
+              c:identifier="GST_U24_BE"
+              glib:nick="u24-be"/>
+      <member name="s32_le"
+              value="11"
+              c:identifier="GST_S32_LE"
+              glib:nick="s32-le"/>
+      <member name="s32_be"
+              value="12"
+              c:identifier="GST_S32_BE"
+              glib:nick="s32-be"/>
+      <member name="u32_le"
+              value="13"
+              c:identifier="GST_U32_LE"
+              glib:nick="u32-le"/>
+      <member name="u32_be"
+              value="14"
+              c:identifier="GST_U32_BE"
+              glib:nick="u32-be"/>
+      <member name="s24_3le"
+              value="15"
+              c:identifier="GST_S24_3LE"
+              glib:nick="s24-3le"/>
+      <member name="s24_3be"
+              value="16"
+              c:identifier="GST_S24_3BE"
+              glib:nick="s24-3be"/>
+      <member name="u24_3le"
+              value="17"
+              c:identifier="GST_U24_3LE"
+              glib:nick="u24-3le"/>
+      <member name="u24_3be"
+              value="18"
+              c:identifier="GST_U24_3BE"
+              glib:nick="u24-3be"/>
+      <member name="s20_3le"
+              value="19"
+              c:identifier="GST_S20_3LE"
+              glib:nick="s20-3le"/>
+      <member name="s20_3be"
+              value="20"
+              c:identifier="GST_S20_3BE"
+              glib:nick="s20-3be"/>
+      <member name="u20_3le"
+              value="21"
+              c:identifier="GST_U20_3LE"
+              glib:nick="u20-3le"/>
+      <member name="u20_3be"
+              value="22"
+              c:identifier="GST_U20_3BE"
+              glib:nick="u20-3be"/>
+      <member name="s18_3le"
+              value="23"
+              c:identifier="GST_S18_3LE"
+              glib:nick="s18-3le"/>
+      <member name="s18_3be"
+              value="24"
+              c:identifier="GST_S18_3BE"
+              glib:nick="s18-3be"/>
+      <member name="u18_3le"
+              value="25"
+              c:identifier="GST_U18_3LE"
+              glib:nick="u18-3le"/>
+      <member name="u18_3be"
+              value="26"
+              c:identifier="GST_U18_3BE"
+              glib:nick="u18-3be"/>
+      <member name="float32_le"
+              value="27"
+              c:identifier="GST_FLOAT32_LE"
+              glib:nick="float32-le"/>
+      <member name="float32_be"
+              value="28"
+              c:identifier="GST_FLOAT32_BE"
+              glib:nick="float32-be"/>
+      <member name="float64_le"
+              value="29"
+              c:identifier="GST_FLOAT64_LE"
+              glib:nick="float64-le"/>
+      <member name="float64_be"
+              value="30"
+              c:identifier="GST_FLOAT64_BE"
+              glib:nick="float64-be"/>
+      <member name="mu_law"
+              value="31"
+              c:identifier="GST_MU_LAW"
+              glib:nick="mu-law"/>
+      <member name="a_law"
+              value="32"
+              c:identifier="GST_A_LAW"
+              glib:nick="a-law"/>
+      <member name="ima_adpcm"
+              value="33"
+              c:identifier="GST_IMA_ADPCM"
+              glib:nick="ima-adpcm"/>
+      <member name="mpeg" value="34" c:identifier="GST_MPEG" glib:nick="mpeg"/>
+      <member name="gsm" value="35" c:identifier="GST_GSM" glib:nick="gsm"/>
+      <member name="iec958"
+              value="36"
+              c:identifier="GST_IEC958"
+              glib:nick="iec958"/>
+      <member name="ac3" value="37" c:identifier="GST_AC3" glib:nick="ac3"/>
+      <member name="eac3" value="38" c:identifier="GST_EAC3" glib:nick="eac3"/>
+      <member name="dts" value="39" c:identifier="GST_DTS" glib:nick="dts"/>
+    </enumeration>
+    <enumeration name="BufferFormatType"
+                 doc="The format of the samples in the ringbuffer."
+                 glib:type-name="GstBufferFormatType"
+                 glib:get-type="gst_buffer_format_type_get_type"
+                 c:type="GstBufferFormatType">
+      <member name="linear"
+              value="0"
+              c:identifier="GST_BUFTYPE_LINEAR"
+              glib:nick="linear"/>
+      <member name="float"
+              value="1"
+              c:identifier="GST_BUFTYPE_FLOAT"
+              glib:nick="float"/>
+      <member name="mu_law"
+              value="2"
+              c:identifier="GST_BUFTYPE_MU_LAW"
+              glib:nick="mu-law"/>
+      <member name="a_law"
+              value="3"
+              c:identifier="GST_BUFTYPE_A_LAW"
+              glib:nick="a-law"/>
+      <member name="ima_adpcm"
+              value="4"
+              c:identifier="GST_BUFTYPE_IMA_ADPCM"
+              glib:nick="ima-adpcm"/>
+      <member name="mpeg"
+              value="5"
+              c:identifier="GST_BUFTYPE_MPEG"
+              glib:nick="mpeg"/>
+      <member name="gsm"
+              value="6"
+              c:identifier="GST_BUFTYPE_GSM"
+              glib:nick="gsm"/>
+      <member name="iec958"
+              value="7"
+              c:identifier="GST_BUFTYPE_IEC958"
+              glib:nick="iec958"/>
+      <member name="ac3"
+              value="8"
+              c:identifier="GST_BUFTYPE_AC3"
+              glib:nick="ac3"/>
+      <member name="eac3"
+              value="9"
+              c:identifier="GST_BUFTYPE_EAC3"
+              glib:nick="eac3"/>
+      <member name="dts"
+              value="10"
+              c:identifier="GST_BUFTYPE_DTS"
+              glib:nick="dts"/>
+    </enumeration>
+    <constant name="DEF_RATE" value="44100">
+      <type name="int"/>
+    </constant>
+    <constant name="FLOAT_PAD_TEMPLATE_CAPS"
+              value="audio/x-raw-float, rate = (int) [ 1, MAX ], channels = (int) [ 1, MAX ], endianness = (int) { LITTLE_ENDIAN , BIG_ENDIAN }, width = (int) { 32, 64 }">
+      <type name="utf8"/>
+    </constant>
+    <constant name="FLOAT_STANDARD_PAD_TEMPLATE_CAPS"
+              value="audio/x-raw-float, width = (int) 32, rate = (int) [ 1, MAX ], channels = (int) 1, endianness = (int) BYTE_ORDER">
+      <type name="utf8"/>
+    </constant>
+    <constant name="INT_PAD_TEMPLATE_CAPS"
+              value="audio/x-raw-int, rate = (int) [ 1, MAX ], channels = (int) [ 1, MAX ], endianness = (int) { LITTLE_ENDIAN, BIG_ENDIAN }, width = (int) { 8, 16, 24, 32 }, depth = (int) [ 1, 32 ], signed = (boolean) { true, false }">
+      <type name="utf8"/>
+    </constant>
+    <constant name="INT_STANDARD_PAD_TEMPLATE_CAPS"
+              value="audio/x-raw-int, rate = (int) [ 1, MAX ], channels = (int) 2, endianness = (int) BYTE_ORDER, width = (int) 16, depth = (int) 16, signed = (boolean) true">
+      <type name="utf8"/>
+    </constant>
+    <class name="RingBuffer"
+           c:type="GstRingBuffer"
+           doc="The ringbuffer base class structure."
+           parent="Gst.Object"
+           abstract="1"
+           glib:type-name="GstRingBuffer"
+           glib:get-type="gst_ring_buffer_get_type"
+           glib:type-struct="RingBufferClass">
+      <function name="parse_caps"
+                c:identifier="gst_ring_buffer_parse_caps"
+                doc="Parse @caps into @spec.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="spec" transfer-ownership="none">
+            <type name="RingBufferSpec" c:type="GstRingBufferSpec*"/>
+          </parameter>
+          <parameter name="caps" transfer-ownership="none">
+            <type name="Gst.Caps" c:type="GstCaps*"/>
+          </parameter>
+        </parameters>
+      </function>
+      <function name="debug_spec_caps"
+                c:identifier="gst_ring_buffer_debug_spec_caps"
+                doc="Print debug info about the parsed caps in @spec to the debug log.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="spec" transfer-ownership="none">
+            <type name="RingBufferSpec" c:type="GstRingBufferSpec*"/>
+          </parameter>
+        </parameters>
+      </function>
+      <function name="debug_spec_buff"
+                c:identifier="gst_ring_buffer_debug_spec_buff"
+                doc="Print debug info about the buffer sized in @spec to the debug log.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="spec" transfer-ownership="none">
+            <type name="RingBufferSpec" c:type="GstRingBufferSpec*"/>
+          </parameter>
+        </parameters>
+      </function>
+      <virtual-method name="open_device" invoker="open_device">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+      </virtual-method>
+      <virtual-method name="acquire" invoker="acquire">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="spec" transfer-ownership="none">
+            <type name="RingBufferSpec" c:type="GstRingBufferSpec*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="release" invoker="release">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+      </virtual-method>
+      <virtual-method name="close_device" invoker="close_device">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+      </virtual-method>
+      <virtual-method name="start" invoker="start">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+      </virtual-method>
+      <virtual-method name="pause" invoker="pause">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+      </virtual-method>
+      <virtual-method name="resume">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+      </virtual-method>
+      <virtual-method name="stop" invoker="stop">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+      </virtual-method>
+      <virtual-method name="delay" invoker="delay">
+        <return-value transfer-ownership="none">
+          <type name="uint" c:type="guint"/>
+        </return-value>
+      </virtual-method>
+      <virtual-method name="activate" invoker="activate">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="active" transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="commit">
+        <return-value transfer-ownership="none">
+          <type name="uint" c:type="guint"/>
+        </return-value>
+        <parameters>
+          <parameter name="sample" direction="out" transfer-ownership="full">
+            <type name="uint64" c:type="guint64*"/>
+          </parameter>
+          <parameter name="data" transfer-ownership="none">
+            <array c:type="guchar*">
+              <type name="uint8"/>
+            </array>
+          </parameter>
+          <parameter name="in_samples" transfer-ownership="none">
+            <type name="int" c:type="gint"/>
+          </parameter>
+          <parameter name="out_samples" transfer-ownership="none">
+            <type name="int" c:type="gint"/>
+          </parameter>
+          <parameter name="accum" direction="out" transfer-ownership="full">
+            <type name="int" c:type="gint*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="clear_all" invoker="clear_all">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </virtual-method>
+      <method name="set_callback"
+              c:identifier="gst_ring_buffer_set_callback"
+              doc="Sets the given callback function on the buffer. This function
+will be called every time a segment has been written to a device.
+MT safe.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="cb"
+                     transfer-ownership="none"
+                     scope="call"
+                     closure="2">
+            <type name="RingBufferCallback" c:type="GstRingBufferCallback"/>
+          </parameter>
+          <parameter name="user_data" transfer-ownership="none">
+            <type name="any" c:type="gpointer"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="convert"
+              c:identifier="gst_ring_buffer_convert"
+              doc="Convert @src_val in @src_fmt to the equivalent value in @dest_fmt. The result
+will be put in @dest_val."
+              version="0.10.22.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="src_fmt" transfer-ownership="none">
+            <type name="Gst.Format" c:type="GstFormat"/>
+          </parameter>
+          <parameter name="src_val" transfer-ownership="none">
+            <type name="int64" c:type="gint64"/>
+          </parameter>
+          <parameter name="dest_fmt" transfer-ownership="none">
+            <type name="Gst.Format" c:type="GstFormat"/>
+          </parameter>
+          <parameter name="dest_val" direction="out" transfer-ownership="full">
+            <type name="int64" c:type="gint64*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="open_device"
+              c:identifier="gst_ring_buffer_open_device"
+              doc="Open the audio device associated with the ring buffer. Does not perform any
+setup on the device. You must open the device before acquiring the ring
+buffer.
+MT safe.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+      </method>
+      <method name="close_device"
+              c:identifier="gst_ring_buffer_close_device"
+              doc="Close the audio device associated with the ring buffer. The ring buffer
+should already have been released via gst_ring_buffer_release().
+MT safe.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+      </method>
+      <method name="device_is_open"
+              c:identifier="gst_ring_buffer_device_is_open"
+              doc="Checks the status of the device associated with the ring buffer.
+MT safe.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+      </method>
+      <method name="acquire"
+              c:identifier="gst_ring_buffer_acquire"
+              doc="Allocate the resources for the ringbuffer. This function fills
+in the data pointer of the ring buffer with a valid #GstBuffer
+to which samples can be written.
+MT safe.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="spec" transfer-ownership="none">
+            <type name="RingBufferSpec" c:type="GstRingBufferSpec*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="release"
+              c:identifier="gst_ring_buffer_release"
+              doc="Free the resources of the ringbuffer.
+MT safe.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+      </method>
+      <method name="is_acquired"
+              c:identifier="gst_ring_buffer_is_acquired"
+              doc="Check if the ringbuffer is acquired and ready to use.
+MT safe.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+      </method>
+      <method name="activate"
+              c:identifier="gst_ring_buffer_activate"
+              doc="Activate @buf to start or stop pulling data.
+MT safe.
+FALSE on error."
+              version="0.10.22.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="active" transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="is_active"
+              c:identifier="gst_ring_buffer_is_active"
+              doc="Check if @buf is activated.
+MT safe."
+              version="0.10.22.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+      </method>
+      <method name="set_flushing"
+              c:identifier="gst_ring_buffer_set_flushing"
+              doc="Set the ringbuffer to flushing mode or normal mode.
+MT safe.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="flushing" transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="start"
+              c:identifier="gst_ring_buffer_start"
+              doc="Start processing samples from the ringbuffer.
+MT safe.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+      </method>
+      <method name="pause"
+              c:identifier="gst_ring_buffer_pause"
+              doc="Pause processing samples from the ringbuffer.
+MT safe.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+      </method>
+      <method name="stop"
+              c:identifier="gst_ring_buffer_stop"
+              doc="Stop processing samples from the ringbuffer.
+MT safe.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+      </method>
+      <method name="delay"
+              c:identifier="gst_ring_buffer_delay"
+              doc="Get the number of samples queued in the audio device. This is
+usually less than the segment size but can be bigger when the
+implementation uses another internal buffer between the audio
+device.
+For playback ringbuffers this is the amount of samples transfered from the
+ringbuffer to the device but still not played.
+For capture ringbuffers this is the amount of samples in the device that are
+not yet transfered to the ringbuffer.
+MT safe.">
+        <return-value transfer-ownership="none">
+          <type name="uint" c:type="guint"/>
+        </return-value>
+      </method>
+      <method name="samples_done"
+              c:identifier="gst_ring_buffer_samples_done"
+              doc="Get the number of samples that were processed by the ringbuffer
+since it was last started. This does not include the number of samples not
+yet processed (see gst_ring_buffer_delay()).
+MT safe.">
+        <return-value transfer-ownership="none">
+          <type name="uint64" c:type="guint64"/>
+        </return-value>
+      </method>
+      <method name="set_sample"
+              c:identifier="gst_ring_buffer_set_sample"
+              doc="Make sure that the next sample written to the device is
+accounted for as being the @sample sample written to the
+device. This value will be used in reporting the current
+sample position of the ringbuffer.
+This function will also clear the buffer with silence.
+MT safe.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="sample" transfer-ownership="none">
+            <type name="uint64" c:type="guint64"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="clear_all"
+              c:identifier="gst_ring_buffer_clear_all"
+              doc="Fill the ringbuffer with silence.
+MT safe.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </method>
+      <method name="commit"
+              c:identifier="gst_ring_buffer_commit"
+              doc="Same as gst_ring_buffer_commit_full() but with a in_samples and out_samples
+equal to @len, ignoring accum.
+error.
+MT safe.">
+        <return-value transfer-ownership="none">
+          <type name="uint" c:type="guint"/>
+        </return-value>
+        <parameters>
+          <parameter name="sample" transfer-ownership="none">
+            <type name="uint64" c:type="guint64"/>
+          </parameter>
+          <parameter name="data" transfer-ownership="none">
+            <array c:type="guchar*">
+              <type name="uint8"/>
+            </array>
+          </parameter>
+          <parameter name="len" transfer-ownership="none">
+            <type name="uint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="commit_full"
+              c:identifier="gst_ring_buffer_commit_full"
+              doc="Commit @in_samples samples pointed to by @data to the ringbuffer @buf.
+samples in @data. For negative rates, @out_samples must be negative and
+When @out_samples is positive, the first sample will be written at position @sample
+in the ringbuffer. When @out_samples is negative, the last sample will be written to
+although it is recommended for optimal performance.
+set to 0 when this function is first called. In case the commit operation is
+interrupted, one can resume the processing by passing the previously returned
+MT safe.
+number of samples written can be less than @out_samples when @buf was interrupted
+with a flush or stop."
+              version="0.10.11.">
+        <return-value transfer-ownership="none">
+          <type name="uint" c:type="guint"/>
+        </return-value>
+        <parameters>
+          <parameter name="sample" direction="out" transfer-ownership="full">
+            <type name="uint64" c:type="guint64*"/>
+          </parameter>
+          <parameter name="data" transfer-ownership="none">
+            <array c:type="guchar*">
+              <type name="uint8"/>
+            </array>
+          </parameter>
+          <parameter name="in_samples" transfer-ownership="none">
+            <type name="int" c:type="gint"/>
+          </parameter>
+          <parameter name="out_samples" transfer-ownership="none">
+            <type name="int" c:type="gint"/>
+          </parameter>
+          <parameter name="accum" direction="out" transfer-ownership="full">
+            <type name="int" c:type="gint*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="read"
+              c:identifier="gst_ring_buffer_read"
+              doc="Read @len samples from the ringbuffer into the memory pointed
+to by @data.
+The first sample should be read from position @sample in
+the ringbuffer.
+although it is recommended.
+error.
+MT safe.">
+        <return-value transfer-ownership="none">
+          <type name="uint" c:type="guint"/>
+        </return-value>
+        <parameters>
+          <parameter name="sample" transfer-ownership="none">
+            <type name="uint64" c:type="guint64"/>
+          </parameter>
+          <parameter name="data" transfer-ownership="none">
+            <array c:type="guchar*">
+              <type name="uint8"/>
+            </array>
+          </parameter>
+          <parameter name="len" transfer-ownership="none">
+            <type name="uint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="prepare_read"
+              c:identifier="gst_ring_buffer_prepare_read"
+              doc="Returns a pointer to memory where the data from segment @segment
+can be found. This function is mostly used by subclasses.
+MT safe.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="segment" direction="out" transfer-ownership="full">
+            <type name="int" c:type="gint*"/>
+          </parameter>
+          <parameter name="readptr" direction="out" transfer-ownership="full">
+            <type name="uint8" c:type="guint8**"/>
+          </parameter>
+          <parameter name="len" direction="out" transfer-ownership="full">
+            <type name="int" c:type="gint*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="clear"
+              c:identifier="gst_ring_buffer_clear"
+              doc="Clear the given segment of the buffer with silence samples.
+This function is used by subclasses.
+MT safe.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="segment" transfer-ownership="none">
+            <type name="int" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="advance"
+              c:identifier="gst_ring_buffer_advance"
+              doc="Subclasses should call this function to notify the fact that
+MT safe.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="advance" transfer-ownership="none">
+            <type name="uint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="may_start"
+              c:identifier="gst_ring_buffer_may_start"
+              doc="Tell the ringbuffer that it is allowed to start playback when
+the ringbuffer is filled with samples.
+MT safe."
+              version="0.10.6">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="allowed" transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <field name="object">
+        <type name="Gst.Object" c:type="GstObject"/>
+      </field>
+      <field name="cond">
+        <type name="GLib.Cond" c:type="GCond*"/>
+      </field>
+      <field name="open">
+        <type name="boolean" c:type="gboolean"/>
+      </field>
+      <field name="acquired">
+        <type name="boolean" c:type="gboolean"/>
+      </field>
+      <field name="data">
+        <type name="Gst.Buffer" c:type="GstBuffer*"/>
+      </field>
+      <field name="spec">
+        <type name="RingBufferSpec" c:type="GstRingBufferSpec"/>
+      </field>
+      <field name="segstate">
+        <type name="RingBufferSegState" c:type="GstRingBufferSegState*"/>
+      </field>
+      <field name="samples_per_seg">
+        <type name="int" c:type="gint"/>
+      </field>
+      <field name="empty_seg">
+        <type name="any" c:type="guint8*"/>
+      </field>
+      <field name="state">
+        <type name="int" c:type="gint"/>
+      </field>
+      <field name="segdone">
+        <type name="int" c:type="gint"/>
+      </field>
+      <field name="segbase">
+        <type name="int" c:type="gint"/>
+      </field>
+      <field name="waiting">
+        <type name="int" c:type="gint"/>
+      </field>
+      <field name="callback">
+        <type name="RingBufferCallback" c:type="GstRingBufferCallback"/>
+      </field>
+      <field name="cb_data">
+        <type name="any" c:type="gpointer"/>
+      </field>
+      <union name="abidata" c:type="abidata">
+        <record name="ABI" c:type="ABI">
+          <field name="flushing" writable="1">
+            <type name="boolean" c:type="gboolean"/>
+          </field>
+          <field name="may_start" writable="1">
+            <type name="int" c:type="gint"/>
+          </field>
+          <field name="active" writable="1">
+            <type name="boolean" c:type="gboolean"/>
+          </field>
+        </record>
+        <field name="_gst_reserved" writable="1">
+          <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+            <type name="any"/>
+          </array>
+        </field>
+      </union>
+    </class>
+    <callback name="RingBufferCallback"
+              c:type="GstRingBufferCallback"
+              doc="This function is set with gst_ring_buffer_set_callback() and is
+called to fill the memory at @data with @len bytes of samples.">
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="rbuf" transfer-ownership="none">
+          <type name="RingBuffer" c:type="GstRingBuffer*"/>
+        </parameter>
+        <parameter name="data" transfer-ownership="none">
+          <array c:type="guint8*">
+            <type name="uint8"/>
+          </array>
+        </parameter>
+        <parameter name="len" transfer-ownership="none">
+          <type name="uint" c:type="guint"/>
+        </parameter>
+        <parameter name="user_data" transfer-ownership="none" closure="3">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <record name="RingBufferClass"
+            c:type="GstRingBufferClass"
+            glib:is-gtype-struct-for="RingBuffer"
+            doc="consumed segments in the device. Since 0.10.22
+The vmethods that subclasses can override to implement the ringbuffer.">
+      <field name="parent_class">
+        <type name="Gst.ObjectClass" c:type="GstObjectClass"/>
+      </field>
+      <field name="open_device">
+        <callback name="open_device" c:type="open_device">
+          <return-value transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="buf" transfer-ownership="none">
+              <type name="RingBuffer" c:type="GstRingBuffer*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="acquire">
+        <callback name="acquire" c:type="acquire">
+          <return-value transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="buf" transfer-ownership="none">
+              <type name="RingBuffer" c:type="GstRingBuffer*"/>
+            </parameter>
+            <parameter name="spec" transfer-ownership="none">
+              <type name="RingBufferSpec" c:type="GstRingBufferSpec*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="release">
+        <callback name="release" c:type="release">
+          <return-value transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="buf" transfer-ownership="none">
+              <type name="RingBuffer" c:type="GstRingBuffer*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="close_device">
+        <callback name="close_device" c:type="close_device">
+          <return-value transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="buf" transfer-ownership="none">
+              <type name="RingBuffer" c:type="GstRingBuffer*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="start">
+        <callback name="start" c:type="start">
+          <return-value transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="buf" transfer-ownership="none">
+              <type name="RingBuffer" c:type="GstRingBuffer*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="pause">
+        <callback name="pause" c:type="pause">
+          <return-value transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="buf" transfer-ownership="none">
+              <type name="RingBuffer" c:type="GstRingBuffer*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="resume">
+        <callback name="resume" c:type="resume">
+          <return-value transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="buf" transfer-ownership="none">
+              <type name="RingBuffer" c:type="GstRingBuffer*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="stop">
+        <callback name="stop" c:type="stop">
+          <return-value transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="buf" transfer-ownership="none">
+              <type name="RingBuffer" c:type="GstRingBuffer*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="delay">
+        <callback name="delay" c:type="delay">
+          <return-value transfer-ownership="none">
+            <type name="uint" c:type="guint"/>
+          </return-value>
+          <parameters>
+            <parameter name="buf" transfer-ownership="none">
+              <type name="RingBuffer" c:type="GstRingBuffer*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="activate">
+        <callback name="activate" c:type="activate">
+          <return-value transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="buf" transfer-ownership="none">
+              <type name="RingBuffer" c:type="GstRingBuffer*"/>
+            </parameter>
+            <parameter name="active" transfer-ownership="none">
+              <type name="boolean" c:type="gboolean"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="commit">
+        <callback name="commit" c:type="commit">
+          <return-value transfer-ownership="none">
+            <type name="uint" c:type="guint"/>
+          </return-value>
+          <parameters>
+            <parameter name="buf" transfer-ownership="none">
+              <type name="RingBuffer" c:type="GstRingBuffer*"/>
+            </parameter>
+            <parameter name="sample" direction="out" transfer-ownership="full">
+              <type name="uint64" c:type="guint64*"/>
+            </parameter>
+            <parameter name="data" transfer-ownership="none">
+              <array c:type="guchar*">
+                <type name="uint8"/>
+              </array>
+            </parameter>
+            <parameter name="in_samples" transfer-ownership="none">
+              <type name="int" c:type="gint"/>
+            </parameter>
+            <parameter name="out_samples" transfer-ownership="none">
+              <type name="int" c:type="gint"/>
+            </parameter>
+            <parameter name="accum" direction="out" transfer-ownership="full">
+              <type name="int" c:type="gint*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="clear_all">
+        <callback name="clear_all" c:type="clear_all">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="buf" transfer-ownership="none">
+              <type name="RingBuffer" c:type="GstRingBuffer*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="_gst_reserved">
+        <array zero-terminated="0" c:type="gpointer" fixed-size="1">
+          <type name="any"/>
+        </array>
+      </field>
+    </record>
+    <enumeration name="RingBufferSegState"
+                 doc="The state of a segment in the ringbuffer."
+                 glib:type-name="GstRingBufferSegState"
+                 glib:get-type="gst_ring_buffer_seg_state_get_type"
+                 c:type="GstRingBufferSegState">
+      <member name="invalid"
+              value="0"
+              c:identifier="GST_SEGSTATE_INVALID"
+              glib:nick="invalid"/>
+      <member name="empty"
+              value="1"
+              c:identifier="GST_SEGSTATE_EMPTY"
+              glib:nick="empty"/>
+      <member name="filled"
+              value="2"
+              c:identifier="GST_SEGSTATE_FILLED"
+              glib:nick="filled"/>
+      <member name="partial"
+              value="3"
+              c:identifier="GST_SEGSTATE_PARTIAL"
+              glib:nick="partial"/>
+    </enumeration>
+    <record name="RingBufferSpec"
+            c:type="GstRingBufferSpec"
+            doc="defaults to segtotal
+The structure containing the format specification of the ringbuffer.">
+      <field name="caps" writable="1">
+        <type name="Gst.Caps" c:type="GstCaps*"/>
+      </field>
+      <field name="type" writable="1">
+        <type name="BufferFormatType" c:type="GstBufferFormatType"/>
+      </field>
+      <field name="format" writable="1">
+        <type name="BufferFormat" c:type="GstBufferFormat"/>
+      </field>
+      <field name="sign" writable="1">
+        <type name="boolean" c:type="gboolean"/>
+      </field>
+      <field name="bigend" writable="1">
+        <type name="boolean" c:type="gboolean"/>
+      </field>
+      <field name="width" writable="1">
+        <type name="int" c:type="gint"/>
+      </field>
+      <field name="depth" writable="1">
+        <type name="int" c:type="gint"/>
+      </field>
+      <field name="rate" writable="1">
+        <type name="int" c:type="gint"/>
+      </field>
+      <field name="channels" writable="1">
+        <type name="int" c:type="gint"/>
+      </field>
+      <field name="latency_time" writable="1">
+        <type name="uint64" c:type="guint64"/>
+      </field>
+      <field name="buffer_time" writable="1">
+        <type name="uint64" c:type="guint64"/>
+      </field>
+      <field name="segsize" writable="1">
+        <type name="int" c:type="gint"/>
+      </field>
+      <field name="segtotal" writable="1">
+        <type name="int" c:type="gint"/>
+      </field>
+      <field name="bytes_per_sample" writable="1">
+        <type name="int" c:type="gint"/>
+      </field>
+      <field name="silence_sample" writable="1">
+        <array zero-terminated="0" c:type="guint8" fixed-size="32">
+          <type name="uint8"/>
+        </array>
+      </field>
+      <field name="seglatency" writable="1">
+        <type name="int" c:type="gint"/>
+      </field>
+      <field name="_gst_reserved" writable="1">
+        <array zero-terminated="0" c:type="guint8" fixed-size="0">
+          <type name="uint8"/>
+        </array>
+      </field>
+    </record>
+    <enumeration name="RingBufferState"
+                 doc="The state of the ringbuffer."
+                 glib:type-name="GstRingBufferState"
+                 glib:get-type="gst_ring_buffer_state_get_type"
+                 c:type="GstRingBufferState">
+      <member name="stopped"
+              value="0"
+              c:identifier="GST_RING_BUFFER_STATE_STOPPED"
+              glib:nick="stopped"/>
+      <member name="paused"
+              value="1"
+              c:identifier="GST_RING_BUFFER_STATE_PAUSED"
+              glib:nick="paused"/>
+      <member name="started"
+              value="2"
+              c:identifier="GST_RING_BUFFER_STATE_STARTED"
+              glib:nick="started"/>
+    </enumeration>
+    <function name="buffer_clip"
+              c:identifier="gst_audio_buffer_clip"
+              doc="Clip the the buffer to the given %GstSegment.
+After calling this function the caller does not own a reference to
+otherwise the clipped buffer is returned.
+If the buffer has no timestamp, it is assumed to be inside the segment and
+is not clipped"
+              version="0.10.14">
+      <return-value transfer-ownership="full">
+        <type name="Gst.Buffer" c:type="GstBuffer*"/>
+      </return-value>
+      <parameters>
+        <parameter name="buffer" transfer-ownership="none">
+          <type name="Gst.Buffer" c:type="GstBuffer*"/>
+        </parameter>
+        <parameter name="segment" transfer-ownership="none">
+          <type name="Gst.Segment" c:type="GstSegment*"/>
+        </parameter>
+        <parameter name="rate" transfer-ownership="none">
+          <type name="int" c:type="gint"/>
+        </parameter>
+        <parameter name="frame_size" transfer-ownership="none">
+          <type name="int" c:type="gint"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="check_channel_positions"
+              c:identifier="gst_audio_check_channel_positions"
+              doc="This functions checks if the given channel positions are valid. Channel
+positions are valid if:
+&lt;itemizedlist&gt;
+&lt;listitem&gt;&lt;para&gt;No channel positions appears twice or all positions are %GST_AUDIO_CHANNEL_POSITION_NONE.
+&lt;/para&gt;&lt;/listitem&gt;
+&lt;listitem&gt;&lt;para&gt;Either all or none of the channel positions are %GST_AUDIO_CHANNEL_POSITION_NONE.
+&lt;/para&gt;&lt;/listitem&gt;
+&lt;listitem&gt;&lt;para&gt;%GST_AUDIO_CHANNEL_POSITION_FRONT_MONO and %GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT or %GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT don&apos;t appear together in the given positions.
+&lt;/para&gt;&lt;/listitem&gt;
+&lt;/itemizedlist&gt;
+and %FALSE otherwise."
+              version="0.10.20">
+      <return-value transfer-ownership="none">
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="pos" transfer-ownership="none">
+          <type name="AudioChannelPosition" c:type="GstAudioChannelPosition*"/>
+        </parameter>
+        <parameter name="channels" transfer-ownership="none">
+          <type name="uint" c:type="guint"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="default_registry_mixer_filter"
+              c:identifier="gst_audio_default_registry_mixer_filter"
+              doc="Utility function to find audio mixer elements.
+Will traverse the default plugin registry in order of plugin rank and
+find usable audio mixer elements. The caller may optionally fine-tune
+the selection by specifying a filter function.
+element in the list by setting it to NULL state and calling
+gst_object_unref(). After that the list itself should be freed
+using g_list_free()."
+              version="0.10.2">
+      <return-value transfer-ownership="full">
+        <type name="GLib.List" c:type="GList*"/>
+      </return-value>
+      <parameters>
+        <parameter name="filter_func" transfer-ownership="none" scope="call">
+          <type name="AudioMixerFilterFunc" c:type="GstAudioMixerFilterFunc"/>
+        </parameter>
+        <parameter name="first" transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </parameter>
+        <parameter name="user_data" transfer-ownership="none">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="duration_from_pad_buffer"
+              c:identifier="gst_audio_duration_from_pad_buffer"
+              doc="Calculate length in nanoseconds of audio buffer @buf based on capabilities of">
+      <return-value transfer-ownership="full">
+        <type name="Gst.ClockTime" c:type="GstClockTime"/>
+      </return-value>
+      <parameters>
+        <parameter name="pad" transfer-ownership="none">
+          <type name="Gst.Pad" c:type="GstPad*"/>
+        </parameter>
+        <parameter name="buf" transfer-ownership="none">
+          <type name="Gst.Buffer" c:type="GstBuffer*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="fixate_channel_positions"
+              c:identifier="gst_audio_fixate_channel_positions"
+              doc="&quot;channel-positions&quot; field.
+Custom fixate function. Elements that implement some sort of
+channel conversion algorithm should use this function for
+fixating on GstAudioChannelPosition properties. It will take
+care of equal channel positioning (left/right). Caller g_free()s
+the return value. The input properties may be (and are supposed
+to be) unfixed.
+Note that this function is mostly a hack because we currently
+have no way to add default fixation functions for new GTypes.
+set of #GstAudioChannelPosition values.">
+      <return-value transfer-ownership="full">
+        <type name="AudioChannelPosition" c:type="GstAudioChannelPosition*"/>
+      </return-value>
+      <parameters>
+        <parameter name="str" transfer-ownership="none">
+          <type name="Gst.Structure" c:type="GstStructure*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="frame_byte_size"
+              c:identifier="gst_audio_frame_byte_size"
+              doc="Calculate byte size of an audio frame.">
+      <return-value transfer-ownership="none">
+        <type name="int" c:type="int"/>
+      </return-value>
+      <parameters>
+        <parameter name="pad" transfer-ownership="none">
+          <type name="Gst.Pad" c:type="GstPad*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="frame_length"
+              c:identifier="gst_audio_frame_length"
+              doc="Calculate length of buffer in frames.">
+      <return-value transfer-ownership="none">
+        <type name="long" c:type="long"/>
+      </return-value>
+      <parameters>
+        <parameter name="pad" transfer-ownership="none">
+          <type name="Gst.Pad" c:type="GstPad*"/>
+        </parameter>
+        <parameter name="buf" transfer-ownership="none">
+          <type name="Gst.Buffer" c:type="GstBuffer*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="get_channel_positions"
+              c:identifier="gst_audio_get_channel_positions"
+              doc="Retrieves a number of (fixed!) audio channel positions from
+the provided #GstStructure and returns it as a newly allocated
+array. The caller should g_free () this array. The caller
+should also check that the members in this #GstStructure are
+indeed &quot;fixed&quot; before calling this function.
+positions as provided in the given #GstStructure. Returns
+NULL on error.">
+      <return-value transfer-ownership="full">
+        <type name="AudioChannelPosition" c:type="GstAudioChannelPosition*"/>
+      </return-value>
+      <parameters>
+        <parameter name="str" transfer-ownership="none">
+          <type name="Gst.Structure" c:type="GstStructure*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="is_buffer_framed"
+              c:identifier="gst_audio_is_buffer_framed"
+              doc="Check if the buffer size is a whole multiple of the frame size.">
+      <return-value transfer-ownership="none">
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="pad" transfer-ownership="none">
+          <type name="Gst.Pad" c:type="GstPad*"/>
+        </parameter>
+        <parameter name="buf" transfer-ownership="none">
+          <type name="Gst.Buffer" c:type="GstBuffer*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="set_caps_channel_positions_list"
+              c:identifier="gst_audio_set_caps_channel_positions_list"
+              doc="channel positions that we should add in each value
+of the array in the given structure.
+Sets a (possibly non-fixed) list of possible audio channel
+positions (given in pos) on the given caps. Each of the
+structures of the caps, after this function has been called,
+will contain a &quot;channel-positions&quot; field with an array.
+Each value in the array will contain each of the values given
+in the pos array. Note that the size of the caps might be
+increased by this, since each structure with a &quot;channel-
+positions&quot; field needs to have a fixed &quot;channels&quot; field.
+The input caps is not required to have this.">
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="caps" transfer-ownership="none">
+          <type name="Gst.Caps" c:type="GstCaps*"/>
+        </parameter>
+        <parameter name="pos" transfer-ownership="none">
+          <type name="AudioChannelPosition" c:type="GstAudioChannelPosition*"/>
+        </parameter>
+        <parameter name="num_positions" transfer-ownership="none">
+          <type name="int" c:type="gint"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="set_channel_positions"
+              c:identifier="gst_audio_set_channel_positions"
+              doc="in this array should be equal to the (fixed!) number
+of the &quot;channels&quot; field in the given #GstStructure.
+Adds a &quot;channel-positions&quot; field to the given #GstStructure,
+which will represent the channel positions as given in the
+provided #GstAudioChannelPosition array.">
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="str" transfer-ownership="none">
+          <type name="Gst.Structure" c:type="GstStructure*"/>
+        </parameter>
+        <parameter name="pos" transfer-ownership="none">
+          <type name="AudioChannelPosition" c:type="GstAudioChannelPosition*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="set_structure_channel_positions_list"
+              c:identifier="gst_audio_set_structure_channel_positions_list"
+              doc="on.
+channel positions that we should add in each value
+of the array in the given structure.
+Sets a (possibly non-fixed) list of possible audio channel
+positions (given in pos) on the given structure. The
+structure, after this function has been called, will contain
+a &quot;channel-positions&quot; field with an array of the size of
+the &quot;channels&quot; field value in the given structure (note
+that this means that the channels field in the provided
+structure should be fixed!). Each value in the array will
+contain each of the values given in the pos array.">
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="str" transfer-ownership="none">
+          <type name="Gst.Structure" c:type="GstStructure*"/>
+        </parameter>
+        <parameter name="pos" transfer-ownership="none">
+          <type name="AudioChannelPosition" c:type="GstAudioChannelPosition*"/>
+        </parameter>
+        <parameter name="num_positions" transfer-ownership="none">
+          <type name="int" c:type="gint"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="structure_set_int"
+              c:identifier="gst_audio_structure_set_int"
+              doc="Do not use anymore."
+              deprecated="use gst_structure_set()">
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="structure" transfer-ownership="none">
+          <type name="Gst.Structure" c:type="GstStructure*"/>
+        </parameter>
+        <parameter name="flag" transfer-ownership="none">
+          <type name="AudioFieldFlag" c:type="GstAudioFieldFlag"/>
+        </parameter>
+      </parameters>
+    </function>
+  </namespace>
+</repository>
diff --git a/unmaintained/gstreamer/audio/audio.factor b/unmaintained/gstreamer/audio/audio.factor
new file mode 100644 (file)
index 0000000..1495be4
--- /dev/null
@@ -0,0 +1,5 @@
+! Copyright (C) 2010 Anton Gorenko.
+! See http://factorcode.org/license.txt for BSD license.
+USING: gstreamer.audio.ffi ;
+IN: gstreamer.audio
+
diff --git a/unmaintained/gstreamer/audio/ffi/ffi.factor b/unmaintained/gstreamer/audio/ffi/ffi.factor
new file mode 100644 (file)
index 0000000..5b0be1d
--- /dev/null
@@ -0,0 +1,18 @@
+! Copyright (C) 2010 Anton Gorenko.
+! See http://factorcode.org/license.txt for BSD license.
+USING: alien alien.c-types alien.libraries combinators kernel
+system
+gobject-introspection glib.ffi gstreamer.ffi gstreamer.base.ffi
+gstreamer.interfaces.ffi ;
+IN: gstreamer.audio.ffi
+
+<<
+"gstreamer.audio" {
+    { [ os winnt? ] [ drop ] }
+    { [ os macosx? ] [ drop ] }
+    { [ os unix? ] [ "libgstaudio-0.10.so" cdecl add-library ] }
+} cond
+>>
+
+GIR: vocab:gstreamer/audio/GstAudio-0.10.gir
+
diff --git a/unmaintained/gstreamer/authors.txt b/unmaintained/gstreamer/authors.txt
new file mode 100644 (file)
index 0000000..ce9bcc8
--- /dev/null
@@ -0,0 +1 @@
+Anton Gorenko
\ No newline at end of file
diff --git a/unmaintained/gstreamer/base/GstBase-0.10.gir b/unmaintained/gstreamer/base/GstBase-0.10.gir
new file mode 100644 (file)
index 0000000..a4ebc01
--- /dev/null
@@ -0,0 +1,5397 @@
+<?xml version="1.0"?>
+<!-- This file was automatically generated from C sources - DO NOT EDIT!
+To affect the contents of this file, edit the original C definitions,
+and/or use gtk-doc annotations.  -->
+<repository version="1.0"
+            xmlns="http://www.gtk.org/introspection/core/1.0"
+            xmlns:c="http://www.gtk.org/introspection/c/1.0"
+            xmlns:glib="http://www.gtk.org/introspection/glib/1.0">
+  <include name="GLib" version="2.0"/>
+  <include name="GModule" version="2.0"/>
+  <include name="GObject" version="2.0"/>
+  <include name="Gst" version="0.10"/>
+  <include name="libxml2" version="2.0"/>
+  <package name="gstreamer-0.10"/>
+  <c:include name="gst/base/gstadapter.h"/>
+  <c:include name="gst/base/gstbasesink.h"/>
+  <c:include name="gst/base/gstbasesrc.h"/>
+  <c:include name="gst/base/gstbasetransform.h"/>
+  <c:include name="gst/base/gstbitreader.h"/>
+  <c:include name="gst/base/gstbytereader.h"/>
+  <c:include name="gst/base/gstbytewriter.h"/>
+  <c:include name="gst/base/gstcollectpads.h"/>
+  <c:include name="gst/base/gstdataqueue.h"/>
+  <c:include name="gst/base/gstpushsrc.h"/>
+  <c:include name="gst/base/gsttypefindhelper.h"/>
+  <namespace name="GstBase"
+             version="0.10"
+             shared-library="libgstbase-0.10.so.0"
+             c:prefix="Gst">
+    <class name="Adapter"
+           c:type="GstAdapter"
+           doc="The opaque #GstAdapter data structure."
+           parent="GObject.Object"
+           glib:type-name="GstAdapter"
+           glib:get-type="gst_adapter_get_type"
+           glib:type-struct="AdapterClass">
+      <constructor name="new"
+                   c:identifier="gst_adapter_new"
+                   doc="Creates a new #GstAdapter. Free with g_object_unref().">
+        <return-value transfer-ownership="full">
+          <type name="Adapter" c:type="GstAdapter*"/>
+        </return-value>
+      </constructor>
+      <method name="clear"
+              c:identifier="gst_adapter_clear"
+              doc="Removes all buffers from @adapter.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </method>
+      <method name="push"
+              c:identifier="gst_adapter_push"
+              doc="Adds the data from @buf to the data stored inside @adapter and takes
+ownership of the buffer.
+Empty buffers will be automatically dereferenced and not stored in the">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="buf" transfer-ownership="none">
+            <type name="Gst.Buffer" c:type="GstBuffer*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="peek"
+              c:identifier="gst_adapter_peek"
+              doc="Gets the first @size bytes stored in the @adapter. The returned pointer is
+valid until the next function is called on the adapter.
+Note that setting the returned pointer as the data of a #GstBuffer is
+incorrect for general-purpose plugins. The reason is that if a downstream
+element stores the buffer so that it has access to it outside of the bounds
+of its chain function, the buffer will have an invalid data pointer after
+your element flushes the bytes. In that case you should use
+gst_adapter_take(), which returns a freshly-allocated buffer that you can set
+as #GstBuffer malloc_data or the potentially more performant
+gst_adapter_take_buffer().
+Returns #NULL if @size bytes are not available.">
+        <return-value transfer-ownership="none">
+          <array c:type="guint8*">
+            <type name="uint8"/>
+          </array>
+        </return-value>
+        <parameters>
+          <parameter name="size" transfer-ownership="none">
+            <type name="uint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="copy"
+              c:identifier="gst_adapter_copy"
+              doc="Copies @size bytes of data starting at @offset out of the buffers
+contained in @GstAdapter into an array @dest provided by the caller.
+The array @dest should be large enough to contain @size bytes.
+The user should check that the adapter has (@offset + @size) bytes
+available before calling this function."
+              version="0.10.12">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="dest" transfer-ownership="none">
+            <array c:type="guint8*">
+              <type name="uint8"/>
+            </array>
+          </parameter>
+          <parameter name="offset" transfer-ownership="none">
+            <type name="uint" c:type="guint"/>
+          </parameter>
+          <parameter name="size" transfer-ownership="none">
+            <type name="uint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="flush"
+              c:identifier="gst_adapter_flush"
+              doc="Flushes the first @flush bytes in the @adapter. The caller must ensure that
+at least this many bytes are available.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="flush" transfer-ownership="none">
+            <type name="uint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="take"
+              c:identifier="gst_adapter_take"
+              doc="Returns a freshly allocated buffer containing the first @nbytes bytes of the
+Caller owns returned value. g_free after usage.">
+        <return-value transfer-ownership="full">
+          <array c:type="guint8*">
+            <type name="uint8"/>
+          </array>
+        </return-value>
+        <parameters>
+          <parameter name="nbytes" transfer-ownership="none">
+            <type name="uint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="take_buffer"
+              c:identifier="gst_adapter_take_buffer"
+              doc="Returns a #GstBuffer containing the first @nbytes bytes of the
+This function is potentially more performant than gst_adapter_take()
+since it can reuse the memory in pushed buffers by subbuffering
+or merging.
+Caller owns returned value. gst_buffer_unref() after usage.
+or #NULL if @nbytes bytes are not available"
+              version="0.10.6">
+        <return-value transfer-ownership="full">
+          <type name="Gst.Buffer" c:type="GstBuffer*"/>
+        </return-value>
+        <parameters>
+          <parameter name="nbytes" transfer-ownership="none">
+            <type name="uint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="available"
+              c:identifier="gst_adapter_available"
+              doc="Gets the maximum amount of bytes available, that is it returns the maximum
+value that can be supplied to gst_adapter_peek() without that function
+returning NULL.">
+        <return-value transfer-ownership="none">
+          <type name="uint" c:type="guint"/>
+        </return-value>
+      </method>
+      <method name="available_fast"
+              c:identifier="gst_adapter_available_fast"
+              doc="Gets the maximum number of bytes that are immediately available without
+requiring any expensive operations (like copying the data into a
+temporary buffer).
+operations">
+        <return-value transfer-ownership="none">
+          <type name="uint" c:type="guint"/>
+        </return-value>
+      </method>
+      <method name="prev_timestamp"
+              c:identifier="gst_adapter_prev_timestamp"
+              doc="Get the timestamp that was before the current byte in the adapter. When
+position is returned.
+The timestamp is reset to GST_CLOCK_TIME_NONE when the adapter is first
+created or when it is cleared."
+              version="0.10.24">
+        <return-value transfer-ownership="full">
+          <type name="Gst.ClockTime" c:type="GstClockTime"/>
+        </return-value>
+        <parameters>
+          <parameter name="distance" direction="out" transfer-ownership="full">
+            <type name="uint64" c:type="guint64*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="masked_scan_uint32"
+              c:identifier="gst_adapter_masked_scan_uint32"
+              doc="the last scanned position.
+Scan for pattern @pattern with applied mask @mask in the adapter data,
+starting from offset @offset.
+The bytes in @pattern and @mask are interpreted left-to-right, regardless
+of endianness.  All four bytes of the pattern must be present in the
+adapter for it to match, even if the first or last bytes are masked out.
+It is an error to call this function without making sure that there is
+enough data (offset+size bytes) in the adapter.
+Example:
+&lt;programlisting&gt;
+// Assume the adapter contains 0x00 0x01 0x02 ... 0xfe 0xff
+gst_adapter_masked_scan_uint32 (adapter, 0xffffffff, 0x00010203, 0, 256);
+// -&gt; returns 0
+gst_adapter_masked_scan_uint32 (adapter, 0xffffffff, 0x00010203, 1, 255);
+// -&gt; returns -1
+gst_adapter_masked_scan_uint32 (adapter, 0xffffffff, 0x01020304, 1, 255);
+// -&gt; returns 1
+gst_adapter_masked_scan_uint32 (adapter, 0xffff, 0x0001, 0, 256);
+// -&gt; returns -1
+gst_adapter_masked_scan_uint32 (adapter, 0xffff, 0x0203, 0, 256);
+// -&gt; returns 0
+gst_adapter_masked_scan_uint32 (adapter, 0xffff0000, 0x02030000, 0, 256);
+// -&gt; returns 2
+gst_adapter_masked_scan_uint32 (adapter, 0xffff0000, 0x02030000, 0, 4);
+// -&gt; returns -1
+&lt;/programlisting&gt;"
+              version="0.10.24">
+        <return-value transfer-ownership="none">
+          <type name="uint" c:type="guint"/>
+        </return-value>
+        <parameters>
+          <parameter name="mask" transfer-ownership="none">
+            <type name="uint32" c:type="guint32"/>
+          </parameter>
+          <parameter name="pattern" transfer-ownership="none">
+            <type name="uint32" c:type="guint32"/>
+          </parameter>
+          <parameter name="offset" transfer-ownership="none">
+            <type name="uint" c:type="guint"/>
+          </parameter>
+          <parameter name="size" transfer-ownership="none">
+            <type name="uint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <field name="object">
+        <type name="GObject.Object" c:type="GObject"/>
+      </field>
+      <field name="buflist">
+        <type name="GLib.SList" c:type="GSList*"/>
+      </field>
+      <field name="size">
+        <type name="uint" c:type="guint"/>
+      </field>
+      <field name="skip">
+        <type name="uint" c:type="guint"/>
+      </field>
+      <field name="assembled_data">
+        <type name="any" c:type="guint8*"/>
+      </field>
+      <field name="assembled_size">
+        <type name="uint" c:type="guint"/>
+      </field>
+      <field name="assembled_len">
+        <type name="uint" c:type="guint"/>
+      </field>
+      <field name="buflist_end">
+        <type name="GLib.SList" c:type="GSList*"/>
+      </field>
+      <field name="priv">
+        <type name="AdapterPrivate" c:type="GstAdapterPrivate*"/>
+      </field>
+      <field name="_gst_reserved">
+        <array zero-terminated="0" c:type="gpointer" fixed-size="2">
+          <type name="any"/>
+        </array>
+      </field>
+    </class>
+    <record name="AdapterClass"
+            c:type="GstAdapterClass"
+            glib:is-gtype-struct-for="Adapter">
+      <field name="parent_class">
+        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
+      </field>
+      <field name="_gst_reserved">
+        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+          <type name="any"/>
+        </array>
+      </field>
+    </record>
+    <record name="AdapterPrivate" c:type="GstAdapterPrivate">
+    </record>
+    <class name="BaseSink"
+           c:type="GstBaseSink"
+           doc="The opaque #GstBaseSink data structure."
+           parent="Gst.Element"
+           abstract="1"
+           glib:type-name="GstBaseSink"
+           glib:get-type="gst_base_sink_get_type"
+           glib:type-struct="BaseSinkClass">
+      <virtual-method name="get_caps">
+        <return-value transfer-ownership="full">
+          <type name="Gst.Caps" c:type="GstCaps*"/>
+        </return-value>
+      </virtual-method>
+      <virtual-method name="set_caps">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="caps" transfer-ownership="none">
+            <type name="Gst.Caps" c:type="GstCaps*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="buffer_alloc">
+        <return-value transfer-ownership="full">
+          <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
+        </return-value>
+        <parameters>
+          <parameter name="offset" transfer-ownership="none">
+            <type name="uint64" c:type="guint64"/>
+          </parameter>
+          <parameter name="size" transfer-ownership="none">
+            <type name="uint" c:type="guint"/>
+          </parameter>
+          <parameter name="caps" transfer-ownership="none">
+            <type name="Gst.Caps" c:type="GstCaps*"/>
+          </parameter>
+          <parameter name="buf" transfer-ownership="none">
+            <type name="Gst.Buffer" c:type="GstBuffer**"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="get_times">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="buffer" transfer-ownership="none">
+            <type name="Gst.Buffer" c:type="GstBuffer*"/>
+          </parameter>
+          <parameter name="start" transfer-ownership="none">
+            <type name="Gst.ClockTime" c:type="GstClockTime*"/>
+          </parameter>
+          <parameter name="end" transfer-ownership="none">
+            <type name="Gst.ClockTime" c:type="GstClockTime*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="start">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+      </virtual-method>
+      <virtual-method name="stop">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+      </virtual-method>
+      <virtual-method name="unlock">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+      </virtual-method>
+      <virtual-method name="event">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="event" transfer-ownership="none">
+            <type name="Gst.Event" c:type="GstEvent*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="preroll">
+        <return-value transfer-ownership="full">
+          <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
+        </return-value>
+        <parameters>
+          <parameter name="buffer" transfer-ownership="none">
+            <type name="Gst.Buffer" c:type="GstBuffer*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="render">
+        <return-value transfer-ownership="full">
+          <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
+        </return-value>
+        <parameters>
+          <parameter name="buffer" transfer-ownership="none">
+            <type name="Gst.Buffer" c:type="GstBuffer*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="async_play">
+        <return-value transfer-ownership="full">
+          <type name="Gst.StateChangeReturn" c:type="GstStateChangeReturn"/>
+        </return-value>
+      </virtual-method>
+      <virtual-method name="activate_pull">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="active" transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="fixate">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="caps" transfer-ownership="none">
+            <type name="Gst.Caps" c:type="GstCaps*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="unlock_stop">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+      </virtual-method>
+      <virtual-method name="render_list">
+        <return-value transfer-ownership="full">
+          <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
+        </return-value>
+        <parameters>
+          <parameter name="buffer_list" transfer-ownership="none">
+            <type name="Gst.BufferList" c:type="GstBufferList*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <method name="do_preroll"
+              c:identifier="gst_base_sink_do_preroll"
+              doc="If the @sink spawns its own thread for pulling buffers from upstream it
+should call this method after it has pulled a buffer. If the element needed
+to preroll, this function will perform the preroll and will then block
+until the element state is changed.
+This function should be called with the PREROLL_LOCK held.
+Since 0.10.22
+continue. Any other return value should be returned from the render vmethod.">
+        <return-value transfer-ownership="full">
+          <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
+        </return-value>
+        <parameters>
+          <parameter name="obj" transfer-ownership="none">
+            <type name="Gst.MiniObject" c:type="GstMiniObject*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="wait_preroll"
+              c:identifier="gst_base_sink_wait_preroll"
+              doc="If the #GstBaseSinkClass.render() method performs its own synchronisation
+against the clock it must unblock when going from PLAYING to the PAUSED state
+and call this method before continuing to render the remaining data.
+This function will block until a state change to PLAYING happens (in which
+case this function returns #GST_FLOW_OK) or the processing must be stopped due
+to a state change to READY or a FLUSH event (in which case this function
+returns #GST_FLOW_WRONG_STATE).
+This function should only be called with the PREROLL_LOCK held, like in the
+render function.
+continue. Any other return value should be returned from the render vmethod."
+              version="0.10.11">
+        <return-value transfer-ownership="full">
+          <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
+        </return-value>
+      </method>
+      <method name="set_sync"
+              c:identifier="gst_base_sink_set_sync"
+              doc="Configures @sink to synchronize on the clock or not. When
+possible. If @sync is TRUE, the timestamps of the incomming
+buffers will be used to schedule the exact render time of its
+contents."
+              version="0.10.4">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="sync" transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_sync"
+              c:identifier="gst_base_sink_get_sync"
+              doc="Checks if @sink is currently configured to synchronize against the
+clock."
+              version="0.10.4">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+      </method>
+      <method name="set_max_lateness"
+              c:identifier="gst_base_sink_set_max_lateness"
+              doc="Sets the new max lateness value to @max_lateness. This value is
+used to decide if a buffer should be dropped or not based on the
+buffer timestamp and the current clock time. A value of -1 means
+an unlimited time."
+              version="0.10.4">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="max_lateness" transfer-ownership="none">
+            <type name="int64" c:type="gint64"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_max_lateness"
+              c:identifier="gst_base_sink_get_max_lateness"
+              doc="Gets the max lateness value. See gst_base_sink_set_max_lateness for
+more details.
+before it is dropped and not rendered. A value of -1 means an
+unlimited time."
+              version="0.10.4">
+        <return-value transfer-ownership="none">
+          <type name="int64" c:type="gint64"/>
+        </return-value>
+      </method>
+      <method name="set_qos_enabled"
+              c:identifier="gst_base_sink_set_qos_enabled"
+              doc="Configures @sink to send Quality-of-Service events upstream."
+              version="0.10.5">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="enabled" transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="is_qos_enabled"
+              c:identifier="gst_base_sink_is_qos_enabled"
+              doc="Checks if @sink is currently configured to send Quality-of-Service events
+upstream."
+              version="0.10.5">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+      </method>
+      <method name="set_async_enabled"
+              c:identifier="gst_base_sink_set_async_enabled"
+              doc="Configures @sink to perform all state changes asynchronusly. When async is
+disabled, the sink will immediatly go to PAUSED instead of waiting for a
+preroll buffer. This feature is usefull if the sink does not synchronize
+against the clock or when it is dealing with sparse streams."
+              version="0.10.15">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="enabled" transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="is_async_enabled"
+              c:identifier="gst_base_sink_is_async_enabled"
+              doc="Checks if @sink is currently configured to perform asynchronous state
+changes to PAUSED.
+changes."
+              version="0.10.15">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+      </method>
+      <method name="set_ts_offset"
+              c:identifier="gst_base_sink_set_ts_offset"
+              doc="Adjust the synchronisation of @sink with @offset. A negative value will
+render buffers earlier than their timestamp. A positive value will delay
+rendering. This function can be used to fix playback of badly timestamped
+buffers."
+              version="0.10.15">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="offset" transfer-ownership="none">
+            <type name="Gst.ClockTimeDiff" c:type="GstClockTimeDiff"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_ts_offset"
+              c:identifier="gst_base_sink_get_ts_offset"
+              doc="Get the synchronisation offset of @sink."
+              version="0.10.15">
+        <return-value transfer-ownership="full">
+          <type name="Gst.ClockTimeDiff" c:type="GstClockTimeDiff"/>
+        </return-value>
+      </method>
+      <method name="get_last_buffer"
+              c:identifier="gst_base_sink_get_last_buffer"
+              doc="Get the last buffer that arrived in the sink and was used for preroll or for
+rendering. This property can be used to generate thumbnails.
+The #GstCaps on the buffer can be used to determine the type of the buffer.
+NULL when no buffer has arrived in the sink yet or when the sink is not in
+PAUSED or PLAYING."
+              version="0.10.15">
+        <return-value transfer-ownership="full"
+                      doc="after usage. This function returns">
+          <type name="Gst.Buffer" c:type="GstBuffer*"/>
+        </return-value>
+      </method>
+      <method name="query_latency"
+              c:identifier="gst_base_sink_query_latency"
+              doc="Query the sink for the latency parameters. The latency will be queried from
+the upstream elements. @live will be TRUE if @sink is configured to
+synchronize against the clock. @upstream_live will be TRUE if an upstream
+element is live.
+If both @live and @upstream_live are TRUE, the sink will want to compensate
+for the latency introduced by the upstream elements by setting the
+This function is mostly used by subclasses."
+              version="0.10.12">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="live" direction="out" transfer-ownership="full">
+            <type name="boolean" c:type="gboolean*"/>
+          </parameter>
+          <parameter name="upstream_live"
+                     direction="out"
+                     transfer-ownership="full">
+            <type name="boolean" c:type="gboolean*"/>
+          </parameter>
+          <parameter name="min_latency" transfer-ownership="none">
+            <type name="Gst.ClockTime" c:type="GstClockTime*"/>
+          </parameter>
+          <parameter name="max_latency" transfer-ownership="none">
+            <type name="Gst.ClockTime" c:type="GstClockTime*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_latency"
+              c:identifier="gst_base_sink_get_latency"
+              doc="Get the currently configured latency."
+              version="0.10.12">
+        <return-value transfer-ownership="full">
+          <type name="Gst.ClockTime" c:type="GstClockTime"/>
+        </return-value>
+      </method>
+      <method name="set_render_delay"
+              c:identifier="gst_base_sink_set_render_delay"
+              doc="Set the render delay in @sink to @delay. The render delay is the time
+between actual rendering of a buffer and its synchronisation time. Some
+devices might delay media rendering which can be compensated for with this
+function.
+After calling this function, this sink will report additional latency and
+other sinks will adjust their latency to delay the rendering of their media.
+This function is usually called by subclasses."
+              version="0.10.21">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="delay" transfer-ownership="none">
+            <type name="Gst.ClockTime" c:type="GstClockTime"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_render_delay"
+              c:identifier="gst_base_sink_get_render_delay"
+              doc="Get the render delay of @sink. see gst_base_sink_set_render_delay() for more
+information about the render delay."
+              version="0.10.21">
+        <return-value transfer-ownership="full">
+          <type name="Gst.ClockTime" c:type="GstClockTime"/>
+        </return-value>
+      </method>
+      <method name="set_blocksize"
+              c:identifier="gst_base_sink_set_blocksize"
+              doc="Set the number of bytes that the sink will pull when it is operating in pull
+mode."
+              version="0.10.22">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="blocksize" transfer-ownership="none">
+            <type name="uint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_blocksize"
+              c:identifier="gst_base_sink_get_blocksize"
+              doc="Get the number of bytes that the sink will pull when it is operating in pull
+mode."
+              version="0.10.22">
+        <return-value transfer-ownership="none">
+          <type name="uint" c:type="guint"/>
+        </return-value>
+      </method>
+      <method name="wait_clock"
+              c:identifier="gst_base_sink_wait_clock"
+              doc="This function will block until @time is reached. It is usually called by
+subclasses that use their own internal synchronisation.
+If @time is not valid, no sycnhronisation is done and #GST_CLOCK_BADTIME is
+returned. Likewise, if synchronisation is disabled in the element or there
+is no clock, no synchronisation is done and #GST_CLOCK_BADTIME is returned.
+This function should only be called with the PREROLL_LOCK held, like when
+receiving an EOS event in the #GstBaseSinkClass.event() vmethod or when
+receiving a buffer in
+the #GstBaseSinkClass.render() vmethod.
+The @time argument should be the running_time of when this method should
+return and is not adjusted with any latency or offset configured in the
+sink.
+Since 0.10.20">
+        <return-value transfer-ownership="full">
+          <type name="Gst.ClockReturn" c:type="GstClockReturn"/>
+        </return-value>
+        <parameters>
+          <parameter name="time" transfer-ownership="none">
+            <type name="Gst.ClockTime" c:type="GstClockTime"/>
+          </parameter>
+          <parameter name="jitter" transfer-ownership="none">
+            <type name="Gst.ClockTimeDiff" c:type="GstClockTimeDiff*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="wait_eos"
+              c:identifier="gst_base_sink_wait_eos"
+              doc="This function will block until @time is reached. It is usually called by
+subclasses that use their own internal synchronisation but want to let the
+EOS be handled by the base class.
+This function should only be called with the PREROLL_LOCK held, like when
+receiving an EOS event in the ::event vmethod.
+The @time argument should be the running_time of when the EOS should happen
+and will be adjusted with any latency and offset configured in the sink.
+Since 0.10.15">
+        <return-value transfer-ownership="full">
+          <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
+        </return-value>
+        <parameters>
+          <parameter name="time" transfer-ownership="none">
+            <type name="Gst.ClockTime" c:type="GstClockTime"/>
+          </parameter>
+          <parameter name="jitter" transfer-ownership="none">
+            <type name="Gst.ClockTimeDiff" c:type="GstClockTimeDiff*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <property name="async" writable="1">
+        <type name="boolean" c:type="gboolean"/>
+      </property>
+      <property name="blocksize" writable="1">
+        <type name="uint" c:type="guint"/>
+      </property>
+      <property name="last-buffer">
+        <type name="Gst.Buffer" c:type="GstBuffer"/>
+      </property>
+      <property name="max-lateness" writable="1">
+        <type name="int64" c:type="gint64"/>
+      </property>
+      <property name="preroll-queue-len" writable="1" construct="1">
+        <type name="uint" c:type="guint"/>
+      </property>
+      <property name="qos" writable="1">
+        <type name="boolean" c:type="gboolean"/>
+      </property>
+      <property name="render-delay" writable="1">
+        <type name="uint64" c:type="guint64"/>
+      </property>
+      <property name="sync" writable="1">
+        <type name="boolean" c:type="gboolean"/>
+      </property>
+      <property name="ts-offset" writable="1">
+        <type name="int64" c:type="gint64"/>
+      </property>
+      <field name="element">
+        <type name="Gst.Element" c:type="GstElement"/>
+      </field>
+      <field name="sinkpad">
+        <type name="Gst.Pad" c:type="GstPad*"/>
+      </field>
+      <field name="pad_mode">
+        <type name="Gst.ActivateMode" c:type="GstActivateMode"/>
+      </field>
+      <field name="offset">
+        <type name="uint64" c:type="guint64"/>
+      </field>
+      <field name="can_activate_pull">
+        <type name="boolean" c:type="gboolean"/>
+      </field>
+      <field name="can_activate_push">
+        <type name="boolean" c:type="gboolean"/>
+      </field>
+      <field name="preroll_queue">
+        <type name="GLib.Queue" c:type="GQueue*"/>
+      </field>
+      <field name="preroll_queue_max_len">
+        <type name="int" c:type="gint"/>
+      </field>
+      <field name="preroll_queued">
+        <type name="int" c:type="gint"/>
+      </field>
+      <field name="buffers_queued">
+        <type name="int" c:type="gint"/>
+      </field>
+      <field name="events_queued">
+        <type name="int" c:type="gint"/>
+      </field>
+      <field name="eos">
+        <type name="boolean" c:type="gboolean"/>
+      </field>
+      <field name="eos_queued">
+        <type name="boolean" c:type="gboolean"/>
+      </field>
+      <field name="need_preroll">
+        <type name="boolean" c:type="gboolean"/>
+      </field>
+      <field name="have_preroll">
+        <type name="boolean" c:type="gboolean"/>
+      </field>
+      <field name="playing_async">
+        <type name="boolean" c:type="gboolean"/>
+      </field>
+      <field name="have_newsegment">
+        <type name="boolean" c:type="gboolean"/>
+      </field>
+      <field name="segment">
+        <type name="Gst.Segment" c:type="GstSegment"/>
+      </field>
+      <field name="clock_id">
+        <type name="Gst.ClockID" c:type="GstClockID"/>
+      </field>
+      <field name="end_time">
+        <type name="Gst.ClockTime" c:type="GstClockTime"/>
+      </field>
+      <field name="sync">
+        <type name="boolean" c:type="gboolean"/>
+      </field>
+      <field name="flushing">
+        <type name="boolean" c:type="gboolean"/>
+      </field>
+      <union name="abidata" c:type="abidata">
+        <record name="ABI" c:type="ABI">
+          <field name="clip_segment" writable="1">
+            <type name="Gst.Segment" c:type="GstSegment*"/>
+          </field>
+          <field name="max_lateness" writable="1">
+            <type name="int64" c:type="gint64"/>
+          </field>
+          <field name="running" writable="1">
+            <type name="boolean" c:type="gboolean"/>
+          </field>
+        </record>
+        <field name="_gst_reserved" writable="1">
+          <array zero-terminated="0" c:type="gpointer" fixed-size="19">
+            <type name="any"/>
+          </array>
+        </field>
+      </union>
+      <field name="priv">
+        <type name="BaseSinkPrivate" c:type="GstBaseSinkPrivate*"/>
+      </field>
+    </class>
+    <record name="BaseSinkClass"
+            c:type="GstBaseSinkClass"
+            glib:is-gtype-struct-for="BaseSink"
+            doc="the passed buffer to the clock
+unblock any blocked function ASAP
+any state they set during unlock(), such as clearing command queues.
+correct moment if the #GstBaseSink has been set to sync to the clock.
+special processing when changing to the PLAYING state asynchronously.
+Called with the OBJECT_LOCK held.
+alternate method of spawning a thread to drive the pipeline in pull mode.
+Should start or stop the pulling thread, depending on the value of the
+&quot;active&quot; argument. Called after actually activating the sink pad in pull
+mode. The default implementation starts a task on the sink pad.
+gst_pad_fixate_caps() being called on the sink pad. Implement if you have
+ideas about what should be the default values for the caps you support.
+Subclasses can override any of the available virtual methods or not, as
+needed. At the minimum, the @render method should be overridden to
+output/present buffers.">
+      <field name="parent_class">
+        <type name="Gst.ElementClass" c:type="GstElementClass"/>
+      </field>
+      <field name="get_caps">
+        <callback name="get_caps" c:type="get_caps">
+          <return-value transfer-ownership="full">
+            <type name="Gst.Caps" c:type="GstCaps*"/>
+          </return-value>
+          <parameters>
+            <parameter name="sink" transfer-ownership="none">
+              <type name="BaseSink" c:type="GstBaseSink*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="set_caps">
+        <callback name="set_caps" c:type="set_caps">
+          <return-value transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="sink" transfer-ownership="none">
+              <type name="BaseSink" c:type="GstBaseSink*"/>
+            </parameter>
+            <parameter name="caps" transfer-ownership="none">
+              <type name="Gst.Caps" c:type="GstCaps*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="buffer_alloc">
+        <callback name="buffer_alloc" c:type="buffer_alloc">
+          <return-value transfer-ownership="full">
+            <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
+          </return-value>
+          <parameters>
+            <parameter name="sink" transfer-ownership="none">
+              <type name="BaseSink" c:type="GstBaseSink*"/>
+            </parameter>
+            <parameter name="offset" transfer-ownership="none">
+              <type name="uint64" c:type="guint64"/>
+            </parameter>
+            <parameter name="size" transfer-ownership="none">
+              <type name="uint" c:type="guint"/>
+            </parameter>
+            <parameter name="caps" transfer-ownership="none">
+              <type name="Gst.Caps" c:type="GstCaps*"/>
+            </parameter>
+            <parameter name="buf" transfer-ownership="none">
+              <type name="Gst.Buffer" c:type="GstBuffer**"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="get_times">
+        <callback name="get_times" c:type="get_times">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="sink" transfer-ownership="none">
+              <type name="BaseSink" c:type="GstBaseSink*"/>
+            </parameter>
+            <parameter name="buffer" transfer-ownership="none">
+              <type name="Gst.Buffer" c:type="GstBuffer*"/>
+            </parameter>
+            <parameter name="start" transfer-ownership="none">
+              <type name="Gst.ClockTime" c:type="GstClockTime*"/>
+            </parameter>
+            <parameter name="end" transfer-ownership="none">
+              <type name="Gst.ClockTime" c:type="GstClockTime*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="start">
+        <callback name="start" c:type="start">
+          <return-value transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="sink" transfer-ownership="none">
+              <type name="BaseSink" c:type="GstBaseSink*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="stop">
+        <callback name="stop" c:type="stop">
+          <return-value transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="sink" transfer-ownership="none">
+              <type name="BaseSink" c:type="GstBaseSink*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="unlock">
+        <callback name="unlock" c:type="unlock">
+          <return-value transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="sink" transfer-ownership="none">
+              <type name="BaseSink" c:type="GstBaseSink*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="event">
+        <callback name="event" c:type="event">
+          <return-value transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="sink" transfer-ownership="none">
+              <type name="BaseSink" c:type="GstBaseSink*"/>
+            </parameter>
+            <parameter name="event" transfer-ownership="none">
+              <type name="Gst.Event" c:type="GstEvent*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="preroll">
+        <callback name="preroll" c:type="preroll">
+          <return-value transfer-ownership="full">
+            <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
+          </return-value>
+          <parameters>
+            <parameter name="sink" transfer-ownership="none">
+              <type name="BaseSink" c:type="GstBaseSink*"/>
+            </parameter>
+            <parameter name="buffer" transfer-ownership="none">
+              <type name="Gst.Buffer" c:type="GstBuffer*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="render">
+        <callback name="render" c:type="render">
+          <return-value transfer-ownership="full">
+            <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
+          </return-value>
+          <parameters>
+            <parameter name="sink" transfer-ownership="none">
+              <type name="BaseSink" c:type="GstBaseSink*"/>
+            </parameter>
+            <parameter name="buffer" transfer-ownership="none">
+              <type name="Gst.Buffer" c:type="GstBuffer*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="async_play">
+        <callback name="async_play" c:type="async_play">
+          <return-value transfer-ownership="full">
+            <type name="Gst.StateChangeReturn" c:type="GstStateChangeReturn"/>
+          </return-value>
+          <parameters>
+            <parameter name="sink" transfer-ownership="none">
+              <type name="BaseSink" c:type="GstBaseSink*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="activate_pull">
+        <callback name="activate_pull" c:type="activate_pull">
+          <return-value transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="sink" transfer-ownership="none">
+              <type name="BaseSink" c:type="GstBaseSink*"/>
+            </parameter>
+            <parameter name="active" transfer-ownership="none">
+              <type name="boolean" c:type="gboolean"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="fixate">
+        <callback name="fixate" c:type="fixate">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="sink" transfer-ownership="none">
+              <type name="BaseSink" c:type="GstBaseSink*"/>
+            </parameter>
+            <parameter name="caps" transfer-ownership="none">
+              <type name="Gst.Caps" c:type="GstCaps*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="unlock_stop">
+        <callback name="unlock_stop" c:type="unlock_stop">
+          <return-value transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="sink" transfer-ownership="none">
+              <type name="BaseSink" c:type="GstBaseSink*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="render_list">
+        <callback name="render_list" c:type="render_list">
+          <return-value transfer-ownership="full">
+            <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
+          </return-value>
+          <parameters>
+            <parameter name="sink" transfer-ownership="none">
+              <type name="BaseSink" c:type="GstBaseSink*"/>
+            </parameter>
+            <parameter name="buffer_list" transfer-ownership="none">
+              <type name="Gst.BufferList" c:type="GstBufferList*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="_gst_reserved">
+        <array zero-terminated="0" c:type="gpointer" fixed-size="15">
+          <type name="any"/>
+        </array>
+      </field>
+    </record>
+    <record name="BaseSinkPrivate" c:type="GstBaseSinkPrivate">
+    </record>
+    <class name="BaseSrc"
+           c:type="GstBaseSrc"
+           doc="The opaque #GstBaseSrc data structure."
+           parent="Gst.Element"
+           abstract="1"
+           glib:type-name="GstBaseSrc"
+           glib:get-type="gst_base_src_get_type"
+           glib:type-struct="BaseSrcClass">
+      <virtual-method name="get_caps">
+        <return-value transfer-ownership="full">
+          <type name="Gst.Caps" c:type="GstCaps*"/>
+        </return-value>
+      </virtual-method>
+      <virtual-method name="set_caps">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="caps" transfer-ownership="none">
+            <type name="Gst.Caps" c:type="GstCaps*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="negotiate">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+      </virtual-method>
+      <virtual-method name="newsegment">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+      </virtual-method>
+      <virtual-method name="start">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+      </virtual-method>
+      <virtual-method name="stop">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+      </virtual-method>
+      <virtual-method name="get_times">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="buffer" transfer-ownership="none">
+            <type name="Gst.Buffer" c:type="GstBuffer*"/>
+          </parameter>
+          <parameter name="start" transfer-ownership="none">
+            <type name="Gst.ClockTime" c:type="GstClockTime*"/>
+          </parameter>
+          <parameter name="end" transfer-ownership="none">
+            <type name="Gst.ClockTime" c:type="GstClockTime*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="get_size">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="size" direction="out" transfer-ownership="full">
+            <type name="uint64" c:type="guint64*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="is_seekable">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+      </virtual-method>
+      <virtual-method name="unlock">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+      </virtual-method>
+      <virtual-method name="event">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="event" transfer-ownership="none">
+            <type name="Gst.Event" c:type="GstEvent*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="create">
+        <return-value transfer-ownership="full">
+          <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
+        </return-value>
+        <parameters>
+          <parameter name="offset" transfer-ownership="none">
+            <type name="uint64" c:type="guint64"/>
+          </parameter>
+          <parameter name="size" transfer-ownership="none">
+            <type name="uint" c:type="guint"/>
+          </parameter>
+          <parameter name="buf" transfer-ownership="none">
+            <type name="Gst.Buffer" c:type="GstBuffer**"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="do_seek">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="segment" transfer-ownership="none">
+            <type name="Gst.Segment" c:type="GstSegment*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="query">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="query" transfer-ownership="none">
+            <type name="Gst.Query" c:type="GstQuery*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="check_get_range">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+      </virtual-method>
+      <virtual-method name="fixate">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="caps" transfer-ownership="none">
+            <type name="Gst.Caps" c:type="GstCaps*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="unlock_stop">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+      </virtual-method>
+      <virtual-method name="prepare_seek_segment">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="seek" transfer-ownership="none">
+            <type name="Gst.Event" c:type="GstEvent*"/>
+          </parameter>
+          <parameter name="segment" transfer-ownership="none">
+            <type name="Gst.Segment" c:type="GstSegment*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <method name="wait_playing"
+              c:identifier="gst_base_src_wait_playing"
+              doc="If the #GstBaseSrcClass.create() method performs its own synchronisation
+against the clock it must unblock when going from PLAYING to the PAUSED state
+and call this method before continuing to produce the remaining data.
+This function will block until a state change to PLAYING happens (in which
+case this function returns #GST_FLOW_OK) or the processing must be stopped due
+to a state change to READY or a FLUSH event (in which case this function
+returns #GST_FLOW_WRONG_STATE).
+continue. Any other return value should be returned from the create vmethod."
+              version="0.10.12">
+        <return-value transfer-ownership="full">
+          <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
+        </return-value>
+      </method>
+      <method name="set_live"
+              c:identifier="gst_base_src_set_live"
+              doc="If the element listens to a live source, @live should
+be set to %TRUE.
+A live source will not produce data in the PAUSED state and
+will therefore not be able to participate in the PREROLL phase
+of a pipeline. To signal this fact to the application and the
+pipeline, the state change return value of the live source will
+be GST_STATE_CHANGE_NO_PREROLL.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="live" transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="is_live"
+              c:identifier="gst_base_src_is_live"
+              doc="Check if an element is in live mode.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+      </method>
+      <method name="set_format"
+              c:identifier="gst_base_src_set_format"
+              doc="Sets the default format of the source. This will be the format used
+for sending NEW_SEGMENT events and for performing seeks.
+If a format of GST_FORMAT_BYTES is set, the element will be able to
+operate in pull mode if the #GstBaseSrc.is_seekable() returns TRUE.
+This function must only be called in states &lt; %GST_STATE_PAUSED."
+              version="0.10.1">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="format" transfer-ownership="none">
+            <type name="Gst.Format" c:type="GstFormat"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="query_latency"
+              c:identifier="gst_base_src_query_latency"
+              doc="Query the source for the latency parameters. @live will be TRUE when @src is
+configured as a live source. @min_latency will be set to the difference
+between the running time and the timestamp of the first buffer.
+This function is mostly used by subclasses."
+              version="0.10.13">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="live" direction="out" transfer-ownership="full">
+            <type name="boolean" c:type="gboolean*"/>
+          </parameter>
+          <parameter name="min_latency" transfer-ownership="none">
+            <type name="Gst.ClockTime" c:type="GstClockTime*"/>
+          </parameter>
+          <parameter name="max_latency" transfer-ownership="none">
+            <type name="Gst.ClockTime" c:type="GstClockTime*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_blocksize"
+              c:identifier="gst_base_src_set_blocksize"
+              doc="Set the number of bytes that @src will push out with each buffer. When"
+              version="0.10.22">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="blocksize" transfer-ownership="none">
+            <type name="ulong" c:type="gulong"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_blocksize"
+              c:identifier="gst_base_src_get_blocksize"
+              doc="Get the number of bytes that @src will push out with each buffer."
+              version="0.10.22">
+        <return-value transfer-ownership="none">
+          <type name="ulong" c:type="gulong"/>
+        </return-value>
+      </method>
+      <method name="set_do_timestamp"
+              c:identifier="gst_base_src_set_do_timestamp"
+              doc="Configure @src to automatically timestamp outgoing buffers based on the
+current running_time of the pipeline. This property is mostly useful for live
+sources."
+              version="0.10.15">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="timestamp" transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_do_timestamp"
+              c:identifier="gst_base_src_get_do_timestamp"
+              doc="Query if @src timestamps outgoing buffers based on the current running_time."
+              version="0.10.15">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+      </method>
+      <method name="new_seamless_segment"
+              c:identifier="gst_base_src_new_seamless_segment"
+              doc="Prepare a new seamless segment for emission downstream. This function must
+only be called by derived sub-classes, and only from the create() function,
+as the stream-lock needs to be held.
+The format for the new segment will be the current format of the source, as
+configured with gst_base_src_set_format()"
+              version="0.10.26">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="start" transfer-ownership="none">
+            <type name="int64" c:type="gint64"/>
+          </parameter>
+          <parameter name="stop" transfer-ownership="none">
+            <type name="int64" c:type="gint64"/>
+          </parameter>
+          <parameter name="position" transfer-ownership="none">
+            <type name="int64" c:type="gint64"/>
+          </parameter>
+        </parameters>
+      </method>
+      <property name="blocksize" writable="1">
+        <type name="ulong" c:type="gulong"/>
+      </property>
+      <property name="do-timestamp" writable="1">
+        <type name="boolean" c:type="gboolean"/>
+      </property>
+      <property name="num-buffers" writable="1">
+        <type name="int" c:type="gint"/>
+      </property>
+      <property name="typefind" writable="1">
+        <type name="boolean" c:type="gboolean"/>
+      </property>
+      <field name="element">
+        <type name="Gst.Element" c:type="GstElement"/>
+      </field>
+      <field name="srcpad">
+        <type name="Gst.Pad" c:type="GstPad*"/>
+      </field>
+      <field name="live_lock">
+        <type name="GLib.Mutex" c:type="GMutex*"/>
+      </field>
+      <field name="live_cond">
+        <type name="GLib.Cond" c:type="GCond*"/>
+      </field>
+      <field name="is_live">
+        <type name="boolean" c:type="gboolean"/>
+      </field>
+      <field name="live_running">
+        <type name="boolean" c:type="gboolean"/>
+      </field>
+      <field name="blocksize">
+        <type name="int" c:type="gint"/>
+      </field>
+      <field name="can_activate_push">
+        <type name="boolean" c:type="gboolean"/>
+      </field>
+      <field name="pad_mode">
+        <type name="Gst.ActivateMode" c:type="GstActivateMode"/>
+      </field>
+      <field name="seekable">
+        <type name="boolean" c:type="gboolean"/>
+      </field>
+      <field name="random_access">
+        <type name="boolean" c:type="gboolean"/>
+      </field>
+      <field name="clock_id">
+        <type name="Gst.ClockID" c:type="GstClockID"/>
+      </field>
+      <field name="end_time">
+        <type name="Gst.ClockTime" c:type="GstClockTime"/>
+      </field>
+      <field name="segment">
+        <type name="Gst.Segment" c:type="GstSegment"/>
+      </field>
+      <field name="need_newsegment">
+        <type name="boolean" c:type="gboolean"/>
+      </field>
+      <field name="offset">
+        <type name="uint64" c:type="guint64"/>
+      </field>
+      <field name="size">
+        <type name="uint64" c:type="guint64"/>
+      </field>
+      <field name="num_buffers">
+        <type name="int" c:type="gint"/>
+      </field>
+      <field name="num_buffers_left">
+        <type name="int" c:type="gint"/>
+      </field>
+      <union name="data" c:type="data">
+        <record name="ABI" c:type="ABI">
+          <field name="typefind" writable="1">
+            <type name="boolean" c:type="gboolean"/>
+          </field>
+          <field name="running" writable="1">
+            <type name="boolean" c:type="gboolean"/>
+          </field>
+          <field name="pending_seek" writable="1">
+            <type name="Gst.Event" c:type="GstEvent*"/>
+          </field>
+        </record>
+        <field name="_gst_reserved" writable="1">
+          <array zero-terminated="0" c:type="gpointer" fixed-size="19">
+            <type name="any"/>
+          </array>
+        </field>
+      </union>
+      <field name="priv">
+        <type name="BaseSrcPrivate" c:type="GstBaseSrcPrivate*"/>
+      </field>
+    </class>
+    <record name="BaseSrcClass"
+            c:type="GstBaseSrcClass"
+            glib:is-gtype-struct-for="BaseSrc"
+            doc="to produce data.
+should be pushed out. The base class will sync on the clock using
+these times.
+unblock any blocked function ASAP
+any state they set during unlock(), such as clearing command queues.
+do_seek vmethod for executing a seek request. Sub-classes should override
+this if they support seeking in formats other than the configured native
+format. By default, it tries to convert the seek arguments to the
+configured native format and prepare a segment in that format.
+operation if it were to be opened now. This vfunc is optional, but
+should be implemented if possible to avoid unnecessary start/stop
+cycles. The default implementation will open and close the resource
+to find out whether get_range is supported, and that is usually
+undesirable.
+setting a fixate function on the source pad.
+Subclasses can override any of the available virtual methods or not, as
+needed. At the minimum, the @create method should be overridden to produce
+buffers."
+            version="0.10.13">
+      <field name="parent_class">
+        <type name="Gst.ElementClass" c:type="GstElementClass"/>
+      </field>
+      <field name="get_caps">
+        <callback name="get_caps" c:type="get_caps">
+          <return-value transfer-ownership="full">
+            <type name="Gst.Caps" c:type="GstCaps*"/>
+          </return-value>
+          <parameters>
+            <parameter name="src" transfer-ownership="none">
+              <type name="BaseSrc" c:type="GstBaseSrc*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="set_caps">
+        <callback name="set_caps" c:type="set_caps">
+          <return-value transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="src" transfer-ownership="none">
+              <type name="BaseSrc" c:type="GstBaseSrc*"/>
+            </parameter>
+            <parameter name="caps" transfer-ownership="none">
+              <type name="Gst.Caps" c:type="GstCaps*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="negotiate">
+        <callback name="negotiate" c:type="negotiate">
+          <return-value transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="src" transfer-ownership="none">
+              <type name="BaseSrc" c:type="GstBaseSrc*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="newsegment">
+        <callback name="newsegment" c:type="newsegment">
+          <return-value transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="src" transfer-ownership="none">
+              <type name="BaseSrc" c:type="GstBaseSrc*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="start">
+        <callback name="start" c:type="start">
+          <return-value transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="src" transfer-ownership="none">
+              <type name="BaseSrc" c:type="GstBaseSrc*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="stop">
+        <callback name="stop" c:type="stop">
+          <return-value transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="src" transfer-ownership="none">
+              <type name="BaseSrc" c:type="GstBaseSrc*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="get_times">
+        <callback name="get_times" c:type="get_times">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="src" transfer-ownership="none">
+              <type name="BaseSrc" c:type="GstBaseSrc*"/>
+            </parameter>
+            <parameter name="buffer" transfer-ownership="none">
+              <type name="Gst.Buffer" c:type="GstBuffer*"/>
+            </parameter>
+            <parameter name="start" transfer-ownership="none">
+              <type name="Gst.ClockTime" c:type="GstClockTime*"/>
+            </parameter>
+            <parameter name="end" transfer-ownership="none">
+              <type name="Gst.ClockTime" c:type="GstClockTime*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="get_size">
+        <callback name="get_size" c:type="get_size">
+          <return-value transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="src" transfer-ownership="none">
+              <type name="BaseSrc" c:type="GstBaseSrc*"/>
+            </parameter>
+            <parameter name="size" direction="out" transfer-ownership="full">
+              <type name="uint64" c:type="guint64*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="is_seekable">
+        <callback name="is_seekable" c:type="is_seekable">
+          <return-value transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="src" transfer-ownership="none">
+              <type name="BaseSrc" c:type="GstBaseSrc*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="unlock">
+        <callback name="unlock" c:type="unlock">
+          <return-value transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="src" transfer-ownership="none">
+              <type name="BaseSrc" c:type="GstBaseSrc*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="event">
+        <callback name="event" c:type="event">
+          <return-value transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="src" transfer-ownership="none">
+              <type name="BaseSrc" c:type="GstBaseSrc*"/>
+            </parameter>
+            <parameter name="event" transfer-ownership="none">
+              <type name="Gst.Event" c:type="GstEvent*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="create">
+        <callback name="create" c:type="create">
+          <return-value transfer-ownership="full">
+            <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
+          </return-value>
+          <parameters>
+            <parameter name="src" transfer-ownership="none">
+              <type name="BaseSrc" c:type="GstBaseSrc*"/>
+            </parameter>
+            <parameter name="offset" transfer-ownership="none">
+              <type name="uint64" c:type="guint64"/>
+            </parameter>
+            <parameter name="size" transfer-ownership="none">
+              <type name="uint" c:type="guint"/>
+            </parameter>
+            <parameter name="buf" transfer-ownership="none">
+              <type name="Gst.Buffer" c:type="GstBuffer**"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="do_seek">
+        <callback name="do_seek" c:type="do_seek">
+          <return-value transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="src" transfer-ownership="none">
+              <type name="BaseSrc" c:type="GstBaseSrc*"/>
+            </parameter>
+            <parameter name="segment" transfer-ownership="none">
+              <type name="Gst.Segment" c:type="GstSegment*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="query">
+        <callback name="query" c:type="query">
+          <return-value transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="src" transfer-ownership="none">
+              <type name="BaseSrc" c:type="GstBaseSrc*"/>
+            </parameter>
+            <parameter name="query" transfer-ownership="none">
+              <type name="Gst.Query" c:type="GstQuery*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="check_get_range">
+        <callback name="check_get_range" c:type="check_get_range">
+          <return-value transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="src" transfer-ownership="none">
+              <type name="BaseSrc" c:type="GstBaseSrc*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="fixate">
+        <callback name="fixate" c:type="fixate">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="src" transfer-ownership="none">
+              <type name="BaseSrc" c:type="GstBaseSrc*"/>
+            </parameter>
+            <parameter name="caps" transfer-ownership="none">
+              <type name="Gst.Caps" c:type="GstCaps*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="unlock_stop">
+        <callback name="unlock_stop" c:type="unlock_stop">
+          <return-value transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="src" transfer-ownership="none">
+              <type name="BaseSrc" c:type="GstBaseSrc*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="prepare_seek_segment">
+        <callback name="prepare_seek_segment" c:type="prepare_seek_segment">
+          <return-value transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="src" transfer-ownership="none">
+              <type name="BaseSrc" c:type="GstBaseSrc*"/>
+            </parameter>
+            <parameter name="seek" transfer-ownership="none">
+              <type name="Gst.Event" c:type="GstEvent*"/>
+            </parameter>
+            <parameter name="segment" transfer-ownership="none">
+              <type name="Gst.Segment" c:type="GstSegment*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="_gst_reserved">
+        <array zero-terminated="0" c:type="gpointer" fixed-size="14">
+          <type name="any"/>
+        </array>
+      </field>
+    </record>
+    <bitfield name="BaseSrcFlags"
+              doc="The #GstElement flags that a basesrc element may have."
+              c:type="GstBaseSrcFlags">
+      <member name="started"
+              value="1048576"
+              c:identifier="GST_BASE_SRC_STARTED"/>
+      <member name="flag_last"
+              value="4194304"
+              c:identifier="GST_BASE_SRC_FLAG_LAST"/>
+    </bitfield>
+    <record name="BaseSrcPrivate" c:type="GstBaseSrcPrivate">
+    </record>
+    <class name="BaseTransform"
+           c:type="GstBaseTransform"
+           doc="The opaque #GstBaseTransform data structure."
+           parent="Gst.Element"
+           abstract="1"
+           glib:type-name="GstBaseTransform"
+           glib:get-type="gst_base_transform_get_type"
+           glib:type-struct="BaseTransformClass">
+      <virtual-method name="transform_caps">
+        <return-value transfer-ownership="full">
+          <type name="Gst.Caps" c:type="GstCaps*"/>
+        </return-value>
+        <parameters>
+          <parameter name="direction" transfer-ownership="none">
+            <type name="Gst.PadDirection" c:type="GstPadDirection"/>
+          </parameter>
+          <parameter name="caps" transfer-ownership="none">
+            <type name="Gst.Caps" c:type="GstCaps*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="fixate_caps">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="direction" transfer-ownership="none">
+            <type name="Gst.PadDirection" c:type="GstPadDirection"/>
+          </parameter>
+          <parameter name="caps" transfer-ownership="none">
+            <type name="Gst.Caps" c:type="GstCaps*"/>
+          </parameter>
+          <parameter name="othercaps" transfer-ownership="none">
+            <type name="Gst.Caps" c:type="GstCaps*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="transform_size">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="direction" transfer-ownership="none">
+            <type name="Gst.PadDirection" c:type="GstPadDirection"/>
+          </parameter>
+          <parameter name="caps" transfer-ownership="none">
+            <type name="Gst.Caps" c:type="GstCaps*"/>
+          </parameter>
+          <parameter name="size" transfer-ownership="none">
+            <type name="uint" c:type="guint"/>
+          </parameter>
+          <parameter name="othercaps" transfer-ownership="none">
+            <type name="Gst.Caps" c:type="GstCaps*"/>
+          </parameter>
+          <parameter name="othersize"
+                     direction="out"
+                     transfer-ownership="full">
+            <type name="uint" c:type="guint*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="get_unit_size">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="caps" transfer-ownership="none">
+            <type name="Gst.Caps" c:type="GstCaps*"/>
+          </parameter>
+          <parameter name="size" direction="out" transfer-ownership="full">
+            <type name="uint" c:type="guint*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="set_caps">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="incaps" transfer-ownership="none">
+            <type name="Gst.Caps" c:type="GstCaps*"/>
+          </parameter>
+          <parameter name="outcaps" transfer-ownership="none">
+            <type name="Gst.Caps" c:type="GstCaps*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="start">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+      </virtual-method>
+      <virtual-method name="stop">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+      </virtual-method>
+      <virtual-method name="event">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="event" transfer-ownership="none">
+            <type name="Gst.Event" c:type="GstEvent*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="transform">
+        <return-value transfer-ownership="full">
+          <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
+        </return-value>
+        <parameters>
+          <parameter name="inbuf" transfer-ownership="none">
+            <type name="Gst.Buffer" c:type="GstBuffer*"/>
+          </parameter>
+          <parameter name="outbuf" transfer-ownership="none">
+            <type name="Gst.Buffer" c:type="GstBuffer*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="transform_ip">
+        <return-value transfer-ownership="full">
+          <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
+        </return-value>
+        <parameters>
+          <parameter name="buf" transfer-ownership="none">
+            <type name="Gst.Buffer" c:type="GstBuffer*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="prepare_output_buffer">
+        <return-value transfer-ownership="full">
+          <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
+        </return-value>
+        <parameters>
+          <parameter name="input" transfer-ownership="none">
+            <type name="Gst.Buffer" c:type="GstBuffer*"/>
+          </parameter>
+          <parameter name="size" transfer-ownership="none">
+            <type name="int" c:type="gint"/>
+          </parameter>
+          <parameter name="caps" transfer-ownership="none">
+            <type name="Gst.Caps" c:type="GstCaps*"/>
+          </parameter>
+          <parameter name="buf" transfer-ownership="none">
+            <type name="Gst.Buffer" c:type="GstBuffer**"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="src_event">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="event" transfer-ownership="none">
+            <type name="Gst.Event" c:type="GstEvent*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="before_transform">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="buffer" transfer-ownership="none">
+            <type name="Gst.Buffer" c:type="GstBuffer*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <method name="set_passthrough"
+              c:identifier="gst_base_transform_set_passthrough"
+              doc="Set passthrough mode for this filter by default. This is mostly
+useful for filters that do not care about negotiation.
+Always TRUE for filters which don&apos;t implement either a transform
+or transform_ip method.
+MT safe.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="passthrough" transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="is_passthrough"
+              c:identifier="gst_base_transform_is_passthrough"
+              doc="See if @trans is configured as a passthrough transform.
+MT safe.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+      </method>
+      <method name="set_in_place"
+              c:identifier="gst_base_transform_set_in_place"
+              doc="on in_place buffers.
+Determines whether a non-writable buffer will be copied before passing
+to the transform_ip function.
+&lt;itemizedlist&gt;
+&lt;listitem&gt;Always TRUE if no transform function is implemented.&lt;/listitem&gt;
+&lt;listitem&gt;Always FALSE if ONLY transform function is implemented.&lt;/listitem&gt;
+&lt;/itemizedlist&gt;
+MT safe.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="in_place" transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="is_in_place"
+              c:identifier="gst_base_transform_is_in_place"
+              doc="See if @trans is configured as a in_place transform.
+MT safe.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+      </method>
+      <method name="update_qos"
+              c:identifier="gst_base_transform_update_qos"
+              doc="running_time.
+Set the QoS parameters in the transform. This function is called internally
+when a QOS event is received but subclasses can provide custom information
+when needed.
+MT safe."
+              version="0.10.5">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="proportion" transfer-ownership="none">
+            <type name="double" c:type="gdouble"/>
+          </parameter>
+          <parameter name="diff" transfer-ownership="none">
+            <type name="Gst.ClockTimeDiff" c:type="GstClockTimeDiff"/>
+          </parameter>
+          <parameter name="timestamp" transfer-ownership="none">
+            <type name="Gst.ClockTime" c:type="GstClockTime"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_qos_enabled"
+              c:identifier="gst_base_transform_set_qos_enabled"
+              doc="Enable or disable QoS handling in the transform.
+MT safe."
+              version="0.10.5">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="enabled" transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="is_qos_enabled"
+              c:identifier="gst_base_transform_is_qos_enabled"
+              doc="Queries if the transform will handle QoS.
+MT safe."
+              version="0.10.5">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+      </method>
+      <method name="set_gap_aware"
+              c:identifier="gst_base_transform_set_gap_aware"
+              doc="If @gap_aware is %FALSE (the default), output buffers will have the
+%GST_BUFFER_FLAG_GAP flag unset.
+If set to %TRUE, the element must handle output buffers with this flag set
+correctly, i.e. it can assume that the buffer contains neutral data but must
+unset the flag if the output is no neutral data.
+MT safe."
+              version="0.10.16">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="gap_aware" transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="suggest"
+              c:identifier="gst_base_transform_suggest"
+              doc="Instructs @trans to suggest new @caps upstream. A copy of @caps will be
+taken."
+              version="0.10.21">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="caps" transfer-ownership="none">
+            <type name="Gst.Caps" c:type="GstCaps*"/>
+          </parameter>
+          <parameter name="size" transfer-ownership="none">
+            <type name="uint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="reconfigure"
+              c:identifier="gst_base_transform_reconfigure"
+              doc="Instructs @trans to renegotiate a new downstream transform on the next
+buffer. This function is typically called after properties on the transform
+were set that influence the output format."
+              version="0.10.21">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </method>
+      <property name="qos" writable="1">
+        <type name="boolean" c:type="gboolean"/>
+      </property>
+      <field name="element">
+        <type name="Gst.Element" c:type="GstElement"/>
+      </field>
+      <field name="sinkpad">
+        <type name="Gst.Pad" c:type="GstPad*"/>
+      </field>
+      <field name="srcpad">
+        <type name="Gst.Pad" c:type="GstPad*"/>
+      </field>
+      <field name="passthrough">
+        <type name="boolean" c:type="gboolean"/>
+      </field>
+      <field name="always_in_place">
+        <type name="boolean" c:type="gboolean"/>
+      </field>
+      <field name="cache_caps1">
+        <type name="Gst.Caps" c:type="GstCaps*"/>
+      </field>
+      <field name="cache_caps1_size">
+        <type name="uint" c:type="guint"/>
+      </field>
+      <field name="cache_caps2">
+        <type name="Gst.Caps" c:type="GstCaps*"/>
+      </field>
+      <field name="cache_caps2_size">
+        <type name="uint" c:type="guint"/>
+      </field>
+      <field name="have_same_caps">
+        <type name="boolean" c:type="gboolean"/>
+      </field>
+      <field name="delay_configure">
+        <type name="boolean" c:type="gboolean"/>
+      </field>
+      <field name="pending_configure">
+        <type name="boolean" c:type="gboolean"/>
+      </field>
+      <field name="negotiated">
+        <type name="boolean" c:type="gboolean"/>
+      </field>
+      <field name="have_newsegment">
+        <type name="boolean" c:type="gboolean"/>
+      </field>
+      <field name="segment">
+        <type name="Gst.Segment" c:type="GstSegment"/>
+      </field>
+      <field name="transform_lock">
+        <type name="GLib.Mutex" c:type="GMutex*"/>
+      </field>
+      <field name="priv">
+        <type name="BaseTransformPrivate" c:type="GstBaseTransformPrivate*"/>
+      </field>
+      <field name="_gst_reserved">
+        <array zero-terminated="0" c:type="gpointer" fixed-size="19">
+          <type name="any"/>
+        </array>
+      </field>
+    </class>
+    <record name="BaseTransformClass"
+            c:type="GstBaseTransformClass"
+            glib:is-gtype-struct-for="BaseTransform"
+            doc="caps, what caps are allowed on the other pad in this
+element ?
+caps, fixate the caps on the other pad.
+with the given caps, calculate the size in bytes of a buffer
+on the other pad with the given other caps.
+The default implementation uses get_unit_size and keeps
+the number of units the same.
+get the size in bytes of one unit for the given caps.
+Called when the element starts processing.
+Allows opening external resources.
+Called when the element stops processing.
+Allows closing external resources.
+Transforms one incoming buffer to one outgoing buffer.
+The function is allowed to change size/timestamp/duration
+of the outgoing buffer.
+Transform the incoming buffer in-place.
+Event handler on the sink pad. This function should return
+TRUE if the base class should forward the event.
+Event handler on the source pad.
+automatically enabled if the caps are the same.
+Subclasses can override this to do their own
+allocation of output buffers.  Elements that only do
+analysis can return a subbuffer or even just
+increment the reference to the input buffer (if in
+passthrough mode)
+This method is called right before the base class will
+start processing. Dynamic properties or other delayed
+configuration could be performed in this method.
+Subclasses can override any of the available virtual methods or not, as
+needed. At minimum either @transform or @transform_ip need to be overridden.
+If the element can overwrite the input data with the results (data is of the
+same type and quantity) it should provide @transform_ip.">
+      <field name="parent_class">
+        <type name="Gst.ElementClass" c:type="GstElementClass"/>
+      </field>
+      <field name="transform_caps">
+        <callback name="transform_caps" c:type="transform_caps">
+          <return-value transfer-ownership="full">
+            <type name="Gst.Caps" c:type="GstCaps*"/>
+          </return-value>
+          <parameters>
+            <parameter name="trans" transfer-ownership="none">
+              <type name="BaseTransform" c:type="GstBaseTransform*"/>
+            </parameter>
+            <parameter name="direction" transfer-ownership="none">
+              <type name="Gst.PadDirection" c:type="GstPadDirection"/>
+            </parameter>
+            <parameter name="caps" transfer-ownership="none">
+              <type name="Gst.Caps" c:type="GstCaps*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="fixate_caps">
+        <callback name="fixate_caps" c:type="fixate_caps">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="trans" transfer-ownership="none">
+              <type name="BaseTransform" c:type="GstBaseTransform*"/>
+            </parameter>
+            <parameter name="direction" transfer-ownership="none">
+              <type name="Gst.PadDirection" c:type="GstPadDirection"/>
+            </parameter>
+            <parameter name="caps" transfer-ownership="none">
+              <type name="Gst.Caps" c:type="GstCaps*"/>
+            </parameter>
+            <parameter name="othercaps" transfer-ownership="none">
+              <type name="Gst.Caps" c:type="GstCaps*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="transform_size">
+        <callback name="transform_size" c:type="transform_size">
+          <return-value transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="trans" transfer-ownership="none">
+              <type name="BaseTransform" c:type="GstBaseTransform*"/>
+            </parameter>
+            <parameter name="direction" transfer-ownership="none">
+              <type name="Gst.PadDirection" c:type="GstPadDirection"/>
+            </parameter>
+            <parameter name="caps" transfer-ownership="none">
+              <type name="Gst.Caps" c:type="GstCaps*"/>
+            </parameter>
+            <parameter name="size" transfer-ownership="none">
+              <type name="uint" c:type="guint"/>
+            </parameter>
+            <parameter name="othercaps" transfer-ownership="none">
+              <type name="Gst.Caps" c:type="GstCaps*"/>
+            </parameter>
+            <parameter name="othersize"
+                       direction="out"
+                       transfer-ownership="full">
+              <type name="uint" c:type="guint*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="get_unit_size">
+        <callback name="get_unit_size" c:type="get_unit_size">
+          <return-value transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="trans" transfer-ownership="none">
+              <type name="BaseTransform" c:type="GstBaseTransform*"/>
+            </parameter>
+            <parameter name="caps" transfer-ownership="none">
+              <type name="Gst.Caps" c:type="GstCaps*"/>
+            </parameter>
+            <parameter name="size" direction="out" transfer-ownership="full">
+              <type name="uint" c:type="guint*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="set_caps">
+        <callback name="set_caps" c:type="set_caps">
+          <return-value transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="trans" transfer-ownership="none">
+              <type name="BaseTransform" c:type="GstBaseTransform*"/>
+            </parameter>
+            <parameter name="incaps" transfer-ownership="none">
+              <type name="Gst.Caps" c:type="GstCaps*"/>
+            </parameter>
+            <parameter name="outcaps" transfer-ownership="none">
+              <type name="Gst.Caps" c:type="GstCaps*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="start">
+        <callback name="start" c:type="start">
+          <return-value transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="trans" transfer-ownership="none">
+              <type name="BaseTransform" c:type="GstBaseTransform*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="stop">
+        <callback name="stop" c:type="stop">
+          <return-value transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="trans" transfer-ownership="none">
+              <type name="BaseTransform" c:type="GstBaseTransform*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="event">
+        <callback name="event" c:type="event">
+          <return-value transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="trans" transfer-ownership="none">
+              <type name="BaseTransform" c:type="GstBaseTransform*"/>
+            </parameter>
+            <parameter name="event" transfer-ownership="none">
+              <type name="Gst.Event" c:type="GstEvent*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="transform">
+        <callback name="transform" c:type="transform">
+          <return-value transfer-ownership="full">
+            <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
+          </return-value>
+          <parameters>
+            <parameter name="trans" transfer-ownership="none">
+              <type name="BaseTransform" c:type="GstBaseTransform*"/>
+            </parameter>
+            <parameter name="inbuf" transfer-ownership="none">
+              <type name="Gst.Buffer" c:type="GstBuffer*"/>
+            </parameter>
+            <parameter name="outbuf" transfer-ownership="none">
+              <type name="Gst.Buffer" c:type="GstBuffer*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="transform_ip">
+        <callback name="transform_ip" c:type="transform_ip">
+          <return-value transfer-ownership="full">
+            <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
+          </return-value>
+          <parameters>
+            <parameter name="trans" transfer-ownership="none">
+              <type name="BaseTransform" c:type="GstBaseTransform*"/>
+            </parameter>
+            <parameter name="buf" transfer-ownership="none">
+              <type name="Gst.Buffer" c:type="GstBuffer*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="passthrough_on_same_caps">
+        <type name="boolean" c:type="gboolean"/>
+      </field>
+      <field name="prepare_output_buffer">
+        <callback name="prepare_output_buffer" c:type="prepare_output_buffer">
+          <return-value transfer-ownership="full">
+            <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
+          </return-value>
+          <parameters>
+            <parameter name="trans" transfer-ownership="none">
+              <type name="BaseTransform" c:type="GstBaseTransform*"/>
+            </parameter>
+            <parameter name="input" transfer-ownership="none">
+              <type name="Gst.Buffer" c:type="GstBuffer*"/>
+            </parameter>
+            <parameter name="size" transfer-ownership="none">
+              <type name="int" c:type="gint"/>
+            </parameter>
+            <parameter name="caps" transfer-ownership="none">
+              <type name="Gst.Caps" c:type="GstCaps*"/>
+            </parameter>
+            <parameter name="buf" transfer-ownership="none">
+              <type name="Gst.Buffer" c:type="GstBuffer**"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="src_event">
+        <callback name="src_event" c:type="src_event">
+          <return-value transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="trans" transfer-ownership="none">
+              <type name="BaseTransform" c:type="GstBaseTransform*"/>
+            </parameter>
+            <parameter name="event" transfer-ownership="none">
+              <type name="Gst.Event" c:type="GstEvent*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="before_transform">
+        <callback name="before_transform" c:type="before_transform">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="trans" transfer-ownership="none">
+              <type name="BaseTransform" c:type="GstBaseTransform*"/>
+            </parameter>
+            <parameter name="buffer" transfer-ownership="none">
+              <type name="Gst.Buffer" c:type="GstBuffer*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="_gst_reserved">
+        <array zero-terminated="0" c:type="gpointer" fixed-size="18">
+          <type name="any"/>
+        </array>
+      </field>
+    </record>
+    <record name="BaseTransformPrivate" c:type="GstBaseTransformPrivate">
+    </record>
+    <record name="BitReader"
+            c:type="GstBitReader"
+            doc="A bit reader instance.">
+      <field name="data" writable="1">
+        <type name="any" c:type="guint8*"/>
+      </field>
+      <field name="size" writable="1">
+        <type name="uint" c:type="guint"/>
+      </field>
+      <field name="byte" writable="1">
+        <type name="uint" c:type="guint"/>
+      </field>
+      <field name="bit" writable="1">
+        <type name="uint" c:type="guint"/>
+      </field>
+      <constructor name="new"
+                   c:identifier="gst_bit_reader_new"
+                   doc="Create a new #GstBitReader instance, which will read from @data."
+                   version="0.10.22">
+        <return-value transfer-ownership="full">
+          <type name="BitReader" c:type="GstBitReader*"/>
+        </return-value>
+        <parameters>
+          <parameter name="data" transfer-ownership="none">
+            <array c:type="guint8*">
+              <type name="uint8"/>
+            </array>
+          </parameter>
+          <parameter name="size" transfer-ownership="none">
+            <type name="uint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <constructor name="new_from_buffer"
+                   c:identifier="gst_bit_reader_new_from_buffer"
+                   doc="Create a new #GstBitReader instance, which will read from the
+#GstBuffer @buffer."
+                   version="0.10.22">
+        <return-value transfer-ownership="full">
+          <type name="BitReader" c:type="GstBitReader*"/>
+        </return-value>
+        <parameters>
+          <parameter name="buffer" transfer-ownership="none">
+            <type name="Gst.Buffer" c:type="GstBuffer*"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <method name="free"
+              c:identifier="gst_bit_reader_free"
+              doc="Frees a #GstBitReader instance, which was previously allocated by
+gst_bit_reader_new() or gst_bit_reader_new_from_buffer()."
+              version="0.10.22">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </method>
+      <method name="init"
+              c:identifier="gst_bit_reader_init"
+              doc="Initializes a #GstBitReader instance to read from @data. This function
+can be called on already initialized instances."
+              version="0.10.22">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="data" transfer-ownership="none">
+            <array c:type="guint8*">
+              <type name="uint8"/>
+            </array>
+          </parameter>
+          <parameter name="size" transfer-ownership="none">
+            <type name="uint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="init_from_buffer"
+              c:identifier="gst_bit_reader_init_from_buffer"
+              doc="Initializes a #GstBitReader instance to read from @buffer. This function
+can be called on already initialized instances."
+              version="0.10.22">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="buffer" transfer-ownership="none">
+            <type name="Gst.Buffer" c:type="GstBuffer*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_pos"
+              c:identifier="gst_bit_reader_set_pos"
+              doc="Sets the new position of a #GstBitReader instance to @pos in bits.
+otherwise."
+              version="0.10.22">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="pos" transfer-ownership="none">
+            <type name="uint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_pos"
+              c:identifier="gst_bit_reader_get_pos"
+              doc="Returns the current position of a #GstBitReader instance in bits."
+              version="0.10.22">
+        <return-value transfer-ownership="none">
+          <type name="uint" c:type="guint"/>
+        </return-value>
+      </method>
+      <method name="get_remaining"
+              c:identifier="gst_bit_reader_get_remaining"
+              doc="Returns the remaining number of bits of a #GstBitReader instance."
+              version="0.10.22">
+        <return-value transfer-ownership="none">
+          <type name="uint" c:type="guint"/>
+        </return-value>
+      </method>
+      <method name="get_size"
+              c:identifier="gst_bit_reader_get_size"
+              doc="Returns the total number of bits of a #GstBitReader instance."
+              version="0.10.26">
+        <return-value transfer-ownership="none">
+          <type name="uint" c:type="guint"/>
+        </return-value>
+      </method>
+      <method name="skip"
+              c:identifier="gst_bit_reader_skip"
+              doc="Skips @nbits bits of the #GstBitReader instance."
+              version="0.10.22">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="nbits" transfer-ownership="none">
+            <type name="uint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="skip_to_byte"
+              c:identifier="gst_bit_reader_skip_to_byte"
+              doc="Skips until the next byte."
+              version="0.10.22">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+      </method>
+      <method name="get_bits_uint8"
+              c:identifier="gst_bit_reader_get_bits_uint8"
+              doc="Read @nbits bits into @val and update the current position."
+              version="0.10.22">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="val" transfer-ownership="none">
+            <array c:type="guint8*">
+              <type name="uint8"/>
+            </array>
+          </parameter>
+          <parameter name="nbits" transfer-ownership="none">
+            <type name="uint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_bits_uint16"
+              c:identifier="gst_bit_reader_get_bits_uint16"
+              doc="Read @nbits bits into @val and update the current position."
+              version="0.10.22">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="val" direction="out" transfer-ownership="full">
+            <type name="uint16" c:type="guint16*"/>
+          </parameter>
+          <parameter name="nbits" transfer-ownership="none">
+            <type name="uint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_bits_uint32"
+              c:identifier="gst_bit_reader_get_bits_uint32"
+              doc="Read @nbits bits into @val and update the current position."
+              version="0.10.22">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="val" direction="out" transfer-ownership="full">
+            <type name="uint32" c:type="guint32*"/>
+          </parameter>
+          <parameter name="nbits" transfer-ownership="none">
+            <type name="uint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_bits_uint64"
+              c:identifier="gst_bit_reader_get_bits_uint64"
+              doc="Read @nbits bits into @val and update the current position."
+              version="0.10.22">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="val" direction="out" transfer-ownership="full">
+            <type name="uint64" c:type="guint64*"/>
+          </parameter>
+          <parameter name="nbits" transfer-ownership="none">
+            <type name="uint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="peek_bits_uint8"
+              c:identifier="gst_bit_reader_peek_bits_uint8"
+              doc="Read @nbits bits into @val but keep the current position."
+              version="0.10.22">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="val" transfer-ownership="none">
+            <array c:type="guint8*">
+              <type name="uint8"/>
+            </array>
+          </parameter>
+          <parameter name="nbits" transfer-ownership="none">
+            <type name="uint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="peek_bits_uint16"
+              c:identifier="gst_bit_reader_peek_bits_uint16"
+              doc="Read @nbits bits into @val but keep the current position."
+              version="0.10.22">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="val" direction="out" transfer-ownership="full">
+            <type name="uint16" c:type="guint16*"/>
+          </parameter>
+          <parameter name="nbits" transfer-ownership="none">
+            <type name="uint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="peek_bits_uint32"
+              c:identifier="gst_bit_reader_peek_bits_uint32"
+              doc="Read @nbits bits into @val but keep the current position."
+              version="0.10.22">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="val" direction="out" transfer-ownership="full">
+            <type name="uint32" c:type="guint32*"/>
+          </parameter>
+          <parameter name="nbits" transfer-ownership="none">
+            <type name="uint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="peek_bits_uint64"
+              c:identifier="gst_bit_reader_peek_bits_uint64"
+              doc="Read @nbits bits into @val but keep the current position."
+              version="0.10.22">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="val" direction="out" transfer-ownership="full">
+            <type name="uint64" c:type="guint64*"/>
+          </parameter>
+          <parameter name="nbits" transfer-ownership="none">
+            <type name="uint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+    </record>
+    <record name="ByteReader"
+            c:type="GstByteReader"
+            doc="A byte reader instance.">
+      <field name="data" writable="1">
+        <type name="any" c:type="guint8*"/>
+      </field>
+      <field name="size" writable="1">
+        <type name="uint" c:type="guint"/>
+      </field>
+      <field name="byte" writable="1">
+        <type name="uint" c:type="guint"/>
+      </field>
+      <constructor name="new"
+                   c:identifier="gst_byte_reader_new"
+                   doc="Create a new #GstByteReader instance, which will read from @data."
+                   version="0.10.22">
+        <return-value transfer-ownership="full">
+          <type name="ByteReader" c:type="GstByteReader*"/>
+        </return-value>
+        <parameters>
+          <parameter name="data" transfer-ownership="none">
+            <array c:type="guint8*">
+              <type name="uint8"/>
+            </array>
+          </parameter>
+          <parameter name="size" transfer-ownership="none">
+            <type name="uint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <constructor name="new_from_buffer"
+                   c:identifier="gst_byte_reader_new_from_buffer"
+                   doc="Create a new #GstByteReader instance, which will read from the
+#GstBuffer @buffer."
+                   version="0.10.22">
+        <return-value transfer-ownership="full">
+          <type name="ByteReader" c:type="GstByteReader*"/>
+        </return-value>
+        <parameters>
+          <parameter name="buffer" transfer-ownership="none">
+            <type name="Gst.Buffer" c:type="GstBuffer*"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <method name="free"
+              c:identifier="gst_byte_reader_free"
+              doc="Frees a #GstByteReader instance, which was previously allocated by
+gst_byte_reader_new() or gst_byte_reader_new_from_buffer()."
+              version="0.10.22">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </method>
+      <method name="init"
+              c:identifier="gst_byte_reader_init"
+              doc="Initializes a #GstByteReader instance to read from @data. This function
+can be called on already initialized instances."
+              version="0.10.22">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="data" transfer-ownership="none">
+            <array c:type="guint8*">
+              <type name="uint8"/>
+            </array>
+          </parameter>
+          <parameter name="size" transfer-ownership="none">
+            <type name="uint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="init_from_buffer"
+              c:identifier="gst_byte_reader_init_from_buffer"
+              doc="Initializes a #GstByteReader instance to read from @buffer. This function
+can be called on already initialized instances."
+              version="0.10.22">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="buffer" transfer-ownership="none">
+            <type name="Gst.Buffer" c:type="GstBuffer*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_pos"
+              c:identifier="gst_byte_reader_set_pos"
+              doc="Sets the new position of a #GstByteReader instance to @pos in bytes.
+otherwise."
+              version="0.10.22">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="pos" transfer-ownership="none">
+            <type name="uint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_pos"
+              c:identifier="gst_byte_reader_get_pos"
+              doc="Returns the current position of a #GstByteReader instance in bytes."
+              version="0.10.22">
+        <return-value transfer-ownership="none">
+          <type name="uint" c:type="guint"/>
+        </return-value>
+      </method>
+      <method name="get_remaining"
+              c:identifier="gst_byte_reader_get_remaining"
+              doc="Returns the remaining number of bytes of a #GstByteReader instance."
+              version="0.10.22">
+        <return-value transfer-ownership="none">
+          <type name="uint" c:type="guint"/>
+        </return-value>
+      </method>
+      <method name="get_size"
+              c:identifier="gst_byte_reader_get_size"
+              doc="Returns the total number of bytes of a #GstByteReader instance."
+              version="0.10.26">
+        <return-value transfer-ownership="none">
+          <type name="uint" c:type="guint"/>
+        </return-value>
+      </method>
+      <method name="skip"
+              c:identifier="gst_byte_reader_skip"
+              doc="Skips @nbytes bytes of the #GstByteReader instance."
+              version="0.10.22">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="nbytes" transfer-ownership="none">
+            <type name="uint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_uint8"
+              c:identifier="gst_byte_reader_get_uint8"
+              doc="Read an unsigned 8 bit integer into @val and update the current position."
+              version="0.10.22">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="val" transfer-ownership="none">
+            <array c:type="guint8*">
+              <type name="uint8"/>
+            </array>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_int8"
+              c:identifier="gst_byte_reader_get_int8"
+              doc="Read a signed 8 bit integer into @val and update the current position."
+              version="0.10.22">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="val" direction="out" transfer-ownership="full">
+            <type name="int8" c:type="gint8*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_uint16_le"
+              c:identifier="gst_byte_reader_get_uint16_le"
+              doc="Read an unsigned 16 bit little endian integer into @val
+and update the current position."
+              version="0.10.22">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="val" direction="out" transfer-ownership="full">
+            <type name="uint16" c:type="guint16*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_int16_le"
+              c:identifier="gst_byte_reader_get_int16_le"
+              doc="Read a signed 16 bit little endian integer into @val
+and update the current position."
+              version="0.10.22">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="val" direction="out" transfer-ownership="full">
+            <type name="int16" c:type="gint16*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_uint16_be"
+              c:identifier="gst_byte_reader_get_uint16_be"
+              doc="Read an unsigned 16 bit big endian integer into @val
+and update the current position."
+              version="0.10.22">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="val" direction="out" transfer-ownership="full">
+            <type name="uint16" c:type="guint16*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_int16_be"
+              c:identifier="gst_byte_reader_get_int16_be"
+              doc="Read a signed 16 bit big endian integer into @val
+and update the current position."
+              version="0.10.22">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="val" direction="out" transfer-ownership="full">
+            <type name="int16" c:type="gint16*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_uint24_le"
+              c:identifier="gst_byte_reader_get_uint24_le"
+              doc="Read an unsigned 24 bit little endian integer into @val
+and update the current position."
+              version="0.10.22">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="val" direction="out" transfer-ownership="full">
+            <type name="uint32" c:type="guint32*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_int24_le"
+              c:identifier="gst_byte_reader_get_int24_le"
+              doc="Read a signed 24 bit little endian integer into @val
+and update the current position."
+              version="0.10.22">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="val" direction="out" transfer-ownership="full">
+            <type name="int32" c:type="gint32*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_uint24_be"
+              c:identifier="gst_byte_reader_get_uint24_be"
+              doc="Read an unsigned 24 bit big endian integer into @val
+and update the current position."
+              version="0.10.22">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="val" direction="out" transfer-ownership="full">
+            <type name="uint32" c:type="guint32*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_int24_be"
+              c:identifier="gst_byte_reader_get_int24_be"
+              doc="Read a signed 24 bit big endian integer into @val
+and update the current position."
+              version="0.10.22">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="val" direction="out" transfer-ownership="full">
+            <type name="int32" c:type="gint32*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_uint32_le"
+              c:identifier="gst_byte_reader_get_uint32_le"
+              doc="Read an unsigned 32 bit little endian integer into @val
+and update the current position."
+              version="0.10.22">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="val" direction="out" transfer-ownership="full">
+            <type name="uint32" c:type="guint32*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_int32_le"
+              c:identifier="gst_byte_reader_get_int32_le"
+              doc="Read a signed 32 bit little endian integer into @val
+and update the current position."
+              version="0.10.22">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="val" direction="out" transfer-ownership="full">
+            <type name="int32" c:type="gint32*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_uint32_be"
+              c:identifier="gst_byte_reader_get_uint32_be"
+              doc="Read an unsigned 32 bit big endian integer into @val
+and update the current position."
+              version="0.10.22">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="val" direction="out" transfer-ownership="full">
+            <type name="uint32" c:type="guint32*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_int32_be"
+              c:identifier="gst_byte_reader_get_int32_be"
+              doc="Read a signed 32 bit big endian integer into @val
+and update the current position."
+              version="0.10.22">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="val" direction="out" transfer-ownership="full">
+            <type name="int32" c:type="gint32*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_uint64_le"
+              c:identifier="gst_byte_reader_get_uint64_le"
+              doc="Read an unsigned 64 bit little endian integer into @val
+and update the current position."
+              version="0.10.22">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="val" direction="out" transfer-ownership="full">
+            <type name="uint64" c:type="guint64*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_int64_le"
+              c:identifier="gst_byte_reader_get_int64_le"
+              doc="Read a signed 64 bit little endian integer into @val
+and update the current position."
+              version="0.10.22">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="val" direction="out" transfer-ownership="full">
+            <type name="int64" c:type="gint64*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_uint64_be"
+              c:identifier="gst_byte_reader_get_uint64_be"
+              doc="Read an unsigned 64 bit big endian integer into @val
+and update the current position."
+              version="0.10.22">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="val" direction="out" transfer-ownership="full">
+            <type name="uint64" c:type="guint64*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_int64_be"
+              c:identifier="gst_byte_reader_get_int64_be"
+              doc="Read a signed 64 bit big endian integer into @val
+and update the current position."
+              version="0.10.22">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="val" direction="out" transfer-ownership="full">
+            <type name="int64" c:type="gint64*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="peek_uint8"
+              c:identifier="gst_byte_reader_peek_uint8"
+              doc="Read a signed 8 bit integer into @val but keep the current position."
+              version="0.10.22">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="val" transfer-ownership="none">
+            <array c:type="guint8*">
+              <type name="uint8"/>
+            </array>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="peek_int8"
+              c:identifier="gst_byte_reader_peek_int8"
+              doc="Read a signed 8 bit integer into @val but keep the current position."
+              version="0.10.22">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="val" direction="out" transfer-ownership="full">
+            <type name="int8" c:type="gint8*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="peek_uint16_le"
+              c:identifier="gst_byte_reader_peek_uint16_le"
+              doc="Read a signed 16 bit little endian integer into @val
+but keep the current position."
+              version="0.10.22">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="val" direction="out" transfer-ownership="full">
+            <type name="uint16" c:type="guint16*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="peek_int16_le"
+              c:identifier="gst_byte_reader_peek_int16_le"
+              doc="Read a signed 16 bit little endian integer into @val
+but keep the current position."
+              version="0.10.22">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="val" direction="out" transfer-ownership="full">
+            <type name="int16" c:type="gint16*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="peek_uint16_be"
+              c:identifier="gst_byte_reader_peek_uint16_be"
+              doc="Read a signed 16 bit big endian integer into @val
+but keep the current position."
+              version="0.10.22">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="val" direction="out" transfer-ownership="full">
+            <type name="uint16" c:type="guint16*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="peek_int16_be"
+              c:identifier="gst_byte_reader_peek_int16_be"
+              doc="Read a signed 16 bit big endian integer into @val
+but keep the current position."
+              version="0.10.22">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="val" direction="out" transfer-ownership="full">
+            <type name="int16" c:type="gint16*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="peek_uint24_le"
+              c:identifier="gst_byte_reader_peek_uint24_le"
+              doc="Read a signed 24 bit little endian integer into @val
+but keep the current position."
+              version="0.10.22">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="val" direction="out" transfer-ownership="full">
+            <type name="uint32" c:type="guint32*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="peek_int24_le"
+              c:identifier="gst_byte_reader_peek_int24_le"
+              doc="Read a signed 24 bit little endian integer into @val
+but keep the current position."
+              version="0.10.22">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="val" direction="out" transfer-ownership="full">
+            <type name="int32" c:type="gint32*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="peek_uint24_be"
+              c:identifier="gst_byte_reader_peek_uint24_be"
+              doc="Read a signed 24 bit big endian integer into @val
+but keep the current position."
+              version="0.10.22">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="val" direction="out" transfer-ownership="full">
+            <type name="uint32" c:type="guint32*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="peek_int24_be"
+              c:identifier="gst_byte_reader_peek_int24_be"
+              doc="Read a signed 24 bit big endian integer into @val
+but keep the current position."
+              version="0.10.22">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="val" direction="out" transfer-ownership="full">
+            <type name="int32" c:type="gint32*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="peek_uint32_le"
+              c:identifier="gst_byte_reader_peek_uint32_le"
+              doc="Read a signed 32 bit little endian integer into @val
+but keep the current position."
+              version="0.10.22">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="val" direction="out" transfer-ownership="full">
+            <type name="uint32" c:type="guint32*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="peek_int32_le"
+              c:identifier="gst_byte_reader_peek_int32_le"
+              doc="Read a signed 32 bit little endian integer into @val
+but keep the current position."
+              version="0.10.22">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="val" direction="out" transfer-ownership="full">
+            <type name="int32" c:type="gint32*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="peek_uint32_be"
+              c:identifier="gst_byte_reader_peek_uint32_be"
+              doc="Read a signed 32 bit big endian integer into @val
+but keep the current position."
+              version="0.10.22">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="val" direction="out" transfer-ownership="full">
+            <type name="uint32" c:type="guint32*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="peek_int32_be"
+              c:identifier="gst_byte_reader_peek_int32_be"
+              doc="Read a signed 32 bit big endian integer into @val
+but keep the current position."
+              version="0.10.22">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="val" direction="out" transfer-ownership="full">
+            <type name="int32" c:type="gint32*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="peek_uint64_le"
+              c:identifier="gst_byte_reader_peek_uint64_le"
+              doc="Read a signed 64 bit little endian integer into @val
+but keep the current position."
+              version="0.10.22">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="val" direction="out" transfer-ownership="full">
+            <type name="uint64" c:type="guint64*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="peek_int64_le"
+              c:identifier="gst_byte_reader_peek_int64_le"
+              doc="Read a signed 64 bit little endian integer into @val
+but keep the current position."
+              version="0.10.22">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="val" direction="out" transfer-ownership="full">
+            <type name="int64" c:type="gint64*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="peek_uint64_be"
+              c:identifier="gst_byte_reader_peek_uint64_be"
+              doc="Read a signed 64 bit big endian integer into @val
+but keep the current position."
+              version="0.10.22">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="val" direction="out" transfer-ownership="full">
+            <type name="uint64" c:type="guint64*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="peek_int64_be"
+              c:identifier="gst_byte_reader_peek_int64_be"
+              doc="Read a signed 64 bit big endian integer into @val
+but keep the current position."
+              version="0.10.22">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="val" direction="out" transfer-ownership="full">
+            <type name="int64" c:type="gint64*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_float32_le"
+              c:identifier="gst_byte_reader_get_float32_le"
+              doc="Read a 32 bit little endian floating point value into @val
+and update the current position."
+              version="0.10.22">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="val" direction="out" transfer-ownership="full">
+            <type name="float" c:type="gfloat*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_float32_be"
+              c:identifier="gst_byte_reader_get_float32_be"
+              doc="Read a 32 bit big endian floating point value into @val
+and update the current position."
+              version="0.10.22">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="val" direction="out" transfer-ownership="full">
+            <type name="float" c:type="gfloat*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_float64_le"
+              c:identifier="gst_byte_reader_get_float64_le"
+              doc="Read a 64 bit little endian floating point value into @val
+and update the current position."
+              version="0.10.22">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="val" direction="out" transfer-ownership="full">
+            <type name="double" c:type="gdouble*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_float64_be"
+              c:identifier="gst_byte_reader_get_float64_be"
+              doc="Read a 64 bit big endian floating point value into @val
+and update the current position."
+              version="0.10.22">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="val" direction="out" transfer-ownership="full">
+            <type name="double" c:type="gdouble*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="peek_float32_le"
+              c:identifier="gst_byte_reader_peek_float32_le"
+              doc="Read a 32 bit little endian floating point value into @val
+but keep the current position."
+              version="0.10.22">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="val" direction="out" transfer-ownership="full">
+            <type name="float" c:type="gfloat*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="peek_float32_be"
+              c:identifier="gst_byte_reader_peek_float32_be"
+              doc="Read a 32 bit big endian floating point value into @val
+but keep the current position."
+              version="0.10.22">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="val" direction="out" transfer-ownership="full">
+            <type name="float" c:type="gfloat*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="peek_float64_le"
+              c:identifier="gst_byte_reader_peek_float64_le"
+              doc="Read a 64 bit little endian floating point value into @val
+but keep the current position."
+              version="0.10.22">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="val" direction="out" transfer-ownership="full">
+            <type name="double" c:type="gdouble*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="peek_float64_be"
+              c:identifier="gst_byte_reader_peek_float64_be"
+              doc="Read a 64 bit big endian floating point value into @val
+but keep the current position."
+              version="0.10.22">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="val" direction="out" transfer-ownership="full">
+            <type name="double" c:type="gdouble*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="dup_data"
+              c:identifier="gst_byte_reader_dup_data"
+              doc="Returns a newly-allocated copy of the current data
+position if at least @size bytes are left and
+updates the current position."
+              version="0.10.24">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="size" transfer-ownership="none">
+            <type name="uint" c:type="guint"/>
+          </parameter>
+          <parameter name="val" direction="out" transfer-ownership="full">
+            <type name="uint8" c:type="guint8**"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_data"
+              c:identifier="gst_byte_reader_get_data"
+              doc="Returns a constant pointer to the current data
+position if at least @size bytes are left and
+updates the current position."
+              version="0.10.22">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="size" transfer-ownership="none">
+            <type name="uint" c:type="guint"/>
+          </parameter>
+          <parameter name="val" direction="out" transfer-ownership="full">
+            <type name="uint8" c:type="guint8**"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="peek_data"
+              c:identifier="gst_byte_reader_peek_data"
+              doc="Returns a constant pointer to the current data
+position if at least @size bytes are left and
+keeps the current position."
+              version="0.10.22">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="size" transfer-ownership="none">
+            <type name="uint" c:type="guint"/>
+          </parameter>
+          <parameter name="val" direction="out" transfer-ownership="full">
+            <type name="uint8" c:type="guint8**"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="dup_string_utf8"
+              c:identifier="gst_byte_reader_dup_string_utf8"
+              doc="FIXME:Reads (copies) a NUL-terminated string in the #GstByteReader instance,
+advancing the current position to the byte after the string. This will work
+for any NUL-terminated string with a character width of 8 bits, so ASCII,
+UTF-8, ISO-8859-N etc. No input checking for valid UTF-8 is done.
+This function will fail if no NUL-terminator was found in in the data.
+string put into @str must be freed with g_free() when no longer needed."
+              version="0.10.24">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="str" transfer-ownership="none">
+            <array c:type="gchar**">
+              <type name="utf8"/>
+            </array>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="dup_string_utf16"
+              c:identifier="gst_byte_reader_dup_string_utf16"
+              doc="Returns a newly-allocated copy of the current data position if there is
+a NUL-terminated UTF-16 string in the data (this could be an empty string
+as well), and advances the current position.
+No input checking for valid UTF-16 is done. This function is endianness
+agnostic - you should not assume the UTF-16 characters are in host
+endianness.
+This function will fail if no NUL-terminator was found in in the data.
+byte alignment of the UTF-16 string.
+string put into @str must be freed with g_free() when no longer needed."
+              version="0.10.24">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="str" direction="out" transfer-ownership="full">
+            <type name="uint16" c:type="guint16**"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="dup_string_utf32"
+              c:identifier="gst_byte_reader_dup_string_utf32"
+              doc="Returns a newly-allocated copy of the current data position if there is
+a NUL-terminated UTF-32 string in the data (this could be an empty string
+as well), and advances the current position.
+No input checking for valid UTF-32 is done. This function is endianness
+agnostic - you should not assume the UTF-32 characters are in host
+endianness.
+This function will fail if no NUL-terminator was found in in the data.
+byte alignment of the UTF-32 string.
+string put into @str must be freed with g_free() when no longer needed."
+              version="0.10.24">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="str" direction="out" transfer-ownership="full">
+            <type name="uint32" c:type="guint32**"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="skip_string_utf8"
+              c:identifier="gst_byte_reader_skip_string_utf8"
+              doc="Skips a NUL-terminated string in the #GstByteReader instance, advancing
+the current position to the byte after the string. This will work for
+any NUL-terminated string with a character width of 8 bits, so ASCII,
+UTF-8, ISO-8859-N etc. No input checking for valid UTF-8 is done.
+This function will fail if no NUL-terminator was found in in the data."
+              version="0.10.24">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+      </method>
+      <method name="skip_string_utf16"
+              c:identifier="gst_byte_reader_skip_string_utf16"
+              doc="Skips a NUL-terminated UTF-16 string in the #GstByteReader instance,
+advancing the current position to the byte after the string.
+No input checking for valid UTF-16 is done.
+This function will fail if no NUL-terminator was found in in the data."
+              version="0.10.24">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+      </method>
+      <method name="skip_string_utf32"
+              c:identifier="gst_byte_reader_skip_string_utf32"
+              doc="Skips a NUL-terminated UTF-32 string in the #GstByteReader instance,
+advancing the current position to the byte after the string.
+No input checking for valid UTF-32 is done.
+This function will fail if no NUL-terminator was found in in the data."
+              version="0.10.24">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+      </method>
+      <method name="get_string_utf8"
+              c:identifier="gst_byte_reader_get_string_utf8"
+              doc="Returns a constant pointer to the current data position if there is
+a NUL-terminated string in the data (this could be just a NUL terminator),
+advancing the current position to the byte after the string. This will work
+for any NUL-terminated string with a character width of 8 bits, so ASCII,
+UTF-8, ISO-8859-N etc.
+No input checking for valid UTF-8 is done.
+This function will fail if no NUL-terminator was found in in the data."
+              version="0.10.24">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="str" transfer-ownership="none">
+            <array c:type="gchar**">
+              <type name="utf8"/>
+            </array>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="peek_string_utf8"
+              c:identifier="gst_byte_reader_peek_string_utf8"
+              doc="Returns a constant pointer to the current data position if there is
+a NUL-terminated string in the data (this could be just a NUL terminator).
+The current position will be maintained. This will work for any
+NUL-terminated string with a character width of 8 bits, so ASCII,
+UTF-8, ISO-8859-N etc.
+No input checking for valid UTF-8 is done.
+This function will fail if no NUL-terminator was found in in the data."
+              version="0.10.24">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="str" transfer-ownership="none">
+            <array c:type="gchar**">
+              <type name="utf8"/>
+            </array>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="masked_scan_uint32"
+              c:identifier="gst_byte_reader_masked_scan_uint32"
+              doc="position
+Scan for pattern @pattern with applied mask @mask in the byte reader data,
+starting from offset @offset relative to the current position.
+The bytes in @pattern and @mask are interpreted left-to-right, regardless
+of endianness.  All four bytes of the pattern must be present in the
+byte reader data for it to match, even if the first or last bytes are masked
+out.
+It is an error to call this function without making sure that there is
+enough data (offset+size bytes) in the byte reader.
+Example:
+&lt;programlisting&gt;
+// Assume the reader contains 0x00 0x01 0x02 ... 0xfe 0xff
+gst_byte_reader_masked_scan_uint32 (reader, 0xffffffff, 0x00010203, 0, 256);
+// -&gt; returns 0
+gst_byte_reader_masked_scan_uint32 (reader, 0xffffffff, 0x00010203, 1, 255);
+// -&gt; returns -1
+gst_byte_reader_masked_scan_uint32 (reader, 0xffffffff, 0x01020304, 1, 255);
+// -&gt; returns 1
+gst_byte_reader_masked_scan_uint32 (reader, 0xffff, 0x0001, 0, 256);
+// -&gt; returns -1
+gst_byte_reader_masked_scan_uint32 (reader, 0xffff, 0x0203, 0, 256);
+// -&gt; returns 0
+gst_byte_reader_masked_scan_uint32 (reader, 0xffff0000, 0x02030000, 0, 256);
+// -&gt; returns 2
+gst_byte_reader_masked_scan_uint32 (reader, 0xffff0000, 0x02030000, 0, 4);
+// -&gt; returns -1
+&lt;/programlisting&gt;"
+              version="0.10.24">
+        <return-value transfer-ownership="none">
+          <type name="uint" c:type="guint"/>
+        </return-value>
+        <parameters>
+          <parameter name="mask" transfer-ownership="none">
+            <type name="uint32" c:type="guint32"/>
+          </parameter>
+          <parameter name="pattern" transfer-ownership="none">
+            <type name="uint32" c:type="guint32"/>
+          </parameter>
+          <parameter name="offset" transfer-ownership="none">
+            <type name="uint" c:type="guint"/>
+          </parameter>
+          <parameter name="size" transfer-ownership="none">
+            <type name="uint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+    </record>
+    <record name="ByteWriter"
+            c:type="GstByteWriter"
+            doc="A byte writer instance.">
+      <field name="parent" writable="1">
+        <type name="ByteReader" c:type="GstByteReader"/>
+      </field>
+      <field name="alloc_size" writable="1">
+        <type name="uint" c:type="guint"/>
+      </field>
+      <field name="fixed" writable="1">
+        <type name="boolean" c:type="gboolean"/>
+      </field>
+      <field name="owned" writable="1">
+        <type name="boolean" c:type="gboolean"/>
+      </field>
+      <constructor name="new"
+                   c:identifier="gst_byte_writer_new"
+                   doc="Creates a new, empty #GstByteWriter instance"
+                   version="0.10.26">
+        <return-value transfer-ownership="full">
+          <type name="ByteWriter" c:type="GstByteWriter*"/>
+        </return-value>
+      </constructor>
+      <constructor name="new_with_size"
+                   c:identifier="gst_byte_writer_new_with_size"
+                   doc="Creates a new #GstByteWriter instance with the given
+initial data size."
+                   version="0.10.26">
+        <return-value transfer-ownership="full">
+          <type name="ByteWriter" c:type="GstByteWriter*"/>
+        </return-value>
+        <parameters>
+          <parameter name="size" transfer-ownership="none">
+            <type name="uint" c:type="guint"/>
+          </parameter>
+          <parameter name="fixed" transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <constructor name="new_with_data"
+                   c:identifier="gst_byte_writer_new_with_data"
+                   doc="Creates a new #GstByteWriter instance with the given
+memory area. If @initialized is %TRUE it is possible to
+read @size bytes from the #GstByteWriter from the beginning."
+                   version="0.10.26">
+        <return-value transfer-ownership="full">
+          <type name="ByteWriter" c:type="GstByteWriter*"/>
+        </return-value>
+        <parameters>
+          <parameter name="data" transfer-ownership="none">
+            <array c:type="guint8*">
+              <type name="uint8"/>
+            </array>
+          </parameter>
+          <parameter name="size" transfer-ownership="none">
+            <type name="uint" c:type="guint"/>
+          </parameter>
+          <parameter name="initialized" transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <constructor name="new_with_buffer"
+                   c:identifier="gst_byte_writer_new_with_buffer"
+                   doc="Creates a new #GstByteWriter instance with the given
+buffer. If @initialized is %TRUE it is possible to
+read the complete buffer from the #GstByteWriter from the beginning.
+&lt;note&gt;@buffer must be writable&lt;/note&gt;"
+                   version="0.10.26">
+        <return-value transfer-ownership="full">
+          <type name="ByteWriter" c:type="GstByteWriter*"/>
+        </return-value>
+        <parameters>
+          <parameter name="buffer" transfer-ownership="none">
+            <type name="Gst.Buffer" c:type="GstBuffer*"/>
+          </parameter>
+          <parameter name="initialized" transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <method name="init"
+              c:identifier="gst_byte_writer_init"
+              doc="Initializes @writer to an empty instance"
+              version="0.10.26">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </method>
+      <method name="init_with_size"
+              c:identifier="gst_byte_writer_init_with_size"
+              doc="Initializes @writer with the given initial data size."
+              version="0.10.26">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="size" transfer-ownership="none">
+            <type name="uint" c:type="guint"/>
+          </parameter>
+          <parameter name="fixed" transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="init_with_data"
+              c:identifier="gst_byte_writer_init_with_data"
+              doc="Initializes @writer with the given
+memory area. If @initialized is %TRUE it is possible to
+read @size bytes from the #GstByteWriter from the beginning."
+              version="0.10.26">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="data" transfer-ownership="none">
+            <array c:type="guint8*">
+              <type name="uint8"/>
+            </array>
+          </parameter>
+          <parameter name="size" transfer-ownership="none">
+            <type name="uint" c:type="guint"/>
+          </parameter>
+          <parameter name="initialized" transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="init_with_buffer"
+              c:identifier="gst_byte_writer_init_with_buffer"
+              doc="Initializes @writer with the given
+buffer. If @initialized is %TRUE it is possible to
+read the complete buffer from the #GstByteWriter from the beginning.
+&lt;note&gt;@buffer must be writable&lt;/note&gt;"
+              version="0.10.26">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="buffer" transfer-ownership="none">
+            <type name="Gst.Buffer" c:type="GstBuffer*"/>
+          </parameter>
+          <parameter name="initialized" transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="free"
+              c:identifier="gst_byte_writer_free"
+              doc="Frees @writer and all memory allocated by it."
+              version="0.10.26">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </method>
+      <method name="free_and_get_data"
+              c:identifier="gst_byte_writer_free_and_get_data"
+              doc="Frees @writer and all memory allocated by it except
+the current data, which is returned."
+              version="0.10.26">
+        <return-value transfer-ownership="full" doc="after usage.">
+          <array c:type="guint8*">
+            <type name="uint8"/>
+          </array>
+        </return-value>
+      </method>
+      <method name="free_and_get_buffer"
+              c:identifier="gst_byte_writer_free_and_get_buffer"
+              doc="Frees @writer and all memory allocated by it except
+the current data, which is returned as #GstBuffer."
+              version="0.10.26">
+        <return-value transfer-ownership="full" doc="after usage.">
+          <type name="Gst.Buffer" c:type="GstBuffer*"/>
+        </return-value>
+      </method>
+      <method name="reset"
+              c:identifier="gst_byte_writer_reset"
+              doc="Resets @writer and frees the data if it&apos;s
+owned by @writer."
+              version="0.10.26">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </method>
+      <method name="reset_and_get_data"
+              c:identifier="gst_byte_writer_reset_and_get_data"
+              doc="Resets @writer and returns the current data."
+              version="0.10.26">
+        <return-value transfer-ownership="full" doc="after usage.">
+          <array c:type="guint8*">
+            <type name="uint8"/>
+          </array>
+        </return-value>
+      </method>
+      <method name="reset_and_get_buffer"
+              c:identifier="gst_byte_writer_reset_and_get_buffer"
+              doc="Resets @writer and returns the current data as buffer."
+              version="0.10.26">
+        <return-value transfer-ownership="full" doc="after usage.">
+          <type name="Gst.Buffer" c:type="GstBuffer*"/>
+        </return-value>
+      </method>
+      <method name="get_remaining"
+              c:identifier="gst_byte_writer_get_remaining"
+              doc="Returns the remaining size of data that can still be written. If
+-1 is returned the remaining size is only limited by system resources."
+              version="0.10.26">
+        <return-value transfer-ownership="none">
+          <type name="uint" c:type="guint"/>
+        </return-value>
+      </method>
+      <method name="ensure_free_space"
+              c:identifier="gst_byte_writer_ensure_free_space"
+              doc="Checks if enough free space from the current write cursor is
+available and reallocates if necessary."
+              version="0.10.26">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="size" transfer-ownership="none">
+            <type name="uint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="put_uint8"
+              c:identifier="gst_byte_writer_put_uint8"
+              doc="Writes a unsigned 8 bit integer to @writer."
+              version="0.10.26">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="val" transfer-ownership="none">
+            <type name="uint8" c:type="guint8"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="put_int8"
+              c:identifier="gst_byte_writer_put_int8"
+              doc="Writes a signed 8 bit integer to @writer."
+              version="0.10.26">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="val" transfer-ownership="none">
+            <type name="int8" c:type="gint8"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="put_uint16_be"
+              c:identifier="gst_byte_writer_put_uint16_be"
+              doc="Writes a unsigned big endian 16 bit integer to @writer."
+              version="0.10.26">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="val" transfer-ownership="none">
+            <type name="uint16" c:type="guint16"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="put_uint16_le"
+              c:identifier="gst_byte_writer_put_uint16_le"
+              doc="Writes a unsigned little endian 16 bit integer to @writer."
+              version="0.10.26">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="val" transfer-ownership="none">
+            <type name="uint16" c:type="guint16"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="put_int16_be"
+              c:identifier="gst_byte_writer_put_int16_be"
+              doc="Writes a signed big endian 16 bit integer to @writer."
+              version="0.10.26">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="val" transfer-ownership="none">
+            <type name="int16" c:type="gint16"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="put_int16_le"
+              c:identifier="gst_byte_writer_put_int16_le"
+              doc="Writes a signed little endian 16 bit integer to @writer."
+              version="0.10.26">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="val" transfer-ownership="none">
+            <type name="int16" c:type="gint16"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="put_uint24_be"
+              c:identifier="gst_byte_writer_put_uint24_be"
+              doc="Writes a unsigned big endian 24 bit integer to @writer."
+              version="0.10.26">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="val" transfer-ownership="none">
+            <type name="uint32" c:type="guint32"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="put_uint24_le"
+              c:identifier="gst_byte_writer_put_uint24_le"
+              doc="Writes a unsigned little endian 24 bit integer to @writer."
+              version="0.10.26">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="val" transfer-ownership="none">
+            <type name="uint32" c:type="guint32"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="put_int24_be"
+              c:identifier="gst_byte_writer_put_int24_be"
+              doc="Writes a signed big endian 24 bit integer to @writer."
+              version="0.10.26">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="val" transfer-ownership="none">
+            <type name="int32" c:type="gint32"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="put_int24_le"
+              c:identifier="gst_byte_writer_put_int24_le"
+              doc="Writes a signed little endian 24 bit integer to @writer."
+              version="0.10.26">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="val" transfer-ownership="none">
+            <type name="int32" c:type="gint32"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="put_uint32_be"
+              c:identifier="gst_byte_writer_put_uint32_be"
+              doc="Writes a unsigned big endian 32 bit integer to @writer."
+              version="0.10.26">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="val" transfer-ownership="none">
+            <type name="uint32" c:type="guint32"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="put_uint32_le"
+              c:identifier="gst_byte_writer_put_uint32_le"
+              doc="Writes a unsigned little endian 32 bit integer to @writer."
+              version="0.10.26">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="val" transfer-ownership="none">
+            <type name="uint32" c:type="guint32"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="put_int32_be"
+              c:identifier="gst_byte_writer_put_int32_be"
+              doc="Writes a signed big endian 32 bit integer to @writer."
+              version="0.10.26">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="val" transfer-ownership="none">
+            <type name="int32" c:type="gint32"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="put_int32_le"
+              c:identifier="gst_byte_writer_put_int32_le"
+              doc="Writes a signed little endian 32 bit integer to @writer."
+              version="0.10.26">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="val" transfer-ownership="none">
+            <type name="int32" c:type="gint32"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="put_uint64_be"
+              c:identifier="gst_byte_writer_put_uint64_be"
+              doc="Writes a unsigned big endian 64 bit integer to @writer."
+              version="0.10.26">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="val" transfer-ownership="none">
+            <type name="uint64" c:type="guint64"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="put_uint64_le"
+              c:identifier="gst_byte_writer_put_uint64_le"
+              doc="Writes a unsigned little endian 64 bit integer to @writer."
+              version="0.10.26">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="val" transfer-ownership="none">
+            <type name="uint64" c:type="guint64"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="put_int64_be"
+              c:identifier="gst_byte_writer_put_int64_be"
+              doc="Writes a signed big endian 64 bit integer to @writer."
+              version="0.10.26">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="val" transfer-ownership="none">
+            <type name="int64" c:type="gint64"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="put_int64_le"
+              c:identifier="gst_byte_writer_put_int64_le"
+              doc="Writes a signed little endian 64 bit integer to @writer."
+              version="0.10.26">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="val" transfer-ownership="none">
+            <type name="int64" c:type="gint64"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="put_float32_be"
+              c:identifier="gst_byte_writer_put_float32_be"
+              doc="Writes a big endian 32 bit float to @writer."
+              version="0.10.27">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="val" transfer-ownership="none">
+            <type name="float" c:type="gfloat"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="put_float32_le"
+              c:identifier="gst_byte_writer_put_float32_le"
+              doc="Writes a little endian 32 bit float to @writer."
+              version="0.10.27">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="val" transfer-ownership="none">
+            <type name="float" c:type="gfloat"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="put_float64_be"
+              c:identifier="gst_byte_writer_put_float64_be"
+              doc="Writes a big endian 64 bit float to @writer."
+              version="0.10.27">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="val" transfer-ownership="none">
+            <type name="double" c:type="gdouble"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="put_float64_le"
+              c:identifier="gst_byte_writer_put_float64_le"
+              doc="Writes a little endian 64 bit float to @writer."
+              version="0.10.27">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="val" transfer-ownership="none">
+            <type name="double" c:type="gdouble"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="put_data"
+              c:identifier="gst_byte_writer_put_data"
+              doc="Writes @size bytes of @data to @writer."
+              version="0.10.26">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="data" transfer-ownership="none">
+            <array c:type="guint8*">
+              <type name="uint8"/>
+            </array>
+          </parameter>
+          <parameter name="size" transfer-ownership="none">
+            <type name="uint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="fill"
+              c:identifier="gst_byte_writer_fill"
+              doc="Writes @size bytes containing @value to @writer."
+              version="0.10.27">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="value" transfer-ownership="none">
+            <type name="uint8" c:type="guint8"/>
+          </parameter>
+          <parameter name="size" transfer-ownership="none">
+            <type name="uint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="put_string_utf8"
+              c:identifier="gst_byte_writer_put_string_utf8"
+              doc="Writes a null-terminated UTF8 string to @writer."
+              version="0.10.26">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="data" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="put_string_utf16"
+              c:identifier="gst_byte_writer_put_string_utf16"
+              doc="Writes a null-terminated UTF16 string to @writer."
+              version="0.10.26">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="data" direction="out" transfer-ownership="none">
+            <type name="uint16" c:type="guint16*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="put_string_utf32"
+              c:identifier="gst_byte_writer_put_string_utf32"
+              doc="Writes a null-terminated UTF32 string to @writer."
+              version="0.10.26">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="data" direction="out" transfer-ownership="none">
+            <type name="uint32" c:type="guint32*"/>
+          </parameter>
+        </parameters>
+      </method>
+    </record>
+    <record name="CollectData"
+            c:type="GstCollectData"
+            doc="Structure used by the collect_pads.">
+      <field name="collect" writable="1">
+        <type name="CollectPads" c:type="GstCollectPads*"/>
+      </field>
+      <field name="pad" writable="1">
+        <type name="Gst.Pad" c:type="GstPad*"/>
+      </field>
+      <field name="buffer" writable="1">
+        <type name="Gst.Buffer" c:type="GstBuffer*"/>
+      </field>
+      <field name="pos" writable="1">
+        <type name="uint" c:type="guint"/>
+      </field>
+      <field name="segment" writable="1">
+        <type name="Gst.Segment" c:type="GstSegment"/>
+      </field>
+      <union name="abidata" c:type="abidata">
+        <record name="ABI" c:type="ABI">
+          <field name="flushing" writable="1">
+            <type name="boolean" c:type="gboolean"/>
+          </field>
+          <field name="new_segment" writable="1">
+            <type name="boolean" c:type="gboolean"/>
+          </field>
+          <field name="eos" writable="1">
+            <type name="boolean" c:type="gboolean"/>
+          </field>
+          <field name="refcount" writable="1">
+            <type name="int" c:type="gint"/>
+          </field>
+        </record>
+        <field name="_gst_reserved" writable="1">
+          <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+            <type name="any"/>
+          </array>
+        </field>
+      </union>
+    </record>
+    <callback name="CollectDataDestroyNotify"
+              c:type="GstCollectDataDestroyNotify"
+              doc="A function that will be called when the #GstCollectData will be freed.
+It is passed the pointer to the structure and should free any custom
+memory and resources allocated for it."
+              version="0.10.12">
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="data" transfer-ownership="none">
+          <type name="CollectData" c:type="GstCollectData*"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <class name="CollectPads"
+           c:type="GstCollectPads"
+           doc="Collectpads object.
+Note that @data doesn&apos;t contain the complete #GstCollectData list
+at all times and should not be used for iterating them."
+           parent="Gst.Object"
+           glib:type-name="GstCollectPads"
+           glib:get-type="gst_collect_pads_get_type"
+           glib:type-struct="CollectPadsClass">
+      <constructor name="new"
+                   c:identifier="gst_collect_pads_new"
+                   doc="Create a new instance of #GstCollectPads.
+MT safe.">
+        <return-value transfer-ownership="full">
+          <type name="CollectPads" c:type="GstCollectPads*"/>
+        </return-value>
+      </constructor>
+      <method name="set_function"
+              c:identifier="gst_collect_pads_set_function"
+              doc="Set the callback function and user data that will be called when
+all the pads added to the collection have buffers queued.
+MT safe.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="func"
+                     transfer-ownership="none"
+                     scope="call"
+                     closure="2">
+            <type name="CollectPadsFunction" c:type="GstCollectPadsFunction"/>
+          </parameter>
+          <parameter name="user_data" transfer-ownership="none">
+            <type name="any" c:type="gpointer"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_clip_function"
+              c:identifier="gst_collect_pads_set_clip_function"
+              doc="Install a clipping function that is called right after a buffer is received
+on a pad managed by @pads. See #GstCollectDataClipFunction for more info."
+              version="0.10.26">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="clipfunc"
+                     transfer-ownership="none"
+                     scope="call"
+                     closure="2">
+            <type name="CollectPadsClipFunction"
+                  c:type="GstCollectPadsClipFunction"/>
+          </parameter>
+          <parameter name="user_data" transfer-ownership="none">
+            <type name="any" c:type="gpointer"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="add_pad"
+              c:identifier="gst_collect_pads_add_pad"
+              doc="Add a pad to the collection of collect pads. The pad has to be
+a sinkpad. The refcount of the pad is incremented. Use
+gst_collect_pads_remove_pad() to remove the pad from the collection
+again.
+This function will override the chain and event functions of the pad
+along with the element_private data, which is used to store private
+information for the collectpads.
+You specify a size for the returned #GstCollectData structure
+so that you can use it to store additional information.
+The pad will be automatically activated in push mode when @pads is
+started.
+This function calls gst_collect_pads_add_pad() passing a value of NULL
+for destroy_notify.
+if wrong parameters are supplied.
+MT safe.">
+        <return-value transfer-ownership="full">
+          <type name="CollectData" c:type="GstCollectData*"/>
+        </return-value>
+        <parameters>
+          <parameter name="pad" transfer-ownership="none">
+            <type name="Gst.Pad" c:type="GstPad*"/>
+          </parameter>
+          <parameter name="size" transfer-ownership="none">
+            <type name="uint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="add_pad_full"
+              c:identifier="gst_collect_pads_add_pad_full"
+              doc="structure is freed
+Add a pad to the collection of collect pads. The pad has to be
+a sinkpad. The refcount of the pad is incremented. Use
+gst_collect_pads_remove_pad() to remove the pad from the collection
+again.
+You specify a size for the returned #GstCollectData structure
+so that you can use it to store additional information.
+You can also specify a #GstCollectDataDestroyNotify that will be called
+just before the #GstCollectData structure is freed. It is passed the
+pointer to the structure and should free any custom memory and resources
+allocated for it.
+The pad will be automatically activated in push mode when @pads is
+started.
+if wrong parameters are supplied.
+MT safe."
+              version="0.10.12">
+        <return-value transfer-ownership="full">
+          <type name="CollectData" c:type="GstCollectData*"/>
+        </return-value>
+        <parameters>
+          <parameter name="pad" transfer-ownership="none">
+            <type name="Gst.Pad" c:type="GstPad*"/>
+          </parameter>
+          <parameter name="size" transfer-ownership="none">
+            <type name="uint" c:type="guint"/>
+          </parameter>
+          <parameter name="destroy_notify"
+                     transfer-ownership="none"
+                     scope="call">
+            <type name="CollectDataDestroyNotify"
+                  c:type="GstCollectDataDestroyNotify"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="remove_pad"
+              c:identifier="gst_collect_pads_remove_pad"
+              doc="Remove a pad from the collection of collect pads. This function will also
+free the #GstCollectData and all the resources that were allocated with
+gst_collect_pads_add_pad().
+The pad will be deactivated automatically when @pads is stopped.
+MT safe.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="pad" transfer-ownership="none">
+            <type name="Gst.Pad" c:type="GstPad*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="is_active"
+              c:identifier="gst_collect_pads_is_active"
+              doc="Check if a pad is active.
+This function is currently not implemented.
+MT safe.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="pad" transfer-ownership="none">
+            <type name="Gst.Pad" c:type="GstPad*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="collect"
+              c:identifier="gst_collect_pads_collect"
+              doc="Collect data on all pads. This function is usually called
+from a #GstTask function in an element.
+This function is currently not implemented.
+MT safe.">
+        <return-value transfer-ownership="full">
+          <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
+        </return-value>
+      </method>
+      <method name="collect_range"
+              c:identifier="gst_collect_pads_collect_range"
+              doc="Collect data with @offset and @length on all pads. This function
+is typically called in the getrange function of an element.
+This function is currently not implemented.
+MT safe.">
+        <return-value transfer-ownership="full">
+          <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
+        </return-value>
+        <parameters>
+          <parameter name="offset" transfer-ownership="none">
+            <type name="uint64" c:type="guint64"/>
+          </parameter>
+          <parameter name="length" transfer-ownership="none">
+            <type name="uint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="start"
+              c:identifier="gst_collect_pads_start"
+              doc="Starts the processing of data in the collect_pads.
+MT safe.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </method>
+      <method name="stop"
+              c:identifier="gst_collect_pads_stop"
+              doc="Stops the processing of data in the collect_pads. this function
+will also unblock any blocking operations.
+MT safe.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </method>
+      <method name="set_flushing"
+              c:identifier="gst_collect_pads_set_flushing"
+              doc="Change the flushing state of all the pads in the collection. No pad
+is able to accept anymore data when @flushing is %TRUE. Calling this
+function with @flushing %FALSE makes @pads accept data again.
+MT safe."
+              version="0.10.7.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="flushing" transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="peek"
+              c:identifier="gst_collect_pads_peek"
+              doc="Peek at the buffer currently queued in @data. This function
+should be called with the @pads LOCK held, such as in the callback
+handler.
+should unref the buffer after usage.
+MT safe.">
+        <return-value transfer-ownership="full">
+          <type name="Gst.Buffer" c:type="GstBuffer*"/>
+        </return-value>
+        <parameters>
+          <parameter name="data" transfer-ownership="none">
+            <type name="CollectData" c:type="GstCollectData*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="pop"
+              c:identifier="gst_collect_pads_pop"
+              doc="Pop the buffer currently queued in @data. This function
+should be called with the @pads LOCK held, such as in the callback
+handler.
+You should unref the buffer after usage.
+MT safe.">
+        <return-value transfer-ownership="full">
+          <type name="Gst.Buffer" c:type="GstBuffer*"/>
+        </return-value>
+        <parameters>
+          <parameter name="data" transfer-ownership="none">
+            <type name="CollectData" c:type="GstCollectData*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="available"
+              c:identifier="gst_collect_pads_available"
+              doc="Query how much bytes can be read from each queued buffer. This means
+that the result of this call is the maximum number of bytes that can
+be read from each of the pads.
+This function should be called with @pads LOCK held, such as
+in the callback.
+returns 0 if a pad has no queued buffer.
+MT safe.">
+        <return-value transfer-ownership="none">
+          <type name="uint" c:type="guint"/>
+        </return-value>
+      </method>
+      <method name="read"
+              c:identifier="gst_collect_pads_read"
+              doc="Get a pointer in @bytes where @size bytes can be read from the
+given pad @data.
+This function should be called with @pads LOCK held, such as
+in the callback.
+memory pointed to by @bytes. This can be less than @size and
+is 0 if the pad is end-of-stream.
+MT safe.">
+        <return-value transfer-ownership="none">
+          <type name="uint" c:type="guint"/>
+        </return-value>
+        <parameters>
+          <parameter name="data" transfer-ownership="none">
+            <type name="CollectData" c:type="GstCollectData*"/>
+          </parameter>
+          <parameter name="bytes" direction="out" transfer-ownership="full">
+            <type name="uint8" c:type="guint8**"/>
+          </parameter>
+          <parameter name="size" transfer-ownership="none">
+            <type name="uint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="read_buffer"
+              c:identifier="gst_collect_pads_read_buffer"
+              doc="Get a buffer of @size bytes from the given pad @data.
+This function should be called with @pads LOCK held, such as in the callback.
+A return of NULL signals that the pad is end-of-stream.
+Unref the buffer after use.
+MT safe."
+              version="0.10.18">
+        <return-value transfer-ownership="full">
+          <type name="Gst.Buffer" c:type="GstBuffer*"/>
+        </return-value>
+        <parameters>
+          <parameter name="data" transfer-ownership="none">
+            <type name="CollectData" c:type="GstCollectData*"/>
+          </parameter>
+          <parameter name="size" transfer-ownership="none">
+            <type name="uint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="take_buffer"
+              c:identifier="gst_collect_pads_take_buffer"
+              doc="Get a buffer of @size bytes from the given pad @data. Flushes the amount
+of read bytes.
+This function should be called with @pads LOCK held, such as in the callback.
+A return of NULL signals that the pad is end-of-stream.
+Unref the buffer after use.
+MT safe."
+              version="0.10.18">
+        <return-value transfer-ownership="full">
+          <type name="Gst.Buffer" c:type="GstBuffer*"/>
+        </return-value>
+        <parameters>
+          <parameter name="data" transfer-ownership="none">
+            <type name="CollectData" c:type="GstCollectData*"/>
+          </parameter>
+          <parameter name="size" transfer-ownership="none">
+            <type name="uint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="flush"
+              c:identifier="gst_collect_pads_flush"
+              doc="Flush @size bytes from the pad @data.
+This function should be called with @pads LOCK held, such as
+in the callback.
+is 0 if the pad was end-of-stream.
+MT safe.">
+        <return-value transfer-ownership="none">
+          <type name="uint" c:type="guint"/>
+        </return-value>
+        <parameters>
+          <parameter name="data" transfer-ownership="none">
+            <type name="CollectData" c:type="GstCollectData*"/>
+          </parameter>
+          <parameter name="size" transfer-ownership="none">
+            <type name="uint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <field name="object">
+        <type name="Gst.Object" c:type="GstObject"/>
+      </field>
+      <field name="data">
+        <type name="GLib.SList" c:type="GSList*"/>
+      </field>
+      <field name="cookie">
+        <type name="uint32" c:type="guint32"/>
+      </field>
+      <field name="cond">
+        <type name="GLib.Cond" c:type="GCond*"/>
+      </field>
+      <field name="func">
+        <type name="CollectPadsFunction" c:type="GstCollectPadsFunction"/>
+      </field>
+      <field name="user_data">
+        <type name="any" c:type="gpointer"/>
+      </field>
+      <field name="numpads">
+        <type name="uint" c:type="guint"/>
+      </field>
+      <field name="queuedpads">
+        <type name="uint" c:type="guint"/>
+      </field>
+      <field name="eospads">
+        <type name="uint" c:type="guint"/>
+      </field>
+      <field name="started">
+        <type name="boolean" c:type="gboolean"/>
+      </field>
+      <union name="abidata" c:type="abidata">
+        <record name="ABI" c:type="ABI">
+          <field name="pad_lock" writable="1">
+            <type name="GLib.Mutex" c:type="GMutex*"/>
+          </field>
+          <field name="pad_list" writable="1">
+            <type name="GLib.SList" c:type="GSList*"/>
+          </field>
+          <field name="pad_cookie" writable="1">
+            <type name="uint32" c:type="guint32"/>
+          </field>
+          <field name="priv" writable="1">
+            <type name="CollectPadsPrivate" c:type="GstCollectPadsPrivate*"/>
+          </field>
+        </record>
+        <field name="_gst_reserved" writable="1">
+          <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+            <type name="any"/>
+          </array>
+        </field>
+      </union>
+    </class>
+    <record name="CollectPadsClass"
+            c:type="GstCollectPadsClass"
+            glib:is-gtype-struct-for="CollectPads">
+      <field name="parent_class">
+        <type name="Gst.ObjectClass" c:type="GstObjectClass"/>
+      </field>
+      <field name="_gst_reserved">
+        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+          <type name="any"/>
+        </array>
+      </field>
+    </record>
+    <callback name="CollectPadsClipFunction"
+              c:type="GstCollectPadsClipFunction"
+              doc="A function that will be called when @buffer is received on the pad managed
+by @data in the collecpad object @pads.
+The function should use the segment of @data and the negotiated media type on
+the pad to perform clipping of @buffer.
+This function takes ownership of @buffer.
+the buffer has been clipped completely."
+              version="0.10.26">
+      <return-value transfer-ownership="full">
+        <type name="Gst.Buffer" c:type="GstBuffer*"/>
+      </return-value>
+      <parameters>
+        <parameter name="pads" transfer-ownership="none">
+          <type name="CollectPads" c:type="GstCollectPads*"/>
+        </parameter>
+        <parameter name="data" transfer-ownership="none">
+          <type name="CollectData" c:type="GstCollectData*"/>
+        </parameter>
+        <parameter name="buffer" transfer-ownership="none">
+          <type name="Gst.Buffer" c:type="GstBuffer*"/>
+        </parameter>
+        <parameter name="user_data" transfer-ownership="none" closure="3">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <callback name="CollectPadsFunction"
+              c:type="GstCollectPadsFunction"
+              doc="A function that will be called when all pads have received data.">
+      <return-value transfer-ownership="full">
+        <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
+      </return-value>
+      <parameters>
+        <parameter name="pads" transfer-ownership="none">
+          <type name="CollectPads" c:type="GstCollectPads*"/>
+        </parameter>
+        <parameter name="user_data" transfer-ownership="none" closure="1">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <record name="CollectPadsPrivate" c:type="GstCollectPadsPrivate">
+    </record>
+    <class name="DataQueue"
+           c:type="GstDataQueue"
+           doc="Opaque #GstDataQueue structure."
+           parent="GObject.Object"
+           glib:type-name="GstDataQueue"
+           glib:get-type="gst_data_queue_get_type"
+           glib:type-struct="DataQueueClass">
+      <constructor name="new" c:identifier="gst_data_queue_new" doc="or not.">
+        <return-value transfer-ownership="full">
+          <type name="DataQueue" c:type="GstDataQueue*"/>
+        </return-value>
+        <parameters>
+          <parameter name="checkfull"
+                     transfer-ownership="none"
+                     scope="call"
+                     closure="1">
+            <type name="DataQueueCheckFullFunction"
+                  c:type="GstDataQueueCheckFullFunction"/>
+          </parameter>
+          <parameter name="checkdata" transfer-ownership="none">
+            <type name="any" c:type="gpointer"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <constructor name="new_full"
+                   c:identifier="gst_data_queue_new_full"
+                   doc="or not.
+Creates a new #GstDataQueue. The difference with @gst_data_queue_new is that it will
+not emit the &apos;full&apos; and &apos;empty&apos; signals, but instead calling directly @fullcallback
+or @emptycallback."
+                   version="0.10.26">
+        <return-value transfer-ownership="full">
+          <type name="DataQueue" c:type="GstDataQueue*"/>
+        </return-value>
+        <parameters>
+          <parameter name="checkfull" transfer-ownership="none" scope="call">
+            <type name="DataQueueCheckFullFunction"
+                  c:type="GstDataQueueCheckFullFunction"/>
+          </parameter>
+          <parameter name="fullcallback"
+                     transfer-ownership="none"
+                     scope="call">
+            <type name="DataQueueFullCallback"
+                  c:type="GstDataQueueFullCallback"/>
+          </parameter>
+          <parameter name="emptycallback"
+                     transfer-ownership="none"
+                     scope="call"
+                     closure="3">
+            <type name="DataQueueEmptyCallback"
+                  c:type="GstDataQueueEmptyCallback"/>
+          </parameter>
+          <parameter name="checkdata" transfer-ownership="none">
+            <type name="any" c:type="gpointer"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <method name="push"
+              c:identifier="gst_data_queue_push"
+              doc="Pushes a #GstDataQueueItem (or a structure that begins with the same fields)
+on the @queue. If the @queue is full, the call will block until space is
+available, OR the @queue is set to flushing state.
+MT safe.
+Note that this function has slightly different semantics than gst_pad_push()
+the #GstMiniObject contained in @item if the push was successful. If FALSE
+is returned, the caller is responsible for freeing @item and its contents.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="item" transfer-ownership="none">
+            <type name="DataQueueItem" c:type="GstDataQueueItem*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="pop"
+              c:identifier="gst_data_queue_pop"
+              doc="Retrieves the first @item available on the @queue. If the queue is currently
+empty, the call will block until at least one item is available, OR the
+MT safe.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="item" transfer-ownership="none">
+            <type name="DataQueueItem" c:type="GstDataQueueItem**"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="flush"
+              c:identifier="gst_data_queue_flush"
+              doc="Flushes all the contents of the @queue. Any call to #gst_data_queue_push and
+#gst_data_queue_pop will be released.
+MT safe.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </method>
+      <method name="set_flushing"
+              c:identifier="gst_data_queue_set_flushing"
+              doc="Sets the queue to flushing state if @flushing is #TRUE. If set to flushing
+state, any incoming data on the @queue will be discarded. Any call currently
+blocking on #gst_data_queue_push or #gst_data_queue_pop will return straight
+away with a return value of #FALSE. While the @queue is in flushing state,
+all calls to those two functions will return #FALSE.
+MT Safe.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="flushing" transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="drop_head"
+              c:identifier="gst_data_queue_drop_head"
+              doc="Pop and unref the head-most #GstMiniObject with the given #GType.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="type" transfer-ownership="none">
+            <type name="GType" c:type="GType"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="is_full"
+              c:identifier="gst_data_queue_is_full"
+              doc="Queries if @queue is full. This check will be done using the
+#GstDataQueueCheckFullFunction registered with @queue.
+MT safe.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+      </method>
+      <method name="is_empty"
+              c:identifier="gst_data_queue_is_empty"
+              doc="Queries if there are any items in the @queue.
+MT safe.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+      </method>
+      <method name="get_level"
+              c:identifier="gst_data_queue_get_level"
+              doc="Get the current level of the queue.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="level" transfer-ownership="none">
+            <type name="DataQueueSize" c:type="GstDataQueueSize*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="limits_changed"
+              c:identifier="gst_data_queue_limits_changed"
+              doc="Inform the queue that the limits for the fullness check have changed and that
+any blocking gst_data_queue_push() should be unblocked to recheck the limts.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </method>
+      <property name="current-level-bytes">
+        <type name="uint" c:type="guint"/>
+      </property>
+      <property name="current-level-time">
+        <type name="uint64" c:type="guint64"/>
+      </property>
+      <property name="current-level-visible">
+        <type name="uint" c:type="guint"/>
+      </property>
+      <field name="object">
+        <type name="GObject.Object" c:type="GObject"/>
+      </field>
+      <field name="queue">
+        <type name="GLib.Queue" c:type="GQueue*"/>
+      </field>
+      <field name="cur_level">
+        <type name="DataQueueSize" c:type="GstDataQueueSize"/>
+      </field>
+      <field name="checkfull">
+        <type name="DataQueueCheckFullFunction"
+              c:type="GstDataQueueCheckFullFunction"/>
+      </field>
+      <field name="checkdata">
+        <type name="any" c:type="gpointer*"/>
+      </field>
+      <field name="qlock">
+        <type name="GLib.Mutex" c:type="GMutex*"/>
+      </field>
+      <field name="item_add">
+        <type name="GLib.Cond" c:type="GCond*"/>
+      </field>
+      <field name="item_del">
+        <type name="GLib.Cond" c:type="GCond*"/>
+      </field>
+      <field name="flushing">
+        <type name="boolean" c:type="gboolean"/>
+      </field>
+      <field name="fullcallback">
+        <type name="DataQueueFullCallback" c:type="GstDataQueueFullCallback"/>
+      </field>
+      <field name="emptycallback">
+        <type name="DataQueueEmptyCallback"
+              c:type="GstDataQueueEmptyCallback"/>
+      </field>
+      <field name="_gst_reserved">
+        <array zero-terminated="0" c:type="gpointer" fixed-size="2">
+          <type name="any"/>
+        </array>
+      </field>
+      <glib:signal name="empty"
+                   doc="Reports that the queue became empty (empty).
+A queue is empty if the total amount of visible items inside it (num-visible, time,
+size) is lower than the boundary values which can be set through the GObject
+properties.">
+        <return-value transfer-ownership="full">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </glib:signal>
+      <glib:signal name="full"
+                   doc="Reports that the queue became full (full).
+A queue is full if the total amount of data inside it (num-visible, time,
+size) is higher than the boundary values which can be set through the GObject
+properties.">
+        <return-value transfer-ownership="full">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </glib:signal>
+    </class>
+    <callback name="DataQueueCheckFullFunction"
+              c:type="GstDataQueueCheckFullFunction"
+              doc="The prototype of the function used to inform the queue that it should be
+considered as full.">
+      <return-value transfer-ownership="none">
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="queue" transfer-ownership="none">
+          <type name="DataQueue" c:type="GstDataQueue*"/>
+        </parameter>
+        <parameter name="visible" transfer-ownership="none">
+          <type name="uint" c:type="guint"/>
+        </parameter>
+        <parameter name="bytes" transfer-ownership="none">
+          <type name="uint" c:type="guint"/>
+        </parameter>
+        <parameter name="time" transfer-ownership="none">
+          <type name="uint64" c:type="guint64"/>
+        </parameter>
+        <parameter name="checkdata" transfer-ownership="none">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <record name="DataQueueClass"
+            c:type="GstDataQueueClass"
+            glib:is-gtype-struct-for="DataQueue">
+      <field name="parent_class">
+        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
+      </field>
+      <field name="empty">
+        <callback name="empty" c:type="empty">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="queue" transfer-ownership="none">
+              <type name="DataQueue" c:type="GstDataQueue*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="full">
+        <callback name="full" c:type="full">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="queue" transfer-ownership="none">
+              <type name="DataQueue" c:type="GstDataQueue*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="_gst_reserved">
+        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+          <type name="any"/>
+        </array>
+      </field>
+    </record>
+    <callback name="DataQueueEmptyCallback" c:type="GstDataQueueEmptyCallback">
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="queue" transfer-ownership="none">
+          <type name="DataQueue" c:type="GstDataQueue*"/>
+        </parameter>
+        <parameter name="checkdata" transfer-ownership="none">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <callback name="DataQueueFullCallback" c:type="GstDataQueueFullCallback">
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="queue" transfer-ownership="none">
+          <type name="DataQueue" c:type="GstDataQueue*"/>
+        </parameter>
+        <parameter name="checkdata" transfer-ownership="none">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <record name="DataQueueItem"
+            c:type="GstDataQueueItem"
+            doc="#GST_CLOCK_TIME_NONE.
+This function should also drop the reference to @object the owner of the
+#GstDataQueueItem is assumed to hold.
+Structure used by #GstDataQueue. You can supply a different structure, as
+long as the top of the structure is identical to this structure.">
+      <field name="object" writable="1">
+        <type name="Gst.MiniObject" c:type="GstMiniObject*"/>
+      </field>
+      <field name="size" writable="1">
+        <type name="uint" c:type="guint"/>
+      </field>
+      <field name="duration" writable="1">
+        <type name="uint64" c:type="guint64"/>
+      </field>
+      <field name="visible" writable="1">
+        <type name="boolean" c:type="gboolean"/>
+      </field>
+      <field name="destroy" writable="1">
+        <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
+      </field>
+    </record>
+    <record name="DataQueueSize"
+            c:type="GstDataQueueSize"
+            doc="Structure describing the size of a queue.">
+      <field name="visible" writable="1">
+        <type name="uint" c:type="guint"/>
+      </field>
+      <field name="bytes" writable="1">
+        <type name="uint" c:type="guint"/>
+      </field>
+      <field name="time" writable="1">
+        <type name="uint64" c:type="guint64"/>
+      </field>
+    </record>
+    <class name="PushSrc"
+           c:type="GstPushSrc"
+           doc="The opaque #GstPushSrc data structure."
+           parent="BaseSrc"
+           glib:type-name="GstPushSrc"
+           glib:get-type="gst_push_src_get_type"
+           glib:type-struct="PushSrcClass">
+      <virtual-method name="create">
+        <return-value transfer-ownership="full">
+          <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
+        </return-value>
+        <parameters>
+          <parameter name="buf" transfer-ownership="none">
+            <type name="Gst.Buffer" c:type="GstBuffer**"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <field name="parent">
+        <type name="BaseSrc" c:type="GstBaseSrc"/>
+      </field>
+      <field name="_gst_reserved">
+        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+          <type name="any"/>
+        </array>
+      </field>
+    </class>
+    <record name="PushSrcClass"
+            c:type="GstPushSrcClass"
+            glib:is-gtype-struct-for="PushSrc">
+      <field name="parent_class">
+        <type name="BaseSrcClass" c:type="GstBaseSrcClass"/>
+      </field>
+      <field name="create">
+        <callback name="create" c:type="create">
+          <return-value transfer-ownership="full">
+            <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
+          </return-value>
+          <parameters>
+            <parameter name="src" transfer-ownership="none">
+              <type name="PushSrc" c:type="GstPushSrc*"/>
+            </parameter>
+            <parameter name="buf" transfer-ownership="none">
+              <type name="Gst.Buffer" c:type="GstBuffer**"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="_gst_reserved">
+        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+          <type name="any"/>
+        </array>
+      </field>
+    </record>
+    <constant name="TRANSFORM_SINK_NAME" value="sink">
+      <type name="utf8"/>
+    </constant>
+    <constant name="TRANSFORM_SRC_NAME" value="src">
+      <type name="utf8"/>
+    </constant>
+    <callback name="TypeFindHelperGetRangeFunction"
+              c:type="GstTypeFindHelperGetRangeFunction"
+              doc="This function will be called by gst_type_find_helper_get_range() when
+typefinding functions request to peek at the data of a stream at certain
+offsets. If this function returns GST_FLOW_OK, the result buffer will be
+stored in @buffer. The  contents of @buffer is invalid for any other
+return value.
+This function is supposed to behave exactly like a #GstPadGetRangeFunction.">
+      <return-value transfer-ownership="full">
+        <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
+      </return-value>
+      <parameters>
+        <parameter name="obj" transfer-ownership="none">
+          <type name="Gst.Object" c:type="GstObject*"/>
+        </parameter>
+        <parameter name="offset" transfer-ownership="none">
+          <type name="uint64" c:type="guint64"/>
+        </parameter>
+        <parameter name="length" transfer-ownership="none">
+          <type name="uint" c:type="guint"/>
+        </parameter>
+        <parameter name="buffer" transfer-ownership="none">
+          <type name="Gst.Buffer" c:type="GstBuffer**"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <function name="type_find_helper"
+              c:identifier="gst_type_find_helper"
+              doc="Tries to find what type of data is flowing from the given source #GstPad.
+Returns #NULL if no #GstCaps matches the data stream.">
+      <return-value transfer-ownership="full">
+        <type name="Gst.Caps" c:type="GstCaps*"/>
+      </return-value>
+      <parameters>
+        <parameter name="src" transfer-ownership="none">
+          <type name="Gst.Pad" c:type="GstPad*"/>
+        </parameter>
+        <parameter name="size" transfer-ownership="none">
+          <type name="uint64" c:type="guint64"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="type_find_helper_for_buffer"
+              c:identifier="gst_type_find_helper_for_buffer"
+              doc="Tries to find what type of data is contained in the given #GstBuffer, the
+assumption being that the buffer represents the beginning of the stream or
+file.
+All available typefinders will be called on the data in order of rank. If
+a typefinding function returns a probability of #GST_TYPE_FIND_MAXIMUM,
+typefinding is stopped immediately and the found caps will be returned
+right away. Otherwise, all available typefind functions will the tried,
+and the caps with the highest probability will be returned, or #NULL if
+the content of the buffer could not be identified.
+be found. The caller should free the caps returned with gst_caps_unref().">
+      <return-value transfer-ownership="full">
+        <type name="Gst.Caps" c:type="GstCaps*"/>
+      </return-value>
+      <parameters>
+        <parameter name="obj" transfer-ownership="none">
+          <type name="Gst.Object" c:type="GstObject*"/>
+        </parameter>
+        <parameter name="buf" transfer-ownership="none">
+          <type name="Gst.Buffer" c:type="GstBuffer*"/>
+        </parameter>
+        <parameter name="prob" transfer-ownership="none">
+          <type name="Gst.TypeFindProbability"
+                c:type="GstTypeFindProbability*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="type_find_helper_for_extension"
+              c:identifier="gst_type_find_helper_for_extension"
+              doc="Tries to find the best #GstCaps associated with @extension.
+All available typefinders will be checked against the extension in order
+of rank. The caps of the first typefinder that can handle @extension will be
+returned.
+be found. The caller should free the caps returned with gst_caps_unref()."
+              version="0.10.23">
+      <return-value transfer-ownership="full">
+        <type name="Gst.Caps" c:type="GstCaps*"/>
+      </return-value>
+      <parameters>
+        <parameter name="obj" transfer-ownership="none">
+          <type name="Gst.Object" c:type="GstObject*"/>
+        </parameter>
+        <parameter name="extension" transfer-ownership="none">
+          <type name="utf8" c:type="gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="type_find_helper_get_range"
+              c:identifier="gst_type_find_helper_get_range"
+              doc="to access data at random offsets when doing the typefinding
+Utility function to do pull-based typefinding. Unlike gst_type_find_helper()
+however, this function will use the specified function @func to obtain the
+data needed by the typefind functions, rather than operating on a given
+source pad. This is useful mostly for elements like tag demuxers which
+strip off data at the beginning and/or end of a file and want to typefind
+the stripped data stream before adding their own source pad (the specified
+callback can then call the upstream peer pad with offsets adjusted for the
+tag size, for example).
+Returns #NULL if no #GstCaps matches the data stream.">
+      <return-value transfer-ownership="full">
+        <type name="Gst.Caps" c:type="GstCaps*"/>
+      </return-value>
+      <parameters>
+        <parameter name="obj" transfer-ownership="none">
+          <type name="Gst.Object" c:type="GstObject*"/>
+        </parameter>
+        <parameter name="func" transfer-ownership="none" scope="call">
+          <type name="TypeFindHelperGetRangeFunction"
+                c:type="GstTypeFindHelperGetRangeFunction"/>
+        </parameter>
+        <parameter name="size" transfer-ownership="none">
+          <type name="uint64" c:type="guint64"/>
+        </parameter>
+        <parameter name="prob" transfer-ownership="none">
+          <type name="Gst.TypeFindProbability"
+                c:type="GstTypeFindProbability*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="type_find_helper_get_range_ext"
+              c:identifier="gst_type_find_helper_get_range_ext"
+              doc="to access data at random offsets when doing the typefinding
+Utility function to do pull-based typefinding. Unlike gst_type_find_helper()
+however, this function will use the specified function @func to obtain the
+data needed by the typefind functions, rather than operating on a given
+source pad. This is useful mostly for elements like tag demuxers which
+strip off data at the beginning and/or end of a file and want to typefind
+the stripped data stream before adding their own source pad (the specified
+callback can then call the upstream peer pad with offsets adjusted for the
+tag size, for example).
+When @extension is not NULL, this function will first try the typefind
+functions for the given extension, which might speed up the typefinding
+in many cases.
+Returns #NULL if no #GstCaps matches the data stream."
+              version="0.10.26">
+      <return-value transfer-ownership="full">
+        <type name="Gst.Caps" c:type="GstCaps*"/>
+      </return-value>
+      <parameters>
+        <parameter name="obj" transfer-ownership="none">
+          <type name="Gst.Object" c:type="GstObject*"/>
+        </parameter>
+        <parameter name="func" transfer-ownership="none" scope="call">
+          <type name="TypeFindHelperGetRangeFunction"
+                c:type="GstTypeFindHelperGetRangeFunction"/>
+        </parameter>
+        <parameter name="size" transfer-ownership="none">
+          <type name="uint64" c:type="guint64"/>
+        </parameter>
+        <parameter name="extension" transfer-ownership="none">
+          <type name="utf8" c:type="gchar*"/>
+        </parameter>
+        <parameter name="prob" transfer-ownership="none">
+          <type name="Gst.TypeFindProbability"
+                c:type="GstTypeFindProbability*"/>
+        </parameter>
+      </parameters>
+    </function>
+  </namespace>
+</repository>
diff --git a/unmaintained/gstreamer/base/base.factor b/unmaintained/gstreamer/base/base.factor
new file mode 100644 (file)
index 0000000..445d506
--- /dev/null
@@ -0,0 +1,5 @@
+! Copyright (C) 2010 Anton Gorenko.
+! See http://factorcode.org/license.txt for BSD license.
+USING: gstreamer.base.ffi ;
+IN: gstreamer.base
+
diff --git a/unmaintained/gstreamer/base/ffi/ffi.factor b/unmaintained/gstreamer/base/ffi/ffi.factor
new file mode 100644 (file)
index 0000000..1f15ecf
--- /dev/null
@@ -0,0 +1,16 @@
+! Copyright (C) 2010 Anton Gorenko.
+! See http://factorcode.org/license.txt for BSD license.
+USING: alien alien.libraries combinators kernel system
+gobject-introspection glib.ffi gstreamer.ffi ;
+IN: gstreamer.base.ffi
+
+<<
+"gstreamer.base" {
+    { [ os winnt? ] [ drop ] }
+    { [ os macosx? ] [ drop ] }
+    { [ os unix? ] [ "libgstbase-0.10.so" cdecl add-library ] }
+} cond
+>>
+
+GIR: vocab:gstreamer/base/GstBase-0.10.gir
+
diff --git a/unmaintained/gstreamer/controller/GstController-0.10.gir b/unmaintained/gstreamer/controller/GstController-0.10.gir
new file mode 100644 (file)
index 0000000..137e69a
--- /dev/null
@@ -0,0 +1,1005 @@
+<?xml version="1.0"?>
+<!-- This file was automatically generated from C sources - DO NOT EDIT!
+To affect the contents of this file, edit the original C definitions,
+and/or use gtk-doc annotations.  -->
+<repository version="1.0"
+            xmlns="http://www.gtk.org/introspection/core/1.0"
+            xmlns:c="http://www.gtk.org/introspection/c/1.0"
+            xmlns:glib="http://www.gtk.org/introspection/glib/1.0">
+  <include name="GLib" version="2.0"/>
+  <include name="GModule" version="2.0"/>
+  <include name="GObject" version="2.0"/>
+  <include name="Gst" version="0.10"/>
+  <include name="libxml2" version="2.0"/>
+  <package name="gstreamer-0.10"/>
+  <c:include name="gst/controller/gstcontroller.h"/>
+  <c:include name="gst/controller/gstcontrolsource.h"/>
+  <c:include name="gst/controller/gstinterpolationcontrolsource.h"/>
+  <c:include name="gst/controller/gstlfocontrolsource.h"/>
+  <namespace name="GstController"
+             version="0.10"
+             shared-library="libgstcontroller-0.10.so.0"
+             c:prefix="Gst">
+    <class name="ControlSource"
+           c:type="GstControlSource"
+           doc="The instance structure of #GstControlSource."
+           parent="GObject.Object"
+           abstract="1"
+           glib:type-name="GstControlSource"
+           glib:get-type="gst_control_source_get_type"
+           glib:type-struct="ControlSourceClass">
+      <method name="get_value"
+              c:identifier="gst_control_source_get_value"
+              doc="Gets the value for this #GstControlSource at a given timestamp.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="timestamp" transfer-ownership="none">
+            <type name="Gst.ClockTime" c:type="GstClockTime"/>
+          </parameter>
+          <parameter name="value" transfer-ownership="none">
+            <type name="GObject.Value" c:type="GValue*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_value_array"
+              c:identifier="gst_control_source_get_value_array"
+              doc="Gets an array of values for one element property.
+All fields of @value_array must be filled correctly. Especially the
+of values.
+The type of the values in the array is the same as the property&apos;s type.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="timestamp" transfer-ownership="none">
+            <type name="Gst.ClockTime" c:type="GstClockTime"/>
+          </parameter>
+          <parameter name="value_array" transfer-ownership="none">
+            <type name="ValueArray" c:type="GstValueArray*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="bind"
+              c:identifier="gst_control_source_bind"
+              doc="Binds a #GstControlSource to a specific property. This must be called only once for a
+#GstControlSource.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="pspec" transfer-ownership="none">
+            <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <field name="parent">
+        <type name="GObject.Object" c:type="GObject"/>
+      </field>
+      <field name="get_value">
+        <type name="ControlSourceGetValue" c:type="GstControlSourceGetValue"/>
+      </field>
+      <field name="get_value_array">
+        <type name="ControlSourceGetValueArray"
+              c:type="GstControlSourceGetValueArray"/>
+      </field>
+      <field name="bound">
+        <type name="boolean" c:type="gboolean"/>
+      </field>
+      <field name="_gst_reserved">
+        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+          <type name="any"/>
+        </array>
+      </field>
+    </class>
+    <callback name="ControlSourceBind" c:type="GstControlSourceBind">
+      <return-value transfer-ownership="none">
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="self" transfer-ownership="none">
+          <type name="ControlSource" c:type="GstControlSource*"/>
+        </parameter>
+        <parameter name="pspec" transfer-ownership="none">
+          <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <record name="ControlSourceClass"
+            c:type="GstControlSourceClass"
+            glib:is-gtype-struct-for="ControlSource"
+            doc="The class structure of #GstControlSource.">
+      <field name="parent_class">
+        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
+      </field>
+      <field name="bind">
+        <type name="ControlSourceBind" c:type="GstControlSourceBind"/>
+      </field>
+      <field name="_gst_reserved">
+        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+          <type name="any"/>
+        </array>
+      </field>
+    </record>
+    <callback name="ControlSourceGetValue" c:type="GstControlSourceGetValue">
+      <return-value transfer-ownership="none">
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="self" transfer-ownership="none">
+          <type name="ControlSource" c:type="GstControlSource*"/>
+        </parameter>
+        <parameter name="timestamp" transfer-ownership="none">
+          <type name="Gst.ClockTime" c:type="GstClockTime"/>
+        </parameter>
+        <parameter name="value" transfer-ownership="none">
+          <type name="GObject.Value" c:type="GValue*"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <callback name="ControlSourceGetValueArray"
+              c:type="GstControlSourceGetValueArray">
+      <return-value transfer-ownership="none">
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="self" transfer-ownership="none">
+          <type name="ControlSource" c:type="GstControlSource*"/>
+        </parameter>
+        <parameter name="timestamp" transfer-ownership="none">
+          <type name="Gst.ClockTime" c:type="GstClockTime"/>
+        </parameter>
+        <parameter name="value_array" transfer-ownership="none">
+          <type name="ValueArray" c:type="GstValueArray*"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <class name="Controller"
+           c:type="GstController"
+           doc="The instance structure of GstController"
+           parent="GObject.Object"
+           glib:type-name="GstController"
+           glib:get-type="gst_controller_get_type"
+           glib:type-struct="ControllerClass">
+      <constructor name="new_list"
+                   c:identifier="gst_controller_new_list"
+                   doc="Creates a new GstController for the given object&apos;s properties">
+        <return-value transfer-ownership="full">
+          <type name="Controller" c:type="GstController*"/>
+        </return-value>
+        <parameters>
+          <parameter name="object" transfer-ownership="none">
+            <type name="GObject.Object" c:type="GObject*"/>
+          </parameter>
+          <parameter name="list" transfer-ownership="none">
+            <type name="GLib.List" c:type="GList*"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <constructor name="new"
+                   c:identifier="gst_controller_new"
+                   doc="Creates a new GstController for the given object&apos;s properties">
+        <return-value transfer-ownership="full">
+          <type name="Controller" c:type="GstController*"/>
+        </return-value>
+        <parameters>
+          <parameter name="object" transfer-ownership="none">
+            <type name="GObject.Object" c:type="GObject*"/>
+          </parameter>
+          <parameter transfer-ownership="none">
+            <varargs>
+            </varargs>
+          </parameter>
+        </parameters>
+      </constructor>
+      <function name="init"
+                c:identifier="gst_controller_init"
+                doc="Initializes the use of the controller library. Suggested to be called right
+after gst_init().">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="argc" direction="out" transfer-ownership="full">
+            <type name="int" c:type="int*"/>
+          </parameter>
+          <parameter name="argv" transfer-ownership="none">
+            <type name="utf8" c:type="char***"/>
+          </parameter>
+        </parameters>
+      </function>
+      <method name="remove_properties_list"
+              c:identifier="gst_controller_remove_properties_list"
+              doc="Removes the given object properties from the controller">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="list" transfer-ownership="none">
+            <type name="GLib.List" c:type="GList*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="remove_properties"
+              c:identifier="gst_controller_remove_properties"
+              doc="Removes the given object properties from the controller">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter transfer-ownership="none">
+            <varargs>
+            </varargs>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_disabled"
+              c:identifier="gst_controller_set_disabled"
+              doc="or not.
+This function is used to disable all properties of the #GstController
+for some time, i.e. gst_controller_sync_values() will do nothing."
+              version="0.10.14">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="disabled" transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_property_disabled"
+              c:identifier="gst_controller_set_property_disabled"
+              doc="or not.
+This function is used to disable the #GstController on a property for
+some time, i.e. gst_controller_sync_values() will do nothing for the
+property."
+              version="0.10.14">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="property_name" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="disabled" transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_control_source"
+              c:identifier="gst_controller_set_control_source"
+              doc="Sets the #GstControlSource for @property_name. If there already was a #GstControlSource
+for this property it will be unreferenced.
+couldn&apos;t be bound to the property, %TRUE if everything worked as expected."
+              version="0.10.14">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="property_name" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="csource" transfer-ownership="none">
+            <type name="ControlSource" c:type="GstControlSource*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_control_source"
+              c:identifier="gst_controller_get_control_source"
+              doc="Gets the corresponding #GstControlSource for the property. This should be unreferenced
+again after use.
+controlled by this controller or no #GstControlSource was assigned yet."
+              version="0.10.14">
+        <return-value transfer-ownership="full">
+          <type name="ControlSource" c:type="GstControlSource*"/>
+        </return-value>
+        <parameters>
+          <parameter name="property_name" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="suggest_next_sync"
+              c:identifier="gst_controller_suggest_next_sync"
+              doc="Returns a suggestion for timestamps where buffers should be split
+to get best controller results.
+if no control-rate was set."
+              version="0.10.13">
+        <return-value transfer-ownership="full">
+          <type name="Gst.ClockTime" c:type="GstClockTime"/>
+        </return-value>
+      </method>
+      <method name="sync_values"
+              c:identifier="gst_controller_sync_values"
+              doc="Sets the properties of the element, according to the controller that (maybe)
+handles them and for the given timestamp.
+If this function fails, it is most likely the application developers fault.
+Most probably the control sources are not setup correctly.
+properties, %FALSE otherwise">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="timestamp" transfer-ownership="none">
+            <type name="Gst.ClockTime" c:type="GstClockTime"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get"
+              c:identifier="gst_controller_get"
+              doc="Gets the value for the given controller-handled property at the requested
+time.
+property isn&apos;t handled by the controller">
+        <return-value transfer-ownership="full">
+          <type name="GObject.Value" c:type="GValue*"/>
+        </return-value>
+        <parameters>
+          <parameter name="property_name" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="timestamp" transfer-ownership="none">
+            <type name="Gst.ClockTime" c:type="GstClockTime"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_value_arrays"
+              c:identifier="gst_controller_get_value_arrays"
+              doc="Function to be able to get an array of values for one or more given element
+properties.
+All fields of the %GstValueArray in the list must be filled correctly.
+Especially the GstValueArray-&gt;values arrays must be big enough to keep
+the requested amount of values.
+The types of the values in the array are the same as the property&apos;s type.
+&lt;note&gt;&lt;para&gt;This doesn&apos;t modify the controlled GObject properties!&lt;/para&gt;&lt;/note&gt;">
+        <return-value transfer-ownership="none"
+                      doc="could be filled, %FALSE otherwise">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="timestamp" transfer-ownership="none">
+            <type name="Gst.ClockTime" c:type="GstClockTime"/>
+          </parameter>
+          <parameter name="value_arrays" transfer-ownership="none">
+            <type name="GLib.SList" c:type="GSList*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_value_array"
+              c:identifier="gst_controller_get_value_array"
+              doc="Function to be able to get an array of values for one element property.
+All fields of @value_array must be filled correctly. Especially the
+of values.
+The type of the values in the array is the same as the property&apos;s type.
+&lt;note&gt;&lt;para&gt;This doesn&apos;t modify the controlled GObject property!&lt;/para&gt;&lt;/note&gt;">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="timestamp" transfer-ownership="none">
+            <type name="Gst.ClockTime" c:type="GstClockTime"/>
+          </parameter>
+          <parameter name="value_array" transfer-ownership="none">
+            <type name="ValueArray" c:type="GstValueArray*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set"
+              c:identifier="gst_controller_set"
+              doc="Set the value of given controller-handled property at a certain time.
+directly."
+              deprecated="Use #GstControlSource, for example #GstInterpolationControlSource">
+        <return-value transfer-ownership="none" doc="TRUE otherwise">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="property_name" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="timestamp" transfer-ownership="none">
+            <type name="Gst.ClockTime" c:type="GstClockTime"/>
+          </parameter>
+          <parameter name="value" transfer-ownership="none">
+            <type name="GObject.Value" c:type="GValue*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_from_list"
+              c:identifier="gst_controller_set_from_list"
+              doc="Sets multiple timed values at once.
+directly."
+              deprecated="Use #GstControlSource, for example #GstInterpolationControlSource">
+        <return-value transfer-ownership="none" doc="%TRUE otherwise">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="property_name" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="timedvalues" transfer-ownership="none">
+            <type name="GLib.SList" c:type="GSList*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="unset"
+              c:identifier="gst_controller_unset"
+              doc="Used to remove the value of given controller-handled property at a certain
+time.
+directly."
+              deprecated="Use #GstControlSource, for example #GstInterpolationControlSource">
+        <return-value transfer-ownership="none" doc="%TRUE otherwise">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="property_name" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="timestamp" transfer-ownership="none">
+            <type name="Gst.ClockTime" c:type="GstClockTime"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="unset_all"
+              c:identifier="gst_controller_unset_all"
+              doc="Used to remove all time-stamped values of given controller-handled property
+directly.
+by controller), %TRUE otherwise"
+              version="0.10.5"
+              deprecated="Use #GstControlSource, for example #GstInterpolationControlSource">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="property_name" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_all"
+              c:identifier="gst_controller_get_all"
+              doc="Returns a read-only copy of the list of #GstTimedValue for the given property.
+Free the list after done with it.
+&lt;note&gt;&lt;para&gt;This doesn&apos;t modify the controlled GObject property!&lt;/para&gt;&lt;/note&gt;
+directly."
+              deprecated="Use #GstControlSource, for example #GstInterpolationControlSource">
+        <return-value transfer-ownership="none">
+          <type name="GLib.List" c:type="GList*"/>
+        </return-value>
+        <parameters>
+          <parameter name="property_name" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_interpolation_mode"
+              c:identifier="gst_controller_set_interpolation_mode"
+              doc="Sets the given interpolation mode on the given property.
+&lt;note&gt;&lt;para&gt;User interpolation is not yet available and quadratic interpolation
+is deprecated and maps to cubic interpolation.&lt;/para&gt;&lt;/note&gt;
+directly."
+              deprecated="Use #GstControlSource, for example #GstInterpolationControlSource">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="property_name" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="mode" transfer-ownership="none">
+            <type name="InterpolateMode" c:type="GstInterpolateMode"/>
+          </parameter>
+        </parameters>
+      </method>
+      <property name="control-rate" writable="1">
+        <type name="uint64" c:type="guint64"/>
+      </property>
+      <field name="parent">
+        <type name="GObject.Object" c:type="GObject"/>
+      </field>
+      <field name="properties">
+        <type name="GLib.List" c:type="GList*"/>
+      </field>
+      <field name="lock">
+        <type name="GLib.Mutex" c:type="GMutex*"/>
+      </field>
+      <field name="object">
+        <type name="GObject.Object" c:type="GObject*"/>
+      </field>
+      <field name="priv">
+        <type name="ControllerPrivate" c:type="GstControllerPrivate*"/>
+      </field>
+      <field name="_gst_reserved">
+        <array zero-terminated="0" c:type="gpointer" fixed-size="3">
+          <type name="any"/>
+        </array>
+      </field>
+    </class>
+    <record name="ControllerClass"
+            c:type="GstControllerClass"
+            glib:is-gtype-struct-for="Controller">
+      <field name="parent_class">
+        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
+      </field>
+      <field name="_gst_reserved">
+        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+          <type name="any"/>
+        </array>
+      </field>
+    </record>
+    <record name="ControllerPrivate" c:type="GstControllerPrivate">
+    </record>
+    <enumeration name="InterpolateMode"
+                 doc="except for times with specific values
+The various interpolation modes available."
+                 c:type="GstInterpolateMode">
+      <member name="none" value="0" c:identifier="GST_INTERPOLATE_NONE"/>
+      <member name="trigger" value="1" c:identifier="GST_INTERPOLATE_TRIGGER"/>
+      <member name="linear" value="2" c:identifier="GST_INTERPOLATE_LINEAR"/>
+      <member name="quadratic"
+              value="3"
+              c:identifier="GST_INTERPOLATE_QUADRATIC"/>
+      <member name="cubic" value="4" c:identifier="GST_INTERPOLATE_CUBIC"/>
+      <member name="user" value="5" c:identifier="GST_INTERPOLATE_USER"/>
+    </enumeration>
+    <class name="InterpolationControlSource"
+           c:type="GstInterpolationControlSource"
+           doc="The instance structure of #GstControlSource."
+           parent="ControlSource"
+           glib:type-name="GstInterpolationControlSource"
+           glib:get-type="gst_interpolation_control_source_get_type"
+           glib:type-struct="InterpolationControlSourceClass">
+      <constructor name="new"
+                   c:identifier="gst_interpolation_control_source_new"
+                   doc="This returns a new, unbound #GstInterpolationControlSource.">
+        <return-value transfer-ownership="full">
+          <type name="InterpolationControlSource"
+                c:type="GstInterpolationControlSource*"/>
+        </return-value>
+      </constructor>
+      <method name="set_interpolation_mode"
+              c:identifier="gst_interpolation_control_source_set_interpolation_mode"
+              doc="Sets the given interpolation mode.
+&lt;note&gt;&lt;para&gt;User interpolation is not yet available and quadratic interpolation
+is deprecated and maps to cubic interpolation.&lt;/para&gt;&lt;/note&gt;">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="mode" transfer-ownership="none">
+            <type name="InterpolateMode" c:type="GstInterpolateMode"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set"
+              c:identifier="gst_interpolation_control_source_set"
+              doc="Set the value of given controller-handled property at a certain time.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="timestamp" transfer-ownership="none">
+            <type name="Gst.ClockTime" c:type="GstClockTime"/>
+          </parameter>
+          <parameter name="value" transfer-ownership="none">
+            <type name="GObject.Value" c:type="GValue*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_from_list"
+              c:identifier="gst_interpolation_control_source_set_from_list"
+              doc="Sets multiple timed values at once.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="timedvalues" transfer-ownership="none">
+            <type name="GLib.SList" c:type="GSList*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="unset"
+              c:identifier="gst_interpolation_control_source_unset"
+              doc="Used to remove the value of given controller-handled property at a certain
+time.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="timestamp" transfer-ownership="none">
+            <type name="Gst.ClockTime" c:type="GstClockTime"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="unset_all"
+              c:identifier="gst_interpolation_control_source_unset_all"
+              doc="Used to remove all time-stamped values of given controller-handled property">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </method>
+      <method name="get_all"
+              c:identifier="gst_interpolation_control_source_get_all"
+              doc="Returns a read-only copy of the list of #GstTimedValue for the given property.
+Free the list after done with it.">
+        <return-value transfer-ownership="full">
+          <type name="GLib.List" c:type="GList*"/>
+        </return-value>
+      </method>
+      <method name="get_count"
+              c:identifier="gst_interpolation_control_source_get_count"
+              doc="Returns the number of control points that are set.">
+        <return-value transfer-ownership="none">
+          <type name="int" c:type="gint"/>
+        </return-value>
+      </method>
+      <field name="parent">
+        <type name="ControlSource" c:type="GstControlSource"/>
+      </field>
+      <field name="lock">
+        <type name="GLib.Mutex" c:type="GMutex*"/>
+      </field>
+      <field name="priv">
+        <type name="InterpolationControlSourcePrivate"
+              c:type="GstInterpolationControlSourcePrivate*"/>
+      </field>
+      <field name="_gst_reserved">
+        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+          <type name="any"/>
+        </array>
+      </field>
+    </class>
+    <record name="InterpolationControlSourceClass"
+            c:type="GstInterpolationControlSourceClass"
+            glib:is-gtype-struct-for="InterpolationControlSource">
+      <field name="parent_class">
+        <type name="ControlSourceClass" c:type="GstControlSourceClass"/>
+      </field>
+      <field name="_gst_reserved">
+        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+          <type name="any"/>
+        </array>
+      </field>
+    </record>
+    <record name="InterpolationControlSourcePrivate"
+            c:type="GstInterpolationControlSourcePrivate">
+    </record>
+    <class name="LFOControlSource"
+           c:type="GstLFOControlSource"
+           doc="The instance structure of #GstControlSource."
+           parent="ControlSource"
+           glib:type-name="GstLFOControlSource"
+           glib:get-type="gst_lfo_control_source_get_type"
+           glib:type-struct="LFOControlSourceClass">
+      <constructor name="new"
+                   c:identifier="gst_lfo_control_source_new"
+                   doc="This returns a new, unbound #GstLFOControlSource.">
+        <return-value transfer-ownership="full">
+          <type name="LFOControlSource" c:type="GstLFOControlSource*"/>
+        </return-value>
+      </constructor>
+      <property name="amplitude" writable="1">
+        <type name="GObject.Value" c:type="GValue"/>
+      </property>
+      <property name="frequency" writable="1">
+        <type name="double" c:type="gdouble"/>
+      </property>
+      <property name="offset" writable="1">
+        <type name="GObject.Value" c:type="GValue"/>
+      </property>
+      <property name="timeshift" writable="1">
+        <type name="uint64" c:type="guint64"/>
+      </property>
+      <property name="waveform" writable="1">
+        <type name="LFOWaveform" c:type="GstLFOWaveform"/>
+      </property>
+      <field name="parent">
+        <type name="ControlSource" c:type="GstControlSource"/>
+      </field>
+      <field name="priv">
+        <type name="LFOControlSourcePrivate"
+              c:type="GstLFOControlSourcePrivate*"/>
+      </field>
+      <field name="lock">
+        <type name="GLib.Mutex" c:type="GMutex*"/>
+      </field>
+      <field name="_gst_reserved">
+        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+          <type name="any"/>
+        </array>
+      </field>
+    </class>
+    <record name="LFOControlSourceClass"
+            c:type="GstLFOControlSourceClass"
+            glib:is-gtype-struct-for="LFOControlSource">
+      <field name="parent_class">
+        <type name="ControlSourceClass" c:type="GstControlSourceClass"/>
+      </field>
+      <field name="_gst_reserved">
+        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+          <type name="any"/>
+        </array>
+      </field>
+    </record>
+    <record name="LFOControlSourcePrivate" c:type="GstLFOControlSourcePrivate">
+    </record>
+    <enumeration name="LFOWaveform"
+                 doc="The various waveform modes available."
+                 glib:type-name="GstLFOWaveform"
+                 glib:get-type="gst_lfo_waveform_get_type"
+                 c:type="GstLFOWaveform">
+      <member name="sine"
+              value="0"
+              c:identifier="GST_LFO_WAVEFORM_SINE"
+              glib:nick="sine"/>
+      <member name="square"
+              value="1"
+              c:identifier="GST_LFO_WAVEFORM_SQUARE"
+              glib:nick="square"/>
+      <member name="saw"
+              value="2"
+              c:identifier="GST_LFO_WAVEFORM_SAW"
+              glib:nick="saw"/>
+      <member name="reverse_saw"
+              value="3"
+              c:identifier="GST_LFO_WAVEFORM_REVERSE_SAW"
+              glib:nick="reverse-saw"/>
+      <member name="triangle"
+              value="4"
+              c:identifier="GST_LFO_WAVEFORM_TRIANGLE"
+              glib:nick="triangle"/>
+    </enumeration>
+    <record name="TimedValue"
+            c:type="GstTimedValue"
+            doc="Structure for saving a timestamp and a value.">
+      <field name="timestamp" writable="1">
+        <type name="Gst.ClockTime" c:type="GstClockTime"/>
+      </field>
+      <field name="value" writable="1">
+        <type name="GObject.Value" c:type="GValue"/>
+      </field>
+    </record>
+    <record name="ValueArray"
+            c:type="GstValueArray"
+            doc="Structure to receive multiple values at once.">
+      <field name="property_name" writable="1">
+        <type name="utf8" c:type="gchar*"/>
+      </field>
+      <field name="nbsamples" writable="1">
+        <type name="int" c:type="gint"/>
+      </field>
+      <field name="sample_interval" writable="1">
+        <type name="Gst.ClockTime" c:type="GstClockTime"/>
+      </field>
+      <field name="values" writable="1">
+        <type name="any" c:type="gpointer*"/>
+      </field>
+    </record>
+    <function name="object_control_properties"
+              c:identifier="gst_object_control_properties"
+              doc="Convenience function for GObject
+Creates a GstController that allows you to dynamically control one, or more, GObject properties.
+If the given GObject already has a GstController, it adds the given properties to the existing
+controller and returns that controller.
+one or more of the given properties aren&apos;t available, or cannot be controlled, for the given element."
+              version="0.9">
+      <return-value transfer-ownership="full">
+        <type name="Controller" c:type="GstController*"/>
+      </return-value>
+      <parameters>
+        <parameter name="object" transfer-ownership="none">
+          <type name="GObject.Object" c:type="GObject*"/>
+        </parameter>
+        <parameter transfer-ownership="none">
+          <varargs>
+          </varargs>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="object_get_control_rate"
+              c:identifier="gst_object_get_control_rate"
+              doc="Obtain the control-rate for this @object. Audio processing #GstElement
+objects will use this rate to sub-divide their processing loop and call
+gst_object_sync_values() inbetween. The length of the processing segment
+should be up to @control-rate nanoseconds.
+If the @object is not under property control, this will return
+%GST_CLOCK_TIME_NONE. This allows the element to avoid the sub-dividing.
+The control-rate is not expected to change if the element is in
+%GST_STATE_PAUSED or %GST_STATE_PLAYING."
+              version="0.10.10">
+      <return-value transfer-ownership="full">
+        <type name="Gst.ClockTime" c:type="GstClockTime"/>
+      </return-value>
+      <parameters>
+        <parameter name="object" transfer-ownership="none">
+          <type name="GObject.Object" c:type="GObject*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="object_get_control_source"
+              c:identifier="gst_object_get_control_source"
+              doc="Gets the corresponding #GstControlSource for the property. This should be unreferenced
+again after use.
+controlled by this controller or no #GstControlSource was assigned yet."
+              version="0.10.14">
+      <return-value transfer-ownership="full">
+        <type name="ControlSource" c:type="GstControlSource*"/>
+      </return-value>
+      <parameters>
+        <parameter name="object" transfer-ownership="none">
+          <type name="GObject.Object" c:type="GObject*"/>
+        </parameter>
+        <parameter name="property_name" transfer-ownership="none">
+          <type name="utf8" c:type="gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="object_get_controller"
+              c:identifier="gst_object_get_controller"
+              doc="Gets the controller for the given GObject"
+              version="0.9">
+      <return-value transfer-ownership="full">
+        <type name="Controller" c:type="GstController*"/>
+      </return-value>
+      <parameters>
+        <parameter name="object" transfer-ownership="none">
+          <type name="GObject.Object" c:type="GObject*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="object_get_value_array"
+              c:identifier="gst_object_get_value_array"
+              doc="Function to be able to get an array of values for one element properties
+If the GstValueArray-&gt;values array is NULL, it will be created by the function.
+The type of the values in the array are the same as the property&apos;s type.
+The g_object_* functions are just convenience functions for GObject"
+              version="0.9">
+      <return-value transfer-ownership="none"
+                    doc="could be filled, %FALSE otherwise">
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="object" transfer-ownership="none">
+          <type name="GObject.Object" c:type="GObject*"/>
+        </parameter>
+        <parameter name="timestamp" transfer-ownership="none">
+          <type name="Gst.ClockTime" c:type="GstClockTime"/>
+        </parameter>
+        <parameter name="value_array" transfer-ownership="none">
+          <type name="ValueArray" c:type="GstValueArray*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="object_get_value_arrays"
+              c:identifier="gst_object_get_value_arrays"
+              doc="Function to be able to get an array of values for one or more given element
+properties.
+If the GstValueArray-&gt;values array in list nodes is NULL, it will be created
+by the function.
+The type of the values in the array are the same as the property&apos;s type.
+The g_object_* functions are just convenience functions for GObject"
+              version="0.9">
+      <return-value transfer-ownership="none"
+                    doc="could be filled, %FALSE otherwise">
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="object" transfer-ownership="none">
+          <type name="GObject.Object" c:type="GObject*"/>
+        </parameter>
+        <parameter name="timestamp" transfer-ownership="none">
+          <type name="Gst.ClockTime" c:type="GstClockTime"/>
+        </parameter>
+        <parameter name="value_arrays" transfer-ownership="none">
+          <type name="GLib.SList" c:type="GSList*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="object_set_control_rate"
+              c:identifier="gst_object_set_control_rate"
+              doc="Change the control-rate for this @object. Audio processing #GstElement
+objects will use this rate to sub-divide their processing loop and call
+gst_object_sync_values() inbetween. The length of the processing segment
+should be up to @control-rate nanoseconds.
+The control-rate should not change if the element is in %GST_STATE_PAUSED or
+%GST_STATE_PLAYING."
+              version="0.10.10">
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="object" transfer-ownership="none">
+          <type name="GObject.Object" c:type="GObject*"/>
+        </parameter>
+        <parameter name="control_rate" transfer-ownership="none">
+          <type name="Gst.ClockTime" c:type="GstClockTime"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="object_set_control_source"
+              c:identifier="gst_object_set_control_source"
+              doc="Sets the #GstControlSource for @property_name. If there already was a #GstControlSource
+for this property it will be unreferenced.
+couldn&apos;t be bound to the property, %TRUE if everything worked as expected."
+              version="0.10.14">
+      <return-value transfer-ownership="none">
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="object" transfer-ownership="none">
+          <type name="GObject.Object" c:type="GObject*"/>
+        </parameter>
+        <parameter name="property_name" transfer-ownership="none">
+          <type name="utf8" c:type="gchar*"/>
+        </parameter>
+        <parameter name="csource" transfer-ownership="none">
+          <type name="ControlSource" c:type="GstControlSource*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="object_set_controller"
+              c:identifier="gst_object_set_controller"
+              doc="Sets the controller on the given GObject"
+              version="0.9">
+      <return-value transfer-ownership="none">
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="object" transfer-ownership="none">
+          <type name="GObject.Object" c:type="GObject*"/>
+        </parameter>
+        <parameter name="controller" transfer-ownership="none">
+          <type name="Controller" c:type="GstController*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="object_suggest_next_sync"
+              c:identifier="gst_object_suggest_next_sync"
+              doc="Convenience function for GObject"
+              version="0.10.13">
+      <return-value transfer-ownership="full">
+        <type name="Gst.ClockTime" c:type="GstClockTime"/>
+      </return-value>
+      <parameters>
+        <parameter name="object" transfer-ownership="none">
+          <type name="GObject.Object" c:type="GObject*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="object_sync_values"
+              c:identifier="gst_object_sync_values"
+              doc="Convenience function for GObject"
+              version="0.9">
+      <return-value transfer-ownership="none">
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="object" transfer-ownership="none">
+          <type name="GObject.Object" c:type="GObject*"/>
+        </parameter>
+        <parameter name="timestamp" transfer-ownership="none">
+          <type name="Gst.ClockTime" c:type="GstClockTime"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="object_uncontrol_properties"
+              c:identifier="gst_object_uncontrol_properties"
+              doc="Convenience function for GObject
+Removes the given element&apos;s properties from it&apos;s controller
+controller, %TRUE otherwise"
+              version="0.9">
+      <return-value transfer-ownership="none">
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="object" transfer-ownership="none">
+          <type name="GObject.Object" c:type="GObject*"/>
+        </parameter>
+        <parameter transfer-ownership="none">
+          <varargs>
+          </varargs>
+        </parameter>
+      </parameters>
+    </function>
+  </namespace>
+</repository>
diff --git a/unmaintained/gstreamer/controller/controller.factor b/unmaintained/gstreamer/controller/controller.factor
new file mode 100644 (file)
index 0000000..ca101cb
--- /dev/null
@@ -0,0 +1,5 @@
+! Copyright (C) 2010 Anton Gorenko.
+! See http://factorcode.org/license.txt for BSD license.
+USING: gstreamer.controller.ffi ;
+IN: gstreamer.controller
+
diff --git a/unmaintained/gstreamer/controller/ffi/ffi.factor b/unmaintained/gstreamer/controller/ffi/ffi.factor
new file mode 100644 (file)
index 0000000..ea5de2f
--- /dev/null
@@ -0,0 +1,17 @@
+! Copyright (C) 2010 Anton Gorenko.
+! See http://factorcode.org/license.txt for BSD license.
+USING: alien alien.c-types alien.libraries combinators kernel
+system
+gobject-introspection glib.ffi gobject.ffi gstreamer.ffi ;
+IN: gstreamer.controller.ffi
+
+<<
+"gstreamer.controller" {
+    { [ os winnt? ] [ drop ] }
+    { [ os macosx? ] [ drop ] }
+    { [ os unix? ] [ "libgstcontroller-0.10.so" cdecl add-library ] }
+} cond
+>>
+
+GIR: vocab:gstreamer/controller/GstController-0.10.gir
+
diff --git a/unmaintained/gstreamer/ffi/ffi.factor b/unmaintained/gstreamer/ffi/ffi.factor
new file mode 100644 (file)
index 0000000..ac31e7d
--- /dev/null
@@ -0,0 +1,27 @@
+! Copyright (C) 2010 Anton Gorenko.
+! See http://factorcode.org/license.txt for BSD license.
+USING: alien alien.syntax alien.libraries combinators kernel
+system
+gobject-introspection glib.ffi gmodule.ffi gobject.ffi ;
+EXCLUDE: alien.c-types => pointer ;
+IN: gstreamer.ffi
+
+<<
+"gstreamer" {
+    { [ os winnt? ] [ drop ] }
+    { [ os macosx? ] [ drop ] }
+    { [ os unix? ] [ "libgstreamer-0.10.so" cdecl add-library ] }
+} cond
+>>
+
+TYPEDEF: gpointer GstClockID
+TYPEDEF: guint64 GstClockTime
+TYPEDEF: gint64 GstClockTimeDiff
+
+! types from libxml2
+TYPEDEF: void* xmlNodePtr
+TYPEDEF: void* xmlDocPtr
+TYPEDEF: void* xmlNsPtr
+
+GIR: vocab:gstreamer/Gst-0.10.gir
+
diff --git a/unmaintained/gstreamer/fft/GstFft-0.10.gir b/unmaintained/gstreamer/fft/GstFft-0.10.gir
new file mode 100644 (file)
index 0000000..578dc59
--- /dev/null
@@ -0,0 +1,462 @@
+<?xml version="1.0"?>
+<!-- This file was automatically generated from C sources - DO NOT EDIT!
+To affect the contents of this file, edit the original C definitions,
+and/or use gtk-doc annotations.  -->
+<repository version="1.0"
+            xmlns="http://www.gtk.org/introspection/core/1.0"
+            xmlns:c="http://www.gtk.org/introspection/c/1.0"
+            xmlns:glib="http://www.gtk.org/introspection/glib/1.0">
+  <include name="GLib" version="2.0"/>
+  <include name="GModule" version="2.0"/>
+  <include name="GObject" version="2.0"/>
+  <include name="Gst" version="0.10"/>
+  <include name="libxml2" version="2.0"/>
+  <package name="gstreamer-0.10"/>
+  <c:include name="gst/fft/gstfft.h"/>
+  <c:include name="gst/fft/gstfftf32.h"/>
+  <c:include name="gst/fft/gstfftf64.h"/>
+  <c:include name="gst/fft/gstffts16.h"/>
+  <c:include name="gst/fft/gstffts32.h"/>
+  <namespace name="GstFft"
+             version="0.10"
+             shared-library="libgstfft-0.10.so.0"
+             c:prefix="Gst">
+    <record name="FFTF32"
+            c:type="GstFFTF32"
+            doc="Instance structure for #GstFFTF32.">
+      <field name="cfg" writable="1">
+        <type name="any" c:type="void*"/>
+      </field>
+      <field name="inverse" writable="1">
+        <type name="boolean" c:type="gboolean"/>
+      </field>
+      <field name="len" writable="1">
+        <type name="int" c:type="gint"/>
+      </field>
+      <field name="_padding" writable="1">
+        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+          <type name="any"/>
+        </array>
+      </field>
+      <constructor name="new"
+                   c:identifier="gst_fft_f32_new"
+                   doc="This returns a new #GstFFTF32 instance with the given parameters. It makes
+sense to keep one instance for several calls for speed reasons.
+2, 3 and 5. To get the next number with this characteristics use
+gst_fft_next_fast_length().">
+        <return-value transfer-ownership="full">
+          <type name="FFTF32" c:type="GstFFTF32*"/>
+        </return-value>
+        <parameters>
+          <parameter name="len" transfer-ownership="none">
+            <type name="int" c:type="gint"/>
+          </parameter>
+          <parameter name="inverse" transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <method name="fft"
+              c:identifier="gst_fft_f32_fft"
+              doc="This performs the FFT on @timedata and puts the result in @freqdata.
+allocating the #GstFFTF32 instance with gst_fft_f32_new().
+domain samples.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="timedata" direction="out" transfer-ownership="none">
+            <type name="float" c:type="gfloat*"/>
+          </parameter>
+          <parameter name="freqdata" transfer-ownership="none">
+            <type name="FFTF32Complex" c:type="GstFFTF32Complex*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="inverse_fft"
+              c:identifier="gst_fft_f32_inverse_fft"
+              doc="This performs the inverse FFT on @freqdata and puts the result in @timedata.
+while allocating the #GstFFTF32 instance with gst_fft_f32_new().">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="freqdata" transfer-ownership="none">
+            <type name="FFTF32Complex" c:type="GstFFTF32Complex*"/>
+          </parameter>
+          <parameter name="timedata" direction="out" transfer-ownership="full">
+            <type name="float" c:type="gfloat*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="free"
+              c:identifier="gst_fft_f32_free"
+              doc="This frees the memory allocated for @self.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </method>
+      <method name="window"
+              c:identifier="gst_fft_f32_window"
+              doc="This calls the window function @window on the @timedata sample buffer.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="timedata" direction="out" transfer-ownership="full">
+            <type name="float" c:type="gfloat*"/>
+          </parameter>
+          <parameter name="window" transfer-ownership="none">
+            <type name="FFTWindow" c:type="GstFFTWindow"/>
+          </parameter>
+        </parameters>
+      </method>
+    </record>
+    <record name="FFTF32Complex"
+            c:type="GstFFTF32Complex"
+            doc="Data type for complex numbers composed of
+32 bit float.">
+      <field name="r" writable="1">
+        <type name="float" c:type="gfloat"/>
+      </field>
+      <field name="i" writable="1">
+        <type name="float" c:type="gfloat"/>
+      </field>
+    </record>
+    <record name="FFTF64"
+            c:type="GstFFTF64"
+            doc="Instance structure for #GstFFTF64.">
+      <field name="cfg" writable="1">
+        <type name="any" c:type="void*"/>
+      </field>
+      <field name="inverse" writable="1">
+        <type name="boolean" c:type="gboolean"/>
+      </field>
+      <field name="len" writable="1">
+        <type name="int" c:type="gint"/>
+      </field>
+      <field name="_padding" writable="1">
+        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+          <type name="any"/>
+        </array>
+      </field>
+      <constructor name="new"
+                   c:identifier="gst_fft_f64_new"
+                   doc="This returns a new #GstFFTF64 instance with the given parameters. It makes
+sense to keep one instance for several calls for speed reasons.
+2, 3 and 5. To get the next number with this characteristics use
+gst_fft_next_fast_length().">
+        <return-value transfer-ownership="full">
+          <type name="FFTF64" c:type="GstFFTF64*"/>
+        </return-value>
+        <parameters>
+          <parameter name="len" transfer-ownership="none">
+            <type name="int" c:type="gint"/>
+          </parameter>
+          <parameter name="inverse" transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <method name="fft"
+              c:identifier="gst_fft_f64_fft"
+              doc="This performs the FFT on @timedata and puts the result in @freqdata.
+allocating the #GstFFTF64 instance with gst_fft_f64_new().
+domain samples.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="timedata" direction="out" transfer-ownership="none">
+            <type name="double" c:type="gdouble*"/>
+          </parameter>
+          <parameter name="freqdata" transfer-ownership="none">
+            <type name="FFTF64Complex" c:type="GstFFTF64Complex*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="inverse_fft"
+              c:identifier="gst_fft_f64_inverse_fft"
+              doc="This performs the inverse FFT on @freqdata and puts the result in @timedata.
+while allocating the #GstFFTF64 instance with gst_fft_f64_new().">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="freqdata" transfer-ownership="none">
+            <type name="FFTF64Complex" c:type="GstFFTF64Complex*"/>
+          </parameter>
+          <parameter name="timedata" direction="out" transfer-ownership="full">
+            <type name="double" c:type="gdouble*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="free"
+              c:identifier="gst_fft_f64_free"
+              doc="This frees the memory allocated for @self.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </method>
+      <method name="window"
+              c:identifier="gst_fft_f64_window"
+              doc="This calls the window function @window on the @timedata sample buffer.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="timedata" direction="out" transfer-ownership="full">
+            <type name="double" c:type="gdouble*"/>
+          </parameter>
+          <parameter name="window" transfer-ownership="none">
+            <type name="FFTWindow" c:type="GstFFTWindow"/>
+          </parameter>
+        </parameters>
+      </method>
+    </record>
+    <record name="FFTF64Complex"
+            c:type="GstFFTF64Complex"
+            doc="Data type for complex numbers composed of
+64 bit float.">
+      <field name="r" writable="1">
+        <type name="double" c:type="gdouble"/>
+      </field>
+      <field name="i" writable="1">
+        <type name="double" c:type="gdouble"/>
+      </field>
+    </record>
+    <record name="FFTS16"
+            c:type="GstFFTS16"
+            doc="Instance structure for #GstFFTS16.">
+      <field name="cfg" writable="1">
+        <type name="any" c:type="void*"/>
+      </field>
+      <field name="inverse" writable="1">
+        <type name="boolean" c:type="gboolean"/>
+      </field>
+      <field name="len" writable="1">
+        <type name="int" c:type="gint"/>
+      </field>
+      <field name="_padding" writable="1">
+        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+          <type name="any"/>
+        </array>
+      </field>
+      <constructor name="new"
+                   c:identifier="gst_fft_s16_new"
+                   doc="This returns a new #GstFFTS16 instance with the given parameters. It makes
+sense to keep one instance for several calls for speed reasons.
+2, 3 and 5. To get the next number with this characteristics use
+gst_fft_next_fast_length().">
+        <return-value transfer-ownership="full">
+          <type name="FFTS16" c:type="GstFFTS16*"/>
+        </return-value>
+        <parameters>
+          <parameter name="len" transfer-ownership="none">
+            <type name="int" c:type="gint"/>
+          </parameter>
+          <parameter name="inverse" transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <method name="fft"
+              c:identifier="gst_fft_s16_fft"
+              doc="This performs the FFT on @timedata and puts the result in @freqdata.
+allocating the #GstFFTS16 instance with gst_fft_s16_new().
+domain samples.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="timedata" direction="out" transfer-ownership="none">
+            <type name="int16" c:type="gint16*"/>
+          </parameter>
+          <parameter name="freqdata" transfer-ownership="none">
+            <type name="FFTS16Complex" c:type="GstFFTS16Complex*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="inverse_fft"
+              c:identifier="gst_fft_s16_inverse_fft"
+              doc="This performs the inverse FFT on @freqdata and puts the result in @timedata.
+while allocating the #GstFFTS16 instance with gst_fft_s16_new().">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="freqdata" transfer-ownership="none">
+            <type name="FFTS16Complex" c:type="GstFFTS16Complex*"/>
+          </parameter>
+          <parameter name="timedata" direction="out" transfer-ownership="full">
+            <type name="int16" c:type="gint16*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="free"
+              c:identifier="gst_fft_s16_free"
+              doc="This frees the memory allocated for @self.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </method>
+      <method name="window"
+              c:identifier="gst_fft_s16_window"
+              doc="This calls the window function @window on the @timedata sample buffer.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="timedata" direction="out" transfer-ownership="full">
+            <type name="int16" c:type="gint16*"/>
+          </parameter>
+          <parameter name="window" transfer-ownership="none">
+            <type name="FFTWindow" c:type="GstFFTWindow"/>
+          </parameter>
+        </parameters>
+      </method>
+    </record>
+    <record name="FFTS16Complex"
+            c:type="GstFFTS16Complex"
+            doc="Data type for complex numbers composed of
+signed 16 bit integers.">
+      <field name="r" writable="1">
+        <type name="int16" c:type="gint16"/>
+      </field>
+      <field name="i" writable="1">
+        <type name="int16" c:type="gint16"/>
+      </field>
+    </record>
+    <record name="FFTS32"
+            c:type="GstFFTS32"
+            doc="Instance structure for #GstFFTS32.">
+      <field name="cfg" writable="1">
+        <type name="any" c:type="void*"/>
+      </field>
+      <field name="inverse" writable="1">
+        <type name="boolean" c:type="gboolean"/>
+      </field>
+      <field name="len" writable="1">
+        <type name="int" c:type="gint"/>
+      </field>
+      <field name="_padding" writable="1">
+        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+          <type name="any"/>
+        </array>
+      </field>
+      <constructor name="new"
+                   c:identifier="gst_fft_s32_new"
+                   doc="This returns a new #GstFFTS32 instance with the given parameters. It makes
+sense to keep one instance for several calls for speed reasons.
+2, 3 and 5. To get the next number with this characteristics use
+gst_fft_next_fast_length().">
+        <return-value transfer-ownership="full">
+          <type name="FFTS32" c:type="GstFFTS32*"/>
+        </return-value>
+        <parameters>
+          <parameter name="len" transfer-ownership="none">
+            <type name="int" c:type="gint"/>
+          </parameter>
+          <parameter name="inverse" transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <method name="fft"
+              c:identifier="gst_fft_s32_fft"
+              doc="This performs the FFT on @timedata and puts the result in @freqdata.
+allocating the #GstFFTS32 instance with gst_fft_s32_new().
+domain samples.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="timedata" direction="out" transfer-ownership="none">
+            <type name="int32" c:type="gint32*"/>
+          </parameter>
+          <parameter name="freqdata" transfer-ownership="none">
+            <type name="FFTS32Complex" c:type="GstFFTS32Complex*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="inverse_fft"
+              c:identifier="gst_fft_s32_inverse_fft"
+              doc="This performs the inverse FFT on @freqdata and puts the result in @timedata.
+while allocating the #GstFFTS32 instance with gst_fft_s32_new().">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="freqdata" transfer-ownership="none">
+            <type name="FFTS32Complex" c:type="GstFFTS32Complex*"/>
+          </parameter>
+          <parameter name="timedata" direction="out" transfer-ownership="full">
+            <type name="int32" c:type="gint32*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="free"
+              c:identifier="gst_fft_s32_free"
+              doc="This frees the memory allocated for @self.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </method>
+      <method name="window"
+              c:identifier="gst_fft_s32_window"
+              doc="This calls the window function @window on the @timedata sample buffer.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="timedata" direction="out" transfer-ownership="full">
+            <type name="int32" c:type="gint32*"/>
+          </parameter>
+          <parameter name="window" transfer-ownership="none">
+            <type name="FFTWindow" c:type="GstFFTWindow"/>
+          </parameter>
+        </parameters>
+      </method>
+    </record>
+    <record name="FFTS32Complex"
+            c:type="GstFFTS32Complex"
+            doc="Data type for complex numbers composed of
+signed 32 bit integers.">
+      <field name="r" writable="1">
+        <type name="int32" c:type="gint32"/>
+      </field>
+      <field name="i" writable="1">
+        <type name="int32" c:type="gint32"/>
+      </field>
+    </record>
+    <enumeration name="FFTWindow"
+                 doc="The various window functions available."
+                 c:type="GstFFTWindow">
+      <member name="rectangular"
+              value="0"
+              c:identifier="GST_FFT_WINDOW_RECTANGULAR"/>
+      <member name="hamming" value="1" c:identifier="GST_FFT_WINDOW_HAMMING"/>
+      <member name="hann" value="2" c:identifier="GST_FFT_WINDOW_HANN"/>
+      <member name="bartlett"
+              value="3"
+              c:identifier="GST_FFT_WINDOW_BARTLETT"/>
+      <member name="blackman"
+              value="4"
+              c:identifier="GST_FFT_WINDOW_BLACKMAN"/>
+    </enumeration>
+    <function name="next_fast_length"
+              c:identifier="gst_fft_next_fast_length"
+              doc="Returns the next number to @n that is entirely a product
+of 2, 3 and 5. Using this as the @len parameter for
+the different GstFFT types will provide the best performance.">
+      <return-value transfer-ownership="none">
+        <type name="int" c:type="gint"/>
+      </return-value>
+      <parameters>
+        <parameter name="n" transfer-ownership="none">
+          <type name="int" c:type="gint"/>
+        </parameter>
+      </parameters>
+    </function>
+  </namespace>
+</repository>
diff --git a/unmaintained/gstreamer/fft/ffi/ffi.factor b/unmaintained/gstreamer/fft/ffi/ffi.factor
new file mode 100644 (file)
index 0000000..77fd0e3
--- /dev/null
@@ -0,0 +1,17 @@
+! Copyright (C) 2010 Anton Gorenko.
+! See http://factorcode.org/license.txt for BSD license.
+USING: alien alien.c-types alien.libraries combinators kernel
+system
+gobject-introspection glib.ffi gstreamer.ffi ;
+IN: gstreamer.fft.ffi
+
+<<
+"gstreamer.fft" {
+    { [ os winnt? ] [ drop ] }
+    { [ os macosx? ] [ drop ] }
+    { [ os unix? ] [ "libgstfft-0.10.so" cdecl add-library ] }
+} cond
+>>
+
+GIR: vocab:gstreamer/fft/GstFft-0.10.gir
+
diff --git a/unmaintained/gstreamer/fft/fft.factor b/unmaintained/gstreamer/fft/fft.factor
new file mode 100644 (file)
index 0000000..4ddb102
--- /dev/null
@@ -0,0 +1,5 @@
+! Copyright (C) 2010 Anton Gorenko.
+! See http://factorcode.org/license.txt for BSD license.
+USING: gstreamer.fft.ffi ;
+IN: gstreamer.fft
+
diff --git a/unmaintained/gstreamer/gstreamer.factor b/unmaintained/gstreamer/gstreamer.factor
new file mode 100644 (file)
index 0000000..174fbc6
--- /dev/null
@@ -0,0 +1,5 @@
+! Copyright (C) 2010 Anton Gorenko.
+! See http://factorcode.org/license.txt for BSD license.
+USING: gstreamer.ffi ;
+IN: gstreamer
+
diff --git a/unmaintained/gstreamer/interfaces/GstInterfaces-0.10.gir b/unmaintained/gstreamer/interfaces/GstInterfaces-0.10.gir
new file mode 100644 (file)
index 0000000..06591fa
--- /dev/null
@@ -0,0 +1,3570 @@
+<?xml version="1.0"?>
+<!-- This file was automatically generated from C sources - DO NOT EDIT!
+To affect the contents of this file, edit the original C definitions,
+and/or use gtk-doc annotations.  -->
+<repository version="1.0"
+            xmlns="http://www.gtk.org/introspection/core/1.0"
+            xmlns:c="http://www.gtk.org/introspection/c/1.0"
+            xmlns:glib="http://www.gtk.org/introspection/glib/1.0">
+  <include name="GLib" version="2.0"/>
+  <include name="GModule" version="2.0"/>
+  <include name="GObject" version="2.0"/>
+  <include name="Gst" version="0.10"/>
+  <include name="libxml2" version="2.0"/>
+  <package name="gstreamer-0.10"/>
+  <c:include name="gst/interfaces/colorbalance.h"/>
+  <c:include name="gst/interfaces/colorbalancechannel.h"/>
+  <c:include name="gst/interfaces/interfaces-enumtypes.h"/>
+  <c:include name="gst/interfaces/mixer.h"/>
+  <c:include name="gst/interfaces/mixeroptions.h"/>
+  <c:include name="gst/interfaces/mixertrack.h"/>
+  <c:include name="gst/interfaces/navigation.h"/>
+  <c:include name="gst/interfaces/propertyprobe.h"/>
+  <c:include name="gst/interfaces/streamvolume.h"/>
+  <c:include name="gst/interfaces/tuner.h"/>
+  <c:include name="gst/interfaces/tunerchannel.h"/>
+  <c:include name="gst/interfaces/tunernorm.h"/>
+  <c:include name="gst/interfaces/videoorientation.h"/>
+  <c:include name="gst/interfaces/xoverlay.h"/>
+  <namespace name="GstInterfaces"
+             version="0.10"
+             shared-library="libgstinterfaces-0.10.so.0"
+             c:prefix="Gst">
+    <interface name="ColorBalance"
+               c:type="GstColorBalance"
+               glib:type-name="GstColorBalance"
+               glib:get-type="gst_color_balance_get_type"
+               glib:type-struct="ColorBalanceClass">
+      <prerequisite name="Gst.ImplementsInterface"/>
+      <prerequisite name="Gst.Element"/>
+      <virtual-method name="list_channels" invoker="list_channels">
+        <return-value transfer-ownership="none">
+          <type name="GLib.List" c:type="GList*"/>
+        </return-value>
+      </virtual-method>
+      <virtual-method name="set_value" invoker="set_value">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="channel" transfer-ownership="none">
+            <type name="ColorBalanceChannel" c:type="GstColorBalanceChannel*"/>
+          </parameter>
+          <parameter name="value" transfer-ownership="none">
+            <type name="int" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="get_value" invoker="get_value">
+        <return-value transfer-ownership="none">
+          <type name="int" c:type="gint"/>
+        </return-value>
+        <parameters>
+          <parameter name="channel" transfer-ownership="none">
+            <type name="ColorBalanceChannel" c:type="GstColorBalanceChannel*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <method name="list_channels"
+              c:identifier="gst_color_balance_list_channels"
+              doc="Retrieve a list of the available channels.
+The list is owned by the #GstColorBalance instance and must not
+be freed.">
+        <return-value transfer-ownership="none">
+          <type name="GLib.List" c:type="GList*"/>
+        </return-value>
+      </method>
+      <method name="set_value"
+              c:identifier="gst_color_balance_set_value"
+              doc="Sets the current value of the channel to the passed value, which must
+be between min_value and max_value.
+#GstColorBalanceChannel::max_value members of the
+#GstColorBalanceChannel object.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="channel" transfer-ownership="none">
+            <type name="ColorBalanceChannel" c:type="GstColorBalanceChannel*"/>
+          </parameter>
+          <parameter name="value" transfer-ownership="none">
+            <type name="int" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_value"
+              c:identifier="gst_color_balance_get_value"
+              doc="Retrieve the current value of the indicated channel, between min_value
+and max_value.
+#GstColorBalanceChannel::max_value members of the
+#GstColorBalanceChannel object.">
+        <return-value transfer-ownership="none">
+          <type name="int" c:type="gint"/>
+        </return-value>
+        <parameters>
+          <parameter name="channel" transfer-ownership="none">
+            <type name="ColorBalanceChannel" c:type="GstColorBalanceChannel*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_balance_type"
+              c:identifier="gst_color_balance_get_balance_type"
+              doc="Get the #GstColorBalanceType of this implementation."
+              version="0.10.24">
+        <return-value transfer-ownership="full">
+          <type name="ColorBalanceType" c:type="GstColorBalanceType"/>
+        </return-value>
+      </method>
+      <method name="value_changed"
+              c:identifier="gst_color_balance_value_changed"
+              doc="A helper function called by implementations of the GstColorBalance
+interface. It fires the #GstColorBalance::value-changed signal on the
+instance, and the #GstColorBalanceChannel::value-changed signal on the
+channel object.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="channel" transfer-ownership="none">
+            <type name="ColorBalanceChannel" c:type="GstColorBalanceChannel*"/>
+          </parameter>
+          <parameter name="value" transfer-ownership="none">
+            <type name="int" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <glib:signal name="value-changed"
+                   doc="Fired when the value of the indicated channel has changed.">
+        <return-value transfer-ownership="full">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="channel" transfer-ownership="none">
+            <type name="ColorBalanceChannel" c:type="GstColorBalanceChannel"/>
+          </parameter>
+          <parameter name="value" transfer-ownership="none">
+            <type name="int" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+    </interface>
+    <class name="ColorBalanceChannel"
+           c:type="GstColorBalanceChannel"
+           parent="GObject.Object"
+           glib:type-name="GstColorBalanceChannel"
+           glib:get-type="gst_color_balance_channel_get_type"
+           glib:type-struct="ColorBalanceChannelClass">
+      <field name="parent">
+        <type name="GObject.Object" c:type="GObject"/>
+      </field>
+      <field name="label">
+        <type name="utf8" c:type="gchar*"/>
+      </field>
+      <field name="min_value">
+        <type name="int" c:type="gint"/>
+      </field>
+      <field name="max_value">
+        <type name="int" c:type="gint"/>
+      </field>
+      <glib:signal name="value-changed"
+                   doc="Fired when the value of the indicated channel has changed.">
+        <return-value transfer-ownership="full">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="value" transfer-ownership="none">
+            <type name="int" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+    </class>
+    <record name="ColorBalanceChannelClass"
+            c:type="GstColorBalanceChannelClass"
+            glib:is-gtype-struct-for="ColorBalanceChannel">
+      <field name="parent">
+        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
+      </field>
+      <field name="value_changed">
+        <callback name="value_changed" c:type="value_changed">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="channel" transfer-ownership="none">
+              <type name="ColorBalanceChannel"
+                    c:type="GstColorBalanceChannel*"/>
+            </parameter>
+            <parameter name="value" transfer-ownership="none">
+              <type name="int" c:type="gint"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="_gst_reserved">
+        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+          <type name="any"/>
+        </array>
+      </field>
+    </record>
+    <record name="ColorBalanceClass"
+            c:type="GstColorBalanceClass"
+            glib:is-gtype-struct-for="ColorBalance">
+      <field name="klass">
+        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
+      </field>
+      <field name="balance_type">
+        <type name="ColorBalanceType" c:type="GstColorBalanceType"/>
+      </field>
+      <field name="list_channels">
+        <callback name="list_channels" c:type="list_channels">
+          <return-value transfer-ownership="none">
+            <type name="GLib.List" c:type="GList*"/>
+          </return-value>
+          <parameters>
+            <parameter name="balance" transfer-ownership="none">
+              <type name="ColorBalance" c:type="GstColorBalance*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="set_value">
+        <callback name="set_value" c:type="set_value">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="balance" transfer-ownership="none">
+              <type name="ColorBalance" c:type="GstColorBalance*"/>
+            </parameter>
+            <parameter name="channel" transfer-ownership="none">
+              <type name="ColorBalanceChannel"
+                    c:type="GstColorBalanceChannel*"/>
+            </parameter>
+            <parameter name="value" transfer-ownership="none">
+              <type name="int" c:type="gint"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="get_value">
+        <callback name="get_value" c:type="get_value">
+          <return-value transfer-ownership="none">
+            <type name="int" c:type="gint"/>
+          </return-value>
+          <parameters>
+            <parameter name="balance" transfer-ownership="none">
+              <type name="ColorBalance" c:type="GstColorBalance*"/>
+            </parameter>
+            <parameter name="channel" transfer-ownership="none">
+              <type name="ColorBalanceChannel"
+                    c:type="GstColorBalanceChannel*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="value_changed">
+        <callback name="value_changed" c:type="value_changed">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="balance" transfer-ownership="none">
+              <type name="ColorBalance" c:type="GstColorBalance*"/>
+            </parameter>
+            <parameter name="channel" transfer-ownership="none">
+              <type name="ColorBalanceChannel"
+                    c:type="GstColorBalanceChannel*"/>
+            </parameter>
+            <parameter name="value" transfer-ownership="none">
+              <type name="int" c:type="gint"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="_gst_reserved">
+        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+          <type name="any"/>
+        </array>
+      </field>
+    </record>
+    <enumeration name="ColorBalanceType"
+                 doc="hardware.
+processing.
+An enumeration indicating whether an element implements color balancing
+operations in software or in dedicated hardware. In general, dedicated
+hardware implementations (such as those provided by xvimagesink) are
+preferred."
+                 glib:type-name="GstColorBalanceType"
+                 glib:get-type="gst_color_balance_type_get_type"
+                 c:type="GstColorBalanceType">
+      <member name="hardware"
+              value="0"
+              c:identifier="GST_COLOR_BALANCE_HARDWARE"
+              glib:nick="hardware"/>
+      <member name="software"
+              value="1"
+              c:identifier="GST_COLOR_BALANCE_SOFTWARE"
+              glib:nick="software"/>
+    </enumeration>
+    <interface name="Mixer"
+               c:type="GstMixer"
+               glib:type-name="GstMixer"
+               glib:get-type="gst_mixer_get_type"
+               glib:type-struct="MixerClass">
+      <prerequisite name="Gst.ImplementsInterface"/>
+      <prerequisite name="Gst.Element"/>
+      <virtual-method name="list_tracks" invoker="list_tracks">
+        <return-value transfer-ownership="none">
+          <type name="GLib.List" c:type="GList*"/>
+        </return-value>
+      </virtual-method>
+      <virtual-method name="set_volume" invoker="set_volume">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="track" transfer-ownership="none">
+            <type name="MixerTrack" c:type="GstMixerTrack*"/>
+          </parameter>
+          <parameter name="volumes" direction="out" transfer-ownership="full">
+            <type name="int" c:type="gint*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="get_volume" invoker="get_volume">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="track" transfer-ownership="none">
+            <type name="MixerTrack" c:type="GstMixerTrack*"/>
+          </parameter>
+          <parameter name="volumes" direction="out" transfer-ownership="full">
+            <type name="int" c:type="gint*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="set_mute" invoker="set_mute">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="track" transfer-ownership="none">
+            <type name="MixerTrack" c:type="GstMixerTrack*"/>
+          </parameter>
+          <parameter name="mute" transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="set_record" invoker="set_record">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="track" transfer-ownership="none">
+            <type name="MixerTrack" c:type="GstMixerTrack*"/>
+          </parameter>
+          <parameter name="record" transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="set_option" invoker="set_option">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="opts" transfer-ownership="none">
+            <type name="MixerOptions" c:type="GstMixerOptions*"/>
+          </parameter>
+          <parameter name="value" transfer-ownership="full">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="get_option" invoker="get_option">
+        <return-value transfer-ownership="none">
+          <type name="utf8" c:type="gchar*"/>
+        </return-value>
+        <parameters>
+          <parameter name="opts" transfer-ownership="none">
+            <type name="MixerOptions" c:type="GstMixerOptions*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="get_mixer_flags" invoker="get_mixer_flags">
+        <return-value transfer-ownership="full">
+          <type name="MixerFlags" c:type="GstMixerFlags"/>
+        </return-value>
+      </virtual-method>
+      <method name="list_tracks"
+              c:identifier="gst_mixer_list_tracks"
+              doc="Returns a list of available tracks for this mixer/element. Note
+that it is allowed for sink (output) elements to only provide
+the output tracks in this list. Likewise, for sources (inputs),
+it is allowed to only provide input elements in this list.
+The list is owned by the #GstMixer instance and must not be freed
+or modified.">
+        <return-value transfer-ownership="none">
+          <type name="GLib.List" c:type="GList*"/>
+        </return-value>
+      </method>
+      <method name="set_volume"
+              c:identifier="gst_mixer_set_volume"
+              doc="that gives the wanted volume for each channel in
+this track.
+Sets the volume on each channel in a track. Short note about
+the mixer/element, such as &apos;Line-in&apos; or &apos;Microphone&apos;. A
+channel is said to be a mono-stream inside this track. A
+stereo track thus contains two channels.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="track" transfer-ownership="none">
+            <type name="MixerTrack" c:type="GstMixerTrack*"/>
+          </parameter>
+          <parameter name="volumes" direction="out" transfer-ownership="full">
+            <type name="int" c:type="gint*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_volume"
+              c:identifier="gst_mixer_get_volume"
+              doc="track-&gt;num_channels) to store the current volume
+of each channel in the given track in.
+Get the current volume(s) on the given track.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="track" transfer-ownership="none">
+            <type name="MixerTrack" c:type="GstMixerTrack*"/>
+          </parameter>
+          <parameter name="volumes" direction="out" transfer-ownership="full">
+            <type name="int" c:type="gint*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_mute"
+              c:identifier="gst_mixer_set_mute"
+              doc="muting.
+Mutes or unmutes the given channel. To find out whether a
+track is currently muted, use GST_MIXER_TRACK_HAS_FLAG ().">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="track" transfer-ownership="none">
+            <type name="MixerTrack" c:type="GstMixerTrack*"/>
+          </parameter>
+          <parameter name="mute" transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_record"
+              c:identifier="gst_mixer_set_record"
+              doc="or off recording.
+Enables or disables recording on the given track. Note that
+this is only possible on input tracks, not on output tracks
+(see GST_MIXER_TRACK_HAS_FLAG () and the GST_MIXER_TRACK_INPUT
+flag).">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="track" transfer-ownership="none">
+            <type name="MixerTrack" c:type="GstMixerTrack*"/>
+          </parameter>
+          <parameter name="record" transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_option"
+              c:identifier="gst_mixer_set_option"
+              doc="Sets a name/value option in the mixer to the requested value.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="opts" transfer-ownership="none">
+            <type name="MixerOptions" c:type="GstMixerOptions*"/>
+          </parameter>
+          <parameter name="value" transfer-ownership="full">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_option"
+              c:identifier="gst_mixer_get_option"
+              doc="Get the current value of a name/value option in the mixer.">
+        <return-value transfer-ownership="none">
+          <type name="utf8" c:type="gchar*"/>
+        </return-value>
+        <parameters>
+          <parameter name="opts" transfer-ownership="none">
+            <type name="MixerOptions" c:type="GstMixerOptions*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="mute_toggled"
+              c:identifier="gst_mixer_mute_toggled"
+              doc="This function is called by the mixer implementation to produce
+a notification message on the bus indicating that the given track
+has changed mute state.
+This function only works for GstElements that are implementing the
+GstMixer interface, and the element needs to have been provided a bus.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="track" transfer-ownership="none">
+            <type name="MixerTrack" c:type="GstMixerTrack*"/>
+          </parameter>
+          <parameter name="mute" transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="record_toggled"
+              c:identifier="gst_mixer_record_toggled"
+              doc="This function is called by the mixer implementation to produce
+a notification message on the bus indicating that the given track
+has changed recording state.
+This function only works for GstElements that are implementing the
+GstMixer interface, and the element needs to have been provided a bus.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="track" transfer-ownership="none">
+            <type name="MixerTrack" c:type="GstMixerTrack*"/>
+          </parameter>
+          <parameter name="record" transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="volume_changed"
+              c:identifier="gst_mixer_volume_changed"
+              doc="This function is called by the mixer implementation to produce
+a notification message on the bus indicating that the volume(s) for the
+given track have changed.
+This function only works for GstElements that are implementing the
+GstMixer interface, and the element needs to have been provided a bus.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="track" transfer-ownership="none">
+            <type name="MixerTrack" c:type="GstMixerTrack*"/>
+          </parameter>
+          <parameter name="volumes" direction="out" transfer-ownership="full">
+            <type name="int" c:type="gint*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="option_changed"
+              c:identifier="gst_mixer_option_changed"
+              doc="This function is called by the mixer implementation to produce
+a notification message on the bus indicating that the given options
+object has changed state.
+This function only works for GstElements that are implementing the
+GstMixer interface, and the element needs to have been provided a bus.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="opts" transfer-ownership="none">
+            <type name="MixerOptions" c:type="GstMixerOptions*"/>
+          </parameter>
+          <parameter name="value" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="mixer_changed"
+              c:identifier="gst_mixer_mixer_changed"
+              doc="This function is called by the mixer implementation to produce
+a notification message on the bus indicating that the list of available
+mixer tracks for a given mixer object has changed. Applications should
+rebuild their interface when they receive this message.
+This function only works for GstElements that are implementing the
+GstMixer interface, and the element needs to have been provided a bus."
+              version="0.10.18">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </method>
+      <method name="options_list_changed"
+              c:identifier="gst_mixer_options_list_changed"
+              doc="This function is called by the mixer implementation to produce
+a notification message on the bus indicating that the list of possible
+options of a given options object has changed.
+The new options are not contained in the message on purpose. Applications
+should call gst_mixer_option_get_values() on @opts to make @opts update
+its internal state and obtain the new list of values.
+This function only works for GstElements that are implementing the
+GstMixer interface, and the element needs to have been provided a bus
+for this to work."
+              version="0.10.18">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="opts" transfer-ownership="none">
+            <type name="MixerOptions" c:type="GstMixerOptions*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_mixer_type"
+              c:identifier="gst_mixer_get_mixer_type"
+              doc="Get the #GstMixerType of this mixer implementation."
+              version="0.10.24">
+        <return-value transfer-ownership="full">
+          <type name="MixerType" c:type="GstMixerType"/>
+        </return-value>
+      </method>
+      <method name="get_mixer_flags"
+              c:identifier="gst_mixer_get_mixer_flags"
+              doc="Get the set of supported flags for this mixer implementation.">
+        <return-value transfer-ownership="full">
+          <type name="MixerFlags" c:type="GstMixerFlags"/>
+        </return-value>
+      </method>
+      <glib:signal name="mute-toggled">
+        <return-value transfer-ownership="full">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="object" transfer-ownership="none">
+            <type name="MixerTrack" c:type="GstMixerTrack"/>
+          </parameter>
+          <parameter name="p0" transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="option-changed">
+        <return-value transfer-ownership="full">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="object" transfer-ownership="none">
+            <type name="MixerOptions" c:type="GstMixerOptions"/>
+          </parameter>
+          <parameter name="p0" transfer-ownership="none">
+            <type name="utf8" c:type="gchararray"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="record-toggled">
+        <return-value transfer-ownership="full">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="object" transfer-ownership="none">
+            <type name="MixerTrack" c:type="GstMixerTrack"/>
+          </parameter>
+          <parameter name="p0" transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="volume-changed">
+        <return-value transfer-ownership="full">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="object" transfer-ownership="none">
+            <type name="MixerTrack" c:type="GstMixerTrack"/>
+          </parameter>
+          <parameter name="p0" transfer-ownership="none">
+            <type name="any" c:type="gpointer"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+    </interface>
+    <record name="MixerClass"
+            c:type="GstMixerClass"
+            glib:is-gtype-struct-for="Mixer">
+      <field name="klass">
+        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
+      </field>
+      <field name="mixer_type">
+        <type name="MixerType" c:type="GstMixerType"/>
+      </field>
+      <field name="list_tracks">
+        <callback name="list_tracks" c:type="list_tracks">
+          <return-value transfer-ownership="none">
+            <type name="GLib.List" c:type="GList*"/>
+          </return-value>
+          <parameters>
+            <parameter name="mixer" transfer-ownership="none">
+              <type name="Mixer" c:type="GstMixer*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="set_volume">
+        <callback name="set_volume" c:type="set_volume">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="mixer" transfer-ownership="none">
+              <type name="Mixer" c:type="GstMixer*"/>
+            </parameter>
+            <parameter name="track" transfer-ownership="none">
+              <type name="MixerTrack" c:type="GstMixerTrack*"/>
+            </parameter>
+            <parameter name="volumes"
+                       direction="out"
+                       transfer-ownership="full">
+              <type name="int" c:type="gint*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="get_volume">
+        <callback name="get_volume" c:type="get_volume">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="mixer" transfer-ownership="none">
+              <type name="Mixer" c:type="GstMixer*"/>
+            </parameter>
+            <parameter name="track" transfer-ownership="none">
+              <type name="MixerTrack" c:type="GstMixerTrack*"/>
+            </parameter>
+            <parameter name="volumes"
+                       direction="out"
+                       transfer-ownership="full">
+              <type name="int" c:type="gint*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="set_mute">
+        <callback name="set_mute" c:type="set_mute">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="mixer" transfer-ownership="none">
+              <type name="Mixer" c:type="GstMixer*"/>
+            </parameter>
+            <parameter name="track" transfer-ownership="none">
+              <type name="MixerTrack" c:type="GstMixerTrack*"/>
+            </parameter>
+            <parameter name="mute" transfer-ownership="none">
+              <type name="boolean" c:type="gboolean"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="set_record">
+        <callback name="set_record" c:type="set_record">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="mixer" transfer-ownership="none">
+              <type name="Mixer" c:type="GstMixer*"/>
+            </parameter>
+            <parameter name="track" transfer-ownership="none">
+              <type name="MixerTrack" c:type="GstMixerTrack*"/>
+            </parameter>
+            <parameter name="record" transfer-ownership="none">
+              <type name="boolean" c:type="gboolean"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="mute_toggled">
+        <callback name="mute_toggled" c:type="mute_toggled">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="mixer" transfer-ownership="none">
+              <type name="Mixer" c:type="GstMixer*"/>
+            </parameter>
+            <parameter name="channel" transfer-ownership="none">
+              <type name="MixerTrack" c:type="GstMixerTrack*"/>
+            </parameter>
+            <parameter name="mute" transfer-ownership="none">
+              <type name="boolean" c:type="gboolean"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="record_toggled">
+        <callback name="record_toggled" c:type="record_toggled">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="mixer" transfer-ownership="none">
+              <type name="Mixer" c:type="GstMixer*"/>
+            </parameter>
+            <parameter name="channel" transfer-ownership="none">
+              <type name="MixerTrack" c:type="GstMixerTrack*"/>
+            </parameter>
+            <parameter name="record" transfer-ownership="none">
+              <type name="boolean" c:type="gboolean"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="volume_changed">
+        <callback name="volume_changed" c:type="volume_changed">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="mixer" transfer-ownership="none">
+              <type name="Mixer" c:type="GstMixer*"/>
+            </parameter>
+            <parameter name="channel" transfer-ownership="none">
+              <type name="MixerTrack" c:type="GstMixerTrack*"/>
+            </parameter>
+            <parameter name="volumes"
+                       direction="out"
+                       transfer-ownership="full">
+              <type name="int" c:type="gint*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="set_option">
+        <callback name="set_option" c:type="set_option">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="mixer" transfer-ownership="none">
+              <type name="Mixer" c:type="GstMixer*"/>
+            </parameter>
+            <parameter name="opts" transfer-ownership="none">
+              <type name="MixerOptions" c:type="GstMixerOptions*"/>
+            </parameter>
+            <parameter name="value" transfer-ownership="full">
+              <type name="utf8" c:type="gchar*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="get_option">
+        <callback name="get_option" c:type="get_option">
+          <return-value transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </return-value>
+          <parameters>
+            <parameter name="mixer" transfer-ownership="none">
+              <type name="Mixer" c:type="GstMixer*"/>
+            </parameter>
+            <parameter name="opts" transfer-ownership="none">
+              <type name="MixerOptions" c:type="GstMixerOptions*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="option_changed">
+        <callback name="option_changed" c:type="option_changed">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="mixer" transfer-ownership="none">
+              <type name="Mixer" c:type="GstMixer*"/>
+            </parameter>
+            <parameter name="opts" transfer-ownership="none">
+              <type name="MixerOptions" c:type="GstMixerOptions*"/>
+            </parameter>
+            <parameter name="option" transfer-ownership="full">
+              <type name="utf8" c:type="gchar*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="get_mixer_flags">
+        <callback name="get_mixer_flags" c:type="get_mixer_flags">
+          <return-value transfer-ownership="full">
+            <type name="MixerFlags" c:type="GstMixerFlags"/>
+          </return-value>
+          <parameters>
+            <parameter name="mixer" transfer-ownership="none">
+              <type name="Mixer" c:type="GstMixer*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="_gst_reserved">
+        <array zero-terminated="0" c:type="gpointer" fixed-size="3">
+          <type name="any"/>
+        </array>
+      </field>
+    </record>
+    <bitfield name="MixerFlags"
+              doc="sends notification messages.
+marked without either input or output.  Controls marked as input or
+output should be grouped with input &amp; output sliders, even if they
+Flags indicating which optional features are supported by a mixer
+implementation."
+              version="0.10.14"
+              glib:type-name="GstMixerFlags"
+              glib:get-type="gst_mixer_flags_get_type"
+              c:type="GstMixerFlags">
+      <member name="none"
+              value="0"
+              c:identifier="GST_MIXER_FLAG_NONE"
+              glib:nick="none"/>
+      <member name="auto_notifications"
+              value="1"
+              c:identifier="GST_MIXER_FLAG_AUTO_NOTIFICATIONS"
+              glib:nick="auto-notifications"/>
+      <member name="has_whitelist"
+              value="2"
+              c:identifier="GST_MIXER_FLAG_HAS_WHITELIST"
+              glib:nick="has-whitelist"/>
+      <member name="grouping"
+              value="4"
+              c:identifier="GST_MIXER_FLAG_GROUPING"
+              glib:nick="grouping"/>
+    </bitfield>
+    <enumeration name="MixerMessageType"
+                 doc="GstMixer message, posted when the list of available options for a
+when the list of available mixer tracks has changed. The application
+An enumeration for the type of a GstMixer message received on the bus"
+                 version="0.10.14"
+                 glib:type-name="GstMixerMessageType"
+                 glib:get-type="gst_mixer_message_type_get_type"
+                 c:type="GstMixerMessageType">
+      <member name="invalid"
+              value="0"
+              c:identifier="GST_MIXER_MESSAGE_INVALID"
+              glib:nick="invalid"/>
+      <member name="mute_toggled"
+              value="1"
+              c:identifier="GST_MIXER_MESSAGE_MUTE_TOGGLED"
+              glib:nick="mute-toggled"/>
+      <member name="record_toggled"
+              value="2"
+              c:identifier="GST_MIXER_MESSAGE_RECORD_TOGGLED"
+              glib:nick="record-toggled"/>
+      <member name="volume_changed"
+              value="3"
+              c:identifier="GST_MIXER_MESSAGE_VOLUME_CHANGED"
+              glib:nick="volume-changed"/>
+      <member name="option_changed"
+              value="4"
+              c:identifier="GST_MIXER_MESSAGE_OPTION_CHANGED"
+              glib:nick="option-changed"/>
+      <member name="options_list_changed"
+              value="5"
+              c:identifier="GST_MIXER_MESSAGE_OPTIONS_LIST_CHANGED"
+              glib:nick="options-list-changed"/>
+      <member name="mixer_changed"
+              value="6"
+              c:identifier="GST_MIXER_MESSAGE_MIXER_CHANGED"
+              glib:nick="mixer-changed"/>
+    </enumeration>
+    <class name="MixerOptions"
+           c:type="GstMixerOptions"
+           doc="always use gst_mixer_options_get_values() instead."
+           parent="MixerTrack"
+           glib:type-name="GstMixerOptions"
+           glib:get-type="gst_mixer_options_get_type"
+           glib:type-struct="MixerOptionsClass">
+      <virtual-method name="get_values" invoker="get_values">
+        <return-value transfer-ownership="full">
+          <type name="GLib.List" c:type="GList*"/>
+        </return-value>
+      </virtual-method>
+      <method name="get_values"
+              c:identifier="gst_mixer_options_get_values"
+              doc="Get the values for the mixer option.
+option. You must not free or modify the list or its contents, it belongs
+to the @mixer_options object.">
+        <return-value transfer-ownership="full">
+          <type name="GLib.List" c:type="GList*"/>
+        </return-value>
+      </method>
+      <field name="parent">
+        <type name="MixerTrack" c:type="GstMixerTrack"/>
+      </field>
+      <field name="values">
+        <type name="GLib.List" c:type="GList*"/>
+      </field>
+      <field name="_gst_reserved">
+        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+          <type name="any"/>
+        </array>
+      </field>
+    </class>
+    <record name="MixerOptionsClass"
+            c:type="GstMixerOptionsClass"
+            glib:is-gtype-struct-for="MixerOptions">
+      <field name="parent">
+        <type name="MixerTrackClass" c:type="GstMixerTrackClass"/>
+      </field>
+      <field name="get_values">
+        <callback name="get_values" c:type="get_values">
+          <return-value transfer-ownership="full">
+            <type name="GLib.List" c:type="GList*"/>
+          </return-value>
+          <parameters>
+            <parameter name="opts" transfer-ownership="none">
+              <type name="MixerOptions" c:type="GstMixerOptions*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="_gst_reserved">
+        <array zero-terminated="0" c:type="gpointer" fixed-size="3">
+          <type name="any"/>
+        </array>
+      </field>
+    </record>
+    <class name="MixerTrack"
+           c:type="GstMixerTrack"
+           parent="GObject.Object"
+           glib:type-name="GstMixerTrack"
+           glib:get-type="gst_mixer_track_get_type"
+           glib:type-struct="MixerTrackClass">
+      <property name="flags">
+        <type name="uint" c:type="guint"/>
+      </property>
+      <property name="index" writable="1" construct-only="1">
+        <type name="uint" c:type="guint"/>
+      </property>
+      <property name="label">
+        <type name="utf8" c:type="gchararray"/>
+      </property>
+      <property name="max-volume">
+        <type name="int" c:type="gint"/>
+      </property>
+      <property name="min-volume">
+        <type name="int" c:type="gint"/>
+      </property>
+      <property name="num-channels">
+        <type name="int" c:type="gint"/>
+      </property>
+      <property name="untranslated-label" writable="1" construct-only="1">
+        <type name="utf8" c:type="gchararray"/>
+      </property>
+      <field name="parent">
+        <type name="GObject.Object" c:type="GObject"/>
+      </field>
+      <field name="label">
+        <type name="utf8" c:type="gchar*"/>
+      </field>
+      <field name="flags">
+        <type name="MixerTrackFlags" c:type="GstMixerTrackFlags"/>
+      </field>
+      <field name="num_channels">
+        <type name="int" c:type="gint"/>
+      </field>
+      <field name="min_volume">
+        <type name="int" c:type="gint"/>
+      </field>
+      <field name="max_volume">
+        <type name="int" c:type="gint"/>
+      </field>
+    </class>
+    <record name="MixerTrackClass"
+            c:type="GstMixerTrackClass"
+            glib:is-gtype-struct-for="MixerTrack">
+      <field name="parent">
+        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
+      </field>
+      <field name="_gst_reserved">
+        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+          <type name="any"/>
+        </array>
+      </field>
+    </record>
+    <bitfield name="MixerTrackFlags"
+              doc="(for #GST_MIXER_TRACK_INPUT mixer tracks only)
+in software (as opposed to a hardware control)
+Mixer track flags."
+              version="0.10.23"
+              glib:type-name="GstMixerTrackFlags"
+              glib:get-type="gst_mixer_track_flags_get_type"
+              c:type="GstMixerTrackFlags">
+      <member name="input"
+              value="1"
+              c:identifier="GST_MIXER_TRACK_INPUT"
+              glib:nick="input"/>
+      <member name="output"
+              value="2"
+              c:identifier="GST_MIXER_TRACK_OUTPUT"
+              glib:nick="output"/>
+      <member name="mute"
+              value="4"
+              c:identifier="GST_MIXER_TRACK_MUTE"
+              glib:nick="mute"/>
+      <member name="record"
+              value="8"
+              c:identifier="GST_MIXER_TRACK_RECORD"
+              glib:nick="record"/>
+      <member name="master"
+              value="16"
+              c:identifier="GST_MIXER_TRACK_MASTER"
+              glib:nick="master"/>
+      <member name="software"
+              value="32"
+              c:identifier="GST_MIXER_TRACK_SOFTWARE"
+              glib:nick="software"/>
+      <member name="no_record"
+              value="64"
+              c:identifier="GST_MIXER_TRACK_NO_RECORD"
+              glib:nick="no-record"/>
+      <member name="no_mute"
+              value="128"
+              c:identifier="GST_MIXER_TRACK_NO_MUTE"
+              glib:nick="no-mute"/>
+      <member name="whitelist"
+              value="256"
+              c:identifier="GST_MIXER_TRACK_WHITELIST"
+              glib:nick="whitelist"/>
+      <member name="readonly"
+              value="512"
+              c:identifier="GST_MIXER_TRACK_READONLY"
+              glib:nick="readonly"/>
+      <member name="writeonly"
+              value="1024"
+              c:identifier="GST_MIXER_TRACK_WRITEONLY"
+              glib:nick="writeonly"/>
+    </bitfield>
+    <enumeration name="MixerType"
+                 glib:type-name="GstMixerType"
+                 glib:get-type="gst_mixer_type_get_type"
+                 c:type="GstMixerType">
+      <member name="hardware"
+              value="0"
+              c:identifier="GST_MIXER_HARDWARE"
+              glib:nick="hardware"/>
+      <member name="software"
+              value="1"
+              c:identifier="GST_MIXER_SOFTWARE"
+              glib:nick="software"/>
+    </enumeration>
+    <interface name="Navigation"
+               c:type="GstNavigation"
+               glib:type-name="GstNavigation"
+               glib:get-type="gst_navigation_get_type"
+               glib:type-struct="NavigationInterface">
+      <virtual-method name="send_event" invoker="send_event">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="structure" transfer-ownership="none">
+            <type name="Gst.Structure" c:type="GstStructure*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <method name="send_event" c:identifier="gst_navigation_send_event">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="structure" transfer-ownership="none">
+            <type name="Gst.Structure" c:type="GstStructure*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="send_key_event"
+              c:identifier="gst_navigation_send_key_event"
+              doc="&quot;key-release&quot;
+by XKeysymToString.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="event" transfer-ownership="none">
+            <type name="utf8" c:type="char*"/>
+          </parameter>
+          <parameter name="key" transfer-ownership="none">
+            <type name="utf8" c:type="char*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="send_mouse_event"
+              c:identifier="gst_navigation_send_mouse_event"
+              doc="&quot;mouse-button-press&quot;, &quot;mouse-button-release&quot; and &quot;mouse-move&quot;.
+for mouse-move events.
+Sends a mouse event to the navigation interface. Mouse event coordinates
+are sent relative to the display space of the related output area. This is
+usually the size in pixels of the window associated with the element
+implementing the #GstNavigation interface.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="event" transfer-ownership="none">
+            <type name="utf8" c:type="char*"/>
+          </parameter>
+          <parameter name="button" transfer-ownership="none">
+            <type name="int" c:type="int"/>
+          </parameter>
+          <parameter name="x" transfer-ownership="none">
+            <type name="double" c:type="double"/>
+          </parameter>
+          <parameter name="y" transfer-ownership="none">
+            <type name="double" c:type="double"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="send_command"
+              c:identifier="gst_navigation_send_command"
+              doc="Sends the indicated command to the navigation interface."
+              version="0.10.23">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="command" transfer-ownership="none">
+            <type name="NavigationCommand" c:type="GstNavigationCommand"/>
+          </parameter>
+        </parameters>
+      </method>
+    </interface>
+    <enumeration name="NavigationCommand"
+                 doc="this enters the DVD root menu, or exits back to the title from the menu.
+this jumps to the DVD title menu.
+this jumps into the DVD root menu.
+this jumps to the Subpicture menu.
+the jumps to the audio menu.
+this jumps to the angles menu.
+this jumps to the chapter menu.
+if such a button exists.
+if such a button exists.
+menu, if such a button exists.
+menu, if such a button exists.
+button in a menu, if such a button exists.
+multiangle feature.
+feature.
+A set of commands that may be issued to an element providing the
+#GstNavigation interface. The available commands can be queried via
+the gst_navigation_query_new_commands() query.
+For convenience in handling DVD navigation, the MENU commands are aliased as:
+GST_NAVIGATION_COMMAND_DVD_MENU            = @GST_NAVIGATION_COMMAND_MENU1
+GST_NAVIGATION_COMMAND_DVD_TITLE_MENU      = @GST_NAVIGATION_COMMAND_MENU2
+GST_NAVIGATION_COMMAND_DVD_ROOT_MENU       = @GST_NAVIGATION_COMMAND_MENU3
+GST_NAVIGATION_COMMAND_DVD_SUBPICTURE_MENU = @GST_NAVIGATION_COMMAND_MENU4
+GST_NAVIGATION_COMMAND_DVD_AUDIO_MENU      = @GST_NAVIGATION_COMMAND_MENU5
+GST_NAVIGATION_COMMAND_DVD_ANGLE_MENU      = @GST_NAVIGATION_COMMAND_MENU6
+GST_NAVIGATION_COMMAND_DVD_CHAPTER_MENU    = @GST_NAVIGATION_COMMAND_MENU7"
+                 version="0.10.23"
+                 glib:type-name="GstNavigationCommand"
+                 glib:get-type="gst_navigation_command_get_type"
+                 c:type="GstNavigationCommand">
+      <member name="invalid"
+              value="0"
+              c:identifier="GST_NAVIGATION_COMMAND_INVALID"
+              glib:nick="invalid"/>
+      <member name="menu1"
+              value="1"
+              c:identifier="GST_NAVIGATION_COMMAND_MENU1"
+              glib:nick="menu1"/>
+      <member name="menu2"
+              value="2"
+              c:identifier="GST_NAVIGATION_COMMAND_MENU2"
+              glib:nick="menu2"/>
+      <member name="menu3"
+              value="3"
+              c:identifier="GST_NAVIGATION_COMMAND_MENU3"
+              glib:nick="menu3"/>
+      <member name="menu4"
+              value="4"
+              c:identifier="GST_NAVIGATION_COMMAND_MENU4"
+              glib:nick="menu4"/>
+      <member name="menu5"
+              value="5"
+              c:identifier="GST_NAVIGATION_COMMAND_MENU5"
+              glib:nick="menu5"/>
+      <member name="menu6"
+              value="6"
+              c:identifier="GST_NAVIGATION_COMMAND_MENU6"
+              glib:nick="menu6"/>
+      <member name="menu7"
+              value="7"
+              c:identifier="GST_NAVIGATION_COMMAND_MENU7"
+              glib:nick="menu7"/>
+      <member name="left"
+              value="20"
+              c:identifier="GST_NAVIGATION_COMMAND_LEFT"
+              glib:nick="left"/>
+      <member name="right"
+              value="21"
+              c:identifier="GST_NAVIGATION_COMMAND_RIGHT"
+              glib:nick="right"/>
+      <member name="up"
+              value="22"
+              c:identifier="GST_NAVIGATION_COMMAND_UP"
+              glib:nick="up"/>
+      <member name="down"
+              value="23"
+              c:identifier="GST_NAVIGATION_COMMAND_DOWN"
+              glib:nick="down"/>
+      <member name="activate"
+              value="24"
+              c:identifier="GST_NAVIGATION_COMMAND_ACTIVATE"
+              glib:nick="activate"/>
+      <member name="prev_angle"
+              value="30"
+              c:identifier="GST_NAVIGATION_COMMAND_PREV_ANGLE"
+              glib:nick="prev-angle"/>
+      <member name="next_angle"
+              value="31"
+              c:identifier="GST_NAVIGATION_COMMAND_NEXT_ANGLE"
+              glib:nick="next-angle"/>
+    </enumeration>
+    <enumeration name="NavigationEventType"
+                 doc="gst_navigation_event_get_type() when the passed event is not a navigation event.
+gst_navigation_event_parse_key_event() to extract the details from the event.
+gst_navigation_event_parse_key_event() to extract the details from the event.
+gst_navigation_event_parse_mouse_button_event() to extract the details from the
+event.
+gst_navigation_event_parse_mouse_button_event() to extract the details from the
+event.
+gst_navigation_event_parse_mouse_move_event() to extract the details from the
+event.
+gst_navigation_event_parse_command() to extract the details from the event.
+Enum values for the various events that an element implementing the
+GstNavigation interface might send up the pipeline."
+                 version="0.10.23"
+                 glib:type-name="GstNavigationEventType"
+                 glib:get-type="gst_navigation_event_type_get_type"
+                 c:type="GstNavigationEventType">
+      <member name="invalid"
+              value="0"
+              c:identifier="GST_NAVIGATION_EVENT_INVALID"
+              glib:nick="invalid"/>
+      <member name="key_press"
+              value="1"
+              c:identifier="GST_NAVIGATION_EVENT_KEY_PRESS"
+              glib:nick="key-press"/>
+      <member name="key_release"
+              value="2"
+              c:identifier="GST_NAVIGATION_EVENT_KEY_RELEASE"
+              glib:nick="key-release"/>
+      <member name="mouse_button_press"
+              value="3"
+              c:identifier="GST_NAVIGATION_EVENT_MOUSE_BUTTON_PRESS"
+              glib:nick="mouse-button-press"/>
+      <member name="mouse_button_release"
+              value="4"
+              c:identifier="GST_NAVIGATION_EVENT_MOUSE_BUTTON_RELEASE"
+              glib:nick="mouse-button-release"/>
+      <member name="mouse_move"
+              value="5"
+              c:identifier="GST_NAVIGATION_EVENT_MOUSE_MOVE"
+              glib:nick="mouse-move"/>
+      <member name="command"
+              value="6"
+              c:identifier="GST_NAVIGATION_EVENT_COMMAND"
+              glib:nick="command"/>
+    </enumeration>
+    <record name="NavigationInterface"
+            c:type="GstNavigationInterface"
+            glib:is-gtype-struct-for="Navigation">
+      <field name="g_iface">
+        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
+      </field>
+      <field name="send_event">
+        <callback name="send_event" c:type="send_event">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="navigation" transfer-ownership="none">
+              <type name="Navigation" c:type="GstNavigation*"/>
+            </parameter>
+            <parameter name="structure" transfer-ownership="none">
+              <type name="Gst.Structure" c:type="GstStructure*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="_gst_reserved">
+        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+          <type name="any"/>
+        </array>
+      </field>
+    </record>
+    <enumeration name="NavigationMessageType"
+                 doc="gst_navigation_message_get_type() when the passed message is not a
+navigation message.
+clickable region of the output, such as a DVD menu button.
+changes and should re-queried by interested applications.
+feature (such as a multiangle DVD) change - either angles have appeared or
+disappeared.
+A set of notifications that may be received on the bus when navigation
+related status changes."
+                 version="0.10.23"
+                 glib:type-name="GstNavigationMessageType"
+                 glib:get-type="gst_navigation_message_type_get_type"
+                 c:type="GstNavigationMessageType">
+      <member name="invalid"
+              value="0"
+              c:identifier="GST_NAVIGATION_MESSAGE_INVALID"
+              glib:nick="invalid"/>
+      <member name="mouse_over"
+              value="1"
+              c:identifier="GST_NAVIGATION_MESSAGE_MOUSE_OVER"
+              glib:nick="mouse-over"/>
+      <member name="commands_changed"
+              value="2"
+              c:identifier="GST_NAVIGATION_MESSAGE_COMMANDS_CHANGED"
+              glib:nick="commands-changed"/>
+      <member name="angles_changed"
+              value="3"
+              c:identifier="GST_NAVIGATION_MESSAGE_ANGLES_CHANGED"
+              glib:nick="angles-changed"/>
+    </enumeration>
+    <enumeration name="NavigationQueryType"
+                 glib:type-name="GstNavigationQueryType"
+                 glib:get-type="gst_navigation_query_type_get_type"
+                 c:type="GstNavigationQueryType">
+      <member name="invalid"
+              value="0"
+              c:identifier="GST_NAVIGATION_QUERY_INVALID"
+              glib:nick="invalid"/>
+      <member name="commands"
+              value="1"
+              c:identifier="GST_NAVIGATION_QUERY_COMMANDS"
+              glib:nick="commands"/>
+      <member name="angles"
+              value="2"
+              c:identifier="GST_NAVIGATION_QUERY_ANGLES"
+              glib:nick="angles"/>
+    </enumeration>
+    <interface name="PropertyProbe"
+               c:type="GstPropertyProbe"
+               doc="Opaque #GstPropertyProbe data structure."
+               glib:type-name="GstPropertyProbe"
+               glib:get-type="gst_property_probe_get_type"
+               glib:type-struct="PropertyProbeInterface">
+      <virtual-method name="get_properties" invoker="get_properties">
+        <return-value transfer-ownership="none">
+          <type name="GLib.List" c:type="GList*"/>
+        </return-value>
+      </virtual-method>
+      <virtual-method name="needs_probe">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="prop_id" transfer-ownership="none">
+            <type name="uint" c:type="guint"/>
+          </parameter>
+          <parameter name="pspec" transfer-ownership="none">
+            <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="probe_property">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="prop_id" transfer-ownership="none">
+            <type name="uint" c:type="guint"/>
+          </parameter>
+          <parameter name="pspec" transfer-ownership="none">
+            <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="get_values">
+        <return-value transfer-ownership="full">
+          <type name="GObject.ValueArray" c:type="GValueArray*"/>
+        </return-value>
+        <parameters>
+          <parameter name="prop_id" transfer-ownership="none">
+            <type name="uint" c:type="guint"/>
+          </parameter>
+          <parameter name="pspec" transfer-ownership="none">
+            <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <method name="get_properties"
+              c:identifier="gst_property_probe_get_properties"
+              doc="Get a list of properties for which probing is supported.
+by this element.">
+        <return-value transfer-ownership="none">
+          <type name="GLib.List" c:type="GList*"/>
+        </return-value>
+      </method>
+      <method name="get_property"
+              c:identifier="gst_property_probe_get_property"
+              doc="Get #GParamSpec for a property for which probing is supported.">
+        <return-value transfer-ownership="none">
+          <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
+        </return-value>
+        <parameters>
+          <parameter name="name" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="probe_property"
+              c:identifier="gst_property_probe_probe_property"
+              doc="Runs a probe on the property specified by @pspec">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="pspec" transfer-ownership="none">
+            <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="probe_property_name"
+              c:identifier="gst_property_probe_probe_property_name"
+              doc="Runs a probe on the property specified by @name.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="name" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="needs_probe"
+              c:identifier="gst_property_probe_needs_probe"
+              doc="Checks whether a property needs a probe. This might be because
+the property wasn&apos;t initialized before, or because host setup
+changed. This might be, for example, because a new device was
+added, and thus device probing needs to be refreshed to display
+the new device.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="pspec" transfer-ownership="none">
+            <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="needs_probe_name"
+              c:identifier="gst_property_probe_needs_probe_name"
+              doc="Same as gst_property_probe_needs_probe ().">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="name" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_values"
+              c:identifier="gst_property_probe_get_values"
+              doc="Gets the possible (probed) values for the given property,
+requires the property to have been probed before.">
+        <return-value transfer-ownership="full">
+          <type name="GObject.ValueArray" c:type="GValueArray*"/>
+        </return-value>
+        <parameters>
+          <parameter name="pspec" transfer-ownership="none">
+            <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_values_name"
+              c:identifier="gst_property_probe_get_values_name"
+              doc="Same as gst_property_probe_get_values ().">
+        <return-value transfer-ownership="full">
+          <type name="GObject.ValueArray" c:type="GValueArray*"/>
+        </return-value>
+        <parameters>
+          <parameter name="name" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="probe_and_get_values"
+              c:identifier="gst_property_probe_probe_and_get_values"
+              doc="Check whether the given property requires a new probe. If so,
+fo the probe. After that, retrieve a value list. Meant as a
+utility function that wraps the above functions.">
+        <return-value transfer-ownership="full">
+          <type name="GObject.ValueArray" c:type="GValueArray*"/>
+        </return-value>
+        <parameters>
+          <parameter name="pspec" transfer-ownership="none">
+            <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="probe_and_get_values_name"
+              c:identifier="gst_property_probe_probe_and_get_values_name"
+              doc="Same as gst_property_probe_probe_and_get_values ().">
+        <return-value transfer-ownership="full">
+          <type name="GObject.ValueArray" c:type="GValueArray*"/>
+        </return-value>
+        <parameters>
+          <parameter name="name" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <glib:signal name="probe-needed">
+        <return-value transfer-ownership="full">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="object" transfer-ownership="none">
+            <type name="any" c:type="gpointer"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+    </interface>
+    <record name="PropertyProbeInterface"
+            c:type="GstPropertyProbeInterface"
+            glib:is-gtype-struct-for="PropertyProbe"
+            doc="#GstPropertyProbe interface.">
+      <field name="klass">
+        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
+      </field>
+      <field name="probe_needed">
+        <callback name="probe_needed" c:type="probe_needed">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="probe" transfer-ownership="none">
+              <type name="PropertyProbe" c:type="GstPropertyProbe*"/>
+            </parameter>
+            <parameter name="pspec" transfer-ownership="none">
+              <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="get_properties">
+        <callback name="get_properties" c:type="get_properties">
+          <return-value transfer-ownership="none">
+            <type name="GLib.List" c:type="GList*"/>
+          </return-value>
+          <parameters>
+            <parameter name="probe" transfer-ownership="none">
+              <type name="PropertyProbe" c:type="GstPropertyProbe*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="needs_probe">
+        <callback name="needs_probe" c:type="needs_probe">
+          <return-value transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="probe" transfer-ownership="none">
+              <type name="PropertyProbe" c:type="GstPropertyProbe*"/>
+            </parameter>
+            <parameter name="prop_id" transfer-ownership="none">
+              <type name="uint" c:type="guint"/>
+            </parameter>
+            <parameter name="pspec" transfer-ownership="none">
+              <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="probe_property">
+        <callback name="probe_property" c:type="probe_property">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="probe" transfer-ownership="none">
+              <type name="PropertyProbe" c:type="GstPropertyProbe*"/>
+            </parameter>
+            <parameter name="prop_id" transfer-ownership="none">
+              <type name="uint" c:type="guint"/>
+            </parameter>
+            <parameter name="pspec" transfer-ownership="none">
+              <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="get_values">
+        <callback name="get_values" c:type="get_values">
+          <return-value transfer-ownership="full">
+            <type name="GObject.ValueArray" c:type="GValueArray*"/>
+          </return-value>
+          <parameters>
+            <parameter name="probe" transfer-ownership="none">
+              <type name="PropertyProbe" c:type="GstPropertyProbe*"/>
+            </parameter>
+            <parameter name="prop_id" transfer-ownership="none">
+              <type name="uint" c:type="guint"/>
+            </parameter>
+            <parameter name="pspec" transfer-ownership="none">
+              <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="_gst_reserved">
+        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+          <type name="any"/>
+        </array>
+      </field>
+    </record>
+    <interface name="StreamVolume"
+               c:type="GstStreamVolume"
+               glib:type-name="GstStreamVolume"
+               glib:get-type="gst_stream_volume_get_type"
+               glib:type-struct="StreamVolumeInterface">
+      <method name="set_volume"
+              c:identifier="gst_stream_volume_set_volume"
+              version="0.10.25">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="format" transfer-ownership="none">
+            <type name="StreamVolumeFormat" c:type="GstStreamVolumeFormat"/>
+          </parameter>
+          <parameter name="val" transfer-ownership="none">
+            <type name="double" c:type="gdouble"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_volume"
+              c:identifier="gst_stream_volume_get_volume"
+              version="0.10.25">
+        <return-value transfer-ownership="none">
+          <type name="double" c:type="gdouble"/>
+        </return-value>
+        <parameters>
+          <parameter name="format" transfer-ownership="none">
+            <type name="StreamVolumeFormat" c:type="GstStreamVolumeFormat"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_mute"
+              c:identifier="gst_stream_volume_set_mute"
+              version="0.10.25">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="mute" transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_mute"
+              c:identifier="gst_stream_volume_get_mute"
+              version="0.10.25">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+      </method>
+      <property name="mute" writable="1">
+        <type name="boolean" c:type="gboolean"/>
+      </property>
+      <property name="volume" writable="1">
+        <type name="double" c:type="gdouble"/>
+      </property>
+    </interface>
+    <enumeration name="StreamVolumeFormat"
+                 doc="Different representations of a stream volume. gst_stream_volume_convert()
+allows to convert between the different representations.
+Formulas to convert from a linear to a cubic or dB volume are
+cbrt(val) and 20 * log10 (val)."
+                 version="0.10.25"
+                 glib:type-name="GstStreamVolumeFormat"
+                 glib:get-type="gst_stream_volume_format_get_type"
+                 c:type="GstStreamVolumeFormat">
+      <member name="linear"
+              value="0"
+              c:identifier="GST_STREAM_VOLUME_FORMAT_LINEAR"
+              glib:nick="linear"/>
+      <member name="cubic"
+              value="1"
+              c:identifier="GST_STREAM_VOLUME_FORMAT_CUBIC"
+              glib:nick="cubic"/>
+      <member name="db"
+              value="2"
+              c:identifier="GST_STREAM_VOLUME_FORMAT_DB"
+              glib:nick="db"/>
+    </enumeration>
+    <record name="StreamVolumeInterface"
+            c:type="GstStreamVolumeInterface"
+            glib:is-gtype-struct-for="StreamVolume">
+      <field name="parent">
+        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
+      </field>
+      <field name="_gst_reserved">
+        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+          <type name="any"/>
+        </array>
+      </field>
+    </record>
+    <interface name="Tuner"
+               c:type="GstTuner"
+               glib:type-name="GstTuner"
+               glib:get-type="gst_tuner_get_type"
+               glib:type-struct="TunerClass">
+      <prerequisite name="Gst.ImplementsInterface"/>
+      <prerequisite name="Gst.Element"/>
+      <virtual-method name="list_channels" invoker="list_channels">
+        <return-value transfer-ownership="none">
+          <type name="GLib.List" c:type="GList*"/>
+        </return-value>
+      </virtual-method>
+      <virtual-method name="set_channel" invoker="set_channel">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="channel" transfer-ownership="none">
+            <type name="TunerChannel" c:type="GstTunerChannel*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="get_channel" invoker="get_channel">
+        <return-value transfer-ownership="full">
+          <type name="TunerChannel" c:type="GstTunerChannel*"/>
+        </return-value>
+      </virtual-method>
+      <virtual-method name="list_norms" invoker="list_norms">
+        <return-value transfer-ownership="none">
+          <type name="GLib.List" c:type="GList*"/>
+        </return-value>
+      </virtual-method>
+      <virtual-method name="set_norm" invoker="set_norm">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="norm" transfer-ownership="none">
+            <type name="TunerNorm" c:type="GstTunerNorm*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="get_norm" invoker="get_norm">
+        <return-value transfer-ownership="full">
+          <type name="TunerNorm" c:type="GstTunerNorm*"/>
+        </return-value>
+      </virtual-method>
+      <virtual-method name="set_frequency" invoker="set_frequency">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="channel" transfer-ownership="none">
+            <type name="TunerChannel" c:type="GstTunerChannel*"/>
+          </parameter>
+          <parameter name="frequency" transfer-ownership="none">
+            <type name="ulong" c:type="gulong"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="get_frequency" invoker="get_frequency">
+        <return-value transfer-ownership="none">
+          <type name="ulong" c:type="gulong"/>
+        </return-value>
+        <parameters>
+          <parameter name="channel" transfer-ownership="none">
+            <type name="TunerChannel" c:type="GstTunerChannel*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="signal_strength" invoker="signal_strength">
+        <return-value transfer-ownership="none">
+          <type name="int" c:type="gint"/>
+        </return-value>
+        <parameters>
+          <parameter name="channel" transfer-ownership="none">
+            <type name="TunerChannel" c:type="GstTunerChannel*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <method name="list_channels"
+              c:identifier="gst_tuner_list_channels"
+              doc="Retrieve a #GList of #GstTunerChannels available
+(e.g. &apos;composite&apos;, &apos;s-video&apos;, ...) from the given tuner object.
+owned by the GstTuner and must not be freed.">
+        <return-value transfer-ownership="none">
+          <type name="GLib.List" c:type="GList*"/>
+        </return-value>
+      </method>
+      <method name="set_channel"
+              c:identifier="gst_tuner_set_channel"
+              doc="Tunes the object to the given channel, which should be one of the
+channels returned by gst_tuner_list_channels().">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="channel" transfer-ownership="none">
+            <type name="TunerChannel" c:type="GstTunerChannel*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_channel"
+              c:identifier="gst_tuner_get_channel"
+              doc="Retrieve the current channel from the tuner.">
+        <return-value transfer-ownership="full">
+          <type name="TunerChannel" c:type="GstTunerChannel*"/>
+        </return-value>
+      </method>
+      <method name="list_norms"
+              c:identifier="gst_tuner_list_norms"
+              doc="Retrieve a GList of available #GstTunerNorm settings for the currently
+tuned channel on the given tuner object.
+tuner object. The list is owned by the GstTuner and must not
+be freed.">
+        <return-value transfer-ownership="none">
+          <type name="GLib.List" c:type="GList*"/>
+        </return-value>
+      </method>
+      <method name="set_norm"
+              c:identifier="gst_tuner_set_norm"
+              doc="Changes the video norm on this tuner to the given norm, which should be
+one of the norms returned by gst_tuner_list_norms().">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="norm" transfer-ownership="none">
+            <type name="TunerNorm" c:type="GstTunerNorm*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_norm"
+              c:identifier="gst_tuner_get_norm"
+              doc="Get the current video norm from the given tuner object for the
+currently selected channel.">
+        <return-value transfer-ownership="full">
+          <type name="TunerNorm" c:type="GstTunerNorm*"/>
+        </return-value>
+      </method>
+      <method name="set_frequency"
+              c:identifier="gst_tuner_set_frequency"
+              doc="Sets a tuning frequency on the given tuner/channel. Note that this
+requires the given channel to be a &quot;tuning&quot; channel, which can be
+checked using GST_TUNER_CHANNEL_HAS_FLAG (), with the proper flag
+being GST_TUNER_CHANNEL_FREQUENCY.
+The frequency is in Hz, with minimum steps indicated by the
+frequency_multiplicator provided in the #GstTunerChannel. The
+valid range is provided in the min_frequency and max_frequency properties
+of the #GstTunerChannel.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="channel" transfer-ownership="none">
+            <type name="TunerChannel" c:type="GstTunerChannel*"/>
+          </parameter>
+          <parameter name="frequency" transfer-ownership="none">
+            <type name="ulong" c:type="gulong"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_frequency"
+              c:identifier="gst_tuner_get_frequency"
+              doc="Retrieve the current frequency from the given channel. As for
+gst_tuner_set_frequency(), the #GstTunerChannel must support frequency
+operations, as indicated by the GST_TUNER_CHANNEL_FREQUENCY flag.">
+        <return-value transfer-ownership="none">
+          <type name="ulong" c:type="gulong"/>
+        </return-value>
+        <parameters>
+          <parameter name="channel" transfer-ownership="none">
+            <type name="TunerChannel" c:type="GstTunerChannel*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="signal_strength"
+              c:identifier="gst_tuner_signal_strength"
+              doc="Get the strength of the signal on this channel. Note that this
+requires the current channel to be a &quot;tuning&quot; channel, i.e. a
+channel on which frequency can be set. This can be checked using
+GST_TUNER_CHANNEL_HAS_FLAG (), and the appropriate flag to check
+for is GST_TUNER_CHANNEL_FREQUENCY.
+The valid range of the signal strength is indicated in the
+min_signal and max_signal properties of the #GstTunerChannel.">
+        <return-value transfer-ownership="none">
+          <type name="int" c:type="gint"/>
+        </return-value>
+        <parameters>
+          <parameter name="channel" transfer-ownership="none">
+            <type name="TunerChannel" c:type="GstTunerChannel*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="find_norm_by_name"
+              c:identifier="gst_tuner_find_norm_by_name"
+              doc="Look up a #GstTunerNorm by name.
+is available.">
+        <return-value transfer-ownership="full">
+          <type name="TunerNorm" c:type="GstTunerNorm*"/>
+        </return-value>
+        <parameters>
+          <parameter name="norm" transfer-ownership="full">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="find_channel_by_name"
+              c:identifier="gst_tuner_find_channel_by_name"
+              doc="Look up a #GstTunerChannel by name.
+is available.">
+        <return-value transfer-ownership="full">
+          <type name="TunerChannel" c:type="GstTunerChannel*"/>
+        </return-value>
+        <parameters>
+          <parameter name="channel" transfer-ownership="full">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="channel_changed"
+              c:identifier="gst_tuner_channel_changed"
+              doc="Called by elements implementing the #GstTuner interface when the
+current channel changes. Fires the #GstTuner::channel-changed signal.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="channel" transfer-ownership="none">
+            <type name="TunerChannel" c:type="GstTunerChannel*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="norm_changed"
+              c:identifier="gst_tuner_norm_changed"
+              doc="Called by elements implementing the #GstTuner interface when the
+current norm changes. Fires the #GstTuner::norm-changed signal.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="norm" transfer-ownership="none">
+            <type name="TunerNorm" c:type="GstTunerNorm*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="frequency_changed"
+              c:identifier="gst_tuner_frequency_changed"
+              doc="Called by elements implementing the #GstTuner interface when the
+configured frequency changes. Fires the #GstTuner::frequency-changed
+signal on the tuner, and the #GstTunerChannel::frequency-changed signal
+on the channel.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="channel" transfer-ownership="none">
+            <type name="TunerChannel" c:type="GstTunerChannel*"/>
+          </parameter>
+          <parameter name="frequency" transfer-ownership="none">
+            <type name="ulong" c:type="gulong"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="signal_changed"
+              c:identifier="gst_tuner_signal_changed"
+              doc="Called by elements implementing the #GstTuner interface when the
+incoming signal strength changes. Fires the #GstTuner::signal-changed
+signal on the tuner and the #GstTunerChannel::signal-changed signal on
+the channel.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="channel" transfer-ownership="none">
+            <type name="TunerChannel" c:type="GstTunerChannel*"/>
+          </parameter>
+          <parameter name="signal" transfer-ownership="none">
+            <type name="int" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <glib:signal name="channel-changed"
+                   doc="Reports that the current #GstTunerChannel has changed.">
+        <return-value transfer-ownership="full">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="channel" transfer-ownership="none">
+            <type name="TunerChannel" c:type="GstTunerChannel"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="frequency-changed"
+                   doc="Reports that the current frequency has changed.">
+        <return-value transfer-ownership="full">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="object" transfer-ownership="none">
+            <type name="TunerChannel" c:type="GstTunerChannel"/>
+          </parameter>
+          <parameter name="p0" transfer-ownership="none">
+            <type name="ulong" c:type="gulong"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="norm-changed"
+                   doc="Reports that the current #GstTunerNorm has changed.">
+        <return-value transfer-ownership="full">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="norm" transfer-ownership="none">
+            <type name="TunerNorm" c:type="GstTunerNorm"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="signal-changed"
+                   doc="Reports that the signal strength has changed.">
+        <return-value transfer-ownership="full">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="channel" transfer-ownership="none">
+            <type name="TunerChannel" c:type="GstTunerChannel"/>
+          </parameter>
+          <parameter name="signal" transfer-ownership="none">
+            <type name="int" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+    </interface>
+    <class name="TunerChannel"
+           c:type="GstTunerChannel"
+           parent="GObject.Object"
+           glib:type-name="GstTunerChannel"
+           glib:get-type="gst_tuner_channel_get_type"
+           glib:type-struct="TunerChannelClass">
+      <field name="parent">
+        <type name="GObject.Object" c:type="GObject"/>
+      </field>
+      <field name="label">
+        <type name="utf8" c:type="gchar*"/>
+      </field>
+      <field name="flags">
+        <type name="TunerChannelFlags" c:type="GstTunerChannelFlags"/>
+      </field>
+      <field name="freq_multiplicator">
+        <type name="float" c:type="gfloat"/>
+      </field>
+      <field name="min_frequency">
+        <type name="ulong" c:type="gulong"/>
+      </field>
+      <field name="max_frequency">
+        <type name="ulong" c:type="gulong"/>
+      </field>
+      <field name="min_signal">
+        <type name="int" c:type="gint"/>
+      </field>
+      <field name="max_signal">
+        <type name="int" c:type="gint"/>
+      </field>
+      <glib:signal name="frequency-changed"
+                   doc="Reports that the current frequency has changed.">
+        <return-value transfer-ownership="full">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="frequency" transfer-ownership="none">
+            <type name="ulong" c:type="gulong"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="signal-changed"
+                   doc="Reports that the signal strength has changed.">
+        <return-value transfer-ownership="full">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="signal" transfer-ownership="none">
+            <type name="int" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+    </class>
+    <record name="TunerChannelClass"
+            c:type="GstTunerChannelClass"
+            glib:is-gtype-struct-for="TunerChannel">
+      <field name="parent">
+        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
+      </field>
+      <field name="frequency_changed">
+        <callback name="frequency_changed" c:type="frequency_changed">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="channel" transfer-ownership="none">
+              <type name="TunerChannel" c:type="GstTunerChannel*"/>
+            </parameter>
+            <parameter name="frequency" transfer-ownership="none">
+              <type name="ulong" c:type="gulong"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="signal_changed">
+        <callback name="signal_changed" c:type="signal_changed">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="channel" transfer-ownership="none">
+              <type name="TunerChannel" c:type="GstTunerChannel*"/>
+            </parameter>
+            <parameter name="signal" transfer-ownership="none">
+              <type name="int" c:type="gint"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="_gst_reserved">
+        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+          <type name="any"/>
+        </array>
+      </field>
+    </record>
+    <bitfield name="TunerChannelFlags"
+              doc="and signal strength.
+An enumeration for flags indicating the available capabilities
+of a #GstTunerChannel."
+              glib:type-name="GstTunerChannelFlags"
+              glib:get-type="gst_tuner_channel_flags_get_type"
+              c:type="GstTunerChannelFlags">
+      <member name="input"
+              value="1"
+              c:identifier="GST_TUNER_CHANNEL_INPUT"
+              glib:nick="input"/>
+      <member name="output"
+              value="2"
+              c:identifier="GST_TUNER_CHANNEL_OUTPUT"
+              glib:nick="output"/>
+      <member name="frequency"
+              value="4"
+              c:identifier="GST_TUNER_CHANNEL_FREQUENCY"
+              glib:nick="frequency"/>
+      <member name="audio"
+              value="8"
+              c:identifier="GST_TUNER_CHANNEL_AUDIO"
+              glib:nick="audio"/>
+    </bitfield>
+    <record name="TunerClass"
+            c:type="GstTunerClass"
+            glib:is-gtype-struct-for="Tuner">
+      <field name="klass">
+        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
+      </field>
+      <field name="list_channels">
+        <callback name="list_channels" c:type="list_channels">
+          <return-value transfer-ownership="none">
+            <type name="GLib.List" c:type="GList*"/>
+          </return-value>
+          <parameters>
+            <parameter name="tuner" transfer-ownership="none">
+              <type name="Tuner" c:type="GstTuner*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="set_channel">
+        <callback name="set_channel" c:type="set_channel">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="tuner" transfer-ownership="none">
+              <type name="Tuner" c:type="GstTuner*"/>
+            </parameter>
+            <parameter name="channel" transfer-ownership="none">
+              <type name="TunerChannel" c:type="GstTunerChannel*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="get_channel">
+        <callback name="get_channel" c:type="get_channel">
+          <return-value transfer-ownership="full">
+            <type name="TunerChannel" c:type="GstTunerChannel*"/>
+          </return-value>
+          <parameters>
+            <parameter name="tuner" transfer-ownership="none">
+              <type name="Tuner" c:type="GstTuner*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="list_norms">
+        <callback name="list_norms" c:type="list_norms">
+          <return-value transfer-ownership="none">
+            <type name="GLib.List" c:type="GList*"/>
+          </return-value>
+          <parameters>
+            <parameter name="tuner" transfer-ownership="none">
+              <type name="Tuner" c:type="GstTuner*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="set_norm">
+        <callback name="set_norm" c:type="set_norm">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="tuner" transfer-ownership="none">
+              <type name="Tuner" c:type="GstTuner*"/>
+            </parameter>
+            <parameter name="norm" transfer-ownership="none">
+              <type name="TunerNorm" c:type="GstTunerNorm*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="get_norm">
+        <callback name="get_norm" c:type="get_norm">
+          <return-value transfer-ownership="full">
+            <type name="TunerNorm" c:type="GstTunerNorm*"/>
+          </return-value>
+          <parameters>
+            <parameter name="tuner" transfer-ownership="none">
+              <type name="Tuner" c:type="GstTuner*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="set_frequency">
+        <callback name="set_frequency" c:type="set_frequency">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="tuner" transfer-ownership="none">
+              <type name="Tuner" c:type="GstTuner*"/>
+            </parameter>
+            <parameter name="channel" transfer-ownership="none">
+              <type name="TunerChannel" c:type="GstTunerChannel*"/>
+            </parameter>
+            <parameter name="frequency" transfer-ownership="none">
+              <type name="ulong" c:type="gulong"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="get_frequency">
+        <callback name="get_frequency" c:type="get_frequency">
+          <return-value transfer-ownership="none">
+            <type name="ulong" c:type="gulong"/>
+          </return-value>
+          <parameters>
+            <parameter name="tuner" transfer-ownership="none">
+              <type name="Tuner" c:type="GstTuner*"/>
+            </parameter>
+            <parameter name="channel" transfer-ownership="none">
+              <type name="TunerChannel" c:type="GstTunerChannel*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="signal_strength">
+        <callback name="signal_strength" c:type="signal_strength">
+          <return-value transfer-ownership="none">
+            <type name="int" c:type="gint"/>
+          </return-value>
+          <parameters>
+            <parameter name="tuner" transfer-ownership="none">
+              <type name="Tuner" c:type="GstTuner*"/>
+            </parameter>
+            <parameter name="channel" transfer-ownership="none">
+              <type name="TunerChannel" c:type="GstTunerChannel*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="channel_changed">
+        <callback name="channel_changed" c:type="channel_changed">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="tuner" transfer-ownership="none">
+              <type name="Tuner" c:type="GstTuner*"/>
+            </parameter>
+            <parameter name="channel" transfer-ownership="none">
+              <type name="TunerChannel" c:type="GstTunerChannel*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="norm_changed">
+        <callback name="norm_changed" c:type="norm_changed">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="tuner" transfer-ownership="none">
+              <type name="Tuner" c:type="GstTuner*"/>
+            </parameter>
+            <parameter name="norm" transfer-ownership="none">
+              <type name="TunerNorm" c:type="GstTunerNorm*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="frequency_changed">
+        <callback name="frequency_changed" c:type="frequency_changed">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="tuner" transfer-ownership="none">
+              <type name="Tuner" c:type="GstTuner*"/>
+            </parameter>
+            <parameter name="channel" transfer-ownership="none">
+              <type name="TunerChannel" c:type="GstTunerChannel*"/>
+            </parameter>
+            <parameter name="frequency" transfer-ownership="none">
+              <type name="ulong" c:type="gulong"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="signal_changed">
+        <callback name="signal_changed" c:type="signal_changed">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="tuner" transfer-ownership="none">
+              <type name="Tuner" c:type="GstTuner*"/>
+            </parameter>
+            <parameter name="channel" transfer-ownership="none">
+              <type name="TunerChannel" c:type="GstTunerChannel*"/>
+            </parameter>
+            <parameter name="signal" transfer-ownership="none">
+              <type name="int" c:type="gint"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="_gst_reserved">
+        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+          <type name="any"/>
+        </array>
+      </field>
+    </record>
+    <class name="TunerNorm"
+           c:type="GstTunerNorm"
+           doc="if any. (May be unset)."
+           parent="GObject.Object"
+           glib:type-name="GstTunerNorm"
+           glib:get-type="gst_tuner_norm_get_type"
+           glib:type-struct="TunerNormClass">
+      <field name="parent">
+        <type name="GObject.Object" c:type="GObject"/>
+      </field>
+      <field name="label">
+        <type name="utf8" c:type="gchar*"/>
+      </field>
+      <field name="framerate">
+        <type name="GObject.Value" c:type="GValue"/>
+      </field>
+    </class>
+    <record name="TunerNormClass"
+            c:type="GstTunerNormClass"
+            glib:is-gtype-struct-for="TunerNorm">
+      <field name="parent">
+        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
+      </field>
+      <field name="_gst_reserved">
+        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+          <type name="any"/>
+        </array>
+      </field>
+    </record>
+    <interface name="VideoOrientation"
+               c:type="GstVideoOrientation"
+               doc="Opaque #GstVideoOrientation data structure."
+               glib:type-name="GstVideoOrientation"
+               glib:get-type="gst_video_orientation_get_type"
+               glib:type-struct="VideoOrientationInterface">
+      <prerequisite name="Gst.ImplementsInterface"/>
+      <prerequisite name="Gst.Element"/>
+      <virtual-method name="get_hflip" invoker="get_hflip">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="flip" direction="out" transfer-ownership="full">
+            <type name="boolean" c:type="gboolean*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="get_vflip" invoker="get_vflip">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="flip" direction="out" transfer-ownership="full">
+            <type name="boolean" c:type="gboolean*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="get_hcenter" invoker="get_hcenter">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="center" direction="out" transfer-ownership="full">
+            <type name="int" c:type="gint*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="get_vcenter" invoker="get_vcenter">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="center" direction="out" transfer-ownership="full">
+            <type name="int" c:type="gint*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="set_hflip" invoker="set_hflip">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="flip" transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="set_vflip" invoker="set_vflip">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="flip" transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="set_hcenter" invoker="set_hcenter">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="center" transfer-ownership="none">
+            <type name="int" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="set_vcenter" invoker="set_vcenter">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="center" transfer-ownership="none">
+            <type name="int" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <method name="get_hflip"
+              c:identifier="gst_video_orientation_get_hflip"
+              doc="Get the horizontal flipping state (%TRUE for flipped) from the given object."
+              version="0.10.11">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="flip" direction="out" transfer-ownership="full">
+            <type name="boolean" c:type="gboolean*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_vflip"
+              c:identifier="gst_video_orientation_get_vflip"
+              doc="Get the vertical flipping state (%TRUE for flipped) from the given object."
+              version="0.10.11">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="flip" direction="out" transfer-ownership="full">
+            <type name="boolean" c:type="gboolean*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_hcenter"
+              c:identifier="gst_video_orientation_get_hcenter"
+              doc="Get the horizontal centering offset from the given object."
+              version="0.10.11">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="center" direction="out" transfer-ownership="full">
+            <type name="int" c:type="gint*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_vcenter"
+              c:identifier="gst_video_orientation_get_vcenter"
+              doc="Get the vertical centering offset from the given object."
+              version="0.10.11">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="center" direction="out" transfer-ownership="full">
+            <type name="int" c:type="gint*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_hflip"
+              c:identifier="gst_video_orientation_set_hflip"
+              doc="Set the horizontal flipping state (%TRUE for flipped) for the given object."
+              version="0.10.11">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="flip" transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_vflip"
+              c:identifier="gst_video_orientation_set_vflip"
+              doc="Set the vertical flipping state (%TRUE for flipped) for the given object."
+              version="0.10.11">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="flip" transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_hcenter"
+              c:identifier="gst_video_orientation_set_hcenter"
+              doc="Set the horizontal centering offset for the given object."
+              version="0.10.11">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="center" transfer-ownership="none">
+            <type name="int" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_vcenter"
+              c:identifier="gst_video_orientation_set_vcenter"
+              doc="Set the vertical centering offset for the given object."
+              version="0.10.11">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="center" transfer-ownership="none">
+            <type name="int" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </method>
+    </interface>
+    <record name="VideoOrientationInterface"
+            c:type="GstVideoOrientationInterface"
+            glib:is-gtype-struct-for="VideoOrientation"
+            doc="#GstVideoOrientationInterface interface.">
+      <field name="parent">
+        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
+      </field>
+      <field name="get_hflip">
+        <callback name="get_hflip" c:type="get_hflip">
+          <return-value transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="video_orientation" transfer-ownership="none">
+              <type name="VideoOrientation" c:type="GstVideoOrientation*"/>
+            </parameter>
+            <parameter name="flip" direction="out" transfer-ownership="full">
+              <type name="boolean" c:type="gboolean*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="get_vflip">
+        <callback name="get_vflip" c:type="get_vflip">
+          <return-value transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="video_orientation" transfer-ownership="none">
+              <type name="VideoOrientation" c:type="GstVideoOrientation*"/>
+            </parameter>
+            <parameter name="flip" direction="out" transfer-ownership="full">
+              <type name="boolean" c:type="gboolean*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="get_hcenter">
+        <callback name="get_hcenter" c:type="get_hcenter">
+          <return-value transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="video_orientation" transfer-ownership="none">
+              <type name="VideoOrientation" c:type="GstVideoOrientation*"/>
+            </parameter>
+            <parameter name="center" direction="out" transfer-ownership="full">
+              <type name="int" c:type="gint*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="get_vcenter">
+        <callback name="get_vcenter" c:type="get_vcenter">
+          <return-value transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="video_orientation" transfer-ownership="none">
+              <type name="VideoOrientation" c:type="GstVideoOrientation*"/>
+            </parameter>
+            <parameter name="center" direction="out" transfer-ownership="full">
+              <type name="int" c:type="gint*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="set_hflip">
+        <callback name="set_hflip" c:type="set_hflip">
+          <return-value transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="video_orientation" transfer-ownership="none">
+              <type name="VideoOrientation" c:type="GstVideoOrientation*"/>
+            </parameter>
+            <parameter name="flip" transfer-ownership="none">
+              <type name="boolean" c:type="gboolean"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="set_vflip">
+        <callback name="set_vflip" c:type="set_vflip">
+          <return-value transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="video_orientation" transfer-ownership="none">
+              <type name="VideoOrientation" c:type="GstVideoOrientation*"/>
+            </parameter>
+            <parameter name="flip" transfer-ownership="none">
+              <type name="boolean" c:type="gboolean"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="set_hcenter">
+        <callback name="set_hcenter" c:type="set_hcenter">
+          <return-value transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="video_orientation" transfer-ownership="none">
+              <type name="VideoOrientation" c:type="GstVideoOrientation*"/>
+            </parameter>
+            <parameter name="center" transfer-ownership="none">
+              <type name="int" c:type="gint"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="set_vcenter">
+        <callback name="set_vcenter" c:type="set_vcenter">
+          <return-value transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="video_orientation" transfer-ownership="none">
+              <type name="VideoOrientation" c:type="GstVideoOrientation*"/>
+            </parameter>
+            <parameter name="center" transfer-ownership="none">
+              <type name="int" c:type="gint"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="_gst_reserved">
+        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+          <type name="any"/>
+        </array>
+      </field>
+    </record>
+    <interface name="XOverlay"
+               c:type="GstXOverlay"
+               doc="Opaque #GstXOverlay data structure."
+               glib:type-name="GstXOverlay"
+               glib:get-type="gst_x_overlay_get_type"
+               glib:type-struct="XOverlayClass">
+      <prerequisite name="Gst.ImplementsInterface"/>
+      <prerequisite name="Gst.Element"/>
+      <virtual-method name="set_xwindow_id" invoker="set_xwindow_id">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="xwindow_id" transfer-ownership="none">
+            <type name="ulong" c:type="gulong"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="expose" invoker="expose">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </virtual-method>
+      <virtual-method name="handle_events" invoker="handle_events">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="handle_events" transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="set_render_rectangle"
+                      invoker="set_render_rectangle">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="x" transfer-ownership="none">
+            <type name="int" c:type="gint"/>
+          </parameter>
+          <parameter name="y" transfer-ownership="none">
+            <type name="int" c:type="gint"/>
+          </parameter>
+          <parameter name="width" transfer-ownership="none">
+            <type name="int" c:type="gint"/>
+          </parameter>
+          <parameter name="height" transfer-ownership="none">
+            <type name="int" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <method name="set_xwindow_id"
+              c:identifier="gst_x_overlay_set_xwindow_id"
+              doc="This will call the video overlay&apos;s set_xwindow_id method. You should
+use this method to tell to a XOverlay to display video output to a
+specific XWindow. Passing 0 as the xwindow_id will tell the overlay to
+stop using that window and create an internal one.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="xwindow_id" transfer-ownership="none">
+            <type name="ulong" c:type="gulong"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_render_rectangle"
+              c:identifier="gst_x_overlay_set_render_rectangle"
+              doc="Configure a subregion as a video target within the window set by
+gst_x_overlay_set_xwindow_id(). If this is not used or not supported
+the video will fill the area of the window set as the overlay to 100%.
+By specifying the rectangle, the video can be overlayed to a specific region
+of that window only. After setting the new rectangle one should call
+gst_x_overlay_expose() to force a redraw. To unset the region pass -1 for
+the @x, @y, @width, and @height parameters.
+This method is needed for non fullscreen video overlay in UI toolkits that
+do not support subwindows."
+              version="0.10.29">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="x" transfer-ownership="none">
+            <type name="int" c:type="gint"/>
+          </parameter>
+          <parameter name="y" transfer-ownership="none">
+            <type name="int" c:type="gint"/>
+          </parameter>
+          <parameter name="width" transfer-ownership="none">
+            <type name="int" c:type="gint"/>
+          </parameter>
+          <parameter name="height" transfer-ownership="none">
+            <type name="int" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="expose"
+              c:identifier="gst_x_overlay_expose"
+              doc="Tell an overlay that it has been exposed. This will redraw the current frame
+in the drawable even if the pipeline is PAUSED.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </method>
+      <method name="handle_events"
+              c:identifier="gst_x_overlay_handle_events"
+              doc="Tell an overlay that it should handle events from the window system. These
+events are forwared upstream as navigation events. In some window system,
+events are not propagated in the window hierarchy if a client is listening
+for them. This method allows you to disable events handling completely
+from the XOverlay."
+              version="0.10.12">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="handle_events" transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="got_xwindow_id"
+              c:identifier="gst_x_overlay_got_xwindow_id"
+              doc="This will post a &quot;have-xwindow-id&quot; element message on the bus.
+This function should only be used by video overlay plugin developers.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="xwindow_id" transfer-ownership="none">
+            <type name="ulong" c:type="gulong"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="prepare_xwindow_id"
+              c:identifier="gst_x_overlay_prepare_xwindow_id"
+              doc="This will post a &quot;prepare-xwindow-id&quot; element message on the bus
+to give applications an opportunity to call
+gst_x_overlay_set_xwindow_id() before a plugin creates its own
+window.
+This function should only be used by video overlay plugin developers.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </method>
+    </interface>
+    <record name="XOverlayClass"
+            c:type="GstXOverlayClass"
+            glib:is-gtype-struct-for="XOverlay"
+            doc="#GstXOverlay interface">
+      <field name="klass">
+        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
+      </field>
+      <field name="set_xwindow_id">
+        <callback name="set_xwindow_id" c:type="set_xwindow_id">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="overlay" transfer-ownership="none">
+              <type name="XOverlay" c:type="GstXOverlay*"/>
+            </parameter>
+            <parameter name="xwindow_id" transfer-ownership="none">
+              <type name="ulong" c:type="gulong"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="expose">
+        <callback name="expose" c:type="expose">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="overlay" transfer-ownership="none">
+              <type name="XOverlay" c:type="GstXOverlay*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="handle_events">
+        <callback name="handle_events" c:type="handle_events">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="overlay" transfer-ownership="none">
+              <type name="XOverlay" c:type="GstXOverlay*"/>
+            </parameter>
+            <parameter name="handle_events" transfer-ownership="none">
+              <type name="boolean" c:type="gboolean"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="set_render_rectangle">
+        <callback name="set_render_rectangle" c:type="set_render_rectangle">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="overlay" transfer-ownership="none">
+              <type name="XOverlay" c:type="GstXOverlay*"/>
+            </parameter>
+            <parameter name="x" transfer-ownership="none">
+              <type name="int" c:type="gint"/>
+            </parameter>
+            <parameter name="y" transfer-ownership="none">
+              <type name="int" c:type="gint"/>
+            </parameter>
+            <parameter name="width" transfer-ownership="none">
+              <type name="int" c:type="gint"/>
+            </parameter>
+            <parameter name="height" transfer-ownership="none">
+              <type name="int" c:type="gint"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="_gst_reserved">
+        <array zero-terminated="0" c:type="gpointer" fixed-size="2">
+          <type name="any"/>
+        </array>
+      </field>
+    </record>
+    <function name="mixer_message_get_type"
+              c:identifier="gst_mixer_message_get_type"
+              doc="Check a bus message to see if it is a GstMixer notification
+message and return the GstMixerMessageType identifying which
+type of notification it is.
+if the message is not a GstMixer notification."
+              version="0.10.14">
+      <return-value transfer-ownership="full">
+        <type name="MixerMessageType" c:type="GstMixerMessageType"/>
+      </return-value>
+      <parameters>
+        <parameter name="message" transfer-ownership="none">
+          <type name="Gst.Message" c:type="GstMessage*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="mixer_message_parse_mute_toggled"
+              c:identifier="gst_mixer_message_parse_mute_toggled"
+              doc="Extracts the contents of a mute-toggled bus message. Reads
+the GstMixerTrack that has changed, and the new value of the mute
+flag.
+The GstMixerTrack remains valid until the message is freed."
+              version="0.10.14">
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="message" transfer-ownership="none">
+          <type name="Gst.Message" c:type="GstMessage*"/>
+        </parameter>
+        <parameter name="track" transfer-ownership="none">
+          <type name="MixerTrack" c:type="GstMixerTrack**"/>
+        </parameter>
+        <parameter name="mute" direction="out" transfer-ownership="full">
+          <type name="boolean" c:type="gboolean*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="mixer_message_parse_option_changed"
+              c:identifier="gst_mixer_message_parse_option_changed"
+              doc="Extracts the GstMixerOptions and new value from a option-changed bus notification
+message.
+The options and value returned remain valid until the message is freed."
+              version="0.10.14">
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="message" transfer-ownership="none">
+          <type name="Gst.Message" c:type="GstMessage*"/>
+        </parameter>
+        <parameter name="options" transfer-ownership="none">
+          <type name="MixerOptions" c:type="GstMixerOptions**"/>
+        </parameter>
+        <parameter name="value" transfer-ownership="none">
+          <array c:type="gchar**">
+            <type name="utf8"/>
+          </array>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="mixer_message_parse_options_list_changed"
+              c:identifier="gst_mixer_message_parse_options_list_changed"
+              doc="Extracts the GstMixerOptions whose value list has changed from an
+options-list-changed bus notification message.
+The options object returned remains valid until the message is freed. You
+do not need to unref it."
+              version="0.10.18">
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="message" transfer-ownership="none">
+          <type name="Gst.Message" c:type="GstMessage*"/>
+        </parameter>
+        <parameter name="options" transfer-ownership="none">
+          <type name="MixerOptions" c:type="GstMixerOptions**"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="mixer_message_parse_record_toggled"
+              c:identifier="gst_mixer_message_parse_record_toggled"
+              doc="Extracts the contents of a record-toggled bus message. Reads
+the GstMixerTrack that has changed, and the new value of the
+recording flag.
+The GstMixerTrack remains valid until the message is freed."
+              version="0.10.14">
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="message" transfer-ownership="none">
+          <type name="Gst.Message" c:type="GstMessage*"/>
+        </parameter>
+        <parameter name="track" transfer-ownership="none">
+          <type name="MixerTrack" c:type="GstMixerTrack**"/>
+        </parameter>
+        <parameter name="record" direction="out" transfer-ownership="full">
+          <type name="boolean" c:type="gboolean*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="mixer_message_parse_volume_changed"
+              c:identifier="gst_mixer_message_parse_volume_changed"
+              doc="Parses a volume-changed notification message and extracts the track object
+it refers to, as well as an array of volumes and the size of the volumes array.
+The track object remains valid until the message is freed.
+The caller must free the array returned in the volumes parameter using g_free
+when they are done with it."
+              version="0.10.14">
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="message" transfer-ownership="none">
+          <type name="Gst.Message" c:type="GstMessage*"/>
+        </parameter>
+        <parameter name="track" transfer-ownership="none">
+          <type name="MixerTrack" c:type="GstMixerTrack**"/>
+        </parameter>
+        <parameter name="volumes" direction="out" transfer-ownership="full">
+          <type name="int" c:type="gint**"/>
+        </parameter>
+        <parameter name="num_channels"
+                   direction="out"
+                   transfer-ownership="full">
+          <type name="int" c:type="gint*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="navigation_event_get_type"
+              c:identifier="gst_navigation_event_get_type"
+              doc="Inspect a #GstEvent and return the #GstNavigationEventType of the event, or
+#GST_NAVIGATION_EVENT_INVALID if the event is not a #GstNavigation event."
+              version="0.10.23">
+      <return-value transfer-ownership="full">
+        <type name="NavigationEventType" c:type="GstNavigationEventType"/>
+      </return-value>
+      <parameters>
+        <parameter name="event" transfer-ownership="none">
+          <type name="Gst.Event" c:type="GstEvent*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="navigation_event_parse_command"
+              c:identifier="gst_navigation_event_parse_command"
+              doc="navigation event.
+Inspect a #GstNavigation command event and retrieve the enum value of the
+associated command."
+              version="0.10.23">
+      <return-value transfer-ownership="none">
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="event" transfer-ownership="none">
+          <type name="Gst.Event" c:type="GstEvent*"/>
+        </parameter>
+        <parameter name="command" transfer-ownership="none">
+          <type name="NavigationCommand" c:type="GstNavigationCommand*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="navigation_event_parse_key_event"
+              c:identifier="gst_navigation_event_parse_key_event"
+              doc="press. The returned string is owned by the event, and valid only until the
+event is unreffed."
+              version="0.10.23">
+      <return-value transfer-ownership="none">
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="event" transfer-ownership="none">
+          <type name="Gst.Event" c:type="GstEvent*"/>
+        </parameter>
+        <parameter name="key" transfer-ownership="none">
+          <array c:type="gchar**">
+            <type name="utf8"/>
+          </array>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="navigation_event_parse_mouse_button_event"
+              c:identifier="gst_navigation_event_parse_mouse_button_event"
+              doc="with the event.
+event.
+event.
+Retrieve the details of either a #GstNavigation mouse button press event or
+a mouse button release event. Determine which type the event is using
+gst_navigation_event_get_type() to retrieve the #GstNavigationEventType.
+otherwise FALSE."
+              version="0.10.23">
+      <return-value transfer-ownership="none">
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="event" transfer-ownership="none">
+          <type name="Gst.Event" c:type="GstEvent*"/>
+        </parameter>
+        <parameter name="button" direction="out" transfer-ownership="full">
+          <type name="int" c:type="gint*"/>
+        </parameter>
+        <parameter name="x" direction="out" transfer-ownership="full">
+          <type name="double" c:type="gdouble*"/>
+        </parameter>
+        <parameter name="y" direction="out" transfer-ownership="full">
+          <type name="double" c:type="gdouble*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="navigation_event_parse_mouse_move_event"
+              c:identifier="gst_navigation_event_parse_mouse_move_event"
+              doc="Inspect a #GstNavigation mouse movement event and extract the coordinates
+of the event."
+              version="0.10.23">
+      <return-value transfer-ownership="none">
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="event" transfer-ownership="none">
+          <type name="Gst.Event" c:type="GstEvent*"/>
+        </parameter>
+        <parameter name="x" direction="out" transfer-ownership="full">
+          <type name="double" c:type="gdouble*"/>
+        </parameter>
+        <parameter name="y" direction="out" transfer-ownership="full">
+          <type name="double" c:type="gdouble*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="navigation_message_get_type"
+              c:identifier="gst_navigation_message_get_type"
+              doc="Check a bus message to see if it is a #GstNavigation event, and return
+the #GstNavigationMessageType identifying the type of the message if so.
+#GST_NAVIGATION_MESSAGE_INVALID if the message is not a #GstNavigation
+notification."
+              version="0.10.23">
+      <return-value transfer-ownership="full">
+        <type name="NavigationMessageType" c:type="GstNavigationMessageType"/>
+      </return-value>
+      <parameters>
+        <parameter name="message" transfer-ownership="none">
+          <type name="Gst.Message" c:type="GstMessage*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="navigation_message_new_angles_changed"
+              c:identifier="gst_navigation_message_new_angles_changed"
+              doc="Creates a new #GstNavigation message with type
+#GST_NAVIGATION_MESSAGE_ANGLES_CHANGED for notifying an application
+that the current angle, or current number of angles available in a
+multiangle video has changed."
+              version="0.10.23">
+      <return-value transfer-ownership="full">
+        <type name="Gst.Message" c:type="GstMessage*"/>
+      </return-value>
+      <parameters>
+        <parameter name="src" transfer-ownership="none">
+          <type name="Gst.Object" c:type="GstObject*"/>
+        </parameter>
+        <parameter name="cur_angle" transfer-ownership="none">
+          <type name="uint" c:type="guint"/>
+        </parameter>
+        <parameter name="n_angles" transfer-ownership="none">
+          <type name="uint" c:type="guint"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="navigation_message_new_commands_changed"
+              c:identifier="gst_navigation_message_new_commands_changed"
+              doc="Creates a new #GstNavigation message with type
+#GST_NAVIGATION_MESSAGE_COMMANDS_CHANGED"
+              version="0.10.23">
+      <return-value transfer-ownership="full">
+        <type name="Gst.Message" c:type="GstMessage*"/>
+      </return-value>
+      <parameters>
+        <parameter name="src" transfer-ownership="none">
+          <type name="Gst.Object" c:type="GstObject*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="navigation_message_new_mouse_over"
+              c:identifier="gst_navigation_message_new_mouse_over"
+              doc="%FALSE if it over a non-clickable area.
+Creates a new #GstNavigation message with type
+#GST_NAVIGATION_MESSAGE_MOUSE_OVER."
+              version="0.10.23">
+      <return-value transfer-ownership="full">
+        <type name="Gst.Message" c:type="GstMessage*"/>
+      </return-value>
+      <parameters>
+        <parameter name="src" transfer-ownership="none">
+          <type name="Gst.Object" c:type="GstObject*"/>
+        </parameter>
+        <parameter name="active" transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="navigation_message_parse_angles_changed"
+              c:identifier="gst_navigation_message_parse_angles_changed"
+              doc="or NULL
+Parse a #GstNavigation message of type GST_NAVIGATION_MESSAGE_ANGLES_CHANGED
+and extract the @cur_angle and @n_angles parameters."
+              version="0.10.23">
+      <return-value transfer-ownership="none">
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="message" transfer-ownership="none">
+          <type name="Gst.Message" c:type="GstMessage*"/>
+        </parameter>
+        <parameter name="cur_angle" direction="out" transfer-ownership="full">
+          <type name="uint" c:type="guint*"/>
+        </parameter>
+        <parameter name="n_angles" direction="out" transfer-ownership="full">
+          <type name="uint" c:type="guint*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="navigation_message_parse_mouse_over"
+              c:identifier="gst_navigation_message_parse_mouse_over"
+              doc="or NULL.
+Parse a #GstNavigation message of type #GST_NAVIGATION_MESSAGE_MOUSE_OVER
+and extract the active/inactive flag. If the mouse over event is marked
+active, it indicates that the mouse is over a clickable area."
+              version="0.10.23">
+      <return-value transfer-ownership="none">
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="message" transfer-ownership="none">
+          <type name="Gst.Message" c:type="GstMessage*"/>
+        </parameter>
+        <parameter name="active" direction="out" transfer-ownership="full">
+          <type name="boolean" c:type="gboolean*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="navigation_query_get_type"
+              c:identifier="gst_navigation_query_get_type"
+              doc="Inspect a #GstQuery and return the #GstNavigationQueryType associated with
+it if it is a #GstNavigation query.
+#GST_NAVIGATION_QUERY_INVALID"
+              version="0.10.23">
+      <return-value transfer-ownership="full">
+        <type name="NavigationQueryType" c:type="GstNavigationQueryType"/>
+      </return-value>
+      <parameters>
+        <parameter name="query" transfer-ownership="none">
+          <type name="Gst.Query" c:type="GstQuery*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="navigation_query_new_angles"
+              c:identifier="gst_navigation_query_new_angles"
+              doc="Create a new #GstNavigation angles query. When executed, it will
+query the pipeline for the set of currently available angles, which may be
+greater than one in a multiangle video."
+              version="0.10.23">
+      <return-value transfer-ownership="full">
+        <type name="Gst.Query" c:type="GstQuery*"/>
+      </return-value>
+    </function>
+    <function name="navigation_query_new_commands"
+              c:identifier="gst_navigation_query_new_commands"
+              doc="Create a new #GstNavigation commands query. When executed, it will
+query the pipeline for the set of currently available commands."
+              version="0.10.23">
+      <return-value transfer-ownership="full">
+        <type name="Gst.Query" c:type="GstQuery*"/>
+      </return-value>
+    </function>
+    <function name="navigation_query_parse_angles"
+              c:identifier="gst_navigation_query_parse_angles"
+              doc="angle value from the query, or NULL
+value from the query, or NULL
+Parse the current angle number in the #GstNavigation angles @query into the
+#guint pointed to by the @cur_angle variable, and the number of available
+angles into the #guint pointed to by the @n_angles variable."
+              version="0.10.23">
+      <return-value transfer-ownership="none">
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="query" transfer-ownership="none">
+          <type name="Gst.Query" c:type="GstQuery*"/>
+        </parameter>
+        <parameter name="cur_angle" direction="out" transfer-ownership="full">
+          <type name="uint" c:type="guint*"/>
+        </parameter>
+        <parameter name="n_angles" direction="out" transfer-ownership="full">
+          <type name="uint" c:type="guint*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="navigation_query_parse_commands_length"
+              c:identifier="gst_navigation_query_parse_commands_length"
+              doc="Parse the number of commands in the #GstNavigation commands @query."
+              version="0.10.23">
+      <return-value transfer-ownership="none">
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="query" transfer-ownership="none">
+          <type name="Gst.Query" c:type="GstQuery*"/>
+        </parameter>
+        <parameter name="n_cmds" direction="out" transfer-ownership="full">
+          <type name="uint" c:type="guint*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="navigation_query_parse_commands_nth"
+              c:identifier="gst_navigation_query_parse_commands_nth"
+              doc="Parse the #GstNavigation command query and retrieve the @nth command from
+it into @cmd. If the list contains less elements than @nth, @cmd will be
+set to #GST_NAVIGATION_COMMAND_INVALID."
+              version="0.10.23">
+      <return-value transfer-ownership="none">
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="query" transfer-ownership="none">
+          <type name="Gst.Query" c:type="GstQuery*"/>
+        </parameter>
+        <parameter name="nth" transfer-ownership="none">
+          <type name="uint" c:type="guint"/>
+        </parameter>
+        <parameter name="cmd" transfer-ownership="none">
+          <type name="NavigationCommand" c:type="GstNavigationCommand*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="navigation_query_set_angles"
+              c:identifier="gst_navigation_query_set_angles"
+              doc="Set the #GstNavigation angles query result field in @query."
+              version="0.10.23">
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="query" transfer-ownership="none">
+          <type name="Gst.Query" c:type="GstQuery*"/>
+        </parameter>
+        <parameter name="cur_angle" transfer-ownership="none">
+          <type name="uint" c:type="guint"/>
+        </parameter>
+        <parameter name="n_angles" transfer-ownership="none">
+          <type name="uint" c:type="guint"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="navigation_query_set_commands"
+              c:identifier="gst_navigation_query_set_commands"
+              doc="Set the #GstNavigation command query result fields in @query. The number
+of commands passed must be equal to @n_commands."
+              version="0.10.23">
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="query" transfer-ownership="none">
+          <type name="Gst.Query" c:type="GstQuery*"/>
+        </parameter>
+        <parameter name="n_cmds" transfer-ownership="none">
+          <type name="int" c:type="gint"/>
+        </parameter>
+        <parameter transfer-ownership="none">
+          <varargs>
+          </varargs>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="navigation_query_set_commandsv"
+              c:identifier="gst_navigation_query_set_commandsv"
+              doc="Set the #GstNavigation command query result fields in @query. The number
+of commands passed must be equal to @n_commands."
+              version="0.10.23">
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="query" transfer-ownership="none">
+          <type name="Gst.Query" c:type="GstQuery*"/>
+        </parameter>
+        <parameter name="n_cmds" transfer-ownership="none">
+          <type name="int" c:type="gint"/>
+        </parameter>
+        <parameter name="cmds" transfer-ownership="none">
+          <type name="NavigationCommand" c:type="GstNavigationCommand*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="stream_volume_convert_volume"
+              c:identifier="gst_stream_volume_convert_volume"
+              version="0.10.25">
+      <return-value transfer-ownership="none">
+        <type name="double" c:type="gdouble"/>
+      </return-value>
+      <parameters>
+        <parameter name="from" transfer-ownership="none">
+          <type name="StreamVolumeFormat" c:type="GstStreamVolumeFormat"/>
+        </parameter>
+        <parameter name="to" transfer-ownership="none">
+          <type name="StreamVolumeFormat" c:type="GstStreamVolumeFormat"/>
+        </parameter>
+        <parameter name="val" transfer-ownership="none">
+          <type name="double" c:type="gdouble"/>
+        </parameter>
+      </parameters>
+    </function>
+  </namespace>
+</repository>
diff --git a/unmaintained/gstreamer/interfaces/ffi/ffi.factor b/unmaintained/gstreamer/interfaces/ffi/ffi.factor
new file mode 100644 (file)
index 0000000..45d57d2
--- /dev/null
@@ -0,0 +1,17 @@
+! Copyright (C) 2010 Anton Gorenko.
+! See http://factorcode.org/license.txt for BSD license.
+USING: alien alien.c-types alien.libraries combinators kernel
+system
+gobject-introspection glib.ffi gobject.ffi gstreamer.ffi ;
+IN: gstreamer.interfaces.ffi
+
+<<
+"gstreamer.interfaces" {
+    { [ os winnt? ] [ drop ] }
+    { [ os macosx? ] [ drop ] }
+    { [ os unix? ] [ "libgstinterfaces-0.10.so" cdecl add-library ] }
+} cond
+>>
+
+GIR: vocab:gstreamer/interfaces/GstInterfaces-0.10.gir
+
diff --git a/unmaintained/gstreamer/interfaces/interfaces.factor b/unmaintained/gstreamer/interfaces/interfaces.factor
new file mode 100644 (file)
index 0000000..b9b57f6
--- /dev/null
@@ -0,0 +1,5 @@
+! Copyright (C) 2010 Anton Gorenko.
+! See http://factorcode.org/license.txt for BSD license.
+USING: gstreamer.interfaces.ffi ;
+IN: gstreamer.interfaces
+
diff --git a/unmaintained/gstreamer/net/GstNet-0.10.gir b/unmaintained/gstreamer/net/GstNet-0.10.gir
new file mode 100644 (file)
index 0000000..eb3a4b7
--- /dev/null
@@ -0,0 +1,279 @@
+<?xml version="1.0"?>
+<!-- This file was automatically generated from C sources - DO NOT EDIT!
+To affect the contents of this file, edit the original C definitions,
+and/or use gtk-doc annotations.  -->
+<repository version="1.0"
+            xmlns="http://www.gtk.org/introspection/core/1.0"
+            xmlns:c="http://www.gtk.org/introspection/c/1.0"
+            xmlns:glib="http://www.gtk.org/introspection/glib/1.0">
+  <include name="GLib" version="2.0"/>
+  <include name="GModule" version="2.0"/>
+  <include name="GObject" version="2.0"/>
+  <include name="Gst" version="0.10"/>
+  <include name="libxml2" version="2.0"/>
+  <package name="gstreamer-0.10"/>
+  <namespace name="GstNet"
+             version="0.10"
+             shared-library="libgstnet-0.10.so.0"
+             c:prefix="Gst">
+    <class name="NetClientClock"
+           c:type="GstNetClientClock"
+           doc="Opaque #GstNetClientClock structure."
+           parent="Gst.SystemClock"
+           glib:type-name="GstNetClientClock"
+           glib:get-type="gst_net_client_clock_get_type"
+           glib:type-struct="NetClientClockClass">
+      <constructor name="new"
+                   c:identifier="gst_net_client_clock_new"
+                   doc="Create a new #GstNetClientClock that will report the time
+provided by the #GstNetTimeProvider on @remote_address and
+clock.">
+        <return-value transfer-ownership="full">
+          <type name="NetClientClock" c:type="GstClock*"/>
+        </return-value>
+        <parameters>
+          <parameter name="name" transfer-ownership="full">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="remote_address" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="remote_port" transfer-ownership="none">
+            <type name="int" c:type="gint"/>
+          </parameter>
+          <parameter name="base_time" transfer-ownership="none">
+            <type name="Gst.ClockTime" c:type="GstClockTime"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <property name="address" writable="1">
+        <type name="utf8" c:type="gchararray"/>
+      </property>
+      <property name="port" writable="1">
+        <type name="int" c:type="gint"/>
+      </property>
+      <field name="clock">
+        <type name="Gst.SystemClock" c:type="GstSystemClock"/>
+      </field>
+      <field name="address">
+        <type name="utf8" c:type="gchar*"/>
+      </field>
+      <field name="port">
+        <type name="int" c:type="gint"/>
+      </field>
+      <field name="sock">
+        <type name="int" c:type="int"/>
+      </field>
+      <field name="control_sock">
+        <array zero-terminated="0" c:type="int" fixed-size="2">
+          <type name="int"/>
+        </array>
+      </field>
+      <field name="current_timeout">
+        <type name="Gst.ClockTime" c:type="GstClockTime"/>
+      </field>
+      <field name="servaddr">
+        <type name="any" c:type="any*"/>
+      </field>
+      <field name="thread">
+        <type name="GLib.Thread" c:type="GThread*"/>
+      </field>
+      <field name="priv">
+        <type name="NetClientClockPrivate" c:type="GstNetClientClockPrivate*"/>
+      </field>
+      <field name="_gst_reserved">
+        <array zero-terminated="0" c:type="gpointer" fixed-size="3">
+          <type name="any"/>
+        </array>
+      </field>
+    </class>
+    <record name="NetClientClockClass"
+            c:type="GstNetClientClockClass"
+            glib:is-gtype-struct-for="NetClientClock">
+      <field name="parent_class">
+        <type name="Gst.SystemClockClass" c:type="GstSystemClockClass"/>
+      </field>
+      <field name="_gst_reserved">
+        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+          <type name="any"/>
+        </array>
+      </field>
+    </record>
+    <record name="NetClientClockPrivate" c:type="GstNetClientClockPrivate">
+    </record>
+    <record name="NetTimePacket"
+            c:type="GstNetTimePacket"
+            doc="Content of a #GstNetTimePacket.">
+      <field name="local_time" writable="1">
+        <type name="Gst.ClockTime" c:type="GstClockTime"/>
+      </field>
+      <field name="remote_time" writable="1">
+        <type name="Gst.ClockTime" c:type="GstClockTime"/>
+      </field>
+      <constructor name="new"
+                   c:identifier="gst_net_time_packet_new"
+                   doc="Creates a new #GstNetTimePacket from a buffer received over the network. The
+caller is responsible for ensuring that @buffer is at least
+#GST_NET_TIME_PACKET_SIZE bytes long.
+If @buffer is #NULL, the local and remote times will be set to
+#GST_CLOCK_TIME_NONE.
+MT safe. Caller owns return value (g_free to free).">
+        <return-value transfer-ownership="full">
+          <type name="NetTimePacket" c:type="GstNetTimePacket*"/>
+        </return-value>
+        <parameters>
+          <parameter name="buffer" transfer-ownership="none">
+            <array c:type="guint8*">
+              <type name="uint8"/>
+            </array>
+          </parameter>
+        </parameters>
+      </constructor>
+      <method name="serialize"
+              c:identifier="gst_net_time_packet_serialize"
+              doc="Serialized a #GstNetTimePacket into a newly-allocated sequence of
+#GST_NET_TIME_PACKET_SIZE bytes, in network byte order. The value returned is
+suitable for passing to write(2) or sendto(2) for communication over the
+network.
+MT safe. Caller owns return value (g_free to free).">
+        <return-value transfer-ownership="full">
+          <array c:type="guint8*">
+            <type name="uint8"/>
+          </array>
+        </return-value>
+      </method>
+      <method name="send"
+              c:identifier="gst_net_time_packet_send"
+              doc="Sends a #GstNetTimePacket over a socket. Essentially a thin wrapper around
+sendto(2) and gst_net_time_packet_serialize().
+MT safe.">
+        <return-value transfer-ownership="none">
+          <type name="int" c:type="gint"/>
+        </return-value>
+        <parameters>
+          <parameter name="fd" transfer-ownership="none">
+            <type name="int" c:type="gint"/>
+          </parameter>
+          <parameter name="addr" transfer-ownership="none">
+            <type name="any" c:type="any*"/>
+          </parameter>
+          <parameter name="len" transfer-ownership="none">
+            <type name="int32" c:type="socklen_t"/>
+          </parameter>
+        </parameters>
+      </method>
+    </record>
+    <class name="NetTimeProvider"
+           c:type="GstNetTimeProvider"
+           doc="Opaque #GstNetTimeProvider structure."
+           parent="Gst.Object"
+           glib:type-name="GstNetTimeProvider"
+           glib:get-type="gst_net_time_provider_get_type"
+           glib:type-struct="NetTimeProviderClass">
+      <constructor name="new"
+                   c:identifier="gst_net_time_provider_new"
+                   doc="to bind to all addresses
+Allows network clients to get the current time of @clock.">
+        <return-value transfer-ownership="full">
+          <type name="NetTimeProvider" c:type="GstNetTimeProvider*"/>
+        </return-value>
+        <parameters>
+          <parameter name="clock" transfer-ownership="none">
+            <type name="Gst.Clock" c:type="GstClock*"/>
+          </parameter>
+          <parameter name="address" transfer-ownership="none" doc="or NULL">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="port" transfer-ownership="none">
+            <type name="int" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <property name="active" writable="1">
+        <type name="boolean" c:type="gboolean"/>
+      </property>
+      <property name="address" writable="1">
+        <type name="utf8" c:type="gchararray"/>
+      </property>
+      <property name="clock" writable="1">
+        <type name="Gst.Clock" c:type="GstClock"/>
+      </property>
+      <property name="port" writable="1">
+        <type name="int" c:type="gint"/>
+      </property>
+      <field name="parent">
+        <type name="Gst.Object" c:type="GstObject"/>
+      </field>
+      <field name="address">
+        <type name="utf8" c:type="gchar*"/>
+      </field>
+      <field name="port">
+        <type name="int" c:type="int"/>
+      </field>
+      <field name="sock">
+        <type name="int" c:type="int"/>
+      </field>
+      <field name="control_sock">
+        <array zero-terminated="0" c:type="int" fixed-size="2">
+          <type name="int"/>
+        </array>
+      </field>
+      <field name="thread">
+        <type name="GLib.Thread" c:type="GThread*"/>
+      </field>
+      <field name="clock">
+        <type name="Gst.Clock" c:type="GstClock*"/>
+      </field>
+      <union name="active" c:type="active">
+        <field name="_gst_reserved1" writable="1">
+          <type name="any" c:type="gpointer"/>
+        </field>
+        <field name="active" writable="1">
+          <type name="int" c:type="gint"/>
+        </field>
+      </union>
+      <field name="priv">
+        <type name="NetTimeProviderPrivate"
+              c:type="GstNetTimeProviderPrivate*"/>
+      </field>
+      <field name="_gst_reserved">
+        <array zero-terminated="0" c:type="gpointer" fixed-size="2">
+          <type name="any"/>
+        </array>
+      </field>
+    </class>
+    <record name="NetTimeProviderClass"
+            c:type="GstNetTimeProviderClass"
+            glib:is-gtype-struct-for="NetTimeProvider">
+      <field name="parent_class">
+        <type name="Gst.ObjectClass" c:type="GstObjectClass"/>
+      </field>
+    </record>
+    <record name="NetTimeProviderPrivate" c:type="GstNetTimeProviderPrivate">
+    </record>
+    <constant name="TIME_PACKET_SIZE" value="16">
+      <type name="int"/>
+    </constant>
+    <function name="time_packet_receive"
+              c:identifier="gst_net_time_packet_receive"
+              doc="Receives a #GstNetTimePacket over a socket. Handles interrupted system calls,
+but otherwise returns NULL on error. See recvfrom(2) for more information on
+how to interpret @sockaddr.
+MT safe. Caller owns return value (g_free to free).">
+      <return-value transfer-ownership="full">
+        <type name="NetTimePacket" c:type="GstNetTimePacket*"/>
+      </return-value>
+      <parameters>
+        <parameter name="fd" transfer-ownership="none">
+          <type name="int" c:type="gint"/>
+        </parameter>
+        <parameter name="addr" transfer-ownership="none">
+          <type name="any" c:type="any*"/>
+        </parameter>
+        <parameter name="len" direction="out" transfer-ownership="full">
+          <type name="int32" c:type="socklen_t*"/>
+        </parameter>
+      </parameters>
+    </function>
+  </namespace>
+</repository>
diff --git a/unmaintained/gstreamer/net/ffi/ffi.factor b/unmaintained/gstreamer/net/ffi/ffi.factor
new file mode 100644 (file)
index 0000000..fbd5148
--- /dev/null
@@ -0,0 +1,19 @@
+! Copyright (C) 2010 Anton Gorenko.
+! See http://factorcode.org/license.txt for BSD license.
+USING: alien alien.libraries combinators kernel system
+gobject-introspection glib.ffi gstreamer.ffi ;
+FROM: unix.types => socklen_t ;
+IN: gstreamer.net.ffi
+
+<<
+"gstreamer.net" {
+    { [ os winnt? ] [ drop ] }
+    { [ os macosx? ] [ drop ] }
+    { [ os unix? ] [ "libgstnet-0.10.so" cdecl add-library ] }
+} cond
+>>
+
+REPLACE-C-TYPE: any gpointer
+
+GIR: vocab:gstreamer/net/GstNet-0.10.gir
+
diff --git a/unmaintained/gstreamer/net/net.factor b/unmaintained/gstreamer/net/net.factor
new file mode 100644 (file)
index 0000000..b409685
--- /dev/null
@@ -0,0 +1,5 @@
+! Copyright (C) 2010 Anton Gorenko.
+! See http://factorcode.org/license.txt for BSD license.
+USING: gstreamer.net.ffi ;
+IN: gstreamer.net
+
diff --git a/unmaintained/gstreamer/netbuffer/GstNetbuffer-0.10.gir b/unmaintained/gstreamer/netbuffer/GstNetbuffer-0.10.gir
new file mode 100644 (file)
index 0000000..4095f0d
--- /dev/null
@@ -0,0 +1,267 @@
+<?xml version="1.0"?>
+<!-- This file was automatically generated from C sources - DO NOT EDIT!
+To affect the contents of this file, edit the original C definitions,
+and/or use gtk-doc annotations.  -->
+<repository version="1.0"
+            xmlns="http://www.gtk.org/introspection/core/1.0"
+            xmlns:c="http://www.gtk.org/introspection/c/1.0"
+            xmlns:glib="http://www.gtk.org/introspection/glib/1.0">
+  <include name="GLib" version="2.0"/>
+  <include name="GModule" version="2.0"/>
+  <include name="GObject" version="2.0"/>
+  <include name="Gst" version="0.10"/>
+  <include name="libxml2" version="2.0"/>
+  <package name="gstreamer-0.10"/>
+  <c:include name="gst/netbuffer/gstnetbuffer.h"/>
+  <namespace name="GstNetbuffer"
+             version="0.10"
+             shared-library="libgstnetbuffer-0.10.so.0"
+             c:prefix="Gst">
+    <record name="NetAddress"
+            c:type="GstNetAddress"
+            doc="An opaque network address as used in #GstNetBuffer.">
+      <field name="type" writable="1">
+        <type name="NetType" c:type="GstNetType"/>
+      </field>
+      <union name="address" c:type="address">
+        <field name="ip6" writable="1">
+          <array zero-terminated="0" c:type="guint8" fixed-size="16">
+            <type name="uint8"/>
+          </array>
+        </field>
+        <field name="ip4" writable="1">
+          <type name="uint32" c:type="guint32"/>
+        </field>
+      </union>
+      <field name="port" writable="1">
+        <type name="uint16" c:type="guint16"/>
+      </field>
+      <field name="_gst_reserved" writable="1">
+        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+          <type name="any"/>
+        </array>
+      </field>
+    </record>
+    <record name="NetBuffer"
+            c:type="GstNetBuffer"
+            doc="buffer for use in network sources and sinks.
+It contains the source or destination address of the buffer.">
+      <field name="buffer" writable="1">
+        <type name="Gst.Buffer" c:type="GstBuffer"/>
+      </field>
+      <field name="from" writable="1">
+        <type name="NetAddress" c:type="GstNetAddress"/>
+      </field>
+      <field name="to" writable="1">
+        <type name="NetAddress" c:type="GstNetAddress"/>
+      </field>
+      <field name="_gst_reserved" writable="1">
+        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+          <type name="any"/>
+        </array>
+      </field>
+    </record>
+    <record name="NetBufferClass" c:type="GstNetBufferClass">
+      <field name="buffer_class" writable="1">
+        <type name="Gst.BufferClass" c:type="GstBufferClass"/>
+      </field>
+      <field name="_gst_reserved" writable="1">
+        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+          <type name="any"/>
+        </array>
+      </field>
+    </record>
+    <enumeration name="NetType"
+                 doc="The Address type used in #GstNetAddress."
+                 c:type="GstNetType">
+      <member name="unknown" value="0" c:identifier="GST_NET_TYPE_UNKNOWN"/>
+      <member name="ip4" value="1" c:identifier="GST_NET_TYPE_IP4"/>
+      <member name="ip6" value="2" c:identifier="GST_NET_TYPE_IP6"/>
+    </enumeration>
+    <function name="netaddress_equal"
+              c:identifier="gst_netaddress_equal"
+              doc="Compare two #GstNetAddress structures"
+              version="0.10.18">
+      <return-value transfer-ownership="none">
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="naddr1" transfer-ownership="none">
+          <type name="NetAddress" c:type="GstNetAddress*"/>
+        </parameter>
+        <parameter name="naddr2" transfer-ownership="none">
+          <type name="NetAddress" c:type="GstNetAddress*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="netaddress_get_address_bytes"
+              c:identifier="gst_netaddress_get_address_bytes"
+              doc="Get just the address bytes stored in @naddr into @address.
+Note that @port is expressed in network byte order, use g_ntohs() to convert
+it to host order. IP4 addresses are also stored in network byte order."
+              version="0.10.22">
+      <return-value transfer-ownership="none">
+        <type name="int" c:type="gint"/>
+      </return-value>
+      <parameters>
+        <parameter name="naddr" transfer-ownership="none">
+          <type name="NetAddress" c:type="GstNetAddress*"/>
+        </parameter>
+        <parameter name="address" transfer-ownership="none">
+          <type name="uint8" c:type="guint8"/>
+        </parameter>
+        <parameter name="port" direction="out" transfer-ownership="full">
+          <type name="uint16" c:type="guint16*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="netaddress_get_ip4_address"
+              c:identifier="gst_netaddress_get_ip4_address"
+              doc="Get the IPv4 address stored in @naddr into @address. This function requires
+that the address type of @naddr is of type #GST_NET_TYPE_IP4.
+Note that @port and @address are expressed in network byte order, use
+g_ntohs() and g_ntohl() to convert them to host order.">
+      <return-value transfer-ownership="none">
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="naddr" transfer-ownership="none">
+          <type name="NetAddress" c:type="GstNetAddress*"/>
+        </parameter>
+        <parameter name="address" direction="out" transfer-ownership="full">
+          <type name="uint32" c:type="guint32*"/>
+        </parameter>
+        <parameter name="port" direction="out" transfer-ownership="full">
+          <type name="uint16" c:type="guint16*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="netaddress_get_ip6_address"
+              c:identifier="gst_netaddress_get_ip6_address"
+              doc="Get the IPv6 address stored in @naddr into @address.
+If @naddr is of type GST_NET_TYPE_IP4, the transitional IP6 address is
+returned.
+Note that @port is expressed in network byte order, use g_ntohs() to convert
+it to host order.">
+      <return-value transfer-ownership="none">
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="naddr" transfer-ownership="none">
+          <type name="NetAddress" c:type="GstNetAddress*"/>
+        </parameter>
+        <parameter name="address" transfer-ownership="none">
+          <type name="uint8" c:type="guint8"/>
+        </parameter>
+        <parameter name="port" direction="out" transfer-ownership="full">
+          <type name="uint16" c:type="guint16*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="netaddress_get_net_type"
+              c:identifier="gst_netaddress_get_net_type"
+              doc="Get the type of address stored in @naddr.">
+      <return-value transfer-ownership="full">
+        <type name="NetType" c:type="GstNetType"/>
+      </return-value>
+      <parameters>
+        <parameter name="naddr" transfer-ownership="none">
+          <type name="NetAddress" c:type="GstNetAddress*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="netaddress_set_address_bytes"
+              c:identifier="gst_netaddress_set_address_bytes"
+              doc="Set just the address bytes stored in @naddr into @address.
+Note that @port must be expressed in network byte order, use g_htons() to
+convert it to network byte order order. IP4 address bytes must also be
+stored in network byte order."
+              version="0.10.22">
+      <return-value transfer-ownership="none">
+        <type name="int" c:type="gint"/>
+      </return-value>
+      <parameters>
+        <parameter name="naddr" transfer-ownership="none">
+          <type name="NetAddress" c:type="GstNetAddress*"/>
+        </parameter>
+        <parameter name="type" transfer-ownership="none">
+          <type name="NetType" c:type="GstNetType"/>
+        </parameter>
+        <parameter name="address" transfer-ownership="none">
+          <type name="uint8" c:type="guint8"/>
+        </parameter>
+        <parameter name="port" transfer-ownership="none">
+          <type name="uint16" c:type="guint16"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="netaddress_set_ip4_address"
+              c:identifier="gst_netaddress_set_ip4_address"
+              doc="Set @naddr with the IPv4 @address and @port pair.
+Note that @port and @address must be expressed in network byte order,
+use g_htons() and g_htonl() to convert them to network byte order.">
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="naddr" transfer-ownership="none">
+          <type name="NetAddress" c:type="GstNetAddress*"/>
+        </parameter>
+        <parameter name="address" transfer-ownership="none">
+          <type name="uint32" c:type="guint32"/>
+        </parameter>
+        <parameter name="port" transfer-ownership="none">
+          <type name="uint16" c:type="guint16"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="netaddress_set_ip6_address"
+              c:identifier="gst_netaddress_set_ip6_address"
+              doc="Set @naddr with the IPv6 @address and @port pair.
+Note that @port must be expressed in network byte order, use g_htons() to convert
+it to network byte order.">
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="naddr" transfer-ownership="none">
+          <type name="NetAddress" c:type="GstNetAddress*"/>
+        </parameter>
+        <parameter name="address" transfer-ownership="none">
+          <type name="uint8" c:type="guint8"/>
+        </parameter>
+        <parameter name="port" transfer-ownership="none">
+          <type name="uint16" c:type="guint16"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="netaddress_to_string"
+              c:identifier="gst_netaddress_to_string"
+              doc="Copies a string representation of @naddr into @dest. Up to @len bytes are
+copied.
+enough"
+              version="0.10.24">
+      <return-value transfer-ownership="none">
+        <type name="int" c:type="gint"/>
+      </return-value>
+      <parameters>
+        <parameter name="naddr" transfer-ownership="none">
+          <type name="NetAddress" c:type="GstNetAddress*"/>
+        </parameter>
+        <parameter name="dest" transfer-ownership="full">
+          <type name="utf8" c:type="gchar*"/>
+        </parameter>
+        <parameter name="len" transfer-ownership="none">
+          <type name="ulong" c:type="gulong"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="new"
+              c:identifier="gst_netbuffer_new"
+              doc="Create a new network buffer.">
+      <return-value transfer-ownership="full">
+        <type name="NetBuffer" c:type="GstNetBuffer*"/>
+      </return-value>
+    </function>
+  </namespace>
+</repository>
diff --git a/unmaintained/gstreamer/netbuffer/ffi/ffi.factor b/unmaintained/gstreamer/netbuffer/ffi/ffi.factor
new file mode 100644 (file)
index 0000000..c291a8b
--- /dev/null
@@ -0,0 +1,16 @@
+! Copyright (C) 2010 Anton Gorenko.
+! See http://factorcode.org/license.txt for BSD license.
+USING: alien alien.libraries combinators kernel system
+gobject-introspection glib.ffi ;
+IN: gstreamer.netbuffer.ffi
+
+<<
+"gstreamer.netbuffer" {
+    { [ os winnt? ] [ drop ] }
+    { [ os macosx? ] [ drop ] }
+    { [ os unix? ] [ "libgstnetbuffer-0.10.so" cdecl add-library ] }
+} cond
+>>
+
+GIR: vocab:gstreamer/netbuffer/GstNetbuffer-0.10.gir
+
diff --git a/unmaintained/gstreamer/netbuffer/netbuffer.factor b/unmaintained/gstreamer/netbuffer/netbuffer.factor
new file mode 100644 (file)
index 0000000..7273c3a
--- /dev/null
@@ -0,0 +1,5 @@
+! Copyright (C) 2010 Anton Gorenko.
+! See http://factorcode.org/license.txt for BSD license.
+USING: gstreamer.netbuffer.ffi ;
+IN: gstreamer.netbuffer
+
diff --git a/unmaintained/gstreamer/pbutils/GstPbutils-0.10.gir b/unmaintained/gstreamer/pbutils/GstPbutils-0.10.gir
new file mode 100644 (file)
index 0000000..c9748b3
--- /dev/null
@@ -0,0 +1,665 @@
+<?xml version="1.0"?>
+<!-- This file was automatically generated from C sources - DO NOT EDIT!
+To affect the contents of this file, edit the original C definitions,
+and/or use gtk-doc annotations.  -->
+<repository version="1.0"
+            xmlns="http://www.gtk.org/introspection/core/1.0"
+            xmlns:c="http://www.gtk.org/introspection/c/1.0"
+            xmlns:glib="http://www.gtk.org/introspection/glib/1.0">
+  <include name="GLib" version="2.0"/>
+  <include name="GModule" version="2.0"/>
+  <include name="GObject" version="2.0"/>
+  <include name="Gst" version="0.10"/>
+  <include name="libxml2" version="2.0"/>
+  <package name="gstreamer-0.10"/>
+  <c:include name="gst/pbutils/descriptions.h"/>
+  <c:include name="gst/pbutils/install-plugins.h"/>
+  <c:include name="gst/pbutils/missing-plugins.h"/>
+  <c:include name="gst/pbutils/pbutils-enumtypes.h"/>
+  <c:include name="gst/pbutils/pbutils.h"/>
+  <namespace name="GstPbutils"
+             version="0.10"
+             shared-library="libgstpbutils-0.10.so.0"
+             c:prefix="Gst">
+    <record name="InstallPluginsContext"
+            c:type="GstInstallPluginsContext"
+            doc="Opaque context structure for the plugin installation. Use the provided
+API to set details on it."
+            version="0.10.12"
+            glib:type-name="GstInstallPluginsContext"
+            glib:get-type="gst_install_plugins_context_get_type">
+      <constructor name="new"
+                   c:identifier="gst_install_plugins_context_new"
+                   doc="Creates a new #GstInstallPluginsContext.
+gst_install_plugins_context_free() when no longer needed"
+                   version="0.10.12">
+        <return-value transfer-ownership="full">
+          <type name="InstallPluginsContext"
+                c:type="GstInstallPluginsContext*"/>
+        </return-value>
+      </constructor>
+      <method name="free"
+              c:identifier="gst_install_plugins_context_free"
+              doc="Frees a #GstInstallPluginsContext."
+              version="0.10.12">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </method>
+      <method name="set_xid"
+              c:identifier="gst_install_plugins_context_set_xid"
+              doc="This function is for X11-based applications (such as most Gtk/Qt
+applications on linux/unix) only. You can use it to tell the external
+installer the XID of your main application window. That way the installer
+can make its own window transient to your application window during the
+installation.
+If set, the XID will be passed to the installer via a --transient-for=XID
+command line option.
+Gtk+/Gnome application should be able to obtain the XID of the top-level
+window like this:
+&lt;programlisting&gt;
+##include &amp;lt;gtk/gtk.h&amp;gt;
+##ifdef GDK_WINDOWING_X11
+##include &amp;lt;gdk/gdkx.h&amp;gt;
+##endif
+...
+##ifdef GDK_WINDOWING_X11
+xid = GDK_WINDOW_XWINDOW (GTK_WIDGET (application_window)-&amp;gt;window);
+##endif
+...
+&lt;/programlisting&gt;"
+              version="0.10.12">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="xid"
+                     transfer-ownership="none"
+                     doc="of the top-level application">
+            <type name="uint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+    </record>
+    <callback name="InstallPluginsResultFunc"
+              c:type="GstInstallPluginsResultFunc"
+              doc="The prototype of the callback function that will be called once the
+external plugin installer program has returned. You only need to provide
+a callback function if you are using the asynchronous interface."
+              version="0.10.12">
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="result" transfer-ownership="none">
+          <type name="InstallPluginsReturn" c:type="GstInstallPluginsReturn"/>
+        </parameter>
+        <parameter name="user_data" transfer-ownership="none" closure="1">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <enumeration name="InstallPluginsReturn"
+                 doc="installed
+any of the requested plugins could be found. Only return this if nothing
+has been installed. Return #GST_INSTALL_PLUGINS_PARTIAL_SUCCESS if
+some (but not all) of the requested plugins could be installed.
+this happens, the  user has already seen an error message and another
+one should not be displayed
+(ie. death by signal)
+be installed, but not all
+indicate that everything went fine so far and the provided callback
+will be called with the result of the installation later
+occured when trying to start the installer
+actual installer is not installed
+installation is still in progress, try again later
+Result codes returned by gst_install_plugins_async() and
+gst_install_plugins_sync(), and also the result code passed to the
+#GstInstallPluginsResultFunc specified with gst_install_plugin_async().
+These codes indicate success or failure of starting an external installer
+program and to what extent the requested plugins could be installed."
+                 version="0.10.12"
+                 glib:type-name="GstInstallPluginsReturn"
+                 glib:get-type="gst_install_plugins_return_get_type"
+                 c:type="GstInstallPluginsReturn">
+      <member name="success"
+              value="0"
+              c:identifier="GST_INSTALL_PLUGINS_SUCCESS"
+              glib:nick="success"/>
+      <member name="not_found"
+              value="1"
+              c:identifier="GST_INSTALL_PLUGINS_NOT_FOUND"
+              glib:nick="not-found"/>
+      <member name="error"
+              value="2"
+              c:identifier="GST_INSTALL_PLUGINS_ERROR"
+              glib:nick="error"/>
+      <member name="partial_success"
+              value="3"
+              c:identifier="GST_INSTALL_PLUGINS_PARTIAL_SUCCESS"
+              glib:nick="partial-success"/>
+      <member name="user_abort"
+              value="4"
+              c:identifier="GST_INSTALL_PLUGINS_USER_ABORT"
+              glib:nick="user-abort"/>
+      <member name="crashed"
+              value="100"
+              c:identifier="GST_INSTALL_PLUGINS_CRASHED"
+              glib:nick="crashed"/>
+      <member name="invalid"
+              value="101"
+              c:identifier="GST_INSTALL_PLUGINS_INVALID"
+              glib:nick="invalid"/>
+      <member name="started_ok"
+              value="200"
+              c:identifier="GST_INSTALL_PLUGINS_STARTED_OK"
+              glib:nick="started-ok"/>
+      <member name="internal_failure"
+              value="201"
+              c:identifier="GST_INSTALL_PLUGINS_INTERNAL_FAILURE"
+              glib:nick="internal-failure"/>
+      <member name="helper_missing"
+              value="202"
+              c:identifier="GST_INSTALL_PLUGINS_HELPER_MISSING"
+              glib:nick="helper-missing"/>
+      <member name="install_in_progress"
+              value="203"
+              c:identifier="GST_INSTALL_PLUGINS_INSTALL_IN_PROGRESS"
+              glib:nick="install-in-progress"/>
+    </enumeration>
+    <function name="install_plugins_async"
+              c:identifier="gst_install_plugins_async"
+              doc="Requests plugin installation without blocking. Once the plugins have been
+installed or installation has failed, @func will be called with the result
+of the installation and your provided @user_data pointer.
+This function requires a running GLib/Gtk main loop. If you are not
+running a GLib/Gtk main loop, make sure to regularly call
+g_main_context_iteration(NULL,FALSE).
+The installer strings that make up @detail are typically obtained by
+calling gst_missing_plugin_message_get_installer_detail() on missing-plugin
+messages that have been caught on a pipeline&apos;s bus or created by the
+application via the provided API, such as gst_missing_element_message_new().
+It is possible to request the installation of multiple missing plugins in
+one go (as might be required if there is a demuxer for a certain format
+installed but no suitable video decoder and no suitable audio decoder)."
+              version="0.10.12">
+      <return-value transfer-ownership="full">
+        <type name="InstallPluginsReturn" c:type="GstInstallPluginsReturn"/>
+      </return-value>
+      <parameters>
+        <parameter name="details" transfer-ownership="none">
+          <array c:type="gchar**">
+            <type name="utf8"/>
+          </array>
+        </parameter>
+        <parameter name="ctx" transfer-ownership="none">
+          <type name="InstallPluginsContext"
+                c:type="GstInstallPluginsContext*"/>
+        </parameter>
+        <parameter name="func"
+                   transfer-ownership="none"
+                   scope="call"
+                   closure="3">
+          <type name="InstallPluginsResultFunc"
+                c:type="GstInstallPluginsResultFunc"/>
+        </parameter>
+        <parameter name="user_data" transfer-ownership="none">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="install_plugins_installation_in_progress"
+              c:identifier="gst_install_plugins_installation_in_progress"
+              doc="Checks whether plugin installation (initiated by this application only)
+is currently in progress."
+              version="0.10.12">
+      <return-value transfer-ownership="none">
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+    </function>
+    <function name="install_plugins_return_get_name"
+              c:identifier="gst_install_plugins_return_get_name"
+              doc="Convenience function to return the descriptive string associated
+with a status code.  This function returns English strings and
+should not be used for user messages. It is here only to assist
+in debugging."
+              version="0.10.12">
+      <return-value transfer-ownership="none">
+        <type name="utf8" c:type="gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="ret" transfer-ownership="none">
+          <type name="InstallPluginsReturn" c:type="GstInstallPluginsReturn"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="install_plugins_supported"
+              c:identifier="gst_install_plugins_supported"
+              doc="Checks whether plugin installation is likely to be supported by the
+current environment. This currently only checks whether the helper script
+that is to be provided by the distribution or operating system vendor
+exists."
+              version="0.10.15">
+      <return-value transfer-ownership="none">
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+    </function>
+    <function name="install_plugins_sync"
+              c:identifier="gst_install_plugins_sync"
+              doc="Requests plugin installation and block until the plugins have been
+installed or installation has failed.
+This function should almost never be used, it only exists for cases where
+a non-GLib main loop is running and the user wants to run it in a separate
+thread and marshal the result back asynchronously into the main thread
+using the other non-GLib main loop. You should almost always use
+gst_install_plugins_async() instead of this function."
+              version="0.10.12">
+      <return-value transfer-ownership="full">
+        <type name="InstallPluginsReturn" c:type="GstInstallPluginsReturn"/>
+      </return-value>
+      <parameters>
+        <parameter name="details" transfer-ownership="none">
+          <array c:type="gchar**">
+            <type name="utf8"/>
+          </array>
+        </parameter>
+        <parameter name="ctx" transfer-ownership="none">
+          <type name="InstallPluginsContext"
+                c:type="GstInstallPluginsContext*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="is_missing_plugin_message"
+              c:identifier="gst_is_missing_plugin_message"
+              doc="Checks whether @msg is a missing plugins message.">
+      <return-value transfer-ownership="none">
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="msg" transfer-ownership="none">
+          <type name="Gst.Message" c:type="GstMessage*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="missing_decoder_installer_detail_new"
+              c:identifier="gst_missing_decoder_installer_detail_new"
+              doc="Returns an opaque string containing all the details about the missing
+element to be passed to an external installer called via
+gst_install_plugins_async() or gst_install_plugins_sync().
+This function is mainly for applications that call external plugin
+installation mechanisms using one of the two above-mentioned functions in
+the case where the application knows exactly what kind of plugin it is
+missing.
+with g_free() when not needed any longer."
+              version="0.10.15">
+      <return-value transfer-ownership="full">
+        <type name="utf8" c:type="gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="decode_caps"
+                   transfer-ownership="none"
+                   doc="caps for which a decoder element is needed">
+          <type name="Gst.Caps" c:type="GstCaps*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="missing_decoder_message_new"
+              c:identifier="gst_missing_decoder_message_new"
+              doc="Creates a missing-plugin message for @element to notify the application
+that a decoder element for a particular set of (fixed) caps is missing.
+This function is mainly for use in plugins.">
+      <return-value transfer-ownership="full">
+        <type name="Gst.Message" c:type="GstMessage*"/>
+      </return-value>
+      <parameters>
+        <parameter name="element" transfer-ownership="none">
+          <type name="Gst.Element" c:type="GstElement*"/>
+        </parameter>
+        <parameter name="decode_caps"
+                   transfer-ownership="none"
+                   doc="caps for which a decoder element is needed">
+          <type name="Gst.Caps" c:type="GstCaps*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="missing_element_installer_detail_new"
+              c:identifier="gst_missing_element_installer_detail_new"
+              doc="e.g. &quot;videoscale&quot; or &quot;cdparanoiasrc&quot;
+Returns an opaque string containing all the details about the missing
+element to be passed to an external installer called via
+gst_install_plugins_async() or gst_install_plugins_sync().
+This function is mainly for applications that call external plugin
+installation mechanisms using one of the two above-mentioned functions in
+the case where the application knows exactly what kind of plugin it is
+missing.
+with g_free() when not needed any longer."
+              version="0.10.15">
+      <return-value transfer-ownership="full">
+        <type name="utf8" c:type="gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="factory_name" transfer-ownership="none">
+          <type name="utf8" c:type="gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="missing_element_message_new"
+              c:identifier="gst_missing_element_message_new"
+              doc="e.g. &quot;videoscale&quot; or &quot;cdparanoiasrc&quot;
+Creates a missing-plugin message for @element to notify the application
+that a certain required element is missing. This function is mainly for
+use in plugins.">
+      <return-value transfer-ownership="full">
+        <type name="Gst.Message" c:type="GstMessage*"/>
+      </return-value>
+      <parameters>
+        <parameter name="element" transfer-ownership="none">
+          <type name="Gst.Element" c:type="GstElement*"/>
+        </parameter>
+        <parameter name="factory_name" transfer-ownership="none">
+          <type name="utf8" c:type="gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="missing_encoder_installer_detail_new"
+              c:identifier="gst_missing_encoder_installer_detail_new"
+              doc="Returns an opaque string containing all the details about the missing
+element to be passed to an external installer called via
+gst_install_plugins_async() or gst_install_plugins_sync().
+This function is mainly for applications that call external plugin
+installation mechanisms using one of the two above-mentioned functions in
+the case where the application knows exactly what kind of plugin it is
+missing.
+with g_free() when not needed any longer."
+              version="0.10.15">
+      <return-value transfer-ownership="full">
+        <type name="utf8" c:type="gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="encode_caps"
+                   transfer-ownership="none"
+                   doc="caps for which an encoder element is needed">
+          <type name="Gst.Caps" c:type="GstCaps*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="missing_encoder_message_new"
+              c:identifier="gst_missing_encoder_message_new"
+              doc="Creates a missing-plugin message for @element to notify the application
+that an encoder element for a particular set of (fixed) caps is missing.
+This function is mainly for use in plugins.">
+      <return-value transfer-ownership="full">
+        <type name="Gst.Message" c:type="GstMessage*"/>
+      </return-value>
+      <parameters>
+        <parameter name="element" transfer-ownership="none">
+          <type name="Gst.Element" c:type="GstElement*"/>
+        </parameter>
+        <parameter name="encode_caps"
+                   transfer-ownership="none"
+                   doc="caps for which an encoder element is needed">
+          <type name="Gst.Caps" c:type="GstCaps*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="missing_plugin_message_get_description"
+              c:identifier="gst_missing_plugin_message_get_description"
+              doc="Returns a localised string describing the missing feature, for use in
+error dialogs and the like. Should never return NULL unless @msg is not
+a valid missing-plugin message.
+This function is mainly for applications that need a human-readable string
+describing a missing plugin, given a previously collected missing-plugin
+message
+string with g_free() when not needed any longer.">
+      <return-value transfer-ownership="full">
+        <type name="utf8" c:type="gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="msg" transfer-ownership="none">
+          <type name="Gst.Message" c:type="GstMessage*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="missing_plugin_message_get_installer_detail"
+              c:identifier="gst_missing_plugin_message_get_installer_detail"
+              doc="Returns an opaque string containing all the details about the missing
+element to be passed to an external installer called via
+gst_install_plugins_async() or gst_install_plugins_sync().
+This function is mainly for applications that call external plugin
+installation mechanisms using one of the two above-mentioned functions.
+with g_free() when not needed any longer.">
+      <return-value transfer-ownership="full">
+        <type name="utf8" c:type="gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="msg" transfer-ownership="none">
+          <type name="Gst.Message" c:type="GstMessage*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="missing_uri_sink_installer_detail_new"
+              c:identifier="gst_missing_uri_sink_installer_detail_new"
+              doc="e.g. &quot;http&quot; or &quot;mms&quot;
+Returns an opaque string containing all the details about the missing
+element to be passed to an external installer called via
+gst_install_plugins_async() or gst_install_plugins_sync().
+This function is mainly for applications that call external plugin
+installation mechanisms using one of the two above-mentioned functions in
+the case where the application knows exactly what kind of plugin it is
+missing.
+with g_free() when not needed any longer."
+              version="0.10.15">
+      <return-value transfer-ownership="full">
+        <type name="utf8" c:type="gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="protocol" transfer-ownership="none">
+          <type name="utf8" c:type="gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="missing_uri_sink_message_new"
+              c:identifier="gst_missing_uri_sink_message_new"
+              doc="e.g. &quot;http&quot; or &quot;smb&quot;
+Creates a missing-plugin message for @element to notify the application
+that a sink element for a particular URI protocol is missing. This
+function is mainly for use in plugins.">
+      <return-value transfer-ownership="full">
+        <type name="Gst.Message" c:type="GstMessage*"/>
+      </return-value>
+      <parameters>
+        <parameter name="element" transfer-ownership="none">
+          <type name="Gst.Element" c:type="GstElement*"/>
+        </parameter>
+        <parameter name="protocol" transfer-ownership="none">
+          <type name="utf8" c:type="gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="missing_uri_source_installer_detail_new"
+              c:identifier="gst_missing_uri_source_installer_detail_new"
+              doc="e.g. &quot;http&quot; or &quot;mms&quot;
+Returns an opaque string containing all the details about the missing
+element to be passed to an external installer called via
+gst_install_plugins_async() or gst_install_plugins_sync().
+This function is mainly for applications that call external plugin
+installation mechanisms using one of the two above-mentioned functions in
+the case where the application knows exactly what kind of plugin it is
+missing.
+with g_free() when not needed any longer."
+              version="0.10.15">
+      <return-value transfer-ownership="full">
+        <type name="utf8" c:type="gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="protocol" transfer-ownership="none">
+          <type name="utf8" c:type="gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="missing_uri_source_message_new"
+              c:identifier="gst_missing_uri_source_message_new"
+              doc="e.g. &quot;http&quot; or &quot;mms&quot;
+Creates a missing-plugin message for @element to notify the application
+that a source element for a particular URI protocol is missing. This
+function is mainly for use in plugins.">
+      <return-value transfer-ownership="full">
+        <type name="Gst.Message" c:type="GstMessage*"/>
+      </return-value>
+      <parameters>
+        <parameter name="element" transfer-ownership="none">
+          <type name="Gst.Element" c:type="GstElement*"/>
+        </parameter>
+        <parameter name="protocol" transfer-ownership="none">
+          <type name="utf8" c:type="gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="pb_utils_add_codec_description_to_tag_list"
+              c:identifier="gst_pb_utils_add_codec_description_to_tag_list"
+              doc="#GST_TAG_VIDEO_CODEC or #GST_TAG_CODEC
+Adds a codec tag describing the format specified by @caps to @taglist.">
+      <return-value transfer-ownership="none">
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="taglist" transfer-ownership="none">
+          <type name="Gst.TagList" c:type="GstTagList*"/>
+        </parameter>
+        <parameter name="codec_tag" transfer-ownership="none">
+          <type name="utf8" c:type="gchar*"/>
+        </parameter>
+        <parameter name="caps"
+                   transfer-ownership="none"
+                   doc="#GstCaps for which a codec tag should be added.">
+          <type name="Gst.Caps" c:type="GstCaps*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="pb_utils_get_codec_description"
+              c:identifier="gst_pb_utils_get_codec_description"
+              doc="Returns a localised (as far as this is possible) string describing the
+media format specified in @caps, for use in error dialogs or other messages
+to be seen by the user. Should never return NULL unless @caps is invalid.
+Also see the convenience function
+gst_pb_utils_add_codec_description_to_tag_list().
+string with g_free() when not needed any longer.">
+      <return-value transfer-ownership="full">
+        <type name="utf8" c:type="gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="caps"
+                   transfer-ownership="none"
+                   doc="#GstCaps for which an format description is needed">
+          <type name="Gst.Caps" c:type="GstCaps*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="pb_utils_get_decoder_description"
+              c:identifier="gst_pb_utils_get_decoder_description"
+              doc="Returns a localised string describing an decoder for the format specified
+in @caps, for use in error dialogs or other messages to be seen by the user.
+Should never return NULL unless @factory_name or @caps are invalid.
+This function is mainly for internal use, applications would typically
+use gst_missing_plugin_message_get_description() to get a description of
+a missing feature from a missing-plugin message.
+string with g_free() when not needed any longer.">
+      <return-value transfer-ownership="full">
+        <type name="utf8" c:type="gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="caps"
+                   transfer-ownership="none"
+                   doc="#GstCaps for which an decoder description is needed">
+          <type name="Gst.Caps" c:type="GstCaps*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="pb_utils_get_element_description"
+              c:identifier="gst_pb_utils_get_element_description"
+              doc="Returns a localised string describing the given element, for use in
+error dialogs or other messages to be seen by the user. Should never
+return NULL unless @factory_name is invalid.
+This function is mainly for internal use, applications would typically
+use gst_missing_plugin_message_get_description() to get a description of
+a missing feature from a missing-plugin message.
+string with g_free() when not needed any longer.">
+      <return-value transfer-ownership="full">
+        <type name="utf8" c:type="gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="factory_name" transfer-ownership="none">
+          <type name="utf8" c:type="gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="pb_utils_get_encoder_description"
+              c:identifier="gst_pb_utils_get_encoder_description"
+              doc="Returns a localised string describing an encoder for the format specified
+in @caps, for use in error dialogs or other messages to be seen by the user.
+Should never return NULL unless @factory_name or @caps are invalid.
+This function is mainly for internal use, applications would typically
+use gst_missing_plugin_message_get_description() to get a description of
+a missing feature from a missing-plugin message.
+string with g_free() when not needed any longer.">
+      <return-value transfer-ownership="full">
+        <type name="utf8" c:type="gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="caps"
+                   transfer-ownership="none"
+                   doc="#GstCaps for which an encoder description is needed">
+          <type name="Gst.Caps" c:type="GstCaps*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="pb_utils_get_sink_description"
+              c:identifier="gst_pb_utils_get_sink_description"
+              doc="Returns a localised string describing a sink element handling the protocol
+specified in @protocol, for use in error dialogs or other messages to be
+seen by the user. Should never return NULL unless @protocol is invalid.
+This function is mainly for internal use, applications would typically
+use gst_missing_plugin_message_get_description() to get a description of
+a missing feature from a missing-plugin message.
+string with g_free() when not needed any longer.">
+      <return-value transfer-ownership="full">
+        <type name="utf8" c:type="gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="protocol" transfer-ownership="none">
+          <type name="utf8" c:type="gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="pb_utils_get_source_description"
+              c:identifier="gst_pb_utils_get_source_description"
+              doc="Returns a localised string describing a source element handling the protocol
+specified in @protocol, for use in error dialogs or other messages to be
+seen by the user. Should never return NULL unless @protocol is invalid.
+This function is mainly for internal use, applications would typically
+use gst_missing_plugin_message_get_description() to get a description of
+a missing feature from a missing-plugin message.
+string with g_free() when not needed any longer.">
+      <return-value transfer-ownership="full">
+        <type name="utf8" c:type="gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="protocol" transfer-ownership="none">
+          <type name="utf8" c:type="gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="pb_utils_init"
+              c:identifier="gst_pb_utils_init"
+              doc="Initialises the base utils support library. This function is not
+thread-safe. Applications should call it after calling gst_init(),
+plugins should call it from their plugin_init function.
+This function may be called multiple times. It will do nothing if the
+library has already been initialised."
+              version="0.10.12">
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+    </function>
+  </namespace>
+</repository>
diff --git a/unmaintained/gstreamer/pbutils/ffi/ffi.factor b/unmaintained/gstreamer/pbutils/ffi/ffi.factor
new file mode 100644 (file)
index 0000000..f494c51
--- /dev/null
@@ -0,0 +1,16 @@
+! Copyright (C) 2010 Anton Gorenko.
+! See http://factorcode.org/license.txt for BSD license.
+USING: alien alien.libraries combinators kernel system
+gobject-introspection glib.ffi gstreamer.ffi ;
+IN: gstreamer.pbutils.ffi
+
+<<
+"gstreamer.pbutils" {
+    { [ os winnt? ] [ drop ] }
+    { [ os macosx? ] [ drop ] }
+    { [ os unix? ] [ "libgstpbutils-0.10.so" cdecl add-library ] }
+} cond
+>>
+
+GIR: vocab:gstreamer/pbutils/GstPbutils-0.10.gir
+
diff --git a/unmaintained/gstreamer/pbutils/pbutils.factor b/unmaintained/gstreamer/pbutils/pbutils.factor
new file mode 100644 (file)
index 0000000..9010553
--- /dev/null
@@ -0,0 +1,5 @@
+! Copyright (C) 2010 Anton Gorenko.
+! See http://factorcode.org/license.txt for BSD license.
+USING: gstreamer.pbutils.ffi ;
+IN: gstreamer.pbutils
+
diff --git a/unmaintained/gstreamer/riff/GstRiff-0.10.gir b/unmaintained/gstreamer/riff/GstRiff-0.10.gir
new file mode 100644 (file)
index 0000000..d3c7519
--- /dev/null
@@ -0,0 +1,983 @@
+<?xml version="1.0"?>
+<!-- This file was automatically generated from C sources - DO NOT EDIT!
+To affect the contents of this file, edit the original C definitions,
+and/or use gtk-doc annotations.  -->
+<repository version="1.0"
+            xmlns="http://www.gtk.org/introspection/core/1.0"
+            xmlns:c="http://www.gtk.org/introspection/c/1.0"
+            xmlns:glib="http://www.gtk.org/introspection/glib/1.0">
+  <include name="GLib" version="2.0"/>
+  <include name="GModule" version="2.0"/>
+  <include name="GObject" version="2.0"/>
+  <include name="Gst" version="0.10"/>
+  <include name="GstAudio" version="0.10"/>
+  <include name="GstBase" version="0.10"/>
+  <include name="GstInterfaces" version="0.10"/>
+  <include name="GstTag" version="0.10"/>
+  <include name="libxml2" version="2.0"/>
+  <package name="gstreamer-0.10"/>
+  <package name="gstreamer-audio-0.10"/>
+  <package name="gstreamer-interfaces-0.10"/>
+  <package name="gstreamer-tag-0.10"/>
+  <c:include name="gst/riff/riff-ids.h"/>
+  <c:include name="gst/riff/riff-media.h"/>
+  <c:include name="gst/riff/riff-read.h"/>
+  <namespace name="GstRiff"
+             version="0.10"
+             shared-library="libgstriff-0.10.so.0"
+             c:prefix="Gst">
+    <constant name="IBM_FORMAT_ADPCM" value="259">
+      <type name="int"/>
+    </constant>
+    <constant name="IBM_FORMAT_ALAW" value="258">
+      <type name="int"/>
+    </constant>
+    <constant name="IBM_FORMAT_MULAW" value="257">
+      <type name="int"/>
+    </constant>
+    <constant name="IF_KEYFRAME" value="16">
+      <type name="int"/>
+    </constant>
+    <constant name="IF_LIST" value="1">
+      <type name="int"/>
+    </constant>
+    <constant name="IF_NO_TIME" value="256">
+      <type name="int"/>
+    </constant>
+    <constant name="STRH_DISABLED" value="1">
+      <type name="int"/>
+    </constant>
+    <constant name="STRH_VIDEOPALCHANGES" value="65536">
+      <type name="int"/>
+    </constant>
+    <constant name="WAVE_FORMAT_A52" value="8192">
+      <type name="int"/>
+    </constant>
+    <constant name="WAVE_FORMAT_AAC" value="255">
+      <type name="int"/>
+    </constant>
+    <constant name="WAVE_FORMAT_AAC_AC" value="16707">
+      <type name="int"/>
+    </constant>
+    <constant name="WAVE_FORMAT_AAC_pm" value="28781">
+      <type name="int"/>
+    </constant>
+    <constant name="WAVE_FORMAT_ADPCM" value="2">
+      <type name="int"/>
+    </constant>
+    <constant name="WAVE_FORMAT_ADPCM_IMA_DK3" value="98">
+      <type name="int"/>
+    </constant>
+    <constant name="WAVE_FORMAT_ADPCM_IMA_DK4" value="97">
+      <type name="int"/>
+    </constant>
+    <constant name="WAVE_FORMAT_ADPCM_IMA_WAV" value="105">
+      <type name="int"/>
+    </constant>
+    <constant name="WAVE_FORMAT_ALAW" value="6">
+      <type name="int"/>
+    </constant>
+    <constant name="WAVE_FORMAT_AMR_NB" value="87">
+      <type name="int"/>
+    </constant>
+    <constant name="WAVE_FORMAT_AMR_WB" value="88">
+      <type name="int"/>
+    </constant>
+    <constant name="WAVE_FORMAT_APTX" value="37">
+      <type name="int"/>
+    </constant>
+    <constant name="WAVE_FORMAT_AUDIOFILE_AF10" value="38">
+      <type name="int"/>
+    </constant>
+    <constant name="WAVE_FORMAT_AUDIOFILE_AF36" value="36">
+      <type name="int"/>
+    </constant>
+    <constant name="WAVE_FORMAT_BTV_DIGITAL" value="1024">
+      <type name="int"/>
+    </constant>
+    <constant name="WAVE_FORMAT_CANOPUS_ATRAC" value="99">
+      <type name="int"/>
+    </constant>
+    <constant name="WAVE_FORMAT_CIRRUS" value="96">
+      <type name="int"/>
+    </constant>
+    <constant name="WAVE_FORMAT_CONTROL_RES_CR10" value="55">
+      <type name="int"/>
+    </constant>
+    <constant name="WAVE_FORMAT_CONTROL_RES_VQLPC" value="52">
+      <type name="int"/>
+    </constant>
+    <constant name="WAVE_FORMAT_CREATIVE_ADPCM" value="512">
+      <type name="int"/>
+    </constant>
+    <constant name="WAVE_FORMAT_CREATIVE_FASTSPEECH10" value="515">
+      <type name="int"/>
+    </constant>
+    <constant name="WAVE_FORMAT_CREATIVE_FASTSPEECH8" value="514">
+      <type name="int"/>
+    </constant>
+    <constant name="WAVE_FORMAT_CS2" value="608">
+      <type name="int"/>
+    </constant>
+    <constant name="WAVE_FORMAT_CS_IMAADPCM" value="57">
+      <type name="int"/>
+    </constant>
+    <constant name="WAVE_FORMAT_CU_CODEC" value="25">
+      <type name="int"/>
+    </constant>
+    <constant name="WAVE_FORMAT_DF_G726" value="133">
+      <type name="int"/>
+    </constant>
+    <constant name="WAVE_FORMAT_DF_GSM610" value="134">
+      <type name="int"/>
+    </constant>
+    <constant name="WAVE_FORMAT_DIALOGIC_OKI_ADPCM" value="23">
+      <type name="int"/>
+    </constant>
+    <constant name="WAVE_FORMAT_DIGIADPCM" value="54">
+      <type name="int"/>
+    </constant>
+    <constant name="WAVE_FORMAT_DIGIFIX" value="22">
+      <type name="int"/>
+    </constant>
+    <constant name="WAVE_FORMAT_DIGIREAL" value="53">
+      <type name="int"/>
+    </constant>
+    <constant name="WAVE_FORMAT_DIGISTD" value="21">
+      <type name="int"/>
+    </constant>
+    <constant name="WAVE_FORMAT_DIGITAL_G723" value="291">
+      <type name="int"/>
+    </constant>
+    <constant name="WAVE_FORMAT_DOLBY_AC2" value="48">
+      <type name="int"/>
+    </constant>
+    <constant name="WAVE_FORMAT_DOLBY_AC3_SPDIF" value="146">
+      <type name="int"/>
+    </constant>
+    <constant name="WAVE_FORMAT_DSAT_DISPLAY" value="103">
+      <type name="int"/>
+    </constant>
+    <constant name="WAVE_FORMAT_DSP_TRUESPEECH" value="34">
+      <type name="int"/>
+    </constant>
+    <constant name="WAVE_FORMAT_DTS" value="8193">
+      <type name="int"/>
+    </constant>
+    <constant name="WAVE_FORMAT_DVI_ADPCM" value="17">
+      <type name="int"/>
+    </constant>
+    <constant name="WAVE_FORMAT_ECHOSC1" value="35">
+      <type name="int"/>
+    </constant>
+    <constant name="WAVE_FORMAT_ECHOSC3" value="58">
+      <type name="int"/>
+    </constant>
+    <constant name="WAVE_FORMAT_ESPCM" value="97">
+      <type name="int"/>
+    </constant>
+    <constant name="WAVE_FORMAT_EXTENSIBLE" value="65534">
+      <type name="int"/>
+    </constant>
+    <constant name="WAVE_FORMAT_FLAC" value="61868">
+      <type name="int"/>
+    </constant>
+    <constant name="WAVE_FORMAT_FM_TOWNS_SND" value="768">
+      <type name="int"/>
+    </constant>
+    <constant name="WAVE_FORMAT_G722_ADPCM" value="101">
+      <type name="int"/>
+    </constant>
+    <constant name="WAVE_FORMAT_G723_ADPCM" value="20">
+      <type name="int"/>
+    </constant>
+    <constant name="WAVE_FORMAT_G726ADPCM" value="320">
+      <type name="int"/>
+    </constant>
+    <constant name="WAVE_FORMAT_G726_ADPCM" value="100">
+      <type name="int"/>
+    </constant>
+    <constant name="WAVE_FORMAT_G728_CELP" value="65">
+      <type name="int"/>
+    </constant>
+    <constant name="WAVE_FORMAT_G729A" value="131">
+      <type name="int"/>
+    </constant>
+    <constant name="WAVE_FORMAT_GSM610" value="49">
+      <type name="int"/>
+    </constant>
+    <constant name="WAVE_FORMAT_GSM_AMR_CBR" value="31265">
+      <type name="int"/>
+    </constant>
+    <constant name="WAVE_FORMAT_GSM_AMR_VBR" value="31266">
+      <type name="int"/>
+    </constant>
+    <constant name="WAVE_FORMAT_IBM_CVSD" value="5">
+      <type name="int"/>
+    </constant>
+    <constant name="WAVE_FORMAT_IEEE_FLOAT" value="3">
+      <type name="int"/>
+    </constant>
+    <constant name="WAVE_FORMAT_ILINK_VC" value="560">
+      <type name="int"/>
+    </constant>
+    <constant name="WAVE_FORMAT_IMC" value="1025">
+      <type name="int"/>
+    </constant>
+    <constant name="WAVE_FORMAT_IPI_HSX" value="592">
+      <type name="int"/>
+    </constant>
+    <constant name="WAVE_FORMAT_IPI_RPELP" value="593">
+      <type name="int"/>
+    </constant>
+    <constant name="WAVE_FORMAT_ISIAUDIO" value="136">
+      <type name="int"/>
+    </constant>
+    <constant name="WAVE_FORMAT_ITU_G721_ADPCM" value="64">
+      <type name="int"/>
+    </constant>
+    <constant name="WAVE_FORMAT_LH_CODEC" value="4352">
+      <type name="int"/>
+    </constant>
+    <constant name="WAVE_FORMAT_LRC" value="40">
+      <type name="int"/>
+    </constant>
+    <constant name="WAVE_FORMAT_LUCENT_G723" value="89">
+      <type name="int"/>
+    </constant>
+    <constant name="WAVE_FORMAT_MALDEN_PHONYTALK" value="160">
+      <type name="int"/>
+    </constant>
+    <constant name="WAVE_FORMAT_MEDIASONIC_G723" value="147">
+      <type name="int"/>
+    </constant>
+    <constant name="WAVE_FORMAT_MEDIASPACE_ADPCM" value="18">
+      <type name="int"/>
+    </constant>
+    <constant name="WAVE_FORMAT_MEDIAVISION_ADPCM" value="24">
+      <type name="int"/>
+    </constant>
+    <constant name="WAVE_FORMAT_MPEGL12" value="80">
+      <type name="int"/>
+    </constant>
+    <constant name="WAVE_FORMAT_MPEGL3" value="85">
+      <type name="int"/>
+    </constant>
+    <constant name="WAVE_FORMAT_MSG723" value="66">
+      <type name="int"/>
+    </constant>
+    <constant name="WAVE_FORMAT_MSN" value="50">
+      <type name="int"/>
+    </constant>
+    <constant name="WAVE_FORMAT_MSRT24" value="130">
+      <type name="int"/>
+    </constant>
+    <constant name="WAVE_FORMAT_MULAW" value="7">
+      <type name="int"/>
+    </constant>
+    <constant name="WAVE_FORMAT_MVI_MVI2" value="132">
+      <type name="int"/>
+    </constant>
+    <constant name="WAVE_FORMAT_NMS_VBXADPCM" value="56">
+      <type name="int"/>
+    </constant>
+    <constant name="WAVE_FORMAT_NORRIS" value="5120">
+      <type name="int"/>
+    </constant>
+    <constant name="WAVE_FORMAT_OKI_ADPCM" value="16">
+      <type name="int"/>
+    </constant>
+    <constant name="WAVE_FORMAT_OLIADPCM" value="4097">
+      <type name="int"/>
+    </constant>
+    <constant name="WAVE_FORMAT_OLICELP" value="4098">
+      <type name="int"/>
+    </constant>
+    <constant name="WAVE_FORMAT_OLIGSM" value="4096">
+      <type name="int"/>
+    </constant>
+    <constant name="WAVE_FORMAT_OLIOPR" value="4100">
+      <type name="int"/>
+    </constant>
+    <constant name="WAVE_FORMAT_OLISBC" value="4099">
+      <type name="int"/>
+    </constant>
+    <constant name="WAVE_FORMAT_ONLIVE" value="137">
+      <type name="int"/>
+    </constant>
+    <constant name="WAVE_FORMAT_PAC" value="83">
+      <type name="int"/>
+    </constant>
+    <constant name="WAVE_FORMAT_PACKED" value="153">
+      <type name="int"/>
+    </constant>
+    <constant name="WAVE_FORMAT_PCM" value="1">
+      <type name="int"/>
+    </constant>
+    <constant name="WAVE_FORMAT_PHILIPS_LPCBB" value="152">
+      <type name="int"/>
+    </constant>
+    <constant name="WAVE_FORMAT_PROSODY_1612" value="39">
+      <type name="int"/>
+    </constant>
+    <constant name="WAVE_FORMAT_PROSODY_8KBPS" value="148">
+      <type name="int"/>
+    </constant>
+    <constant name="WAVE_FORMAT_QDESIGN_MUSIC" value="1104">
+      <type name="int"/>
+    </constant>
+    <constant name="WAVE_FORMAT_QUALCOMM_HALFRATE" value="337">
+      <type name="int"/>
+    </constant>
+    <constant name="WAVE_FORMAT_QUALCOMM_PUREVOICE" value="336">
+      <type name="int"/>
+    </constant>
+    <constant name="WAVE_FORMAT_QUARTERDECK" value="544">
+      <type name="int"/>
+    </constant>
+    <constant name="WAVE_FORMAT_RAW_SPORT" value="576">
+      <type name="int"/>
+    </constant>
+    <constant name="WAVE_FORMAT_RHETOREX_ADPCM" value="256">
+      <type name="int"/>
+    </constant>
+    <constant name="WAVE_FORMAT_ROCKWELL_ADPCM" value="59">
+      <type name="int"/>
+    </constant>
+    <constant name="WAVE_FORMAT_ROCKWELL_DIGITALK" value="60">
+      <type name="int"/>
+    </constant>
+    <constant name="WAVE_FORMAT_RT24" value="82">
+      <type name="int"/>
+    </constant>
+    <constant name="WAVE_FORMAT_SANYO_LD_ADPCM" value="293">
+      <type name="int"/>
+    </constant>
+    <constant name="WAVE_FORMAT_SBC24" value="145">
+      <type name="int"/>
+    </constant>
+    <constant name="WAVE_FORMAT_SIERRA_ADPCM" value="19">
+      <type name="int"/>
+    </constant>
+    <constant name="WAVE_FORMAT_SIPROLAB_ACELP4800" value="305">
+      <type name="int"/>
+    </constant>
+    <constant name="WAVE_FORMAT_SIPROLAB_ACELP8V3" value="306">
+      <type name="int"/>
+    </constant>
+    <constant name="WAVE_FORMAT_SIPROLAB_ACEPLNET" value="304">
+      <type name="int"/>
+    </constant>
+    <constant name="WAVE_FORMAT_SIPROLAB_G729" value="307">
+      <type name="int"/>
+    </constant>
+    <constant name="WAVE_FORMAT_SIPROLAB_G729A" value="308">
+      <type name="int"/>
+    </constant>
+    <constant name="WAVE_FORMAT_SIPROLAB_KELVIN" value="309">
+      <type name="int"/>
+    </constant>
+    <constant name="WAVE_FORMAT_SIREN" value="654">
+      <type name="int"/>
+    </constant>
+    <constant name="WAVE_FORMAT_SOFTSOUND" value="128">
+      <type name="int"/>
+    </constant>
+    <constant name="WAVE_FORMAT_SONARC" value="33">
+      <type name="int"/>
+    </constant>
+    <constant name="WAVE_FORMAT_SONIC" value="8264">
+      <type name="int"/>
+    </constant>
+    <constant name="WAVE_FORMAT_SONIC_LS" value="8264">
+      <type name="int"/>
+    </constant>
+    <constant name="WAVE_FORMAT_SONY_ATRAC3" value="624">
+      <type name="int"/>
+    </constant>
+    <constant name="WAVE_FORMAT_SOUNDSPACE_MUSICOMPRESS" value="5376">
+      <type name="int"/>
+    </constant>
+    <constant name="WAVE_FORMAT_TPC" value="1665">
+      <type name="int"/>
+    </constant>
+    <constant name="WAVE_FORMAT_TUBGSM" value="341">
+      <type name="int"/>
+    </constant>
+    <constant name="WAVE_FORMAT_UHER_ADPCM" value="528">
+      <type name="int"/>
+    </constant>
+    <constant name="WAVE_FORMAT_UNKNOWN" value="0">
+      <type name="int"/>
+    </constant>
+    <constant name="WAVE_FORMAT_VIVO_G723" value="273">
+      <type name="int"/>
+    </constant>
+    <constant name="WAVE_FORMAT_VIVO_SIREN" value="274">
+      <type name="int"/>
+    </constant>
+    <constant name="WAVE_FORMAT_VME_VMPCM" value="1664">
+      <type name="int"/>
+    </constant>
+    <constant name="WAVE_FORMAT_VORBIS1" value="26447">
+      <type name="int"/>
+    </constant>
+    <constant name="WAVE_FORMAT_VORBIS1PLUS" value="26479">
+      <type name="int"/>
+    </constant>
+    <constant name="WAVE_FORMAT_VORBIS2" value="26448">
+      <type name="int"/>
+    </constant>
+    <constant name="WAVE_FORMAT_VORBIS2PLUS" value="26480">
+      <type name="int"/>
+    </constant>
+    <constant name="WAVE_FORMAT_VORBIS3" value="26449">
+      <type name="int"/>
+    </constant>
+    <constant name="WAVE_FORMAT_VORBIS3PLUS" value="26481">
+      <type name="int"/>
+    </constant>
+    <constant name="WAVE_FORMAT_VOXWARE" value="98">
+      <type name="int"/>
+    </constant>
+    <constant name="WAVE_FORMAT_VOXWARE_AC10" value="113">
+      <type name="int"/>
+    </constant>
+    <constant name="WAVE_FORMAT_VOXWARE_AC16" value="114">
+      <type name="int"/>
+    </constant>
+    <constant name="WAVE_FORMAT_VOXWARE_AC20" value="115">
+      <type name="int"/>
+    </constant>
+    <constant name="WAVE_FORMAT_VOXWARE_AC8" value="112">
+      <type name="int"/>
+    </constant>
+    <constant name="WAVE_FORMAT_VOXWARE_BYTE_ALIGNED" value="105">
+      <type name="int"/>
+    </constant>
+    <constant name="WAVE_FORMAT_VOXWARE_METASOUND" value="117">
+      <type name="int"/>
+    </constant>
+    <constant name="WAVE_FORMAT_VOXWARE_METAVOICE" value="116">
+      <type name="int"/>
+    </constant>
+    <constant name="WAVE_FORMAT_VOXWARE_RT29HW" value="118">
+      <type name="int"/>
+    </constant>
+    <constant name="WAVE_FORMAT_VOXWARE_TQ40" value="121">
+      <type name="int"/>
+    </constant>
+    <constant name="WAVE_FORMAT_VOXWARE_TQ60" value="129">
+      <type name="int"/>
+    </constant>
+    <constant name="WAVE_FORMAT_VOXWARE_VR12" value="119">
+      <type name="int"/>
+    </constant>
+    <constant name="WAVE_FORMAT_VOXWARE_VR18" value="120">
+      <type name="int"/>
+    </constant>
+    <constant name="WAVE_FORMAT_VSELP" value="4">
+      <type name="int"/>
+    </constant>
+    <constant name="WAVE_FORMAT_WMAV1" value="352">
+      <type name="int"/>
+    </constant>
+    <constant name="WAVE_FORMAT_WMAV2" value="353">
+      <type name="int"/>
+    </constant>
+    <constant name="WAVE_FORMAT_WMAV3" value="354">
+      <type name="int"/>
+    </constant>
+    <constant name="WAVE_FORMAT_WMAV3_L" value="355">
+      <type name="int"/>
+    </constant>
+    <constant name="WAVE_FORMAT_WMS" value="10">
+      <type name="int"/>
+    </constant>
+    <constant name="WAVE_FORMAT_XEBEC" value="61">
+      <type name="int"/>
+    </constant>
+    <constant name="WAVE_FORMAT_YAMAHA_ADPCM" value="32">
+      <type name="int"/>
+    </constant>
+    <constant name="WAVE_FORMAT_ZYXEL_ADPCM" value="151">
+      <type name="int"/>
+    </constant>
+    <function name="create_audio_caps"
+              c:identifier="gst_riff_create_audio_caps">
+      <return-value transfer-ownership="full">
+        <type name="Gst.Caps" c:type="GstCaps*"/>
+      </return-value>
+      <parameters>
+        <parameter name="codec_id" transfer-ownership="none">
+          <type name="uint16" c:type="guint16"/>
+        </parameter>
+        <parameter name="strh" transfer-ownership="none">
+          <type name="riff_strh" c:type="gst_riff_strh*"/>
+        </parameter>
+        <parameter name="strf" transfer-ownership="none">
+          <type name="riff_strf_auds" c:type="gst_riff_strf_auds*"/>
+        </parameter>
+        <parameter name="strf_data" transfer-ownership="none">
+          <type name="Gst.Buffer" c:type="GstBuffer*"/>
+        </parameter>
+        <parameter name="strd_data" transfer-ownership="none">
+          <type name="Gst.Buffer" c:type="GstBuffer*"/>
+        </parameter>
+        <parameter name="codec_name" transfer-ownership="none">
+          <array c:type="char**">
+            <type name="utf8"/>
+          </array>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="create_audio_template_caps"
+              c:identifier="gst_riff_create_audio_template_caps">
+      <return-value transfer-ownership="full">
+        <type name="Gst.Caps" c:type="GstCaps*"/>
+      </return-value>
+    </function>
+    <function name="create_iavs_caps" c:identifier="gst_riff_create_iavs_caps">
+      <return-value transfer-ownership="full">
+        <type name="Gst.Caps" c:type="GstCaps*"/>
+      </return-value>
+      <parameters>
+        <parameter name="codec_fcc" transfer-ownership="none">
+          <type name="uint32" c:type="guint32"/>
+        </parameter>
+        <parameter name="strh" transfer-ownership="none">
+          <type name="riff_strh" c:type="gst_riff_strh*"/>
+        </parameter>
+        <parameter name="strf" transfer-ownership="none">
+          <type name="riff_strf_iavs" c:type="gst_riff_strf_iavs*"/>
+        </parameter>
+        <parameter name="strf_data" transfer-ownership="none">
+          <type name="Gst.Buffer" c:type="GstBuffer*"/>
+        </parameter>
+        <parameter name="strd_data" transfer-ownership="none">
+          <type name="Gst.Buffer" c:type="GstBuffer*"/>
+        </parameter>
+        <parameter name="codec_name" transfer-ownership="none">
+          <array c:type="char**">
+            <type name="utf8"/>
+          </array>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="create_iavs_template_caps"
+              c:identifier="gst_riff_create_iavs_template_caps">
+      <return-value transfer-ownership="full">
+        <type name="Gst.Caps" c:type="GstCaps*"/>
+      </return-value>
+    </function>
+    <function name="create_video_caps"
+              c:identifier="gst_riff_create_video_caps"
+              doc="data that is within the range of strf.size, but excluding any
+additional data withint this chunk but outside strf.size.
+chunk outside reach of strf.size. Ususally a palette.
+chunk. Usually codec initialization data.">
+      <return-value transfer-ownership="full">
+        <type name="Gst.Caps" c:type="GstCaps*"/>
+      </return-value>
+      <parameters>
+        <parameter name="codec_fcc" transfer-ownership="none">
+          <type name="uint32" c:type="guint32"/>
+        </parameter>
+        <parameter name="strh" transfer-ownership="none">
+          <type name="riff_strh" c:type="gst_riff_strh*"/>
+        </parameter>
+        <parameter name="strf" transfer-ownership="none">
+          <type name="riff_strf_vids" c:type="gst_riff_strf_vids*"/>
+        </parameter>
+        <parameter name="strf_data" transfer-ownership="none">
+          <type name="Gst.Buffer" c:type="GstBuffer*"/>
+        </parameter>
+        <parameter name="strd_data" transfer-ownership="none">
+          <type name="Gst.Buffer" c:type="GstBuffer*"/>
+        </parameter>
+        <parameter name="codec_name" transfer-ownership="none">
+          <array c:type="char**">
+            <type name="utf8"/>
+          </array>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="create_video_template_caps"
+              c:identifier="gst_riff_create_video_template_caps">
+      <return-value transfer-ownership="full">
+        <type name="Gst.Caps" c:type="GstCaps*"/>
+      </return-value>
+    </function>
+    <function name="init"
+              c:identifier="gst_riff_init"
+              doc="Initialize riff library.">
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+    </function>
+    <function name="parse_chunk"
+              c:identifier="gst_riff_parse_chunk"
+              doc="by the read size by this function.
+chunk data, which may be NULL if chunksize == 0
+Reads a single chunk.">
+      <return-value transfer-ownership="none">
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="element" transfer-ownership="none">
+          <type name="Gst.Element" c:type="GstElement*"/>
+        </parameter>
+        <parameter name="buf" transfer-ownership="none">
+          <type name="Gst.Buffer" c:type="GstBuffer*"/>
+        </parameter>
+        <parameter name="offset" direction="out" transfer-ownership="full">
+          <type name="uint" c:type="guint*"/>
+        </parameter>
+        <parameter name="fourcc" direction="out" transfer-ownership="full">
+          <type name="uint32" c:type="guint32*"/>
+        </parameter>
+        <parameter name="chunk_data"
+                   transfer-ownership="none"
+                   doc="containing the">
+          <type name="Gst.Buffer" c:type="GstBuffer**"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="parse_file_header"
+              c:identifier="gst_riff_parse_file_header"
+              doc="should be at least 12 bytes long.
+type of document (according to the header).
+Reads the first few bytes from the provided buffer, checks
+if this stream is a RIFF stream, and determines document type.
+This function takes ownership of @buf so it should not be used anymore
+after calling this function.
+caller should error out; we already throw an error), or TRUE
+if it is.">
+      <return-value transfer-ownership="none">
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="element" transfer-ownership="none">
+          <type name="Gst.Element" c:type="GstElement*"/>
+        </parameter>
+        <parameter name="buf" transfer-ownership="none">
+          <type name="Gst.Buffer" c:type="GstBuffer*"/>
+        </parameter>
+        <parameter name="doctype"
+                   direction="out"
+                   transfer-ownership="full"
+                   doc="to indicate the">
+          <type name="uint32" c:type="guint32*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="parse_info"
+              c:identifier="gst_riff_parse_info"
+              doc="containing information about this stream. May be
+NULL if no supported tags were found.
+Parses stream metadata from input data.">
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="element" transfer-ownership="none">
+          <type name="Gst.Element" c:type="GstElement*"/>
+        </parameter>
+        <parameter name="buf" transfer-ownership="none">
+          <type name="Gst.Buffer" c:type="GstBuffer*"/>
+        </parameter>
+        <parameter name="taglist" transfer-ownership="none">
+          <type name="Gst.TagList" c:type="GstTagList**"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="parse_strf_auds"
+              c:identifier="gst_riff_parse_strf_auds"
+              doc="strf/auds structure. Caller should free it.
+containing extradata for this particular stream (e.g.
+codec initialization data).
+Parses an audio stream´s strf structure plus optionally some
+extradata from input data. This function takes ownership of @buf.
+use.
+should be skipped on error, but it is not fatal.">
+      <return-value transfer-ownership="none">
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="element" transfer-ownership="none">
+          <type name="Gst.Element" c:type="GstElement*"/>
+        </parameter>
+        <parameter name="buf" transfer-ownership="none">
+          <type name="Gst.Buffer" c:type="GstBuffer*"/>
+        </parameter>
+        <parameter name="strf" transfer-ownership="none" doc="to a filled-in">
+          <type name="riff_strf_auds" c:type="gst_riff_strf_auds**"/>
+        </parameter>
+        <parameter name="data" transfer-ownership="none" doc="to a buffer">
+          <type name="Gst.Buffer" c:type="GstBuffer**"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="parse_strf_iavs"
+              c:identifier="gst_riff_parse_strf_iavs"
+              doc="strf/iavs structure. Caller should free it.
+containing extradata for this particular stream (e.g.
+codec initialization data).
+Parses a interleaved (also known as &quot;complex&quot;)  stream´s strf
+structure plus optionally some extradata from input data. This
+function takes ownership of @buf.">
+      <return-value transfer-ownership="none">
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="element" transfer-ownership="none">
+          <type name="Gst.Element" c:type="GstElement*"/>
+        </parameter>
+        <parameter name="buf" transfer-ownership="none">
+          <type name="Gst.Buffer" c:type="GstBuffer*"/>
+        </parameter>
+        <parameter name="strf" transfer-ownership="none" doc="to a filled-in">
+          <type name="riff_strf_iavs" c:type="gst_riff_strf_iavs**"/>
+        </parameter>
+        <parameter name="data" transfer-ownership="none" doc="to a buffer">
+          <type name="Gst.Buffer" c:type="GstBuffer**"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="parse_strf_vids"
+              c:identifier="gst_riff_parse_strf_vids"
+              doc="strf/vids structure. Caller should free it.
+containing extradata for this particular stream (e.g.
+palette, codec initialization data).
+Parses a video stream´s strf structure plus optionally some
+extradata from input data. This function takes ownership of @buf.
+should be skipped on error, but it is not fatal.">
+      <return-value transfer-ownership="none">
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="element" transfer-ownership="none">
+          <type name="Gst.Element" c:type="GstElement*"/>
+        </parameter>
+        <parameter name="buf" transfer-ownership="none">
+          <type name="Gst.Buffer" c:type="GstBuffer*"/>
+        </parameter>
+        <parameter name="strf" transfer-ownership="none" doc="to a filled-in">
+          <type name="riff_strf_vids" c:type="gst_riff_strf_vids**"/>
+        </parameter>
+        <parameter name="data" transfer-ownership="none" doc="to a buffer">
+          <type name="Gst.Buffer" c:type="GstBuffer**"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="parse_strh"
+              c:identifier="gst_riff_parse_strh"
+              doc="strh structure. Caller should free it.
+Parses a strh structure from input data. Takes ownership of @buf.
+should be skipped on error, but it is not fatal.">
+      <return-value transfer-ownership="none">
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="element" transfer-ownership="none">
+          <type name="Gst.Element" c:type="GstElement*"/>
+        </parameter>
+        <parameter name="buf" transfer-ownership="none">
+          <type name="Gst.Buffer" c:type="GstBuffer*"/>
+        </parameter>
+        <parameter name="strh" transfer-ownership="none" doc="to a filled-in">
+          <type name="riff_strh" c:type="gst_riff_strh**"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="read_chunk"
+              c:identifier="gst_riff_read_chunk"
+              doc="Reads a single chunk of data. Since 0.10.8 &apos;JUNK&apos; chunks
+are skipped automatically.">
+      <return-value transfer-ownership="full">
+        <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
+      </return-value>
+      <parameters>
+        <parameter name="element" transfer-ownership="none">
+          <type name="Gst.Element" c:type="GstElement*"/>
+        </parameter>
+        <parameter name="pad" transfer-ownership="none">
+          <type name="Gst.Pad" c:type="GstPad*"/>
+        </parameter>
+        <parameter name="offset" direction="out" transfer-ownership="full">
+          <type name="uint64" c:type="guint64*"/>
+        </parameter>
+        <parameter name="tag" direction="out" transfer-ownership="full">
+          <type name="uint32" c:type="guint32*"/>
+        </parameter>
+        <parameter name="chunk_data" transfer-ownership="none">
+          <type name="Gst.Buffer" c:type="GstBuffer**"/>
+        </parameter>
+      </parameters>
+    </function>
+    <record name="riff_acid" c:type="_gst_riff_acid">
+      <field name="loop_type" writable="1">
+        <type name="uint32" c:type="guint32"/>
+      </field>
+      <field name="root_note" writable="1">
+        <type name="uint16" c:type="guint16"/>
+      </field>
+      <field name="unknown1" writable="1">
+        <type name="uint16" c:type="guint16"/>
+      </field>
+      <field name="unknown2" writable="1">
+        <type name="float" c:type="gfloat"/>
+      </field>
+      <field name="number_of_beats" writable="1">
+        <type name="uint32" c:type="guint32"/>
+      </field>
+      <field name="meter_d" writable="1">
+        <type name="uint16" c:type="guint16"/>
+      </field>
+      <field name="meter_n" writable="1">
+        <type name="uint16" c:type="guint16"/>
+      </field>
+      <field name="tempo" writable="1">
+        <type name="float" c:type="gfloat"/>
+      </field>
+    </record>
+    <record name="riff_dmlh" c:type="_gst_riff_dmlh">
+      <field name="totalframes" writable="1">
+        <type name="uint32" c:type="guint32"/>
+      </field>
+    </record>
+    <record name="riff_index_entry" c:type="_gst_riff_index_entry">
+      <field name="id" writable="1">
+        <type name="uint32" c:type="guint32"/>
+      </field>
+      <field name="flags" writable="1">
+        <type name="uint32" c:type="guint32"/>
+      </field>
+      <field name="offset" writable="1">
+        <type name="uint32" c:type="guint32"/>
+      </field>
+      <field name="size" writable="1">
+        <type name="uint32" c:type="guint32"/>
+      </field>
+    </record>
+    <record name="riff_strf_auds" c:type="_gst_riff_strf_auds">
+      <field name="format" writable="1">
+        <type name="uint16" c:type="guint16"/>
+      </field>
+      <field name="channels" writable="1">
+        <type name="uint16" c:type="guint16"/>
+      </field>
+      <field name="rate" writable="1">
+        <type name="uint32" c:type="guint32"/>
+      </field>
+      <field name="av_bps" writable="1">
+        <type name="uint32" c:type="guint32"/>
+      </field>
+      <field name="blockalign" writable="1">
+        <type name="uint16" c:type="guint16"/>
+      </field>
+      <field name="size" writable="1">
+        <type name="uint16" c:type="guint16"/>
+      </field>
+    </record>
+    <record name="riff_strf_iavs" c:type="_gst_riff_strf_iavs">
+      <field name="DVAAuxSrc" writable="1">
+        <type name="uint32" c:type="guint32"/>
+      </field>
+      <field name="DVAAuxCtl" writable="1">
+        <type name="uint32" c:type="guint32"/>
+      </field>
+      <field name="DVAAuxSrc1" writable="1">
+        <type name="uint32" c:type="guint32"/>
+      </field>
+      <field name="DVAAuxCtl1" writable="1">
+        <type name="uint32" c:type="guint32"/>
+      </field>
+      <field name="DVVAuxSrc" writable="1">
+        <type name="uint32" c:type="guint32"/>
+      </field>
+      <field name="DVVAuxCtl" writable="1">
+        <type name="uint32" c:type="guint32"/>
+      </field>
+      <field name="DVReserved1" writable="1">
+        <type name="uint32" c:type="guint32"/>
+      </field>
+      <field name="DVReserved2" writable="1">
+        <type name="uint32" c:type="guint32"/>
+      </field>
+    </record>
+    <record name="riff_strf_vids" c:type="_gst_riff_strf_vids">
+      <field name="size" writable="1">
+        <type name="uint32" c:type="guint32"/>
+      </field>
+      <field name="width" writable="1">
+        <type name="uint32" c:type="guint32"/>
+      </field>
+      <field name="height" writable="1">
+        <type name="uint32" c:type="guint32"/>
+      </field>
+      <field name="planes" writable="1">
+        <type name="uint16" c:type="guint16"/>
+      </field>
+      <field name="bit_cnt" writable="1">
+        <type name="uint16" c:type="guint16"/>
+      </field>
+      <field name="compression" writable="1">
+        <type name="uint32" c:type="guint32"/>
+      </field>
+      <field name="image_size" writable="1">
+        <type name="uint32" c:type="guint32"/>
+      </field>
+      <field name="xpels_meter" writable="1">
+        <type name="uint32" c:type="guint32"/>
+      </field>
+      <field name="ypels_meter" writable="1">
+        <type name="uint32" c:type="guint32"/>
+      </field>
+      <field name="num_colors" writable="1">
+        <type name="uint32" c:type="guint32"/>
+      </field>
+      <field name="imp_colors" writable="1">
+        <type name="uint32" c:type="guint32"/>
+      </field>
+    </record>
+    <record name="riff_strh" c:type="_gst_riff_strh">
+      <field name="type" writable="1">
+        <type name="uint32" c:type="guint32"/>
+      </field>
+      <field name="fcc_handler" writable="1">
+        <type name="uint32" c:type="guint32"/>
+      </field>
+      <field name="flags" writable="1">
+        <type name="uint32" c:type="guint32"/>
+      </field>
+      <field name="priority" writable="1">
+        <type name="uint32" c:type="guint32"/>
+      </field>
+      <field name="init_frames" writable="1">
+        <type name="uint32" c:type="guint32"/>
+      </field>
+      <field name="scale" writable="1">
+        <type name="uint32" c:type="guint32"/>
+      </field>
+      <field name="rate" writable="1">
+        <type name="uint32" c:type="guint32"/>
+      </field>
+      <field name="start" writable="1">
+        <type name="uint32" c:type="guint32"/>
+      </field>
+      <field name="length" writable="1">
+        <type name="uint32" c:type="guint32"/>
+      </field>
+      <field name="bufsize" writable="1">
+        <type name="uint32" c:type="guint32"/>
+      </field>
+      <field name="quality" writable="1">
+        <type name="uint32" c:type="guint32"/>
+      </field>
+      <field name="samplesize" writable="1">
+        <type name="uint32" c:type="guint32"/>
+      </field>
+    </record>
+  </namespace>
+</repository>
diff --git a/unmaintained/gstreamer/riff/ffi/ffi.factor b/unmaintained/gstreamer/riff/ffi/ffi.factor
new file mode 100644 (file)
index 0000000..ac31e7d
--- /dev/null
@@ -0,0 +1,27 @@
+! Copyright (C) 2010 Anton Gorenko.
+! See http://factorcode.org/license.txt for BSD license.
+USING: alien alien.syntax alien.libraries combinators kernel
+system
+gobject-introspection glib.ffi gmodule.ffi gobject.ffi ;
+EXCLUDE: alien.c-types => pointer ;
+IN: gstreamer.ffi
+
+<<
+"gstreamer" {
+    { [ os winnt? ] [ drop ] }
+    { [ os macosx? ] [ drop ] }
+    { [ os unix? ] [ "libgstreamer-0.10.so" cdecl add-library ] }
+} cond
+>>
+
+TYPEDEF: gpointer GstClockID
+TYPEDEF: guint64 GstClockTime
+TYPEDEF: gint64 GstClockTimeDiff
+
+! types from libxml2
+TYPEDEF: void* xmlNodePtr
+TYPEDEF: void* xmlDocPtr
+TYPEDEF: void* xmlNsPtr
+
+GIR: vocab:gstreamer/Gst-0.10.gir
+
diff --git a/unmaintained/gstreamer/riff/riff.factor b/unmaintained/gstreamer/riff/riff.factor
new file mode 100644 (file)
index 0000000..174fbc6
--- /dev/null
@@ -0,0 +1,5 @@
+! Copyright (C) 2010 Anton Gorenko.
+! See http://factorcode.org/license.txt for BSD license.
+USING: gstreamer.ffi ;
+IN: gstreamer
+
diff --git a/unmaintained/gstreamer/rtp/GstRtp-0.10.gir b/unmaintained/gstreamer/rtp/GstRtp-0.10.gir
new file mode 100644 (file)
index 0000000..e720150
--- /dev/null
@@ -0,0 +1,2550 @@
+<?xml version="1.0"?>
+<!-- This file was automatically generated from C sources - DO NOT EDIT!
+To affect the contents of this file, edit the original C definitions,
+and/or use gtk-doc annotations.  -->
+<repository version="1.0"
+            xmlns="http://www.gtk.org/introspection/core/1.0"
+            xmlns:c="http://www.gtk.org/introspection/c/1.0"
+            xmlns:glib="http://www.gtk.org/introspection/glib/1.0">
+  <include name="GLib" version="2.0"/>
+  <include name="GModule" version="2.0"/>
+  <include name="GObject" version="2.0"/>
+  <include name="Gst" version="0.10"/>
+  <include name="GstBase" version="0.10"/>
+  <include name="libxml2" version="2.0"/>
+  <package name="gstreamer-0.10"/>
+  <package name="gstreamer-base-0.10"/>
+  <c:include name="gst/rtp/gstbasertpaudiopayload.h"/>
+  <c:include name="gst/rtp/gstbasertpdepayload.h"/>
+  <c:include name="gst/rtp/gstbasertppayload.h"/>
+  <c:include name="gst/rtp/gstrtcpbuffer.h"/>
+  <c:include name="gst/rtp/gstrtpbuffer.h"/>
+  <c:include name="gst/rtp/gstrtppayloads.h"/>
+  <namespace name="GstRtp"
+             version="0.10"
+             shared-library="libgstrtp-0.10.so.0"
+             c:prefix="Gst">
+    <class name="BaseRTPAudioPayload"
+           c:type="GstBaseRTPAudioPayload"
+           parent="BaseRTPPayload"
+           glib:type-name="GstBaseRTPAudioPayload"
+           glib:get-type="gst_base_rtp_audio_payload_get_type"
+           glib:type-struct="BaseRTPAudioPayloadClass">
+      <method name="set_frame_based"
+              c:identifier="gst_base_rtp_audio_payload_set_frame_based"
+              doc="Tells #GstBaseRTPAudioPayload that the child element is for a frame based
+audio codec">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </method>
+      <method name="set_frame_options"
+              c:identifier="gst_base_rtp_audio_payload_set_frame_options"
+              doc="Sets the options for frame based audio codecs.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="frame_duration" transfer-ownership="none">
+            <type name="int" c:type="gint"/>
+          </parameter>
+          <parameter name="frame_size" transfer-ownership="none">
+            <type name="int" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_sample_based"
+              c:identifier="gst_base_rtp_audio_payload_set_sample_based"
+              doc="Tells #GstBaseRTPAudioPayload that the child element is for a sample based
+audio codec">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </method>
+      <method name="set_sample_options"
+              c:identifier="gst_base_rtp_audio_payload_set_sample_options"
+              doc="Sets the options for sample based audio codecs.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="sample_size" transfer-ownership="none">
+            <type name="int" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_samplebits_options"
+              c:identifier="gst_base_rtp_audio_payload_set_samplebits_options"
+              doc="Sets the options for sample based audio codecs."
+              version="0.10.18">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="sample_size" transfer-ownership="none">
+            <type name="int" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_adapter"
+              c:identifier="gst_base_rtp_audio_payload_get_adapter"
+              doc="Gets the internal adapter used by the depayloader."
+              version="0.10.13">
+        <return-value transfer-ownership="full">
+          <type name="GstBase.Adapter" c:type="GstAdapter*"/>
+        </return-value>
+      </method>
+      <method name="push"
+              c:identifier="gst_base_rtp_audio_payload_push"
+              doc="Create an RTP buffer and store @payload_len bytes of @data as the
+payload. Set the timestamp on the new buffer to @timestamp before pushing
+the buffer downstream."
+              version="0.10.13">
+        <return-value transfer-ownership="full">
+          <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
+        </return-value>
+        <parameters>
+          <parameter name="data" transfer-ownership="none">
+            <array c:type="guint8*">
+              <type name="uint8"/>
+            </array>
+          </parameter>
+          <parameter name="payload_len" transfer-ownership="none">
+            <type name="uint" c:type="guint"/>
+          </parameter>
+          <parameter name="timestamp" transfer-ownership="none">
+            <type name="Gst.ClockTime" c:type="GstClockTime"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="flush"
+              c:identifier="gst_base_rtp_audio_payload_flush"
+              doc="Create an RTP buffer and store @payload_len bytes of the adapter as the
+payload. Set the timestamp on the new buffer to @timestamp before pushing
+the buffer downstream.
+If @payload_len is -1, all pending bytes will be flushed. If @timestamp is
+-1, the timestamp will be calculated automatically."
+              version="0.10.25">
+        <return-value transfer-ownership="full">
+          <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
+        </return-value>
+        <parameters>
+          <parameter name="payload_len" transfer-ownership="none">
+            <type name="uint" c:type="guint"/>
+          </parameter>
+          <parameter name="timestamp" transfer-ownership="none">
+            <type name="Gst.ClockTime" c:type="GstClockTime"/>
+          </parameter>
+        </parameters>
+      </method>
+      <property name="buffer-list" writable="1">
+        <type name="boolean" c:type="gboolean"/>
+      </property>
+      <field name="payload">
+        <type name="BaseRTPPayload" c:type="GstBaseRTPPayload"/>
+      </field>
+      <field name="priv">
+        <type name="BaseRTPAudioPayloadPrivate"
+              c:type="GstBaseRTPAudioPayloadPrivate*"/>
+      </field>
+      <field name="base_ts">
+        <type name="Gst.ClockTime" c:type="GstClockTime"/>
+      </field>
+      <field name="frame_size">
+        <type name="int" c:type="gint"/>
+      </field>
+      <field name="frame_duration">
+        <type name="int" c:type="gint"/>
+      </field>
+      <field name="sample_size">
+        <type name="int" c:type="gint"/>
+      </field>
+      <field name="_gst_reserved">
+        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+          <type name="any"/>
+        </array>
+      </field>
+    </class>
+    <record name="BaseRTPAudioPayloadClass"
+            c:type="GstBaseRTPAudioPayloadClass"
+            glib:is-gtype-struct-for="BaseRTPAudioPayload">
+      <field name="parent_class">
+        <type name="BaseRTPPayloadClass" c:type="GstBaseRTPPayloadClass"/>
+      </field>
+      <field name="_gst_reserved">
+        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+          <type name="any"/>
+        </array>
+      </field>
+    </record>
+    <record name="BaseRTPAudioPayloadPrivate"
+            c:type="GstBaseRTPAudioPayloadPrivate">
+    </record>
+    <class name="BaseRTPDepayload"
+           c:type="GstBaseRTPDepayload"
+           parent="Gst.Element"
+           glib:type-name="GstBaseRTPDepayload"
+           glib:get-type="gst_base_rtp_depayload_get_type"
+           glib:type-struct="BaseRTPDepayloadClass">
+      <virtual-method name="set_caps">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="caps" transfer-ownership="none">
+            <type name="Gst.Caps" c:type="GstCaps*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="add_to_queue">
+        <return-value transfer-ownership="full">
+          <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
+        </return-value>
+        <parameters>
+          <parameter name="in" transfer-ownership="none">
+            <type name="Gst.Buffer" c:type="GstBuffer*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="process">
+        <return-value transfer-ownership="full">
+          <type name="Gst.Buffer" c:type="GstBuffer*"/>
+        </return-value>
+        <parameters>
+          <parameter name="in" transfer-ownership="none">
+            <type name="Gst.Buffer" c:type="GstBuffer*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="set_gst_timestamp">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="timestamp" transfer-ownership="none">
+            <type name="uint32" c:type="guint32"/>
+          </parameter>
+          <parameter name="buf" transfer-ownership="none">
+            <type name="Gst.Buffer" c:type="GstBuffer*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="packet_lost">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="event" transfer-ownership="none">
+            <type name="Gst.Event" c:type="GstEvent*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <method name="push"
+              c:identifier="gst_base_rtp_depayload_push"
+              doc="Push @out_buf to the peer of @filter. This function takes ownership of
+Unlike gst_base_rtp_depayload_push_ts(), this function will not apply
+any timestamp on the outgoing buffer. Subclasses should therefore timestamp
+outgoing buffers themselves.">
+        <return-value transfer-ownership="full">
+          <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
+        </return-value>
+        <parameters>
+          <parameter name="out_buf" transfer-ownership="none">
+            <type name="Gst.Buffer" c:type="GstBuffer*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="push_ts"
+              c:identifier="gst_base_rtp_depayload_push_ts"
+              doc="Push @out_buf to the peer of @filter. This function takes ownership of
+Unlike gst_base_rtp_depayload_push(), this function will by default apply
+the last incomming timestamp on the outgoing buffer when it didn&apos;t have a
+timestamp already. The set_get_timestamp vmethod can be overwritten to change
+this behaviour (and take, for example, @timestamp into account).">
+        <return-value transfer-ownership="full">
+          <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
+        </return-value>
+        <parameters>
+          <parameter name="timestamp" transfer-ownership="none">
+            <type name="uint32" c:type="guint32"/>
+          </parameter>
+          <parameter name="out_buf" transfer-ownership="none">
+            <type name="Gst.Buffer" c:type="GstBuffer*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <property name="queue-delay" writable="1">
+        <type name="uint" c:type="guint"/>
+      </property>
+      <field name="parent">
+        <type name="Gst.Element" c:type="GstElement"/>
+      </field>
+      <field name="sinkpad">
+        <type name="Gst.Pad" c:type="GstPad*"/>
+      </field>
+      <field name="srcpad">
+        <type name="Gst.Pad" c:type="GstPad*"/>
+      </field>
+      <field name="queuelock">
+        <type name="GLib.StaticRecMutex" c:type="GStaticRecMutex"/>
+      </field>
+      <field name="thread_running">
+        <type name="boolean" c:type="gboolean"/>
+      </field>
+      <field name="thread">
+        <type name="GLib.Thread" c:type="GThread*"/>
+      </field>
+      <field name="clock_rate">
+        <type name="uint" c:type="guint"/>
+      </field>
+      <field name="queue_delay">
+        <type name="uint" c:type="guint"/>
+      </field>
+      <field name="queue">
+        <type name="GLib.Queue" c:type="GQueue*"/>
+      </field>
+      <field name="segment">
+        <type name="Gst.Segment" c:type="GstSegment"/>
+      </field>
+      <field name="need_newsegment">
+        <type name="boolean" c:type="gboolean"/>
+      </field>
+      <field name="priv">
+        <type name="BaseRTPDepayloadPrivate"
+              c:type="GstBaseRTPDepayloadPrivate*"/>
+      </field>
+      <field name="_gst_reserved">
+        <array zero-terminated="0" c:type="gpointer" fixed-size="3">
+          <type name="any"/>
+        </array>
+      </field>
+    </class>
+    <record name="BaseRTPDepayloadClass"
+            c:type="GstBaseRTPDepayloadClass"
+            glib:is-gtype-struct-for="BaseRTPDepayload">
+      <field name="parent_class">
+        <type name="Gst.ElementClass" c:type="GstElementClass"/>
+      </field>
+      <field name="set_caps">
+        <callback name="set_caps" c:type="set_caps">
+          <return-value transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="filter" transfer-ownership="none">
+              <type name="BaseRTPDepayload" c:type="GstBaseRTPDepayload*"/>
+            </parameter>
+            <parameter name="caps" transfer-ownership="none">
+              <type name="Gst.Caps" c:type="GstCaps*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="add_to_queue">
+        <callback name="add_to_queue" c:type="add_to_queue">
+          <return-value transfer-ownership="full">
+            <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
+          </return-value>
+          <parameters>
+            <parameter name="filter" transfer-ownership="none">
+              <type name="BaseRTPDepayload" c:type="GstBaseRTPDepayload*"/>
+            </parameter>
+            <parameter name="in" transfer-ownership="none">
+              <type name="Gst.Buffer" c:type="GstBuffer*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="process">
+        <callback name="process" c:type="process">
+          <return-value transfer-ownership="full">
+            <type name="Gst.Buffer" c:type="GstBuffer*"/>
+          </return-value>
+          <parameters>
+            <parameter name="base" transfer-ownership="none">
+              <type name="BaseRTPDepayload" c:type="GstBaseRTPDepayload*"/>
+            </parameter>
+            <parameter name="in" transfer-ownership="none">
+              <type name="Gst.Buffer" c:type="GstBuffer*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="set_gst_timestamp">
+        <callback name="set_gst_timestamp" c:type="set_gst_timestamp">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="filter" transfer-ownership="none">
+              <type name="BaseRTPDepayload" c:type="GstBaseRTPDepayload*"/>
+            </parameter>
+            <parameter name="timestamp" transfer-ownership="none">
+              <type name="uint32" c:type="guint32"/>
+            </parameter>
+            <parameter name="buf" transfer-ownership="none">
+              <type name="Gst.Buffer" c:type="GstBuffer*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="packet_lost">
+        <callback name="packet_lost" c:type="packet_lost">
+          <return-value transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="filter" transfer-ownership="none">
+              <type name="BaseRTPDepayload" c:type="GstBaseRTPDepayload*"/>
+            </parameter>
+            <parameter name="event" transfer-ownership="none">
+              <type name="Gst.Event" c:type="GstEvent*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="_gst_reserved">
+        <array zero-terminated="0" c:type="gpointer" fixed-size="3">
+          <type name="any"/>
+        </array>
+      </field>
+    </record>
+    <record name="BaseRTPDepayloadPrivate" c:type="GstBaseRTPDepayloadPrivate">
+    </record>
+    <class name="BaseRTPPayload"
+           c:type="GstBaseRTPPayload"
+           parent="Gst.Element"
+           abstract="1"
+           glib:type-name="GstBaseRTPPayload"
+           glib:get-type="gst_basertppayload_get_type"
+           glib:type-struct="BaseRTPPayloadClass">
+      <virtual-method name="set_caps">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="caps" transfer-ownership="none">
+            <type name="Gst.Caps" c:type="GstCaps*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="handle_buffer">
+        <return-value transfer-ownership="full">
+          <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
+        </return-value>
+        <parameters>
+          <parameter name="buffer" transfer-ownership="none">
+            <type name="Gst.Buffer" c:type="GstBuffer*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="get_caps">
+        <return-value transfer-ownership="full">
+          <type name="Gst.Caps" c:type="GstCaps*"/>
+        </return-value>
+        <parameters>
+          <parameter name="pad" transfer-ownership="none">
+            <type name="Gst.Pad" c:type="GstPad*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <method name="set_options"
+              c:identifier="gst_basertppayload_set_options"
+              doc="Set the rtp options of the payloader. These options will be set in the caps
+of the payloader. Subclasses must call this method before calling
+gst_basertppayload_push() or gst_basertppayload_set_outcaps().">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="media" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="dynamic" transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </parameter>
+          <parameter name="encoding_name" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="clock_rate" transfer-ownership="none">
+            <type name="uint32" c:type="guint32"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_outcaps"
+              c:identifier="gst_basertppayload_set_outcaps"
+              doc="Configure the output caps with the optional parameters.
+Variable arguments should be in the form field name, field type
+(as a GType), value(s).  The last variable argument should be NULL.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="fieldname" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter transfer-ownership="none">
+            <varargs>
+            </varargs>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="is_filled"
+              c:identifier="gst_basertppayload_is_filled"
+              doc="Check if the packet with @size and @duration would exceed the configured
+maximum size.
+configured MTU or max_ptime.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="size" transfer-ownership="none">
+            <type name="uint" c:type="guint"/>
+          </parameter>
+          <parameter name="duration" transfer-ownership="none">
+            <type name="Gst.ClockTime" c:type="GstClockTime"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="push"
+              c:identifier="gst_basertppayload_push"
+              doc="Push @buffer to the peer element of the payloader. The SSRC, payload type,
+seqnum and timestamp of the RTP buffer will be updated first.
+This function takes ownership of @buffer.">
+        <return-value transfer-ownership="full">
+          <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
+        </return-value>
+        <parameters>
+          <parameter name="buffer" transfer-ownership="none">
+            <type name="Gst.Buffer" c:type="GstBuffer*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="push_list"
+              c:identifier="gst_basertppayload_push_list"
+              doc="Push @list to the peer element of the payloader. The SSRC, payload type,
+seqnum and timestamp of the RTP buffer will be updated first.
+This function takes ownership of @list."
+              version="0.10.24">
+        <return-value transfer-ownership="full">
+          <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
+        </return-value>
+        <parameters>
+          <parameter name="list" transfer-ownership="none">
+            <type name="Gst.BufferList" c:type="GstBufferList*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <property name="max-ptime" writable="1">
+        <type name="int64" c:type="gint64"/>
+      </property>
+      <property name="min-ptime" writable="1">
+        <type name="int64" c:type="gint64"/>
+      </property>
+      <property name="mtu" writable="1">
+        <type name="uint" c:type="guint"/>
+      </property>
+      <property name="perfect-rtptime" writable="1">
+        <type name="boolean" c:type="gboolean"/>
+      </property>
+      <property name="pt" writable="1">
+        <type name="uint" c:type="guint"/>
+      </property>
+      <property name="ptime-multiple" writable="1">
+        <type name="int64" c:type="gint64"/>
+      </property>
+      <property name="seqnum">
+        <type name="uint" c:type="guint"/>
+      </property>
+      <property name="seqnum-offset" writable="1">
+        <type name="int" c:type="gint"/>
+      </property>
+      <property name="ssrc" writable="1">
+        <type name="uint" c:type="guint"/>
+      </property>
+      <property name="timestamp">
+        <type name="uint" c:type="guint"/>
+      </property>
+      <property name="timestamp-offset" writable="1">
+        <type name="uint" c:type="guint"/>
+      </property>
+      <field name="element">
+        <type name="Gst.Element" c:type="GstElement"/>
+      </field>
+      <field name="sinkpad">
+        <type name="Gst.Pad" c:type="GstPad*"/>
+      </field>
+      <field name="srcpad">
+        <type name="Gst.Pad" c:type="GstPad*"/>
+      </field>
+      <field name="seq_rand">
+        <type name="GLib.Rand" c:type="GRand*"/>
+      </field>
+      <field name="ssrc_rand">
+        <type name="GLib.Rand" c:type="GRand*"/>
+      </field>
+      <field name="ts_rand">
+        <type name="GLib.Rand" c:type="GRand*"/>
+      </field>
+      <field name="ts_base">
+        <type name="uint32" c:type="guint32"/>
+      </field>
+      <field name="seqnum_base">
+        <type name="uint16" c:type="guint16"/>
+      </field>
+      <field name="media">
+        <type name="utf8" c:type="gchar*"/>
+      </field>
+      <field name="encoding_name">
+        <type name="utf8" c:type="gchar*"/>
+      </field>
+      <field name="dynamic">
+        <type name="boolean" c:type="gboolean"/>
+      </field>
+      <field name="clock_rate">
+        <type name="uint32" c:type="guint32"/>
+      </field>
+      <field name="ts_offset">
+        <type name="int32" c:type="gint32"/>
+      </field>
+      <field name="timestamp">
+        <type name="uint32" c:type="guint32"/>
+      </field>
+      <field name="seqnum_offset">
+        <type name="int16" c:type="gint16"/>
+      </field>
+      <field name="seqnum">
+        <type name="uint16" c:type="guint16"/>
+      </field>
+      <field name="max_ptime">
+        <type name="int64" c:type="gint64"/>
+      </field>
+      <field name="pt">
+        <type name="uint" c:type="guint"/>
+      </field>
+      <field name="ssrc">
+        <type name="uint" c:type="guint"/>
+      </field>
+      <field name="current_ssrc">
+        <type name="uint" c:type="guint"/>
+      </field>
+      <field name="mtu">
+        <type name="uint" c:type="guint"/>
+      </field>
+      <field name="segment">
+        <type name="Gst.Segment" c:type="GstSegment"/>
+      </field>
+      <field name="min_ptime">
+        <type name="uint64" c:type="guint64"/>
+      </field>
+      <field name="priv">
+        <type name="BaseRTPPayloadPrivate" c:type="GstBaseRTPPayloadPrivate*"/>
+      </field>
+      <union name="abidata" c:type="abidata">
+        <record name="ABI" c:type="ABI">
+          <field name="ptime" writable="1">
+            <type name="uint64" c:type="guint64"/>
+          </field>
+          <field name="ptime_multiple" writable="1">
+            <type name="uint64" c:type="guint64"/>
+          </field>
+        </record>
+        <field name="_gst_reserved" writable="1">
+          <array zero-terminated="0" c:type="gpointer" fixed-size="3">
+            <type name="any"/>
+          </array>
+        </field>
+      </union>
+    </class>
+    <record name="BaseRTPPayloadClass"
+            c:type="GstBaseRTPPayloadClass"
+            glib:is-gtype-struct-for="BaseRTPPayload">
+      <field name="parent_class">
+        <type name="Gst.ElementClass" c:type="GstElementClass"/>
+      </field>
+      <field name="set_caps">
+        <callback name="set_caps" c:type="set_caps">
+          <return-value transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="payload" transfer-ownership="none">
+              <type name="BaseRTPPayload" c:type="GstBaseRTPPayload*"/>
+            </parameter>
+            <parameter name="caps" transfer-ownership="none">
+              <type name="Gst.Caps" c:type="GstCaps*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="handle_buffer">
+        <callback name="handle_buffer" c:type="handle_buffer">
+          <return-value transfer-ownership="full">
+            <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
+          </return-value>
+          <parameters>
+            <parameter name="payload" transfer-ownership="none">
+              <type name="BaseRTPPayload" c:type="GstBaseRTPPayload*"/>
+            </parameter>
+            <parameter name="buffer" transfer-ownership="none">
+              <type name="Gst.Buffer" c:type="GstBuffer*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="handle_event">
+        <callback name="handle_event" c:type="handle_event">
+          <return-value transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="pad" transfer-ownership="none">
+              <type name="Gst.Pad" c:type="GstPad*"/>
+            </parameter>
+            <parameter name="event" transfer-ownership="none">
+              <type name="Gst.Event" c:type="GstEvent*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="get_caps">
+        <callback name="get_caps" c:type="get_caps">
+          <return-value transfer-ownership="full">
+            <type name="Gst.Caps" c:type="GstCaps*"/>
+          </return-value>
+          <parameters>
+            <parameter name="payload" transfer-ownership="none">
+              <type name="BaseRTPPayload" c:type="GstBaseRTPPayload*"/>
+            </parameter>
+            <parameter name="pad" transfer-ownership="none">
+              <type name="Gst.Pad" c:type="GstPad*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="_gst_reserved">
+        <array zero-terminated="0" c:type="gpointer" fixed-size="2">
+          <type name="any"/>
+        </array>
+      </field>
+    </record>
+    <record name="BaseRTPPayloadPrivate" c:type="GstBaseRTPPayloadPrivate">
+    </record>
+    <constant name="PAYLOAD_1016_STRING" value="1">
+      <type name="utf8"/>
+    </constant>
+    <constant name="PAYLOAD_CELLB_STRING" value="25">
+      <type name="utf8"/>
+    </constant>
+    <constant name="PAYLOAD_CN_STRING" value="13">
+      <type name="utf8"/>
+    </constant>
+    <constant name="PAYLOAD_DVI4_11025_STRING" value="16">
+      <type name="utf8"/>
+    </constant>
+    <constant name="PAYLOAD_DVI4_16000_STRING" value="6">
+      <type name="utf8"/>
+    </constant>
+    <constant name="PAYLOAD_DVI4_22050_STRING" value="17">
+      <type name="utf8"/>
+    </constant>
+    <constant name="PAYLOAD_DVI4_8000_STRING" value="5">
+      <type name="utf8"/>
+    </constant>
+    <constant name="PAYLOAD_DYNAMIC_STRING" value="[96, 127]">
+      <type name="utf8"/>
+    </constant>
+    <constant name="PAYLOAD_G721_STRING" value="2">
+      <type name="utf8"/>
+    </constant>
+    <constant name="PAYLOAD_G722_STRING" value="9">
+      <type name="utf8"/>
+    </constant>
+    <constant name="PAYLOAD_G723_53" value="17">
+      <type name="int"/>
+    </constant>
+    <constant name="PAYLOAD_G723_53_STRING" value="17">
+      <type name="utf8"/>
+    </constant>
+    <constant name="PAYLOAD_G723_63" value="16">
+      <type name="int"/>
+    </constant>
+    <constant name="PAYLOAD_G723_63_STRING" value="16">
+      <type name="utf8"/>
+    </constant>
+    <constant name="PAYLOAD_G723_STRING" value="4">
+      <type name="utf8"/>
+    </constant>
+    <constant name="PAYLOAD_G728_STRING" value="15">
+      <type name="utf8"/>
+    </constant>
+    <constant name="PAYLOAD_G729_STRING" value="18">
+      <type name="utf8"/>
+    </constant>
+    <constant name="PAYLOAD_GSM_STRING" value="3">
+      <type name="utf8"/>
+    </constant>
+    <constant name="PAYLOAD_H261_STRING" value="31">
+      <type name="utf8"/>
+    </constant>
+    <constant name="PAYLOAD_H263_STRING" value="34">
+      <type name="utf8"/>
+    </constant>
+    <constant name="PAYLOAD_JPEG_STRING" value="26">
+      <type name="utf8"/>
+    </constant>
+    <constant name="PAYLOAD_L16_MONO_STRING" value="11">
+      <type name="utf8"/>
+    </constant>
+    <constant name="PAYLOAD_L16_STEREO_STRING" value="10">
+      <type name="utf8"/>
+    </constant>
+    <constant name="PAYLOAD_LPC_STRING" value="7">
+      <type name="utf8"/>
+    </constant>
+    <constant name="PAYLOAD_MP2T_STRING" value="33">
+      <type name="utf8"/>
+    </constant>
+    <constant name="PAYLOAD_MPA_STRING" value="14">
+      <type name="utf8"/>
+    </constant>
+    <constant name="PAYLOAD_MPV_STRING" value="32">
+      <type name="utf8"/>
+    </constant>
+    <constant name="PAYLOAD_NV_STRING" value="28">
+      <type name="utf8"/>
+    </constant>
+    <constant name="PAYLOAD_PCMA_STRING" value="8">
+      <type name="utf8"/>
+    </constant>
+    <constant name="PAYLOAD_PCMU_STRING" value="0">
+      <type name="utf8"/>
+    </constant>
+    <constant name="PAYLOAD_QCELP_STRING" value="12">
+      <type name="utf8"/>
+    </constant>
+    <constant name="PAYLOAD_TS41" value="19">
+      <type name="int"/>
+    </constant>
+    <constant name="PAYLOAD_TS41_STRING" value="19">
+      <type name="utf8"/>
+    </constant>
+    <constant name="PAYLOAD_TS48" value="18">
+      <type name="int"/>
+    </constant>
+    <constant name="PAYLOAD_TS48_STRING" value="18">
+      <type name="utf8"/>
+    </constant>
+    <enumeration name="RTCPFBType"
+                 doc="Different types of feedback messages."
+                 version="0.10.23"
+                 c:type="GstRTCPFBType">
+      <member name="fb_type_invalid"
+              value="0"
+              c:identifier="GST_RTCP_FB_TYPE_INVALID"/>
+      <member name="rtpfb_type_nack"
+              value="1"
+              c:identifier="GST_RTCP_RTPFB_TYPE_NACK"/>
+      <member name="psfb_type_pli"
+              value="1"
+              c:identifier="GST_RTCP_PSFB_TYPE_PLI"/>
+      <member name="psfb_type_sli"
+              value="2"
+              c:identifier="GST_RTCP_PSFB_TYPE_SLI"/>
+      <member name="psfb_type_rpsi"
+              value="3"
+              c:identifier="GST_RTCP_PSFB_TYPE_RPSI"/>
+      <member name="psfb_type_afb"
+              value="15"
+              c:identifier="GST_RTCP_PSFB_TYPE_AFB"/>
+    </enumeration>
+    <record name="RTCPPacket"
+            c:type="GstRTCPPacket"
+            doc="Data structure that points to a packet at @offset in @buffer.
+The size of the structure is made public to allow stack allocations.">
+      <field name="buffer" writable="1">
+        <type name="Gst.Buffer" c:type="GstBuffer*"/>
+      </field>
+      <field name="offset" writable="1">
+        <type name="uint" c:type="guint"/>
+      </field>
+      <field name="padding" writable="1">
+        <type name="boolean" c:type="gboolean"/>
+      </field>
+      <field name="count" writable="1">
+        <type name="uint8" c:type="guint8"/>
+      </field>
+      <field name="type" writable="1">
+        <type name="RTCPType" c:type="GstRTCPType"/>
+      </field>
+      <field name="length" writable="1">
+        <type name="uint16" c:type="guint16"/>
+      </field>
+      <field name="item_offset" writable="1">
+        <type name="uint" c:type="guint"/>
+      </field>
+      <field name="item_count" writable="1">
+        <type name="uint" c:type="guint"/>
+      </field>
+      <field name="entry_offset" writable="1">
+        <type name="uint" c:type="guint"/>
+      </field>
+      <method name="move_to_next"
+              c:identifier="gst_rtcp_packet_move_to_next"
+              doc="Move the packet pointer @packet to the next packet in the payload.
+Use gst_rtcp_buffer_get_first_packet() to initialize @packet.
+function.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+      </method>
+      <method name="remove"
+              c:identifier="gst_rtcp_packet_remove"
+              doc="Removes the packet pointed to by @packet and moves pointer to the next one
+function.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+      </method>
+      <method name="get_padding"
+              c:identifier="gst_rtcp_packet_get_padding"
+              doc="Get the packet padding of the packet pointed to by @packet.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+      </method>
+      <method name="get_count"
+              c:identifier="gst_rtcp_packet_get_count"
+              doc="Get the count field in @packet.
+valid packet.">
+        <return-value transfer-ownership="none">
+          <type name="uint8" c:type="guint8"/>
+        </return-value>
+      </method>
+      <method name="get_length"
+              c:identifier="gst_rtcp_packet_get_length"
+              doc="Get the length field of @packet. This is the length of the packet in
+32-bit words minus one.">
+        <return-value transfer-ownership="none">
+          <type name="uint16" c:type="guint16"/>
+        </return-value>
+      </method>
+      <method name="sr_get_sender_info"
+              c:identifier="gst_rtcp_packet_sr_get_sender_info"
+              doc="Parse the SR sender info and store the values.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="ssrc" direction="out" transfer-ownership="full">
+            <type name="uint32" c:type="guint32*"/>
+          </parameter>
+          <parameter name="ntptime" direction="out" transfer-ownership="full">
+            <type name="uint64" c:type="guint64*"/>
+          </parameter>
+          <parameter name="rtptime" direction="out" transfer-ownership="full">
+            <type name="uint32" c:type="guint32*"/>
+          </parameter>
+          <parameter name="packet_count"
+                     direction="out"
+                     transfer-ownership="full">
+            <type name="uint32" c:type="guint32*"/>
+          </parameter>
+          <parameter name="octet_count"
+                     direction="out"
+                     transfer-ownership="full">
+            <type name="uint32" c:type="guint32*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="sr_set_sender_info"
+              c:identifier="gst_rtcp_packet_sr_set_sender_info"
+              doc="Set the given values in the SR packet @packet.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="ssrc" transfer-ownership="none">
+            <type name="uint32" c:type="guint32"/>
+          </parameter>
+          <parameter name="ntptime" transfer-ownership="none">
+            <type name="uint64" c:type="guint64"/>
+          </parameter>
+          <parameter name="rtptime" transfer-ownership="none">
+            <type name="uint32" c:type="guint32"/>
+          </parameter>
+          <parameter name="packet_count" transfer-ownership="none">
+            <type name="uint32" c:type="guint32"/>
+          </parameter>
+          <parameter name="octet_count" transfer-ownership="none">
+            <type name="uint32" c:type="guint32"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="rr_get_ssrc"
+              c:identifier="gst_rtcp_packet_rr_get_ssrc"
+              doc="Get the ssrc field of the RR @packet.">
+        <return-value transfer-ownership="none">
+          <type name="uint32" c:type="guint32"/>
+        </return-value>
+      </method>
+      <method name="rr_set_ssrc"
+              c:identifier="gst_rtcp_packet_rr_set_ssrc"
+              doc="Set the ssrc field of the RR @packet.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="ssrc" transfer-ownership="none">
+            <type name="uint32" c:type="guint32"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_rb_count"
+              c:identifier="gst_rtcp_packet_get_rb_count"
+              doc="Get the number of report blocks in @packet.">
+        <return-value transfer-ownership="none">
+          <type name="uint" c:type="guint"/>
+        </return-value>
+      </method>
+      <method name="get_rb"
+              c:identifier="gst_rtcp_packet_get_rb"
+              doc="Parse the values of the @nth report block in @packet and store the result in
+the values.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="nth" transfer-ownership="none">
+            <type name="uint" c:type="guint"/>
+          </parameter>
+          <parameter name="ssrc" direction="out" transfer-ownership="full">
+            <type name="uint32" c:type="guint32*"/>
+          </parameter>
+          <parameter name="fractionlost" transfer-ownership="none">
+            <array c:type="guint8*">
+              <type name="uint8"/>
+            </array>
+          </parameter>
+          <parameter name="packetslost"
+                     direction="out"
+                     transfer-ownership="full">
+            <type name="int32" c:type="gint32*"/>
+          </parameter>
+          <parameter name="exthighestseq"
+                     direction="out"
+                     transfer-ownership="full">
+            <type name="uint32" c:type="guint32*"/>
+          </parameter>
+          <parameter name="jitter" direction="out" transfer-ownership="full">
+            <type name="uint32" c:type="guint32*"/>
+          </parameter>
+          <parameter name="lsr" direction="out" transfer-ownership="full">
+            <type name="uint32" c:type="guint32*"/>
+          </parameter>
+          <parameter name="dlsr" direction="out" transfer-ownership="full">
+            <type name="uint32" c:type="guint32*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="add_rb"
+              c:identifier="gst_rtcp_packet_add_rb"
+              doc="Add a new report block to @packet with the given values.
+the max MTU is exceeded or the number of report blocks is greater than
+#GST_RTCP_MAX_RB_COUNT.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="ssrc" transfer-ownership="none">
+            <type name="uint32" c:type="guint32"/>
+          </parameter>
+          <parameter name="fractionlost" transfer-ownership="none">
+            <type name="uint8" c:type="guint8"/>
+          </parameter>
+          <parameter name="packetslost" transfer-ownership="none">
+            <type name="int32" c:type="gint32"/>
+          </parameter>
+          <parameter name="exthighestseq" transfer-ownership="none">
+            <type name="uint32" c:type="guint32"/>
+          </parameter>
+          <parameter name="jitter" transfer-ownership="none">
+            <type name="uint32" c:type="guint32"/>
+          </parameter>
+          <parameter name="lsr" transfer-ownership="none">
+            <type name="uint32" c:type="guint32"/>
+          </parameter>
+          <parameter name="dlsr" transfer-ownership="none">
+            <type name="uint32" c:type="guint32"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_rb"
+              c:identifier="gst_rtcp_packet_set_rb"
+              doc="Set the @nth new report block in @packet with the given values.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="nth" transfer-ownership="none">
+            <type name="uint" c:type="guint"/>
+          </parameter>
+          <parameter name="ssrc" transfer-ownership="none">
+            <type name="uint32" c:type="guint32"/>
+          </parameter>
+          <parameter name="fractionlost" transfer-ownership="none">
+            <type name="uint8" c:type="guint8"/>
+          </parameter>
+          <parameter name="packetslost" transfer-ownership="none">
+            <type name="int32" c:type="gint32"/>
+          </parameter>
+          <parameter name="exthighestseq" transfer-ownership="none">
+            <type name="uint32" c:type="guint32"/>
+          </parameter>
+          <parameter name="jitter" transfer-ownership="none">
+            <type name="uint32" c:type="guint32"/>
+          </parameter>
+          <parameter name="lsr" transfer-ownership="none">
+            <type name="uint32" c:type="guint32"/>
+          </parameter>
+          <parameter name="dlsr" transfer-ownership="none">
+            <type name="uint32" c:type="guint32"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="sdes_get_item_count"
+              c:identifier="gst_rtcp_packet_sdes_get_item_count"
+              doc="Get the number of items in the SDES packet @packet.">
+        <return-value transfer-ownership="none">
+          <type name="uint" c:type="guint"/>
+        </return-value>
+      </method>
+      <method name="sdes_first_item"
+              c:identifier="gst_rtcp_packet_sdes_first_item"
+              doc="Move to the first SDES item in @packet.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+      </method>
+      <method name="sdes_next_item"
+              c:identifier="gst_rtcp_packet_sdes_next_item"
+              doc="Move to the next SDES item in @packet.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+      </method>
+      <method name="sdes_get_ssrc"
+              c:identifier="gst_rtcp_packet_sdes_get_ssrc"
+              doc="Get the SSRC of the current SDES item.">
+        <return-value transfer-ownership="none">
+          <type name="uint32" c:type="guint32"/>
+        </return-value>
+      </method>
+      <method name="sdes_first_entry"
+              c:identifier="gst_rtcp_packet_sdes_first_entry"
+              doc="Move to the first SDES entry in the current item.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+      </method>
+      <method name="sdes_next_entry"
+              c:identifier="gst_rtcp_packet_sdes_next_entry"
+              doc="Move to the next SDES entry in the current item.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+      </method>
+      <method name="sdes_get_entry"
+              c:identifier="gst_rtcp_packet_sdes_get_entry"
+              doc="Get the data of the current SDES item entry. @type (when not NULL) will
+contain the type of the entry. @data (when not NULL) will point to @len
+bytes.
+When @type refers to a text item, @data will point to a UTF8 string. Note
+that this UTF8 string is NOT null-terminated. Use
+gst_rtcp_packet_sdes_copy_entry() to get a null-termined copy of the entry.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="type" transfer-ownership="none">
+            <type name="RTCPSDESType" c:type="GstRTCPSDESType*"/>
+          </parameter>
+          <parameter name="len" transfer-ownership="none">
+            <array c:type="guint8*">
+              <type name="uint8"/>
+            </array>
+          </parameter>
+          <parameter name="data" direction="out" transfer-ownership="full">
+            <type name="uint8" c:type="guint8**"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="sdes_copy_entry"
+              c:identifier="gst_rtcp_packet_sdes_copy_entry"
+              doc="This function is like gst_rtcp_packet_sdes_get_entry() but it returns a
+null-terminated copy of the data instead. use g_free() after usage.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="type" transfer-ownership="none">
+            <type name="RTCPSDESType" c:type="GstRTCPSDESType*"/>
+          </parameter>
+          <parameter name="len" transfer-ownership="none">
+            <array c:type="guint8*">
+              <type name="uint8"/>
+            </array>
+          </parameter>
+          <parameter name="data" direction="out" transfer-ownership="full">
+            <type name="uint8" c:type="guint8**"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="sdes_add_item"
+              c:identifier="gst_rtcp_packet_sdes_add_item"
+              doc="Add a new SDES item for @ssrc to @packet.
+items has been exceeded for the SDES packet or the MTU has been reached.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="ssrc" transfer-ownership="none">
+            <type name="uint32" c:type="guint32"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="sdes_add_entry"
+              c:identifier="gst_rtcp_packet_sdes_add_entry"
+              doc="Add a new SDES entry to the current item in @packet.
+reached.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="type" transfer-ownership="none">
+            <type name="RTCPSDESType" c:type="GstRTCPSDESType"/>
+          </parameter>
+          <parameter name="len" transfer-ownership="none">
+            <type name="uint8" c:type="guint8"/>
+          </parameter>
+          <parameter name="data" transfer-ownership="none">
+            <array c:type="guint8*">
+              <type name="uint8"/>
+            </array>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="bye_get_ssrc_count"
+              c:identifier="gst_rtcp_packet_bye_get_ssrc_count"
+              doc="Get the number of SSRC fields in @packet.">
+        <return-value transfer-ownership="none">
+          <type name="uint" c:type="guint"/>
+        </return-value>
+      </method>
+      <method name="bye_get_nth_ssrc"
+              c:identifier="gst_rtcp_packet_bye_get_nth_ssrc"
+              doc="Get the @nth SSRC of the BYE @packet.">
+        <return-value transfer-ownership="none">
+          <type name="uint32" c:type="guint32"/>
+        </return-value>
+        <parameters>
+          <parameter name="nth" transfer-ownership="none">
+            <type name="uint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="bye_add_ssrc"
+              c:identifier="gst_rtcp_packet_bye_add_ssrc"
+              doc="Add @ssrc to the BYE @packet.
+the max MTU is exceeded or the number of sources blocks is greater than
+#GST_RTCP_MAX_BYE_SSRC_COUNT.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="ssrc" transfer-ownership="none">
+            <type name="uint32" c:type="guint32"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="bye_add_ssrcs"
+              c:identifier="gst_rtcp_packet_bye_add_ssrcs"
+              doc="Adds @len SSRCs in @ssrc to BYE @packet.
+the max MTU is exceeded or the number of sources blocks is greater than
+#GST_RTCP_MAX_BYE_SSRC_COUNT.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="ssrc" direction="out" transfer-ownership="full">
+            <type name="uint32" c:type="guint32*"/>
+          </parameter>
+          <parameter name="len" transfer-ownership="none">
+            <type name="uint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="bye_get_reason_len"
+              c:identifier="gst_rtcp_packet_bye_get_reason_len"
+              doc="Get the length of the reason string.
+present.">
+        <return-value transfer-ownership="none">
+          <type name="uint8" c:type="guint8"/>
+        </return-value>
+      </method>
+      <method name="bye_get_reason"
+              c:identifier="gst_rtcp_packet_bye_get_reason"
+              doc="Get the reason in @packet.
+a reason string. The string must be freed with g_free() after usage.">
+        <return-value transfer-ownership="full">
+          <type name="utf8" c:type="gchar*"/>
+        </return-value>
+      </method>
+      <method name="bye_set_reason"
+              c:identifier="gst_rtcp_packet_bye_set_reason"
+              doc="Set the reason string to @reason in @packet.">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="reason" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="fb_get_sender_ssrc"
+              c:identifier="gst_rtcp_packet_fb_get_sender_ssrc"
+              doc="Get the sender SSRC field of the RTPFB or PSFB @packet."
+              version="0.10.23">
+        <return-value transfer-ownership="none">
+          <type name="uint32" c:type="guint32"/>
+        </return-value>
+      </method>
+      <method name="fb_set_sender_ssrc"
+              c:identifier="gst_rtcp_packet_fb_set_sender_ssrc"
+              doc="Set the sender SSRC field of the RTPFB or PSFB @packet."
+              version="0.10.23">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="ssrc" transfer-ownership="none">
+            <type name="uint32" c:type="guint32"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="fb_get_media_ssrc"
+              c:identifier="gst_rtcp_packet_fb_get_media_ssrc"
+              doc="Get the media SSRC field of the RTPFB or PSFB @packet."
+              version="0.10.23">
+        <return-value transfer-ownership="none">
+          <type name="uint32" c:type="guint32"/>
+        </return-value>
+      </method>
+      <method name="fb_set_media_ssrc"
+              c:identifier="gst_rtcp_packet_fb_set_media_ssrc"
+              doc="Set the media SSRC field of the RTPFB or PSFB @packet."
+              version="0.10.23">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="ssrc" transfer-ownership="none">
+            <type name="uint32" c:type="guint32"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="fb_set_type"
+              c:identifier="gst_rtcp_packet_fb_set_type"
+              doc="Set the feedback message type of the FB @packet."
+              version="0.10.23">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="type" transfer-ownership="none">
+            <type name="RTCPFBType" c:type="GstRTCPFBType"/>
+          </parameter>
+        </parameters>
+      </method>
+    </record>
+    <enumeration name="RTCPSDESType" c:type="GstRTCPSDESType">
+      <member name="invalid" value="-1" c:identifier="GST_RTCP_SDES_INVALID"/>
+      <member name="end" value="0" c:identifier="GST_RTCP_SDES_END"/>
+      <member name="cname" value="1" c:identifier="GST_RTCP_SDES_CNAME"/>
+      <member name="name" value="2" c:identifier="GST_RTCP_SDES_NAME"/>
+      <member name="email" value="3" c:identifier="GST_RTCP_SDES_EMAIL"/>
+      <member name="phone" value="4" c:identifier="GST_RTCP_SDES_PHONE"/>
+      <member name="loc" value="5" c:identifier="GST_RTCP_SDES_LOC"/>
+      <member name="tool" value="6" c:identifier="GST_RTCP_SDES_TOOL"/>
+      <member name="note" value="7" c:identifier="GST_RTCP_SDES_NOTE"/>
+      <member name="priv" value="8" c:identifier="GST_RTCP_SDES_PRIV"/>
+    </enumeration>
+    <enumeration name="RTCPType" c:type="GstRTCPType">
+      <member name="invalid" value="0" c:identifier="GST_RTCP_TYPE_INVALID"/>
+      <member name="sr" value="200" c:identifier="GST_RTCP_TYPE_SR"/>
+      <member name="rr" value="201" c:identifier="GST_RTCP_TYPE_RR"/>
+      <member name="sdes" value="202" c:identifier="GST_RTCP_TYPE_SDES"/>
+      <member name="bye" value="203" c:identifier="GST_RTCP_TYPE_BYE"/>
+      <member name="app" value="204" c:identifier="GST_RTCP_TYPE_APP"/>
+      <member name="rtpfb" value="205" c:identifier="GST_RTCP_TYPE_RTPFB"/>
+      <member name="psfb" value="206" c:identifier="GST_RTCP_TYPE_PSFB"/>
+    </enumeration>
+    <constant name="RTCP_MAX_BYE_SSRC_COUNT" value="31">
+      <type name="int"/>
+    </constant>
+    <constant name="RTCP_MAX_RB_COUNT" value="31">
+      <type name="int"/>
+    </constant>
+    <constant name="RTCP_MAX_SDES" value="255">
+      <type name="int"/>
+    </constant>
+    <constant name="RTCP_MAX_SDES_ITEM_COUNT" value="31">
+      <type name="int"/>
+    </constant>
+    <constant name="RTCP_VALID_MASK" value="57598">
+      <type name="int"/>
+    </constant>
+    <constant name="RTCP_VALID_VALUE" value="0">
+      <type name="int"/>
+    </constant>
+    <constant name="RTCP_VERSION" value="2">
+      <type name="int"/>
+    </constant>
+    <enumeration name="RTPPayload" c:type="GstRTPPayload">
+      <member name="pcmu" value="0" c:identifier="GST_RTP_PAYLOAD_PCMU"/>
+      <member name="1016" value="1" c:identifier="GST_RTP_PAYLOAD_1016"/>
+      <member name="g721" value="2" c:identifier="GST_RTP_PAYLOAD_G721"/>
+      <member name="gsm" value="3" c:identifier="GST_RTP_PAYLOAD_GSM"/>
+      <member name="g723" value="4" c:identifier="GST_RTP_PAYLOAD_G723"/>
+      <member name="dvi4_8000"
+              value="5"
+              c:identifier="GST_RTP_PAYLOAD_DVI4_8000"/>
+      <member name="dvi4_16000"
+              value="6"
+              c:identifier="GST_RTP_PAYLOAD_DVI4_16000"/>
+      <member name="lpc" value="7" c:identifier="GST_RTP_PAYLOAD_LPC"/>
+      <member name="pcma" value="8" c:identifier="GST_RTP_PAYLOAD_PCMA"/>
+      <member name="g722" value="9" c:identifier="GST_RTP_PAYLOAD_G722"/>
+      <member name="l16_stereo"
+              value="10"
+              c:identifier="GST_RTP_PAYLOAD_L16_STEREO"/>
+      <member name="l16_mono"
+              value="11"
+              c:identifier="GST_RTP_PAYLOAD_L16_MONO"/>
+      <member name="qcelp" value="12" c:identifier="GST_RTP_PAYLOAD_QCELP"/>
+      <member name="cn" value="13" c:identifier="GST_RTP_PAYLOAD_CN"/>
+      <member name="mpa" value="14" c:identifier="GST_RTP_PAYLOAD_MPA"/>
+      <member name="g728" value="15" c:identifier="GST_RTP_PAYLOAD_G728"/>
+      <member name="dvi4_11025"
+              value="16"
+              c:identifier="GST_RTP_PAYLOAD_DVI4_11025"/>
+      <member name="dvi4_22050"
+              value="17"
+              c:identifier="GST_RTP_PAYLOAD_DVI4_22050"/>
+      <member name="g729" value="18" c:identifier="GST_RTP_PAYLOAD_G729"/>
+      <member name="cellb" value="25" c:identifier="GST_RTP_PAYLOAD_CELLB"/>
+      <member name="jpeg" value="26" c:identifier="GST_RTP_PAYLOAD_JPEG"/>
+      <member name="nv" value="28" c:identifier="GST_RTP_PAYLOAD_NV"/>
+      <member name="h261" value="31" c:identifier="GST_RTP_PAYLOAD_H261"/>
+      <member name="mpv" value="32" c:identifier="GST_RTP_PAYLOAD_MPV"/>
+      <member name="mp2t" value="33" c:identifier="GST_RTP_PAYLOAD_MP2T"/>
+      <member name="h263" value="34" c:identifier="GST_RTP_PAYLOAD_H263"/>
+    </enumeration>
+    <record name="RTPPayloadInfo"
+            c:type="GstRTPPayloadInfo"
+            doc="&quot;message&quot;.
+channels. NULL = not applicable.
+Structure holding default payload type information.">
+      <field name="payload_type" writable="1">
+        <type name="uint8" c:type="guint8"/>
+      </field>
+      <field name="media" writable="1">
+        <type name="utf8" c:type="gchar*"/>
+      </field>
+      <field name="encoding_name" writable="1">
+        <type name="utf8" c:type="gchar*"/>
+      </field>
+      <field name="clock_rate" writable="1">
+        <type name="uint" c:type="guint"/>
+      </field>
+      <field name="encoding_parameters" writable="1">
+        <type name="utf8" c:type="gchar*"/>
+      </field>
+      <field name="bitrate" writable="1">
+        <type name="uint" c:type="guint"/>
+      </field>
+    </record>
+    <constant name="VERSION" value="2">
+      <type name="int"/>
+    </constant>
+    <function name="buffer_allocate_data"
+              c:identifier="gst_rtp_buffer_allocate_data"
+              doc="Allocate enough data in @buffer to hold an RTP packet with @csrc_count CSRCs,
+a payload length of @payload_len and padding of @pad_len.
+MALLOCDATA of @buffer will be overwritten and will not be freed.
+All other RTP header fields will be set to 0/FALSE.">
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="buffer" transfer-ownership="none">
+          <type name="Gst.Buffer" c:type="GstBuffer*"/>
+        </parameter>
+        <parameter name="payload_len" transfer-ownership="none">
+          <type name="uint" c:type="guint"/>
+        </parameter>
+        <parameter name="pad_len" transfer-ownership="none">
+          <type name="uint8" c:type="guint8"/>
+        </parameter>
+        <parameter name="csrc_count" transfer-ownership="none">
+          <type name="uint8" c:type="guint8"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="buffer_calc_header_len"
+              c:identifier="gst_rtp_buffer_calc_header_len"
+              doc="Calculate the header length of an RTP packet with @csrc_count CSRC entries.
+An RTP packet can have at most 15 CSRC entries.">
+      <return-value transfer-ownership="none">
+        <type name="uint" c:type="guint"/>
+      </return-value>
+      <parameters>
+        <parameter name="csrc_count" transfer-ownership="none">
+          <type name="uint8" c:type="guint8"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="buffer_calc_packet_len"
+              c:identifier="gst_rtp_buffer_calc_packet_len"
+              doc="Calculate the total length of an RTP packet with a payload size of @payload_len,
+a padding of @pad_len and a @csrc_count CSRC entries.">
+      <return-value transfer-ownership="none">
+        <type name="uint" c:type="guint"/>
+      </return-value>
+      <parameters>
+        <parameter name="payload_len" transfer-ownership="none">
+          <type name="uint" c:type="guint"/>
+        </parameter>
+        <parameter name="pad_len" transfer-ownership="none">
+          <type name="uint8" c:type="guint8"/>
+        </parameter>
+        <parameter name="csrc_count" transfer-ownership="none">
+          <type name="uint8" c:type="guint8"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="buffer_calc_payload_len"
+              c:identifier="gst_rtp_buffer_calc_payload_len"
+              doc="Calculate the length of the payload of an RTP packet with size @packet_len,
+a padding of @pad_len and a @csrc_count CSRC entries.">
+      <return-value transfer-ownership="none">
+        <type name="uint" c:type="guint"/>
+      </return-value>
+      <parameters>
+        <parameter name="packet_len" transfer-ownership="none">
+          <type name="uint" c:type="guint"/>
+        </parameter>
+        <parameter name="pad_len" transfer-ownership="none">
+          <type name="uint8" c:type="guint8"/>
+        </parameter>
+        <parameter name="csrc_count" transfer-ownership="none">
+          <type name="uint8" c:type="guint8"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="buffer_compare_seqnum"
+              c:identifier="gst_rtp_buffer_compare_seqnum"
+              doc="Compare two sequence numbers, taking care of wraparounds. This function
+returns the difference between @seqnum1 and @seqnum2.
+are equal or a positive value if @seqnum1 is smaller than @segnum2."
+              version="0.10.15">
+      <return-value transfer-ownership="none">
+        <type name="int" c:type="gint"/>
+      </return-value>
+      <parameters>
+        <parameter name="seqnum1" transfer-ownership="none">
+          <type name="uint16" c:type="guint16"/>
+        </parameter>
+        <parameter name="seqnum2" transfer-ownership="none">
+          <type name="uint16" c:type="guint16"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="buffer_default_clock_rate"
+              c:identifier="gst_rtp_buffer_default_clock_rate"
+              doc="Get the default clock-rate for the static payload type @payload_type.
+the clock-rate is undefined."
+              version="0.10.13">
+      <return-value transfer-ownership="none">
+        <type name="uint32" c:type="guint32"/>
+      </return-value>
+      <parameters>
+        <parameter name="payload_type" transfer-ownership="none">
+          <type name="uint8" c:type="guint8"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="buffer_ext_timestamp"
+              c:identifier="gst_rtp_buffer_ext_timestamp"
+              doc="Update the @exttimestamp field with @timestamp. For the first call of the
+method, @exttimestamp should point to a location with a value of -1.
+This function makes sure that the returned value is a constantly increasing
+value even in the case where there is a timestamp wraparound."
+              version="0.10.15">
+      <return-value transfer-ownership="none">
+        <type name="uint64" c:type="guint64"/>
+      </return-value>
+      <parameters>
+        <parameter name="exttimestamp"
+                   direction="out"
+                   transfer-ownership="full">
+          <type name="uint64" c:type="guint64*"/>
+        </parameter>
+        <parameter name="timestamp" transfer-ownership="none">
+          <type name="uint32" c:type="guint32"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="buffer_get_csrc"
+              c:identifier="gst_rtp_buffer_get_csrc"
+              doc="Get the CSRC at index @idx in @buffer.">
+      <return-value transfer-ownership="none">
+        <type name="uint32" c:type="guint32"/>
+      </return-value>
+      <parameters>
+        <parameter name="buffer" transfer-ownership="none">
+          <type name="Gst.Buffer" c:type="GstBuffer*"/>
+        </parameter>
+        <parameter name="idx" transfer-ownership="none">
+          <type name="uint8" c:type="guint8"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="buffer_get_csrc_count"
+              c:identifier="gst_rtp_buffer_get_csrc_count"
+              doc="Get the CSRC count of the RTP packet in @buffer.">
+      <return-value transfer-ownership="none">
+        <type name="uint8" c:type="guint8"/>
+      </return-value>
+      <parameters>
+        <parameter name="buffer" transfer-ownership="none">
+          <type name="Gst.Buffer" c:type="GstBuffer*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="buffer_get_extension"
+              c:identifier="gst_rtp_buffer_get_extension"
+              doc="Check if the extension bit is set on the RTP packet in @buffer.">
+      <return-value transfer-ownership="none">
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="buffer" transfer-ownership="none">
+          <type name="Gst.Buffer" c:type="GstBuffer*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="buffer_get_extension_data"
+              c:identifier="gst_rtp_buffer_get_extension_data"
+              doc="Get the extension data. @bits will contain the extension 16 bits of custom
+data. @data will point to the data in the extension and @wordlen will contain
+the length of @data in 32 bits words.
+If @buffer did not contain an extension, this function will return %FALSE
+with @bits, @data and @wordlen unchanged."
+              version="0.10.15">
+      <return-value transfer-ownership="none">
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="buffer" transfer-ownership="none">
+          <type name="Gst.Buffer" c:type="GstBuffer*"/>
+        </parameter>
+        <parameter name="bits" direction="out" transfer-ownership="full">
+          <type name="uint16" c:type="guint16*"/>
+        </parameter>
+        <parameter name="data" transfer-ownership="none">
+          <type name="any" c:type="gpointer*"/>
+        </parameter>
+        <parameter name="wordlen" direction="out" transfer-ownership="full">
+          <type name="uint" c:type="guint*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="buffer_get_header_len"
+              c:identifier="gst_rtp_buffer_get_header_len"
+              doc="Return the total length of the header in @buffer. This include the length of
+the fixed header, the CSRC list and the extension header.">
+      <return-value transfer-ownership="none">
+        <type name="uint" c:type="guint"/>
+      </return-value>
+      <parameters>
+        <parameter name="buffer" transfer-ownership="none">
+          <type name="Gst.Buffer" c:type="GstBuffer*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="buffer_get_marker"
+              c:identifier="gst_rtp_buffer_get_marker"
+              doc="Check if the marker bit is set on the RTP packet in @buffer.">
+      <return-value transfer-ownership="none">
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="buffer" transfer-ownership="none">
+          <type name="Gst.Buffer" c:type="GstBuffer*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="buffer_get_packet_len"
+              c:identifier="gst_rtp_buffer_get_packet_len"
+              doc="Return the total length of the packet in @buffer.">
+      <return-value transfer-ownership="none">
+        <type name="uint" c:type="guint"/>
+      </return-value>
+      <parameters>
+        <parameter name="buffer" transfer-ownership="none">
+          <type name="Gst.Buffer" c:type="GstBuffer*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="buffer_get_padding"
+              c:identifier="gst_rtp_buffer_get_padding"
+              doc="Check if the padding bit is set on the RTP packet in @buffer.">
+      <return-value transfer-ownership="none">
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="buffer" transfer-ownership="none">
+          <type name="Gst.Buffer" c:type="GstBuffer*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="buffer_get_payload"
+              c:identifier="gst_rtp_buffer_get_payload"
+              doc="Get a pointer to the payload data in @buffer. This pointer is valid as long
+as a reference to @buffer is held.">
+      <return-value transfer-ownership="none">
+        <type name="any" c:type="gpointer"/>
+      </return-value>
+      <parameters>
+        <parameter name="buffer" transfer-ownership="none">
+          <type name="Gst.Buffer" c:type="GstBuffer*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="buffer_get_payload_buffer"
+              c:identifier="gst_rtp_buffer_get_payload_buffer"
+              doc="Create a buffer of the payload of the RTP packet in @buffer. This function
+will internally create a subbuffer of @buffer so that a memcpy can be
+avoided.">
+      <return-value transfer-ownership="full">
+        <type name="Gst.Buffer" c:type="GstBuffer*"/>
+      </return-value>
+      <parameters>
+        <parameter name="buffer" transfer-ownership="none">
+          <type name="Gst.Buffer" c:type="GstBuffer*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="buffer_get_payload_len"
+              c:identifier="gst_rtp_buffer_get_payload_len"
+              doc="Get the length of the payload of the RTP packet in @buffer.">
+      <return-value transfer-ownership="none">
+        <type name="uint" c:type="guint"/>
+      </return-value>
+      <parameters>
+        <parameter name="buffer" transfer-ownership="none">
+          <type name="Gst.Buffer" c:type="GstBuffer*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="buffer_get_payload_subbuffer"
+              c:identifier="gst_rtp_buffer_get_payload_subbuffer"
+              doc="Create a subbuffer of the payload of the RTP packet in @buffer. @offset bytes
+are skipped in the payload and the subbuffer will be of size @len.
+If @len is -1 the total payload starting from @offset if subbuffered."
+              version="0.10.10">
+      <return-value transfer-ownership="full">
+        <type name="Gst.Buffer" c:type="GstBuffer*"/>
+      </return-value>
+      <parameters>
+        <parameter name="buffer" transfer-ownership="none">
+          <type name="Gst.Buffer" c:type="GstBuffer*"/>
+        </parameter>
+        <parameter name="offset" transfer-ownership="none">
+          <type name="uint" c:type="guint"/>
+        </parameter>
+        <parameter name="len" transfer-ownership="none">
+          <type name="uint" c:type="guint"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="buffer_get_payload_type"
+              c:identifier="gst_rtp_buffer_get_payload_type"
+              doc="Get the payload type of the RTP packet in @buffer.">
+      <return-value transfer-ownership="none">
+        <type name="uint8" c:type="guint8"/>
+      </return-value>
+      <parameters>
+        <parameter name="buffer" transfer-ownership="none">
+          <type name="Gst.Buffer" c:type="GstBuffer*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="buffer_get_seq"
+              c:identifier="gst_rtp_buffer_get_seq"
+              doc="Get the sequence number of the RTP packet in @buffer.">
+      <return-value transfer-ownership="none">
+        <type name="uint16" c:type="guint16"/>
+      </return-value>
+      <parameters>
+        <parameter name="buffer" transfer-ownership="none">
+          <type name="Gst.Buffer" c:type="GstBuffer*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="buffer_get_ssrc"
+              c:identifier="gst_rtp_buffer_get_ssrc"
+              doc="Get the SSRC of the RTP packet in @buffer.">
+      <return-value transfer-ownership="none">
+        <type name="uint32" c:type="guint32"/>
+      </return-value>
+      <parameters>
+        <parameter name="buffer" transfer-ownership="none">
+          <type name="Gst.Buffer" c:type="GstBuffer*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="buffer_get_timestamp"
+              c:identifier="gst_rtp_buffer_get_timestamp"
+              doc="Get the timestamp of the RTP packet in @buffer.">
+      <return-value transfer-ownership="none">
+        <type name="uint32" c:type="guint32"/>
+      </return-value>
+      <parameters>
+        <parameter name="buffer" transfer-ownership="none">
+          <type name="Gst.Buffer" c:type="GstBuffer*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="buffer_get_version"
+              c:identifier="gst_rtp_buffer_get_version"
+              doc="Get the version number of the RTP packet in @buffer.">
+      <return-value transfer-ownership="none">
+        <type name="uint8" c:type="guint8"/>
+      </return-value>
+      <parameters>
+        <parameter name="buffer" transfer-ownership="none">
+          <type name="Gst.Buffer" c:type="GstBuffer*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="buffer_list_get_payload_len"
+              c:identifier="gst_rtp_buffer_list_get_payload_len"
+              doc="Get the length of the payload of the RTP packet in @list."
+              version="0.10.24">
+      <return-value transfer-ownership="none">
+        <type name="uint" c:type="guint"/>
+      </return-value>
+      <parameters>
+        <parameter name="list" transfer-ownership="none">
+          <type name="Gst.BufferList" c:type="GstBufferList*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="buffer_list_get_payload_type"
+              c:identifier="gst_rtp_buffer_list_get_payload_type"
+              doc="Get the payload type of the first RTP packet in @list.
+All packets in @list should have the same payload type."
+              version="0.10.24">
+      <return-value transfer-ownership="none">
+        <type name="uint8" c:type="guint8"/>
+      </return-value>
+      <parameters>
+        <parameter name="list" transfer-ownership="none">
+          <type name="Gst.BufferList" c:type="GstBufferList*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="buffer_list_get_seq"
+              c:identifier="gst_rtp_buffer_list_get_seq"
+              doc="Get the sequence number of the first RTP packet in @list.
+All packets within @list have the same sequence number."
+              version="0.10.24">
+      <return-value transfer-ownership="none">
+        <type name="uint16" c:type="guint16"/>
+      </return-value>
+      <parameters>
+        <parameter name="list" transfer-ownership="none">
+          <type name="Gst.BufferList" c:type="GstBufferList*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="buffer_list_get_ssrc"
+              c:identifier="gst_rtp_buffer_list_get_ssrc"
+              doc="Get the SSRC of the first RTP packet in @list.
+All RTP packets within @list have the same SSRC."
+              version="0.10.24">
+      <return-value transfer-ownership="none">
+        <type name="uint32" c:type="guint32"/>
+      </return-value>
+      <parameters>
+        <parameter name="list" transfer-ownership="none">
+          <type name="Gst.BufferList" c:type="GstBufferList*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="buffer_list_get_timestamp"
+              c:identifier="gst_rtp_buffer_list_get_timestamp"
+              doc="Get the timestamp of the first RTP packet in @list.
+All packets within @list have the same timestamp."
+              version="0.10.24">
+      <return-value transfer-ownership="none">
+        <type name="uint32" c:type="guint32"/>
+      </return-value>
+      <parameters>
+        <parameter name="list" transfer-ownership="none">
+          <type name="Gst.BufferList" c:type="GstBufferList*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="buffer_list_set_payload_type"
+              c:identifier="gst_rtp_buffer_list_set_payload_type"
+              doc="Set the payload type of each RTP packet in @list to @payload_type."
+              version="0.10.24">
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="list" transfer-ownership="none">
+          <type name="Gst.BufferList" c:type="GstBufferList*"/>
+        </parameter>
+        <parameter name="payload_type" transfer-ownership="none">
+          <type name="uint8" c:type="guint8"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="buffer_list_set_seq"
+              c:identifier="gst_rtp_buffer_list_set_seq"
+              doc="Set the sequence number of each RTP packet in @list to @seq."
+              version="0.10.24">
+      <return-value transfer-ownership="none">
+        <type name="uint16" c:type="guint16"/>
+      </return-value>
+      <parameters>
+        <parameter name="list" transfer-ownership="none">
+          <type name="Gst.BufferList" c:type="GstBufferList*"/>
+        </parameter>
+        <parameter name="seq" transfer-ownership="none">
+          <type name="uint16" c:type="guint16"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="buffer_list_set_ssrc"
+              c:identifier="gst_rtp_buffer_list_set_ssrc"
+              doc="Set the SSRC on each RTP packet in @list to @ssrc."
+              version="0.10.24">
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="list" transfer-ownership="none">
+          <type name="Gst.BufferList" c:type="GstBufferList*"/>
+        </parameter>
+        <parameter name="ssrc" transfer-ownership="none">
+          <type name="uint32" c:type="guint32"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="buffer_list_set_timestamp"
+              c:identifier="gst_rtp_buffer_list_set_timestamp"
+              doc="Set the timestamp of each RTP packet in @list to @timestamp."
+              version="0.10.24">
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="list" transfer-ownership="none">
+          <type name="Gst.BufferList" c:type="GstBufferList*"/>
+        </parameter>
+        <parameter name="timestamp" transfer-ownership="none">
+          <type name="uint32" c:type="guint32"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="buffer_list_validate"
+              c:identifier="gst_rtp_buffer_list_validate"
+              doc="Check if all RTP packets in the @list are valid using validate_data().
+Use this function to validate an list before using the other functions in
+this module."
+              version="0.10.24">
+      <return-value transfer-ownership="none">
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="list" transfer-ownership="none">
+          <type name="Gst.BufferList" c:type="GstBufferList*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="buffer_new_allocate"
+              c:identifier="gst_rtp_buffer_new_allocate"
+              doc="Allocate a new #GstBuffer with enough data to hold an RTP packet with
+All other RTP header fields will be set to 0/FALSE.
+parameters.">
+      <return-value transfer-ownership="full">
+        <type name="Gst.Buffer" c:type="GstBuffer*"/>
+      </return-value>
+      <parameters>
+        <parameter name="payload_len" transfer-ownership="none">
+          <type name="uint" c:type="guint"/>
+        </parameter>
+        <parameter name="pad_len" transfer-ownership="none">
+          <type name="uint8" c:type="guint8"/>
+        </parameter>
+        <parameter name="csrc_count" transfer-ownership="none">
+          <type name="uint8" c:type="guint8"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="buffer_new_allocate_len"
+              c:identifier="gst_rtp_buffer_new_allocate_len"
+              doc="Create a new #GstBuffer that can hold an RTP packet that is exactly
+All RTP header fields will be set to 0/FALSE.">
+      <return-value transfer-ownership="full">
+        <type name="Gst.Buffer" c:type="GstBuffer*"/>
+      </return-value>
+      <parameters>
+        <parameter name="packet_len" transfer-ownership="none">
+          <type name="uint" c:type="guint"/>
+        </parameter>
+        <parameter name="pad_len" transfer-ownership="none">
+          <type name="uint8" c:type="guint8"/>
+        </parameter>
+        <parameter name="csrc_count" transfer-ownership="none">
+          <type name="uint8" c:type="guint8"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="buffer_new_copy_data"
+              c:identifier="gst_rtp_buffer_new_copy_data"
+              doc="Create a new buffer and set the data to a copy of @len
+bytes of @data and the size to @len. The data will be freed when the buffer
+is freed.">
+      <return-value transfer-ownership="full">
+        <type name="Gst.Buffer" c:type="GstBuffer*"/>
+      </return-value>
+      <parameters>
+        <parameter name="data" transfer-ownership="none">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+        <parameter name="len" transfer-ownership="none">
+          <type name="uint" c:type="guint"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="buffer_new_take_data"
+              c:identifier="gst_rtp_buffer_new_take_data"
+              doc="Create a new buffer and set the data and size of the buffer to @data and @len
+respectively. @data will be freed when the buffer is unreffed, so this
+function transfers ownership of @data to the new buffer.">
+      <return-value transfer-ownership="full">
+        <type name="Gst.Buffer" c:type="GstBuffer*"/>
+      </return-value>
+      <parameters>
+        <parameter name="data" transfer-ownership="none">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+        <parameter name="len" transfer-ownership="none">
+          <type name="uint" c:type="guint"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="buffer_pad_to"
+              c:identifier="gst_rtp_buffer_pad_to"
+              doc="Set the amount of padding in the RTP packet in @buffer to">
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="buffer" transfer-ownership="none">
+          <type name="Gst.Buffer" c:type="GstBuffer*"/>
+        </parameter>
+        <parameter name="len" transfer-ownership="none">
+          <type name="uint" c:type="guint"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="buffer_set_csrc"
+              c:identifier="gst_rtp_buffer_set_csrc"
+              doc="Modify the CSRC at index @idx in @buffer to @csrc.">
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="buffer" transfer-ownership="none">
+          <type name="Gst.Buffer" c:type="GstBuffer*"/>
+        </parameter>
+        <parameter name="idx" transfer-ownership="none">
+          <type name="uint8" c:type="guint8"/>
+        </parameter>
+        <parameter name="csrc" transfer-ownership="none">
+          <type name="uint32" c:type="guint32"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="buffer_set_extension"
+              c:identifier="gst_rtp_buffer_set_extension"
+              doc="Set the extension bit on the RTP packet in @buffer to @extension.">
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="buffer" transfer-ownership="none">
+          <type name="Gst.Buffer" c:type="GstBuffer*"/>
+        </parameter>
+        <parameter name="extension" transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="buffer_set_extension_data"
+              c:identifier="gst_rtp_buffer_set_extension_data"
+              doc="the extension, excluding the extension header ( therefore zero is a valid length)
+Set the extension bit of the rtp buffer and fill in the @bits and @length of the
+extension header. It will refuse to set the extension data if the buffer is not
+large enough.">
+      <return-value transfer-ownership="none">
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="buffer" transfer-ownership="none">
+          <type name="Gst.Buffer" c:type="GstBuffer*"/>
+        </parameter>
+        <parameter name="bits" transfer-ownership="none">
+          <type name="uint16" c:type="guint16"/>
+        </parameter>
+        <parameter name="length" transfer-ownership="none">
+          <type name="uint16" c:type="guint16"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="buffer_set_marker"
+              c:identifier="gst_rtp_buffer_set_marker"
+              doc="Set the marker bit on the RTP packet in @buffer to @marker.">
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="buffer" transfer-ownership="none">
+          <type name="Gst.Buffer" c:type="GstBuffer*"/>
+        </parameter>
+        <parameter name="marker" transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="buffer_set_packet_len"
+              c:identifier="gst_rtp_buffer_set_packet_len"
+              doc="Set the total @buffer size to @len. The data in the buffer will be made
+larger if needed. Any padding will be removed from the packet.">
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="buffer" transfer-ownership="none">
+          <type name="Gst.Buffer" c:type="GstBuffer*"/>
+        </parameter>
+        <parameter name="len" transfer-ownership="none">
+          <type name="uint" c:type="guint"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="buffer_set_padding"
+              c:identifier="gst_rtp_buffer_set_padding"
+              doc="Set the padding bit on the RTP packet in @buffer to @padding.">
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="buffer" transfer-ownership="none">
+          <type name="Gst.Buffer" c:type="GstBuffer*"/>
+        </parameter>
+        <parameter name="padding" transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="buffer_set_payload_type"
+              c:identifier="gst_rtp_buffer_set_payload_type"
+              doc="Set the payload type of the RTP packet in @buffer to @payload_type.">
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="buffer" transfer-ownership="none">
+          <type name="Gst.Buffer" c:type="GstBuffer*"/>
+        </parameter>
+        <parameter name="payload_type" transfer-ownership="none">
+          <type name="uint8" c:type="guint8"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="buffer_set_seq"
+              c:identifier="gst_rtp_buffer_set_seq"
+              doc="Set the sequence number of the RTP packet in @buffer to @seq.">
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="buffer" transfer-ownership="none">
+          <type name="Gst.Buffer" c:type="GstBuffer*"/>
+        </parameter>
+        <parameter name="seq" transfer-ownership="none">
+          <type name="uint16" c:type="guint16"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="buffer_set_ssrc"
+              c:identifier="gst_rtp_buffer_set_ssrc"
+              doc="Set the SSRC on the RTP packet in @buffer to @ssrc.">
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="buffer" transfer-ownership="none">
+          <type name="Gst.Buffer" c:type="GstBuffer*"/>
+        </parameter>
+        <parameter name="ssrc" transfer-ownership="none">
+          <type name="uint32" c:type="guint32"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="buffer_set_timestamp"
+              c:identifier="gst_rtp_buffer_set_timestamp"
+              doc="Set the timestamp of the RTP packet in @buffer to @timestamp.">
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="buffer" transfer-ownership="none">
+          <type name="Gst.Buffer" c:type="GstBuffer*"/>
+        </parameter>
+        <parameter name="timestamp" transfer-ownership="none">
+          <type name="uint32" c:type="guint32"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="buffer_set_version"
+              c:identifier="gst_rtp_buffer_set_version"
+              doc="Set the version of the RTP packet in @buffer to @version.">
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="buffer" transfer-ownership="none">
+          <type name="Gst.Buffer" c:type="GstBuffer*"/>
+        </parameter>
+        <parameter name="version" transfer-ownership="none">
+          <type name="uint8" c:type="guint8"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="buffer_validate"
+              c:identifier="gst_rtp_buffer_validate"
+              doc="Check if the data pointed to by @buffer is a valid RTP packet using
+validate_data().
+Use this function to validate a packet before using the other functions in
+this module.">
+      <return-value transfer-ownership="none">
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="buffer" transfer-ownership="none">
+          <type name="Gst.Buffer" c:type="GstBuffer*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="buffer_validate_data"
+              c:identifier="gst_rtp_buffer_validate_data"
+              doc="Check if the @data and @size point to the data of a valid RTP packet.
+This function checks the length, version and padding of the packet data.
+Use this function to validate a packet before using the other functions in
+this module.">
+      <return-value transfer-ownership="none">
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="data" transfer-ownership="none">
+          <array c:type="guint8*">
+            <type name="uint8"/>
+          </array>
+        </parameter>
+        <parameter name="len" transfer-ownership="none">
+          <type name="uint" c:type="guint"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="payload_info_for_name"
+              c:identifier="gst_rtp_payload_info_for_name"
+              doc="Get the #GstRTPPayloadInfo for @media and @encoding_name. This function is
+mostly used to get the default clock-rate and bandwidth for dynamic payload
+types specified with @media and @encoding name.
+The search for @encoding_name will be performed in a case insensitve way.">
+      <return-value transfer-ownership="none">
+        <type name="RTPPayloadInfo" c:type="GstRTPPayloadInfo*"/>
+      </return-value>
+      <parameters>
+        <parameter name="media" transfer-ownership="none">
+          <type name="utf8" c:type="gchar*"/>
+        </parameter>
+        <parameter name="encoding_name" transfer-ownership="none">
+          <type name="utf8" c:type="gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="payload_info_for_pt"
+              c:identifier="gst_rtp_payload_info_for_pt"
+              doc="Get the #GstRTPPayloadInfo for @payload_type. This function is
+mostly used to get the default clock-rate and bandwidth for static payload
+types specified with @payload_type.">
+      <return-value transfer-ownership="none">
+        <type name="RTPPayloadInfo" c:type="GstRTPPayloadInfo*"/>
+      </return-value>
+      <parameters>
+        <parameter name="payload_type" transfer-ownership="none">
+          <type name="uint8" c:type="guint8"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="rtcp_buffer_add_packet"
+              c:identifier="gst_rtcp_buffer_add_packet"
+              doc="Add a new packet of @type to @buffer. @packet will point to the newly created
+packet.
+if the max mtu is exceeded for the buffer.">
+      <return-value transfer-ownership="none">
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="buffer" transfer-ownership="none">
+          <type name="Gst.Buffer" c:type="GstBuffer*"/>
+        </parameter>
+        <parameter name="type" transfer-ownership="none">
+          <type name="RTCPType" c:type="GstRTCPType"/>
+        </parameter>
+        <parameter name="packet" transfer-ownership="none">
+          <type name="RTCPPacket" c:type="GstRTCPPacket*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="rtcp_buffer_end"
+              c:identifier="gst_rtcp_buffer_end"
+              doc="Finish @buffer after being constructured. This function is usually called
+after gst_rtcp_buffer_new() and after adding the RTCP items to the new buffer.
+The function adjusts the size of @buffer with the total length of all the
+added packets.">
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="buffer" transfer-ownership="none">
+          <type name="Gst.Buffer" c:type="GstBuffer*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="rtcp_buffer_get_first_packet"
+              c:identifier="gst_rtcp_buffer_get_first_packet"
+              doc="Initialize a new #GstRTCPPacket pointer that points to the first packet in">
+      <return-value transfer-ownership="none">
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="buffer" transfer-ownership="none">
+          <type name="Gst.Buffer" c:type="GstBuffer*"/>
+        </parameter>
+        <parameter name="packet" transfer-ownership="none">
+          <type name="RTCPPacket" c:type="GstRTCPPacket*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="rtcp_buffer_get_packet_count"
+              c:identifier="gst_rtcp_buffer_get_packet_count"
+              doc="Get the number of RTCP packets in @buffer.">
+      <return-value transfer-ownership="none">
+        <type name="uint" c:type="guint"/>
+      </return-value>
+      <parameters>
+        <parameter name="buffer" transfer-ownership="none">
+          <type name="Gst.Buffer" c:type="GstBuffer*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="rtcp_buffer_new"
+              c:identifier="gst_rtcp_buffer_new"
+              doc="Create a new buffer for constructing RTCP packets. The packet will have a
+maximum size of @mtu.">
+      <return-value transfer-ownership="full">
+        <type name="Gst.Buffer" c:type="GstBuffer*"/>
+      </return-value>
+      <parameters>
+        <parameter name="mtu" transfer-ownership="none">
+          <type name="uint" c:type="guint"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="rtcp_buffer_new_copy_data"
+              c:identifier="gst_rtcp_buffer_new_copy_data"
+              doc="Create a new buffer and set the data to a copy of @len
+bytes of @data and the size to @len. The data will be freed when the buffer
+is freed.">
+      <return-value transfer-ownership="full">
+        <type name="Gst.Buffer" c:type="GstBuffer*"/>
+      </return-value>
+      <parameters>
+        <parameter name="data" transfer-ownership="none">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+        <parameter name="len" transfer-ownership="none">
+          <type name="uint" c:type="guint"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="rtcp_buffer_new_take_data"
+              c:identifier="gst_rtcp_buffer_new_take_data"
+              doc="Create a new buffer and set the data and size of the buffer to @data and @len
+respectively. @data will be freed when the buffer is unreffed, so this
+function transfers ownership of @data to the new buffer.">
+      <return-value transfer-ownership="full">
+        <type name="Gst.Buffer" c:type="GstBuffer*"/>
+      </return-value>
+      <parameters>
+        <parameter name="data" transfer-ownership="none">
+          <type name="any" c:type="gpointer"/>
+        </parameter>
+        <parameter name="len" transfer-ownership="none">
+          <type name="uint" c:type="guint"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="rtcp_buffer_validate"
+              c:identifier="gst_rtcp_buffer_validate"
+              doc="Check if the data pointed to by @buffer is a valid RTCP packet using
+gst_rtcp_buffer_validate_data().">
+      <return-value transfer-ownership="none">
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="buffer" transfer-ownership="none">
+          <type name="Gst.Buffer" c:type="GstBuffer*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="rtcp_buffer_validate_data"
+              c:identifier="gst_rtcp_buffer_validate_data"
+              doc="Check if the @data and @size point to the data of a valid RTCP (compound)
+packet.
+Use this function to validate a packet before using the other functions in
+this module.">
+      <return-value transfer-ownership="none">
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="data" transfer-ownership="none">
+          <array c:type="guint8*">
+            <type name="uint8"/>
+          </array>
+        </parameter>
+        <parameter name="len" transfer-ownership="none">
+          <type name="uint" c:type="guint"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="rtcp_ntp_to_unix"
+              c:identifier="gst_rtcp_ntp_to_unix"
+              doc="Converts an NTP time to UNIX nanoseconds. @ntptime can typically be
+the NTP time of an SR RTCP message and contains, in the upper 32 bits, the
+number of seconds since 1900 and, in the lower 32 bits, the fractional
+seconds. The resulting value will be the number of nanoseconds since 1970.">
+      <return-value transfer-ownership="none">
+        <type name="uint64" c:type="guint64"/>
+      </return-value>
+      <parameters>
+        <parameter name="ntptime" transfer-ownership="none">
+          <type name="uint64" c:type="guint64"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="rtcp_packet_fb_get_type"
+              c:identifier="gst_rtcp_packet_fb_get_type"
+              doc="Get the feedback message type of the FB @packet."
+              version="0.10.23">
+      <return-value transfer-ownership="full">
+        <type name="RTCPFBType" c:type="GstRTCPFBType"/>
+      </return-value>
+      <parameters>
+        <parameter name="packet" transfer-ownership="none">
+          <type name="RTCPPacket" c:type="GstRTCPPacket*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="rtcp_packet_get_type"
+              c:identifier="gst_rtcp_packet_get_type"
+              doc="Get the packet type of the packet pointed to by @packet.
+pointing to a valid packet.">
+      <return-value transfer-ownership="full">
+        <type name="RTCPType" c:type="GstRTCPType"/>
+      </return-value>
+      <parameters>
+        <parameter name="packet" transfer-ownership="none">
+          <type name="RTCPPacket" c:type="GstRTCPPacket*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="rtcp_sdes_name_to_type"
+              c:identifier="gst_rtcp_sdes_name_to_type"
+              doc="Convert @name into a @GstRTCPSDESType. @name is typically a key in a
+#GstStructure containing SDES items.
+is a private sdes item."
+              version="0.10.26">
+      <return-value transfer-ownership="full">
+        <type name="RTCPSDESType" c:type="GstRTCPSDESType"/>
+      </return-value>
+      <parameters>
+        <parameter name="name" transfer-ownership="none">
+          <type name="utf8" c:type="gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="rtcp_sdes_type_to_name"
+              c:identifier="gst_rtcp_sdes_type_to_name"
+              doc="Converts @type to the string equivalent. The string is typically used as a
+key in a #GstStructure containing SDES items."
+              version="0.10.26">
+      <return-value transfer-ownership="none">
+        <type name="utf8" c:type="gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="type" transfer-ownership="none">
+          <type name="RTCPSDESType" c:type="GstRTCPSDESType"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="rtcp_unix_to_ntp"
+              c:identifier="gst_rtcp_unix_to_ntp"
+              doc="Converts a UNIX timestamp in nanoseconds to an NTP time. The caller should
+pass a value with nanoseconds since 1970. The NTP time will, in the upper
+32 bits, contain the number of seconds since 1900 and, in the lower 32
+bits, the fractional seconds. The resulting value can be used as an ntptime
+for constructing SR RTCP packets.">
+      <return-value transfer-ownership="none">
+        <type name="uint64" c:type="guint64"/>
+      </return-value>
+      <parameters>
+        <parameter name="unixtime" transfer-ownership="none">
+          <type name="uint64" c:type="guint64"/>
+        </parameter>
+      </parameters>
+    </function>
+  </namespace>
+</repository>
diff --git a/unmaintained/gstreamer/rtp/ffi/ffi.factor b/unmaintained/gstreamer/rtp/ffi/ffi.factor
new file mode 100644 (file)
index 0000000..28f8605
--- /dev/null
@@ -0,0 +1,16 @@
+! Copyright (C) 2010 Anton Gorenko.
+! See http://factorcode.org/license.txt for BSD license.
+USING: alien alien.libraries combinators kernel system
+gobject-introspection glib.ffi gstreamer.base.ffi gstreamer.ffi ;
+IN: gstreamer.rtp.ffi
+
+<<
+"gstreamer.rtp" {
+    { [ os winnt? ] [ drop ] }
+    { [ os macosx? ] [ drop ] }
+    { [ os unix? ] [ "libgstrtp-0.10.so" cdecl add-library ] }
+} cond
+>>
+
+GIR: vocab:gstreamer/rtp/GstRtp-0.10.gir
+
diff --git a/unmaintained/gstreamer/rtp/rtp.factor b/unmaintained/gstreamer/rtp/rtp.factor
new file mode 100644 (file)
index 0000000..7e928c1
--- /dev/null
@@ -0,0 +1,5 @@
+! Copyright (C) 2010 Anton Gorenko.
+! See http://factorcode.org/license.txt for BSD license.
+USING: gstreamer.rtp.ffi ;
+IN: gstreamer.rtp
+
diff --git a/unmaintained/gstreamer/rtsp/GstRtsp-0.10.gir b/unmaintained/gstreamer/rtsp/GstRtsp-0.10.gir
new file mode 100644 (file)
index 0000000..b0cf681
--- /dev/null
@@ -0,0 +1,2761 @@
+<?xml version="1.0"?>
+<!-- This file was automatically generated from C sources - DO NOT EDIT!
+To affect the contents of this file, edit the original C definitions,
+and/or use gtk-doc annotations.  -->
+<repository version="1.0"
+            xmlns="http://www.gtk.org/introspection/core/1.0"
+            xmlns:c="http://www.gtk.org/introspection/c/1.0"
+            xmlns:glib="http://www.gtk.org/introspection/glib/1.0">
+  <include name="GLib" version="2.0"/>
+  <include name="GModule" version="2.0"/>
+  <include name="GObject" version="2.0"/>
+  <include name="Gst" version="0.10"/>
+  <include name="GstSdp" version="0.10"/>
+  <include name="libxml2" version="2.0"/>
+  <package name="gstreamer-0.10"/>
+  <package name="gstreamer-sdp-0.10"/>
+  <c:include name="gst/audio/gstrtsp-enumtypes.h"/>
+  <c:include name="gst/audio/gstrtspbase64.h"/>
+  <c:include name="gst/audio/gstrtspconnection.h"/>
+  <c:include name="gst/audio/gstrtspdefs.h"/>
+  <c:include name="gst/audio/gstrtspextension.h"/>
+  <c:include name="gst/audio/gstrtspmessage.h"/>
+  <c:include name="gst/audio/gstrtsprange.h"/>
+  <c:include name="gst/audio/gstrtsptransport.h"/>
+  <c:include name="gst/audio/gstrtspurl.h"/>
+  <namespace name="GstRtsp"
+             version="0.10"
+             shared-library="libgstrtsp-0.10.so.0"
+             c:prefix="Gst">
+    <constant name="DEFAULT_PORT" value="554">
+      <type name="int"/>
+    </constant>
+    <enumeration name="RTSPAuthMethod"
+                 doc="Authentication methods, ordered by strength"
+                 glib:type-name="GstRTSPAuthMethod"
+                 glib:get-type="gst_rtsp_auth_method_get_type"
+                 c:type="GstRTSPAuthMethod">
+      <member name="none"
+              value="0"
+              c:identifier="GST_RTSP_AUTH_NONE"
+              glib:nick="none"/>
+      <member name="basic"
+              value="1"
+              c:identifier="GST_RTSP_AUTH_BASIC"
+              glib:nick="basic"/>
+      <member name="digest"
+              value="2"
+              c:identifier="GST_RTSP_AUTH_DIGEST"
+              glib:nick="digest"/>
+    </enumeration>
+    <record name="RTSPConnection"
+            c:type="GstRTSPConnection"
+            doc="Opaque RTSP connection object.">
+      <method name="connect"
+              c:identifier="gst_rtsp_connection_connect"
+              doc="Attempt to connect to the url of @conn made with
+gst_rtsp_connection_create(). If @timeout is #NULL this function can block
+forever. If @timeout contains a valid timeout, this function will return
+#GST_RTSP_ETIMEOUT after the timeout expired.
+This function can be cancelled with gst_rtsp_connection_flush().">
+        <return-value transfer-ownership="full">
+          <type name="RTSPResult" c:type="GstRTSPResult"/>
+        </return-value>
+        <parameters>
+          <parameter name="timeout" transfer-ownership="none">
+            <type name="GLib.TimeVal" c:type="GTimeVal*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="close"
+              c:identifier="gst_rtsp_connection_close"
+              doc="Close the connected @conn. After this call, the connection is in the same
+state as when it was first created.">
+        <return-value transfer-ownership="full">
+          <type name="RTSPResult" c:type="GstRTSPResult"/>
+        </return-value>
+      </method>
+      <method name="free"
+              c:identifier="gst_rtsp_connection_free"
+              doc="Close and free @conn.">
+        <return-value transfer-ownership="full">
+          <type name="RTSPResult" c:type="GstRTSPResult"/>
+        </return-value>
+      </method>
+      <method name="read"
+              c:identifier="gst_rtsp_connection_read"
+              doc="Attempt to read @size bytes into @data from the connected @conn, blocking up to
+the specified @timeout. @timeout can be #NULL, in which case this function
+might block forever.
+This function can be cancelled with gst_rtsp_connection_flush().">
+        <return-value transfer-ownership="full">
+          <type name="RTSPResult" c:type="GstRTSPResult"/>
+        </return-value>
+        <parameters>
+          <parameter name="data" transfer-ownership="none">
+            <array c:type="guint8*">
+              <type name="uint8"/>
+            </array>
+          </parameter>
+          <parameter name="size" transfer-ownership="none">
+            <type name="uint" c:type="guint"/>
+          </parameter>
+          <parameter name="timeout" transfer-ownership="none">
+            <type name="GLib.TimeVal" c:type="GTimeVal*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="write"
+              c:identifier="gst_rtsp_connection_write"
+              doc="Attempt to write @size bytes of @data to the connected @conn, blocking up to
+the specified @timeout. @timeout can be #NULL, in which case this function
+might block forever.
+This function can be cancelled with gst_rtsp_connection_flush().">
+        <return-value transfer-ownership="full">
+          <type name="RTSPResult" c:type="GstRTSPResult"/>
+        </return-value>
+        <parameters>
+          <parameter name="data" transfer-ownership="none">
+            <array c:type="guint8*">
+              <type name="uint8"/>
+            </array>
+          </parameter>
+          <parameter name="size" transfer-ownership="none">
+            <type name="uint" c:type="guint"/>
+          </parameter>
+          <parameter name="timeout" transfer-ownership="none">
+            <type name="GLib.TimeVal" c:type="GTimeVal*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="send"
+              c:identifier="gst_rtsp_connection_send"
+              doc="Attempt to send @message to the connected @conn, blocking up to
+the specified @timeout. @timeout can be #NULL, in which case this function
+might block forever.
+This function can be cancelled with gst_rtsp_connection_flush().">
+        <return-value transfer-ownership="full">
+          <type name="RTSPResult" c:type="GstRTSPResult"/>
+        </return-value>
+        <parameters>
+          <parameter name="message" transfer-ownership="none">
+            <type name="RTSPMessage" c:type="GstRTSPMessage*"/>
+          </parameter>
+          <parameter name="timeout" transfer-ownership="none">
+            <type name="GLib.TimeVal" c:type="GTimeVal*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="receive"
+              c:identifier="gst_rtsp_connection_receive"
+              doc="Attempt to read into @message from the connected @conn, blocking up to
+the specified @timeout. @timeout can be #NULL, in which case this function
+might block forever.
+This function can be cancelled with gst_rtsp_connection_flush().">
+        <return-value transfer-ownership="full">
+          <type name="RTSPResult" c:type="GstRTSPResult"/>
+        </return-value>
+        <parameters>
+          <parameter name="message" transfer-ownership="none">
+            <type name="RTSPMessage" c:type="GstRTSPMessage*"/>
+          </parameter>
+          <parameter name="timeout" transfer-ownership="none">
+            <type name="GLib.TimeVal" c:type="GTimeVal*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="poll"
+              c:identifier="gst_rtsp_connection_poll"
+              doc="Wait up to the specified @timeout for the connection to become available for
+at least one of the operations specified in @events. When the function returns
+with #GST_RTSP_OK, @revents will contain a bitmask of available operations on
+This function can be cancelled with gst_rtsp_connection_flush()."
+              version="0.10.15">
+        <return-value transfer-ownership="full">
+          <type name="RTSPResult" c:type="GstRTSPResult"/>
+        </return-value>
+        <parameters>
+          <parameter name="events" transfer-ownership="none">
+            <type name="RTSPEvent" c:type="GstRTSPEvent"/>
+          </parameter>
+          <parameter name="revents" transfer-ownership="none">
+            <type name="RTSPEvent" c:type="GstRTSPEvent*"/>
+          </parameter>
+          <parameter name="timeout" transfer-ownership="none">
+            <type name="GLib.TimeVal" c:type="GTimeVal*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="next_timeout"
+              c:identifier="gst_rtsp_connection_next_timeout"
+              doc="Calculate the next timeout for @conn, storing the result in @timeout.">
+        <return-value transfer-ownership="full">
+          <type name="RTSPResult" c:type="GstRTSPResult"/>
+        </return-value>
+        <parameters>
+          <parameter name="timeout" transfer-ownership="none">
+            <type name="GLib.TimeVal" c:type="GTimeVal*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="reset_timeout"
+              c:identifier="gst_rtsp_connection_reset_timeout"
+              doc="Reset the timeout of @conn.">
+        <return-value transfer-ownership="full">
+          <type name="RTSPResult" c:type="GstRTSPResult"/>
+        </return-value>
+      </method>
+      <method name="flush"
+              c:identifier="gst_rtsp_connection_flush"
+              doc="Start or stop the flushing action on @conn. When flushing, all current
+and future actions on @conn will return #GST_RTSP_EINTR until the connection
+is set to non-flushing mode again.">
+        <return-value transfer-ownership="full">
+          <type name="RTSPResult" c:type="GstRTSPResult"/>
+        </return-value>
+        <parameters>
+          <parameter name="flush" transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_proxy"
+              c:identifier="gst_rtsp_connection_set_proxy"
+              doc="Set the proxy host and port."
+              version="0.10.23">
+        <return-value transfer-ownership="full">
+          <type name="RTSPResult" c:type="GstRTSPResult"/>
+        </return-value>
+        <parameters>
+          <parameter name="host" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="port" transfer-ownership="none">
+            <type name="uint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_auth"
+              c:identifier="gst_rtsp_connection_set_auth"
+              doc="Configure @conn for authentication mode @method with @user and @pass as the
+user and password respectively.">
+        <return-value transfer-ownership="full">
+          <type name="RTSPResult" c:type="GstRTSPResult"/>
+        </return-value>
+        <parameters>
+          <parameter name="method" transfer-ownership="none">
+            <type name="RTSPAuthMethod" c:type="GstRTSPAuthMethod"/>
+          </parameter>
+          <parameter name="user" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="pass" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_auth_param"
+              c:identifier="gst_rtsp_connection_set_auth_param"
+              doc="Setup @conn with authentication directives. This is not necesary for
+methods #GST_RTSP_AUTH_NONE and #GST_RTSP_AUTH_BASIC. For
+#GST_RTSP_AUTH_DIGEST, directives should be taken from the digest challenge
+in the WWW-Authenticate response header and can include realm, domain,
+nonce, opaque, stale, algorithm, qop as per RFC2617."
+              version="0.10.20">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="param" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="value" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="clear_auth_params"
+              c:identifier="gst_rtsp_connection_clear_auth_params"
+              doc="Clear the list of authentication directives stored in @conn."
+              version="0.10.20">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </method>
+      <method name="set_qos_dscp"
+              c:identifier="gst_rtsp_connection_set_qos_dscp"
+              doc="Configure @conn to use the specified DSCP value."
+              version="0.10.20">
+        <return-value transfer-ownership="full">
+          <type name="RTSPResult" c:type="GstRTSPResult"/>
+        </return-value>
+        <parameters>
+          <parameter name="qos_dscp" transfer-ownership="none">
+            <type name="uint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_url"
+              c:identifier="gst_rtsp_connection_get_url"
+              doc="Retrieve the URL of the other end of @conn.
+connection is freed."
+              version="0.10.23">
+        <return-value transfer-ownership="full">
+          <type name="RTSPUrl" c:type="GstRTSPUrl*"/>
+        </return-value>
+      </method>
+      <method name="get_ip"
+              c:identifier="gst_rtsp_connection_get_ip"
+              doc="Retrieve the IP address of the other end of @conn.
+connection is closed."
+              version="0.10.20">
+        <return-value transfer-ownership="none">
+          <type name="utf8" c:type="gchar*"/>
+        </return-value>
+      </method>
+      <method name="set_ip"
+              c:identifier="gst_rtsp_connection_set_ip"
+              doc="Set the IP address of the server."
+              version="0.10.23">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="ip" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_readfd"
+              c:identifier="gst_rtsp_connection_get_readfd"
+              doc="Get the file descriptor for reading.
+descriptor remains valid until the connection is closed."
+              version="0.10.23">
+        <return-value transfer-ownership="none">
+          <type name="int" c:type="gint"/>
+        </return-value>
+      </method>
+      <method name="get_writefd"
+              c:identifier="gst_rtsp_connection_get_writefd"
+              doc="Get the file descriptor for writing.
+descriptor remains valid until the connection is closed."
+              version="0.10.23">
+        <return-value transfer-ownership="none">
+          <type name="int" c:type="gint"/>
+        </return-value>
+      </method>
+      <method name="set_http_mode"
+              c:identifier="gst_rtsp_connection_set_http_mode"
+              doc="By setting the HTTP mode to %TRUE the message parsing will support HTTP
+messages in addition to the RTSP messages. It will also disable the
+automatic handling of setting up an HTTP tunnel."
+              version="0.10.25">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="enable" transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_tunneled"
+              c:identifier="gst_rtsp_connection_set_tunneled"
+              doc="Set the HTTP tunneling state of the connection. This must be configured before
+the @conn is connected."
+              version="0.10.23">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="tunneled" transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="is_tunneled"
+              c:identifier="gst_rtsp_connection_is_tunneled"
+              doc="Get the tunneling state of the connection."
+              version="0.10.23">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+      </method>
+      <method name="get_tunnelid"
+              c:identifier="gst_rtsp_connection_get_tunnelid"
+              doc="Get the tunnel session id the connection."
+              version="0.10.23">
+        <return-value transfer-ownership="none">
+          <type name="utf8" c:type="gchar*"/>
+        </return-value>
+      </method>
+      <method name="do_tunnel"
+              c:identifier="gst_rtsp_connection_do_tunnel"
+              doc="If @conn received the first tunnel connection and @conn2 received
+the second tunnel connection, link the two connections together so that
+After this call, @conn2 cannot be used anymore and must be freed with
+gst_rtsp_connection_free().
+If @conn2 is %NULL then only the base64 decoding context will be setup for"
+              version="0.10.23">
+        <return-value transfer-ownership="full">
+          <type name="RTSPResult" c:type="GstRTSPResult"/>
+        </return-value>
+        <parameters>
+          <parameter name="conn2" transfer-ownership="none">
+            <type name="RTSPConnection" c:type="GstRTSPConnection*"/>
+          </parameter>
+        </parameters>
+      </method>
+    </record>
+    <bitfield name="RTSPEvent"
+              doc="The possible events for the connection."
+              glib:type-name="GstRTSPEvent"
+              glib:get-type="gst_rtsp_event_get_type"
+              c:type="GstRTSPEvent">
+      <member name="read"
+              value="1"
+              c:identifier="GST_RTSP_EV_READ"
+              glib:nick="read"/>
+      <member name="write"
+              value="2"
+              c:identifier="GST_RTSP_EV_WRITE"
+              glib:nick="write"/>
+    </bitfield>
+    <interface name="RTSPExtension"
+               c:type="GstRTSPExtension"
+               glib:type-name="GstRTSPExtension"
+               glib:get-type="gst_rtsp_extension_get_type"
+               glib:type-struct="RTSPExtensionInterface">
+      <virtual-method name="detect_server" invoker="detect_server">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="resp" transfer-ownership="none">
+            <type name="RTSPMessage" c:type="GstRTSPMessage*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="before_send" invoker="before_send">
+        <return-value transfer-ownership="full">
+          <type name="RTSPResult" c:type="GstRTSPResult"/>
+        </return-value>
+        <parameters>
+          <parameter name="req" transfer-ownership="none">
+            <type name="RTSPMessage" c:type="GstRTSPMessage*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="after_send" invoker="after_send">
+        <return-value transfer-ownership="full">
+          <type name="RTSPResult" c:type="GstRTSPResult"/>
+        </return-value>
+        <parameters>
+          <parameter name="req" transfer-ownership="none">
+            <type name="RTSPMessage" c:type="GstRTSPMessage*"/>
+          </parameter>
+          <parameter name="resp" transfer-ownership="none">
+            <type name="RTSPMessage" c:type="GstRTSPMessage*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="parse_sdp" invoker="parse_sdp">
+        <return-value transfer-ownership="full">
+          <type name="RTSPResult" c:type="GstRTSPResult"/>
+        </return-value>
+        <parameters>
+          <parameter name="sdp" transfer-ownership="none">
+            <type name="GstSdp.SDPMessage" c:type="GstSDPMessage*"/>
+          </parameter>
+          <parameter name="s" transfer-ownership="none">
+            <type name="Gst.Structure" c:type="GstStructure*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="setup_media" invoker="setup_media">
+        <return-value transfer-ownership="full">
+          <type name="RTSPResult" c:type="GstRTSPResult"/>
+        </return-value>
+        <parameters>
+          <parameter name="media" transfer-ownership="none">
+            <type name="GstSdp.SDPMedia" c:type="GstSDPMedia*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="configure_stream" invoker="configure_stream">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="caps" transfer-ownership="none">
+            <type name="Gst.Caps" c:type="GstCaps*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="get_transports" invoker="get_transports">
+        <return-value transfer-ownership="full">
+          <type name="RTSPResult" c:type="GstRTSPResult"/>
+        </return-value>
+        <parameters>
+          <parameter name="protocols" transfer-ownership="none">
+            <type name="RTSPLowerTrans" c:type="GstRTSPLowerTrans"/>
+          </parameter>
+          <parameter name="transport" transfer-ownership="none">
+            <array c:type="gchar**">
+              <type name="utf8"/>
+            </array>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="stream_select" invoker="stream_select">
+        <return-value transfer-ownership="full">
+          <type name="RTSPResult" c:type="GstRTSPResult"/>
+        </return-value>
+        <parameters>
+          <parameter name="url" transfer-ownership="none">
+            <type name="RTSPUrl" c:type="GstRTSPUrl*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="receive_request" invoker="receive_request">
+        <return-value transfer-ownership="full">
+          <type name="RTSPResult" c:type="GstRTSPResult"/>
+        </return-value>
+        <parameters>
+          <parameter name="req" transfer-ownership="none">
+            <type name="RTSPMessage" c:type="GstRTSPMessage*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <method name="detect_server"
+              c:identifier="gst_rtsp_extension_detect_server">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="resp" transfer-ownership="none">
+            <type name="RTSPMessage" c:type="GstRTSPMessage*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="before_send" c:identifier="gst_rtsp_extension_before_send">
+        <return-value transfer-ownership="full">
+          <type name="RTSPResult" c:type="GstRTSPResult"/>
+        </return-value>
+        <parameters>
+          <parameter name="req" transfer-ownership="none">
+            <type name="RTSPMessage" c:type="GstRTSPMessage*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="after_send" c:identifier="gst_rtsp_extension_after_send">
+        <return-value transfer-ownership="full">
+          <type name="RTSPResult" c:type="GstRTSPResult"/>
+        </return-value>
+        <parameters>
+          <parameter name="req" transfer-ownership="none">
+            <type name="RTSPMessage" c:type="GstRTSPMessage*"/>
+          </parameter>
+          <parameter name="resp" transfer-ownership="none">
+            <type name="RTSPMessage" c:type="GstRTSPMessage*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="parse_sdp" c:identifier="gst_rtsp_extension_parse_sdp">
+        <return-value transfer-ownership="full">
+          <type name="RTSPResult" c:type="GstRTSPResult"/>
+        </return-value>
+        <parameters>
+          <parameter name="sdp" transfer-ownership="none">
+            <type name="GstSdp.SDPMessage" c:type="GstSDPMessage*"/>
+          </parameter>
+          <parameter name="s" transfer-ownership="none">
+            <type name="Gst.Structure" c:type="GstStructure*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="setup_media" c:identifier="gst_rtsp_extension_setup_media">
+        <return-value transfer-ownership="full">
+          <type name="RTSPResult" c:type="GstRTSPResult"/>
+        </return-value>
+        <parameters>
+          <parameter name="media" transfer-ownership="none">
+            <type name="GstSdp.SDPMedia" c:type="GstSDPMedia*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="configure_stream"
+              c:identifier="gst_rtsp_extension_configure_stream">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="caps" transfer-ownership="none">
+            <type name="Gst.Caps" c:type="GstCaps*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_transports"
+              c:identifier="gst_rtsp_extension_get_transports">
+        <return-value transfer-ownership="full">
+          <type name="RTSPResult" c:type="GstRTSPResult"/>
+        </return-value>
+        <parameters>
+          <parameter name="protocols" transfer-ownership="none">
+            <type name="RTSPLowerTrans" c:type="GstRTSPLowerTrans"/>
+          </parameter>
+          <parameter name="transport" transfer-ownership="none">
+            <array c:type="gchar**">
+              <type name="utf8"/>
+            </array>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="stream_select"
+              c:identifier="gst_rtsp_extension_stream_select">
+        <return-value transfer-ownership="full">
+          <type name="RTSPResult" c:type="GstRTSPResult"/>
+        </return-value>
+        <parameters>
+          <parameter name="url" transfer-ownership="none">
+            <type name="RTSPUrl" c:type="GstRTSPUrl*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="receive_request"
+              c:identifier="gst_rtsp_extension_receive_request">
+        <return-value transfer-ownership="full">
+          <type name="RTSPResult" c:type="GstRTSPResult"/>
+        </return-value>
+        <parameters>
+          <parameter name="req" transfer-ownership="none">
+            <type name="RTSPMessage" c:type="GstRTSPMessage*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="send" c:identifier="gst_rtsp_extension_send">
+        <return-value transfer-ownership="full">
+          <type name="RTSPResult" c:type="GstRTSPResult"/>
+        </return-value>
+        <parameters>
+          <parameter name="req" transfer-ownership="none">
+            <type name="RTSPMessage" c:type="GstRTSPMessage*"/>
+          </parameter>
+          <parameter name="resp" transfer-ownership="none">
+            <type name="RTSPMessage" c:type="GstRTSPMessage*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <glib:signal name="send">
+        <return-value transfer-ownership="full">
+          <type name="RTSPResult" c:type="GstRTSPResult"/>
+        </return-value>
+        <parameters>
+          <parameter name="object" transfer-ownership="none">
+            <type name="any" c:type="gpointer"/>
+          </parameter>
+          <parameter name="p0" transfer-ownership="none">
+            <type name="any" c:type="gpointer"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+    </interface>
+    <record name="RTSPExtensionInterface"
+            c:type="GstRTSPExtensionInterface"
+            glib:is-gtype-struct-for="RTSPExtension">
+      <field name="parent">
+        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
+      </field>
+      <field name="detect_server">
+        <callback name="detect_server" c:type="detect_server">
+          <return-value transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="ext" transfer-ownership="none">
+              <type name="RTSPExtension" c:type="GstRTSPExtension*"/>
+            </parameter>
+            <parameter name="resp" transfer-ownership="none">
+              <type name="RTSPMessage" c:type="GstRTSPMessage*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="before_send">
+        <callback name="before_send" c:type="before_send">
+          <return-value transfer-ownership="full">
+            <type name="RTSPResult" c:type="GstRTSPResult"/>
+          </return-value>
+          <parameters>
+            <parameter name="ext" transfer-ownership="none">
+              <type name="RTSPExtension" c:type="GstRTSPExtension*"/>
+            </parameter>
+            <parameter name="req" transfer-ownership="none">
+              <type name="RTSPMessage" c:type="GstRTSPMessage*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="after_send">
+        <callback name="after_send" c:type="after_send">
+          <return-value transfer-ownership="full">
+            <type name="RTSPResult" c:type="GstRTSPResult"/>
+          </return-value>
+          <parameters>
+            <parameter name="ext" transfer-ownership="none">
+              <type name="RTSPExtension" c:type="GstRTSPExtension*"/>
+            </parameter>
+            <parameter name="req" transfer-ownership="none">
+              <type name="RTSPMessage" c:type="GstRTSPMessage*"/>
+            </parameter>
+            <parameter name="resp" transfer-ownership="none">
+              <type name="RTSPMessage" c:type="GstRTSPMessage*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="parse_sdp">
+        <callback name="parse_sdp" c:type="parse_sdp">
+          <return-value transfer-ownership="full">
+            <type name="RTSPResult" c:type="GstRTSPResult"/>
+          </return-value>
+          <parameters>
+            <parameter name="ext" transfer-ownership="none">
+              <type name="RTSPExtension" c:type="GstRTSPExtension*"/>
+            </parameter>
+            <parameter name="sdp" transfer-ownership="none">
+              <type name="GstSdp.SDPMessage" c:type="GstSDPMessage*"/>
+            </parameter>
+            <parameter name="s" transfer-ownership="none">
+              <type name="Gst.Structure" c:type="GstStructure*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="setup_media">
+        <callback name="setup_media" c:type="setup_media">
+          <return-value transfer-ownership="full">
+            <type name="RTSPResult" c:type="GstRTSPResult"/>
+          </return-value>
+          <parameters>
+            <parameter name="ext" transfer-ownership="none">
+              <type name="RTSPExtension" c:type="GstRTSPExtension*"/>
+            </parameter>
+            <parameter name="media" transfer-ownership="none">
+              <type name="GstSdp.SDPMedia" c:type="GstSDPMedia*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="configure_stream">
+        <callback name="configure_stream" c:type="configure_stream">
+          <return-value transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="ext" transfer-ownership="none">
+              <type name="RTSPExtension" c:type="GstRTSPExtension*"/>
+            </parameter>
+            <parameter name="caps" transfer-ownership="none">
+              <type name="Gst.Caps" c:type="GstCaps*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="get_transports">
+        <callback name="get_transports" c:type="get_transports">
+          <return-value transfer-ownership="full">
+            <type name="RTSPResult" c:type="GstRTSPResult"/>
+          </return-value>
+          <parameters>
+            <parameter name="ext" transfer-ownership="none">
+              <type name="RTSPExtension" c:type="GstRTSPExtension*"/>
+            </parameter>
+            <parameter name="protocols" transfer-ownership="none">
+              <type name="RTSPLowerTrans" c:type="GstRTSPLowerTrans"/>
+            </parameter>
+            <parameter name="transport" transfer-ownership="none">
+              <array c:type="gchar**">
+                <type name="utf8"/>
+              </array>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="stream_select">
+        <callback name="stream_select" c:type="stream_select">
+          <return-value transfer-ownership="full">
+            <type name="RTSPResult" c:type="GstRTSPResult"/>
+          </return-value>
+          <parameters>
+            <parameter name="ext" transfer-ownership="none">
+              <type name="RTSPExtension" c:type="GstRTSPExtension*"/>
+            </parameter>
+            <parameter name="url" transfer-ownership="none">
+              <type name="RTSPUrl" c:type="GstRTSPUrl*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="send">
+        <callback name="send" c:type="send">
+          <return-value transfer-ownership="full">
+            <type name="RTSPResult" c:type="GstRTSPResult"/>
+          </return-value>
+          <parameters>
+            <parameter name="ext" transfer-ownership="none">
+              <type name="RTSPExtension" c:type="GstRTSPExtension*"/>
+            </parameter>
+            <parameter name="req" transfer-ownership="none">
+              <type name="RTSPMessage" c:type="GstRTSPMessage*"/>
+            </parameter>
+            <parameter name="resp" transfer-ownership="none">
+              <type name="RTSPMessage" c:type="GstRTSPMessage*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="receive_request">
+        <callback name="receive_request" c:type="receive_request">
+          <return-value transfer-ownership="full">
+            <type name="RTSPResult" c:type="GstRTSPResult"/>
+          </return-value>
+          <parameters>
+            <parameter name="ext" transfer-ownership="none">
+              <type name="RTSPExtension" c:type="GstRTSPExtension*"/>
+            </parameter>
+            <parameter name="req" transfer-ownership="none">
+              <type name="RTSPMessage" c:type="GstRTSPMessage*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="_gst_reserved">
+        <array zero-terminated="0" c:type="gpointer" fixed-size="3">
+          <type name="any"/>
+        </array>
+      </field>
+    </record>
+    <enumeration name="RTSPFamily"
+                 doc="The possible network families."
+                 glib:type-name="GstRTSPFamily"
+                 glib:get-type="gst_rtsp_family_get_type"
+                 c:type="GstRTSPFamily">
+      <member name="none"
+              value="0"
+              c:identifier="GST_RTSP_FAM_NONE"
+              glib:nick="none"/>
+      <member name="inet"
+              value="1"
+              c:identifier="GST_RTSP_FAM_INET"
+              glib:nick="inet"/>
+      <member name="inet6"
+              value="2"
+              c:identifier="GST_RTSP_FAM_INET6"
+              glib:nick="inet6"/>
+    </enumeration>
+    <enumeration name="RTSPHeaderField"
+                 glib:type-name="GstRTSPHeaderField"
+                 glib:get-type="gst_rtsp_header_field_get_type"
+                 c:type="GstRTSPHeaderField">
+      <member name="invalid"
+              value="0"
+              c:identifier="GST_RTSP_HDR_INVALID"
+              glib:nick="invalid"/>
+      <member name="accept"
+              value="1"
+              c:identifier="GST_RTSP_HDR_ACCEPT"
+              glib:nick="accept"/>
+      <member name="accept_encoding"
+              value="2"
+              c:identifier="GST_RTSP_HDR_ACCEPT_ENCODING"
+              glib:nick="accept-encoding"/>
+      <member name="accept_language"
+              value="3"
+              c:identifier="GST_RTSP_HDR_ACCEPT_LANGUAGE"
+              glib:nick="accept-language"/>
+      <member name="allow"
+              value="4"
+              c:identifier="GST_RTSP_HDR_ALLOW"
+              glib:nick="allow"/>
+      <member name="authorization"
+              value="5"
+              c:identifier="GST_RTSP_HDR_AUTHORIZATION"
+              glib:nick="authorization"/>
+      <member name="bandwidth"
+              value="6"
+              c:identifier="GST_RTSP_HDR_BANDWIDTH"
+              glib:nick="bandwidth"/>
+      <member name="blocksize"
+              value="7"
+              c:identifier="GST_RTSP_HDR_BLOCKSIZE"
+              glib:nick="blocksize"/>
+      <member name="cache_control"
+              value="8"
+              c:identifier="GST_RTSP_HDR_CACHE_CONTROL"
+              glib:nick="cache-control"/>
+      <member name="conference"
+              value="9"
+              c:identifier="GST_RTSP_HDR_CONFERENCE"
+              glib:nick="conference"/>
+      <member name="connection"
+              value="10"
+              c:identifier="GST_RTSP_HDR_CONNECTION"
+              glib:nick="connection"/>
+      <member name="content_base"
+              value="11"
+              c:identifier="GST_RTSP_HDR_CONTENT_BASE"
+              glib:nick="content-base"/>
+      <member name="content_encoding"
+              value="12"
+              c:identifier="GST_RTSP_HDR_CONTENT_ENCODING"
+              glib:nick="content-encoding"/>
+      <member name="content_language"
+              value="13"
+              c:identifier="GST_RTSP_HDR_CONTENT_LANGUAGE"
+              glib:nick="content-language"/>
+      <member name="content_length"
+              value="14"
+              c:identifier="GST_RTSP_HDR_CONTENT_LENGTH"
+              glib:nick="content-length"/>
+      <member name="content_location"
+              value="15"
+              c:identifier="GST_RTSP_HDR_CONTENT_LOCATION"
+              glib:nick="content-location"/>
+      <member name="content_type"
+              value="16"
+              c:identifier="GST_RTSP_HDR_CONTENT_TYPE"
+              glib:nick="content-type"/>
+      <member name="cseq"
+              value="17"
+              c:identifier="GST_RTSP_HDR_CSEQ"
+              glib:nick="cseq"/>
+      <member name="date"
+              value="18"
+              c:identifier="GST_RTSP_HDR_DATE"
+              glib:nick="date"/>
+      <member name="expires"
+              value="19"
+              c:identifier="GST_RTSP_HDR_EXPIRES"
+              glib:nick="expires"/>
+      <member name="from"
+              value="20"
+              c:identifier="GST_RTSP_HDR_FROM"
+              glib:nick="from"/>
+      <member name="if_modified_since"
+              value="21"
+              c:identifier="GST_RTSP_HDR_IF_MODIFIED_SINCE"
+              glib:nick="if-modified-since"/>
+      <member name="last_modified"
+              value="22"
+              c:identifier="GST_RTSP_HDR_LAST_MODIFIED"
+              glib:nick="last-modified"/>
+      <member name="proxy_authenticate"
+              value="23"
+              c:identifier="GST_RTSP_HDR_PROXY_AUTHENTICATE"
+              glib:nick="proxy-authenticate"/>
+      <member name="proxy_require"
+              value="24"
+              c:identifier="GST_RTSP_HDR_PROXY_REQUIRE"
+              glib:nick="proxy-require"/>
+      <member name="public"
+              value="25"
+              c:identifier="GST_RTSP_HDR_PUBLIC"
+              glib:nick="public"/>
+      <member name="range"
+              value="26"
+              c:identifier="GST_RTSP_HDR_RANGE"
+              glib:nick="range"/>
+      <member name="referer"
+              value="27"
+              c:identifier="GST_RTSP_HDR_REFERER"
+              glib:nick="referer"/>
+      <member name="require"
+              value="28"
+              c:identifier="GST_RTSP_HDR_REQUIRE"
+              glib:nick="require"/>
+      <member name="retry_after"
+              value="29"
+              c:identifier="GST_RTSP_HDR_RETRY_AFTER"
+              glib:nick="retry-after"/>
+      <member name="rtp_info"
+              value="30"
+              c:identifier="GST_RTSP_HDR_RTP_INFO"
+              glib:nick="rtp-info"/>
+      <member name="scale"
+              value="31"
+              c:identifier="GST_RTSP_HDR_SCALE"
+              glib:nick="scale"/>
+      <member name="session"
+              value="32"
+              c:identifier="GST_RTSP_HDR_SESSION"
+              glib:nick="session"/>
+      <member name="server"
+              value="33"
+              c:identifier="GST_RTSP_HDR_SERVER"
+              glib:nick="server"/>
+      <member name="speed"
+              value="34"
+              c:identifier="GST_RTSP_HDR_SPEED"
+              glib:nick="speed"/>
+      <member name="transport"
+              value="35"
+              c:identifier="GST_RTSP_HDR_TRANSPORT"
+              glib:nick="transport"/>
+      <member name="unsupported"
+              value="36"
+              c:identifier="GST_RTSP_HDR_UNSUPPORTED"
+              glib:nick="unsupported"/>
+      <member name="user_agent"
+              value="37"
+              c:identifier="GST_RTSP_HDR_USER_AGENT"
+              glib:nick="user-agent"/>
+      <member name="via"
+              value="38"
+              c:identifier="GST_RTSP_HDR_VIA"
+              glib:nick="via"/>
+      <member name="www_authenticate"
+              value="39"
+              c:identifier="GST_RTSP_HDR_WWW_AUTHENTICATE"
+              glib:nick="www-authenticate"/>
+      <member name="client_challenge"
+              value="40"
+              c:identifier="GST_RTSP_HDR_CLIENT_CHALLENGE"
+              glib:nick="client-challenge"/>
+      <member name="real_challenge1"
+              value="41"
+              c:identifier="GST_RTSP_HDR_REAL_CHALLENGE1"
+              glib:nick="real-challenge1"/>
+      <member name="real_challenge2"
+              value="42"
+              c:identifier="GST_RTSP_HDR_REAL_CHALLENGE2"
+              glib:nick="real-challenge2"/>
+      <member name="real_challenge3"
+              value="43"
+              c:identifier="GST_RTSP_HDR_REAL_CHALLENGE3"
+              glib:nick="real-challenge3"/>
+      <member name="subscribe"
+              value="44"
+              c:identifier="GST_RTSP_HDR_SUBSCRIBE"
+              glib:nick="subscribe"/>
+      <member name="alert"
+              value="45"
+              c:identifier="GST_RTSP_HDR_ALERT"
+              glib:nick="alert"/>
+      <member name="client_id"
+              value="46"
+              c:identifier="GST_RTSP_HDR_CLIENT_ID"
+              glib:nick="client-id"/>
+      <member name="company_id"
+              value="47"
+              c:identifier="GST_RTSP_HDR_COMPANY_ID"
+              glib:nick="company-id"/>
+      <member name="guid"
+              value="48"
+              c:identifier="GST_RTSP_HDR_GUID"
+              glib:nick="guid"/>
+      <member name="region_data"
+              value="49"
+              c:identifier="GST_RTSP_HDR_REGION_DATA"
+              glib:nick="region-data"/>
+      <member name="max_asm_width"
+              value="50"
+              c:identifier="GST_RTSP_HDR_MAX_ASM_WIDTH"
+              glib:nick="max-asm-width"/>
+      <member name="language"
+              value="51"
+              c:identifier="GST_RTSP_HDR_LANGUAGE"
+              glib:nick="language"/>
+      <member name="player_start_time"
+              value="52"
+              c:identifier="GST_RTSP_HDR_PLAYER_START_TIME"
+              glib:nick="player-start-time"/>
+      <member name="location"
+              value="53"
+              c:identifier="GST_RTSP_HDR_LOCATION"
+              glib:nick="location"/>
+      <member name="etag"
+              value="54"
+              c:identifier="GST_RTSP_HDR_ETAG"
+              glib:nick="etag"/>
+      <member name="if_match"
+              value="55"
+              c:identifier="GST_RTSP_HDR_IF_MATCH"
+              glib:nick="if-match"/>
+      <member name="accept_charset"
+              value="56"
+              c:identifier="GST_RTSP_HDR_ACCEPT_CHARSET"
+              glib:nick="accept-charset"/>
+      <member name="supported"
+              value="57"
+              c:identifier="GST_RTSP_HDR_SUPPORTED"
+              glib:nick="supported"/>
+      <member name="vary"
+              value="58"
+              c:identifier="GST_RTSP_HDR_VARY"
+              glib:nick="vary"/>
+      <member name="x_accelerate_streaming"
+              value="59"
+              c:identifier="GST_RTSP_HDR_X_ACCELERATE_STREAMING"
+              glib:nick="x-accelerate-streaming"/>
+      <member name="x_accept_authent"
+              value="60"
+              c:identifier="GST_RTSP_HDR_X_ACCEPT_AUTHENT"
+              glib:nick="x-accept-authent"/>
+      <member name="x_accept_proxy_authent"
+              value="61"
+              c:identifier="GST_RTSP_HDR_X_ACCEPT_PROXY_AUTHENT"
+              glib:nick="x-accept-proxy-authent"/>
+      <member name="x_broadcast_id"
+              value="62"
+              c:identifier="GST_RTSP_HDR_X_BROADCAST_ID"
+              glib:nick="x-broadcast-id"/>
+      <member name="x_burst_streaming"
+              value="63"
+              c:identifier="GST_RTSP_HDR_X_BURST_STREAMING"
+              glib:nick="x-burst-streaming"/>
+      <member name="x_notice"
+              value="64"
+              c:identifier="GST_RTSP_HDR_X_NOTICE"
+              glib:nick="x-notice"/>
+      <member name="x_player_lag_time"
+              value="65"
+              c:identifier="GST_RTSP_HDR_X_PLAYER_LAG_TIME"
+              glib:nick="x-player-lag-time"/>
+      <member name="x_playlist"
+              value="66"
+              c:identifier="GST_RTSP_HDR_X_PLAYLIST"
+              glib:nick="x-playlist"/>
+      <member name="x_playlist_change_notice"
+              value="67"
+              c:identifier="GST_RTSP_HDR_X_PLAYLIST_CHANGE_NOTICE"
+              glib:nick="x-playlist-change-notice"/>
+      <member name="x_playlist_gen_id"
+              value="68"
+              c:identifier="GST_RTSP_HDR_X_PLAYLIST_GEN_ID"
+              glib:nick="x-playlist-gen-id"/>
+      <member name="x_playlist_seek_id"
+              value="69"
+              c:identifier="GST_RTSP_HDR_X_PLAYLIST_SEEK_ID"
+              glib:nick="x-playlist-seek-id"/>
+      <member name="x_proxy_client_agent"
+              value="70"
+              c:identifier="GST_RTSP_HDR_X_PROXY_CLIENT_AGENT"
+              glib:nick="x-proxy-client-agent"/>
+      <member name="x_proxy_client_verb"
+              value="71"
+              c:identifier="GST_RTSP_HDR_X_PROXY_CLIENT_VERB"
+              glib:nick="x-proxy-client-verb"/>
+      <member name="x_receding_playlistchange"
+              value="72"
+              c:identifier="GST_RTSP_HDR_X_RECEDING_PLAYLISTCHANGE"
+              glib:nick="x-receding-playlistchange"/>
+      <member name="x_rtp_info"
+              value="73"
+              c:identifier="GST_RTSP_HDR_X_RTP_INFO"
+              glib:nick="x-rtp-info"/>
+      <member name="x_startupprofile"
+              value="74"
+              c:identifier="GST_RTSP_HDR_X_STARTUPPROFILE"
+              glib:nick="x-startupprofile"/>
+      <member name="timestamp"
+              value="75"
+              c:identifier="GST_RTSP_HDR_TIMESTAMP"
+              glib:nick="timestamp"/>
+      <member name="authentication_info"
+              value="76"
+              c:identifier="GST_RTSP_HDR_AUTHENTICATION_INFO"
+              glib:nick="authentication-info"/>
+      <member name="host"
+              value="77"
+              c:identifier="GST_RTSP_HDR_HOST"
+              glib:nick="host"/>
+      <member name="pragma"
+              value="78"
+              c:identifier="GST_RTSP_HDR_PRAGMA"
+              glib:nick="pragma"/>
+      <member name="x_server_ip_address"
+              value="79"
+              c:identifier="GST_RTSP_HDR_X_SERVER_IP_ADDRESS"
+              glib:nick="x-server-ip-address"/>
+      <member name="x_sessioncookie"
+              value="80"
+              c:identifier="GST_RTSP_HDR_X_SESSIONCOOKIE"
+              glib:nick="x-sessioncookie"/>
+      <member name="last"
+              value="81"
+              c:identifier="GST_RTSP_HDR_LAST"
+              glib:nick="last"/>
+    </enumeration>
+    <bitfield name="RTSPLowerTrans"
+              doc="The different transport methods."
+              glib:type-name="GstRTSPLowerTrans"
+              glib:get-type="gst_rtsp_lower_trans_get_type"
+              c:type="GstRTSPLowerTrans">
+      <member name="udp_unicast"
+              value="1"
+              c:identifier="UDP Unicast Mode"
+              glib:nick="udp-unicast"/>
+      <member name="udp_multicast"
+              value="2"
+              c:identifier="UDP Multicast Mode"
+              glib:nick="udp-multicast"/>
+      <member name="tcp"
+              value="4"
+              c:identifier="TCP interleaved mode"
+              glib:nick="tcp"/>
+      <member name="http"
+              value="16"
+              c:identifier="HTTP tunneled mode"
+              glib:nick="http"/>
+    </bitfield>
+    <record name="RTSPMessage"
+            c:type="GstRTSPMessage"
+            doc="An RTSP message containing request, response or data messages. Depending on
+the @type, the appropriate structure may be accessed.">
+      <field name="type" writable="1">
+        <type name="RTSPMsgType" c:type="GstRTSPMsgType"/>
+      </field>
+      <union name="type_data" c:type="type_data">
+        <record name="request" c:type="request">
+          <field name="method" writable="1">
+            <type name="RTSPMethod" c:type="GstRTSPMethod"/>
+          </field>
+          <field name="uri" writable="1">
+            <type name="utf8" c:type="gchar*"/>
+          </field>
+          <field name="version" writable="1">
+            <type name="RTSPVersion" c:type="GstRTSPVersion"/>
+          </field>
+        </record>
+        <record name="response" c:type="response">
+          <field name="code" writable="1">
+            <type name="RTSPStatusCode" c:type="GstRTSPStatusCode"/>
+          </field>
+          <field name="reason" writable="1">
+            <type name="utf8" c:type="gchar*"/>
+          </field>
+          <field name="version" writable="1">
+            <type name="RTSPVersion" c:type="GstRTSPVersion"/>
+          </field>
+        </record>
+        <record name="data" c:type="data">
+          <field name="channel" writable="1">
+            <type name="uint8" c:type="guint8"/>
+          </field>
+        </record>
+      </union>
+      <field name="hdr_fields" writable="1">
+        <type name="GLib.Array" c:type="GArray*"/>
+      </field>
+      <field name="body" writable="1">
+        <type name="any" c:type="guint8*"/>
+      </field>
+      <field name="body_size" writable="1">
+        <type name="uint" c:type="guint"/>
+      </field>
+      <constructor name="new"
+                   c:identifier="gst_rtsp_message_new"
+                   doc="Create a new initialized #GstRTSPMessage. Free with gst_rtsp_message_free().">
+        <return-value transfer-ownership="full">
+          <type name="RTSPMessage" c:type="GstRTSPResult"/>
+        </return-value>
+        <parameters>
+          <parameter name="msg" transfer-ownership="none">
+            <type name="RTSPMessage" c:type="GstRTSPMessage**"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <constructor name="new_request"
+                   c:identifier="gst_rtsp_message_new_request"
+                   doc="Create a new #GstRTSPMessage with @method and @uri and store the result
+request message in @msg. Free with gst_rtsp_message_free().">
+        <return-value transfer-ownership="full">
+          <type name="RTSPMessage" c:type="GstRTSPResult"/>
+        </return-value>
+        <parameters>
+          <parameter name="msg" transfer-ownership="none">
+            <type name="RTSPMessage" c:type="GstRTSPMessage**"/>
+          </parameter>
+          <parameter name="method" transfer-ownership="none">
+            <type name="RTSPMethod" c:type="GstRTSPMethod"/>
+          </parameter>
+          <parameter name="uri" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <constructor name="new_response"
+                   c:identifier="gst_rtsp_message_new_response"
+                   doc="Create a new response #GstRTSPMessage with @code and @reason and store the
+result message in @msg. Free with gst_rtsp_message_free().
+When @reason is #NULL, the default reason for @code will be used.
+When @request is not #NULL, the relevant headers will be copied to the new
+response message.">
+        <return-value transfer-ownership="full">
+          <type name="RTSPMessage" c:type="GstRTSPResult"/>
+        </return-value>
+        <parameters>
+          <parameter name="msg" transfer-ownership="none">
+            <type name="RTSPMessage" c:type="GstRTSPMessage**"/>
+          </parameter>
+          <parameter name="code" transfer-ownership="none">
+            <type name="RTSPStatusCode" c:type="GstRTSPStatusCode"/>
+          </parameter>
+          <parameter name="reason" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="request" transfer-ownership="none">
+            <type name="RTSPMessage" c:type="GstRTSPMessage*"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <constructor name="new_data"
+                   c:identifier="gst_rtsp_message_new_data"
+                   doc="Create a new data #GstRTSPMessage with @channel and store the
+result message in @msg. Free with gst_rtsp_message_free().">
+        <return-value transfer-ownership="full">
+          <type name="RTSPMessage" c:type="GstRTSPResult"/>
+        </return-value>
+        <parameters>
+          <parameter name="msg" transfer-ownership="none">
+            <type name="RTSPMessage" c:type="GstRTSPMessage**"/>
+          </parameter>
+          <parameter name="channel" transfer-ownership="none">
+            <type name="uint8" c:type="guint8"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <method name="init"
+              c:identifier="gst_rtsp_message_init"
+              doc="Initialize @msg. This function is mostly used when @msg is allocated on the
+stack. The reverse operation of this is gst_rtsp_message_unset().">
+        <return-value transfer-ownership="full">
+          <type name="RTSPResult" c:type="GstRTSPResult"/>
+        </return-value>
+      </method>
+      <method name="unset"
+              c:identifier="gst_rtsp_message_unset"
+              doc="Unset the contents of @msg so that it becomes an uninitialized
+#GstRTSPMessage again. This function is mostly used in combination with
+gst_rtsp_message_init_request(), gst_rtsp_message_init_response() and
+gst_rtsp_message_init_data() on stack allocated #GstRTSPMessage structures.">
+        <return-value transfer-ownership="full">
+          <type name="RTSPResult" c:type="GstRTSPResult"/>
+        </return-value>
+      </method>
+      <method name="free"
+              c:identifier="gst_rtsp_message_free"
+              doc="Free the memory used by @msg.">
+        <return-value transfer-ownership="full">
+          <type name="RTSPResult" c:type="GstRTSPResult"/>
+        </return-value>
+      </method>
+      <method name="init_request"
+              c:identifier="gst_rtsp_message_init_request"
+              doc="Initialize @msg as a request message with @method and @uri. To clear @msg
+again, use gst_rtsp_message_unset().">
+        <return-value transfer-ownership="full">
+          <type name="RTSPResult" c:type="GstRTSPResult"/>
+        </return-value>
+        <parameters>
+          <parameter name="method" transfer-ownership="none">
+            <type name="RTSPMethod" c:type="GstRTSPMethod"/>
+          </parameter>
+          <parameter name="uri" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="parse_request"
+              c:identifier="gst_rtsp_message_parse_request"
+              doc="Parse the request message @msg and store the values @method, @uri and
+value.">
+        <return-value transfer-ownership="full">
+          <type name="RTSPResult" c:type="GstRTSPResult"/>
+        </return-value>
+        <parameters>
+          <parameter name="method" transfer-ownership="none">
+            <type name="RTSPMethod" c:type="GstRTSPMethod*"/>
+          </parameter>
+          <parameter name="uri" transfer-ownership="none">
+            <array c:type="gchar**">
+              <type name="utf8"/>
+            </array>
+          </parameter>
+          <parameter name="version" transfer-ownership="none">
+            <type name="RTSPVersion" c:type="GstRTSPVersion*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="init_response"
+              c:identifier="gst_rtsp_message_init_response"
+              doc="Initialize @msg with @code and @reason.
+When @reason is #NULL, the default reason for @code will be used.
+When @request is not #NULL, the relevant headers will be copied to the new
+response message.">
+        <return-value transfer-ownership="full">
+          <type name="RTSPResult" c:type="GstRTSPResult"/>
+        </return-value>
+        <parameters>
+          <parameter name="code" transfer-ownership="none">
+            <type name="RTSPStatusCode" c:type="GstRTSPStatusCode"/>
+          </parameter>
+          <parameter name="reason" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="request" transfer-ownership="none">
+            <type name="RTSPMessage" c:type="GstRTSPMessage*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="parse_response"
+              c:identifier="gst_rtsp_message_parse_response"
+              doc="Parse the response message @msg and store the values @code, @reason and
+value.">
+        <return-value transfer-ownership="full">
+          <type name="RTSPResult" c:type="GstRTSPResult"/>
+        </return-value>
+        <parameters>
+          <parameter name="code" transfer-ownership="none">
+            <type name="RTSPStatusCode" c:type="GstRTSPStatusCode*"/>
+          </parameter>
+          <parameter name="reason" transfer-ownership="none">
+            <array c:type="gchar**">
+              <type name="utf8"/>
+            </array>
+          </parameter>
+          <parameter name="version" transfer-ownership="none">
+            <type name="RTSPVersion" c:type="GstRTSPVersion*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="init_data"
+              c:identifier="gst_rtsp_message_init_data"
+              doc="Initialize a new data #GstRTSPMessage for @channel.">
+        <return-value transfer-ownership="full">
+          <type name="RTSPResult" c:type="GstRTSPResult"/>
+        </return-value>
+        <parameters>
+          <parameter name="channel" transfer-ownership="none">
+            <type name="uint8" c:type="guint8"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="parse_data"
+              c:identifier="gst_rtsp_message_parse_data"
+              doc="Parse the data message @msg and store the channel in @channel.">
+        <return-value transfer-ownership="full">
+          <type name="RTSPResult" c:type="GstRTSPResult"/>
+        </return-value>
+        <parameters>
+          <parameter name="channel" transfer-ownership="none">
+            <array c:type="guint8*">
+              <type name="uint8"/>
+            </array>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="add_header"
+              c:identifier="gst_rtsp_message_add_header"
+              doc="Add a header with key @field and @value to @msg. This function takes a copy
+of @value.">
+        <return-value transfer-ownership="full">
+          <type name="RTSPResult" c:type="GstRTSPResult"/>
+        </return-value>
+        <parameters>
+          <parameter name="field" transfer-ownership="none">
+            <type name="RTSPHeaderField" c:type="GstRTSPHeaderField"/>
+          </parameter>
+          <parameter name="value" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="take_header"
+              c:identifier="gst_rtsp_message_take_header"
+              doc="Add a header with key @field and @value to @msg. This function takes
+ownership of @value."
+              version="0.10.23">
+        <return-value transfer-ownership="full">
+          <type name="RTSPResult" c:type="GstRTSPResult"/>
+        </return-value>
+        <parameters>
+          <parameter name="field" transfer-ownership="none">
+            <type name="RTSPHeaderField" c:type="GstRTSPHeaderField"/>
+          </parameter>
+          <parameter name="value" transfer-ownership="full">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="remove_header"
+              c:identifier="gst_rtsp_message_remove_header"
+              doc="Remove the @indx header with key @field from @msg. If @indx equals -1, all
+headers will be removed.">
+        <return-value transfer-ownership="full">
+          <type name="RTSPResult" c:type="GstRTSPResult"/>
+        </return-value>
+        <parameters>
+          <parameter name="field" transfer-ownership="none">
+            <type name="RTSPHeaderField" c:type="GstRTSPHeaderField"/>
+          </parameter>
+          <parameter name="indx" transfer-ownership="none">
+            <type name="int" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_header"
+              c:identifier="gst_rtsp_message_get_header"
+              doc="Get the @indx header value with key @field from @msg. The result in @value
+stays valid as long as it remains present in @msg.
+was not found.">
+        <return-value transfer-ownership="full">
+          <type name="RTSPResult" c:type="GstRTSPResult"/>
+        </return-value>
+        <parameters>
+          <parameter name="field" transfer-ownership="none">
+            <type name="RTSPHeaderField" c:type="GstRTSPHeaderField"/>
+          </parameter>
+          <parameter name="value" transfer-ownership="none">
+            <array c:type="gchar**">
+              <type name="utf8"/>
+            </array>
+          </parameter>
+          <parameter name="indx" transfer-ownership="none">
+            <type name="int" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="append_headers"
+              c:identifier="gst_rtsp_message_append_headers"
+              doc="Append the currently configured headers in @msg to the #GString @str suitable
+for transmission.">
+        <return-value transfer-ownership="full">
+          <type name="RTSPResult" c:type="GstRTSPResult"/>
+        </return-value>
+        <parameters>
+          <parameter name="str" transfer-ownership="none">
+            <type name="GLib.String" c:type="GString*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_body"
+              c:identifier="gst_rtsp_message_set_body"
+              doc="Set the body of @msg to a copy of @data.">
+        <return-value transfer-ownership="full">
+          <type name="RTSPResult" c:type="GstRTSPResult"/>
+        </return-value>
+        <parameters>
+          <parameter name="data" transfer-ownership="none">
+            <array c:type="guint8*">
+              <type name="uint8"/>
+            </array>
+          </parameter>
+          <parameter name="size" transfer-ownership="none">
+            <type name="uint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="take_body"
+              c:identifier="gst_rtsp_message_take_body"
+              doc="Set the body of @msg to @data and @size. This method takes ownership of">
+        <return-value transfer-ownership="full">
+          <type name="RTSPResult" c:type="GstRTSPResult"/>
+        </return-value>
+        <parameters>
+          <parameter name="data" transfer-ownership="none">
+            <array c:type="guint8*">
+              <type name="uint8"/>
+            </array>
+          </parameter>
+          <parameter name="size" transfer-ownership="none">
+            <type name="uint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_body"
+              c:identifier="gst_rtsp_message_get_body"
+              doc="Get the body of @msg. @data remains valid for as long as @msg is valid and
+unchanged.">
+        <return-value transfer-ownership="full">
+          <type name="RTSPResult" c:type="GstRTSPResult"/>
+        </return-value>
+        <parameters>
+          <parameter name="data" direction="out" transfer-ownership="full">
+            <type name="uint8" c:type="guint8**"/>
+          </parameter>
+          <parameter name="size" direction="out" transfer-ownership="full">
+            <type name="uint" c:type="guint*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="steal_body"
+              c:identifier="gst_rtsp_message_steal_body"
+              doc="Take the body of @msg and store it in @data and @size. After this method,
+the body and size of @msg will be set to #NULL and 0 respectively.">
+        <return-value transfer-ownership="full">
+          <type name="RTSPResult" c:type="GstRTSPResult"/>
+        </return-value>
+        <parameters>
+          <parameter name="data" direction="out" transfer-ownership="full">
+            <type name="uint8" c:type="guint8**"/>
+          </parameter>
+          <parameter name="size" direction="out" transfer-ownership="full">
+            <type name="uint" c:type="guint*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="dump"
+              c:identifier="gst_rtsp_message_dump"
+              doc="Dump the contents of @msg to stdout.">
+        <return-value transfer-ownership="full">
+          <type name="RTSPResult" c:type="GstRTSPResult"/>
+        </return-value>
+      </method>
+    </record>
+    <bitfield name="RTSPMethod"
+              doc="The different supported RTSP methods."
+              glib:type-name="GstRTSPMethod"
+              glib:get-type="gst_rtsp_method_get_type"
+              c:type="GstRTSPMethod">
+      <member name="invalid"
+              value="0"
+              c:identifier="GST_RTSP_INVALID"
+              glib:nick="invalid"/>
+      <member name="describe"
+              value="1"
+              c:identifier="GST_RTSP_DESCRIBE"
+              glib:nick="describe"/>
+      <member name="announce"
+              value="2"
+              c:identifier="GST_RTSP_ANNOUNCE"
+              glib:nick="announce"/>
+      <member name="get_parameter"
+              value="4"
+              c:identifier="GST_RTSP_GET_PARAMETER"
+              glib:nick="get-parameter"/>
+      <member name="options"
+              value="8"
+              c:identifier="GST_RTSP_OPTIONS"
+              glib:nick="options"/>
+      <member name="pause"
+              value="16"
+              c:identifier="GST_RTSP_PAUSE"
+              glib:nick="pause"/>
+      <member name="play"
+              value="32"
+              c:identifier="GST_RTSP_PLAY"
+              glib:nick="play"/>
+      <member name="record"
+              value="64"
+              c:identifier="GST_RTSP_RECORD"
+              glib:nick="record"/>
+      <member name="redirect"
+              value="128"
+              c:identifier="GST_RTSP_REDIRECT"
+              glib:nick="redirect"/>
+      <member name="setup"
+              value="256"
+              c:identifier="GST_RTSP_SETUP"
+              glib:nick="setup"/>
+      <member name="set_parameter"
+              value="512"
+              c:identifier="GST_RTSP_SET_PARAMETER"
+              glib:nick="set-parameter"/>
+      <member name="teardown"
+              value="1024"
+              c:identifier="GST_RTSP_TEARDOWN"
+              glib:nick="teardown"/>
+      <member name="get"
+              value="2048"
+              c:identifier="GST_RTSP_GET"
+              glib:nick="get"/>
+      <member name="post"
+              value="4096"
+              c:identifier="GST_RTSP_POST"
+              glib:nick="post"/>
+    </bitfield>
+    <enumeration name="RTSPMsgType"
+                 doc="The type of a message."
+                 c:type="GstRTSPMsgType">
+      <member name="invalid"
+              value="0"
+              c:identifier="GST_RTSP_MESSAGE_INVALID"/>
+      <member name="request"
+              value="1"
+              c:identifier="GST_RTSP_MESSAGE_REQUEST"/>
+      <member name="response"
+              value="2"
+              c:identifier="GST_RTSP_MESSAGE_RESPONSE"/>
+      <member name="http_request"
+              value="3"
+              c:identifier="GST_RTSP_MESSAGE_HTTP_REQUEST"/>
+      <member name="http_response"
+              value="4"
+              c:identifier="GST_RTSP_MESSAGE_HTTP_RESPONSE"/>
+      <member name="data" value="5" c:identifier="GST_RTSP_MESSAGE_DATA"/>
+    </enumeration>
+    <bitfield name="RTSPProfile"
+              doc="The transfer profile to use."
+              c:type="GstRTSPProfile">
+      <member name="unknown"
+              value="0"
+              c:identifier="GST_RTSP_PROFILE_UNKNOWN"/>
+      <member name="avp" value="1" c:identifier="GST_RTSP_PROFILE_AVP"/>
+      <member name="savp" value="2" c:identifier="GST_RTSP_PROFILE_SAVP"/>
+    </bitfield>
+    <record name="RTSPRange"
+            c:type="GstRTSPRange"
+            doc="A type to specify a range.">
+      <field name="min" writable="1">
+        <type name="int" c:type="gint"/>
+      </field>
+      <field name="max" writable="1">
+        <type name="int" c:type="gint"/>
+      </field>
+    </record>
+    <enumeration name="RTSPRangeUnit"
+                 doc="Different possible time range units."
+                 c:type="GstRTSPRangeUnit">
+      <member name="smpte" value="0" c:identifier="GST_RTSP_RANGE_SMPTE"/>
+      <member name="smpte_30_drop"
+              value="1"
+              c:identifier="GST_RTSP_RANGE_SMPTE_30_DROP"/>
+      <member name="smpte_25"
+              value="2"
+              c:identifier="GST_RTSP_RANGE_SMPTE_25"/>
+      <member name="npt" value="3" c:identifier="GST_RTSP_RANGE_NPT"/>
+      <member name="clock" value="4" c:identifier="GST_RTSP_RANGE_CLOCK"/>
+    </enumeration>
+    <enumeration name="RTSPResult"
+                 doc="Result codes from the RTSP functions."
+                 glib:type-name="GstRTSPResult"
+                 glib:get-type="gst_rtsp_result_get_type"
+                 c:type="GstRTSPResult">
+      <member name="ok" value="0" c:identifier="GST_RTSP_OK" glib:nick="ok"/>
+      <member name="error"
+              value="-1"
+              c:identifier="GST_RTSP_ERROR"
+              glib:nick="error"/>
+      <member name="einval"
+              value="-2"
+              c:identifier="GST_RTSP_EINVAL"
+              glib:nick="einval"/>
+      <member name="eintr"
+              value="-3"
+              c:identifier="GST_RTSP_EINTR"
+              glib:nick="eintr"/>
+      <member name="enomem"
+              value="-4"
+              c:identifier="GST_RTSP_ENOMEM"
+              glib:nick="enomem"/>
+      <member name="eresolv"
+              value="-5"
+              c:identifier="GST_RTSP_ERESOLV"
+              glib:nick="eresolv"/>
+      <member name="enotimpl"
+              value="-6"
+              c:identifier="GST_RTSP_ENOTIMPL"
+              glib:nick="enotimpl"/>
+      <member name="esys"
+              value="-7"
+              c:identifier="GST_RTSP_ESYS"
+              glib:nick="esys"/>
+      <member name="eparse"
+              value="-8"
+              c:identifier="GST_RTSP_EPARSE"
+              glib:nick="eparse"/>
+      <member name="ewsastart"
+              value="-9"
+              c:identifier="GST_RTSP_EWSASTART"
+              glib:nick="ewsastart"/>
+      <member name="ewsaversion"
+              value="-10"
+              c:identifier="GST_RTSP_EWSAVERSION"
+              glib:nick="ewsaversion"/>
+      <member name="eeof"
+              value="-11"
+              c:identifier="GST_RTSP_EEOF"
+              glib:nick="eeof"/>
+      <member name="enet"
+              value="-12"
+              c:identifier="GST_RTSP_ENET"
+              glib:nick="enet"/>
+      <member name="enotip"
+              value="-13"
+              c:identifier="GST_RTSP_ENOTIP"
+              glib:nick="enotip"/>
+      <member name="etimeout"
+              value="-14"
+              c:identifier="GST_RTSP_ETIMEOUT"
+              glib:nick="etimeout"/>
+      <member name="etget"
+              value="-15"
+              c:identifier="GST_RTSP_ETGET"
+              glib:nick="etget"/>
+      <member name="etpost"
+              value="-16"
+              c:identifier="GST_RTSP_ETPOST"
+              glib:nick="etpost"/>
+      <member name="elast"
+              value="-17"
+              c:identifier="GST_RTSP_ELAST"
+              glib:nick="elast"/>
+    </enumeration>
+    <enumeration name="RTSPState"
+                 doc="The different RTSP states."
+                 glib:type-name="GstRTSPState"
+                 glib:get-type="gst_rtsp_state_get_type"
+                 c:type="GstRTSPState">
+      <member name="invalid"
+              value="0"
+              c:identifier="GST_RTSP_STATE_INVALID"
+              glib:nick="invalid"/>
+      <member name="init"
+              value="1"
+              c:identifier="GST_RTSP_STATE_INIT"
+              glib:nick="init"/>
+      <member name="ready"
+              value="2"
+              c:identifier="GST_RTSP_STATE_READY"
+              glib:nick="ready"/>
+      <member name="seeking"
+              value="3"
+              c:identifier="GST_RTSP_STATE_SEEKING"
+              glib:nick="seeking"/>
+      <member name="playing"
+              value="4"
+              c:identifier="GST_RTSP_STATE_PLAYING"
+              glib:nick="playing"/>
+      <member name="recording"
+              value="5"
+              c:identifier="GST_RTSP_STATE_RECORDING"
+              glib:nick="recording"/>
+    </enumeration>
+    <enumeration name="RTSPStatusCode"
+                 glib:type-name="GstRTSPStatusCode"
+                 glib:get-type="gst_rtsp_status_code_get_type"
+                 c:type="GstRTSPStatusCode">
+      <member name="invalid"
+              value="0"
+              c:identifier="GST_RTSP_STS_INVALID"
+              glib:nick="invalid"/>
+      <member name="continue"
+              value="100"
+              c:identifier="GST_RTSP_STS_CONTINUE"
+              glib:nick="continue"/>
+      <member name="ok"
+              value="200"
+              c:identifier="GST_RTSP_STS_OK"
+              glib:nick="ok"/>
+      <member name="created"
+              value="201"
+              c:identifier="GST_RTSP_STS_CREATED"
+              glib:nick="created"/>
+      <member name="low_on_storage"
+              value="250"
+              c:identifier="GST_RTSP_STS_LOW_ON_STORAGE"
+              glib:nick="low-on-storage"/>
+      <member name="multiple_choices"
+              value="300"
+              c:identifier="GST_RTSP_STS_MULTIPLE_CHOICES"
+              glib:nick="multiple-choices"/>
+      <member name="moved_permanently"
+              value="301"
+              c:identifier="GST_RTSP_STS_MOVED_PERMANENTLY"
+              glib:nick="moved-permanently"/>
+      <member name="move_temporarily"
+              value="302"
+              c:identifier="GST_RTSP_STS_MOVE_TEMPORARILY"
+              glib:nick="move-temporarily"/>
+      <member name="see_other"
+              value="303"
+              c:identifier="GST_RTSP_STS_SEE_OTHER"
+              glib:nick="see-other"/>
+      <member name="not_modified"
+              value="304"
+              c:identifier="GST_RTSP_STS_NOT_MODIFIED"
+              glib:nick="not-modified"/>
+      <member name="use_proxy"
+              value="305"
+              c:identifier="GST_RTSP_STS_USE_PROXY"
+              glib:nick="use-proxy"/>
+      <member name="bad_request"
+              value="400"
+              c:identifier="GST_RTSP_STS_BAD_REQUEST"
+              glib:nick="bad-request"/>
+      <member name="unauthorized"
+              value="401"
+              c:identifier="GST_RTSP_STS_UNAUTHORIZED"
+              glib:nick="unauthorized"/>
+      <member name="payment_required"
+              value="402"
+              c:identifier="GST_RTSP_STS_PAYMENT_REQUIRED"
+              glib:nick="payment-required"/>
+      <member name="forbidden"
+              value="403"
+              c:identifier="GST_RTSP_STS_FORBIDDEN"
+              glib:nick="forbidden"/>
+      <member name="not_found"
+              value="404"
+              c:identifier="GST_RTSP_STS_NOT_FOUND"
+              glib:nick="not-found"/>
+      <member name="method_not_allowed"
+              value="405"
+              c:identifier="GST_RTSP_STS_METHOD_NOT_ALLOWED"
+              glib:nick="method-not-allowed"/>
+      <member name="not_acceptable"
+              value="406"
+              c:identifier="GST_RTSP_STS_NOT_ACCEPTABLE"
+              glib:nick="not-acceptable"/>
+      <member name="proxy_auth_required"
+              value="407"
+              c:identifier="GST_RTSP_STS_PROXY_AUTH_REQUIRED"
+              glib:nick="proxy-auth-required"/>
+      <member name="request_timeout"
+              value="408"
+              c:identifier="GST_RTSP_STS_REQUEST_TIMEOUT"
+              glib:nick="request-timeout"/>
+      <member name="gone"
+              value="410"
+              c:identifier="GST_RTSP_STS_GONE"
+              glib:nick="gone"/>
+      <member name="length_required"
+              value="411"
+              c:identifier="GST_RTSP_STS_LENGTH_REQUIRED"
+              glib:nick="length-required"/>
+      <member name="precondition_failed"
+              value="412"
+              c:identifier="GST_RTSP_STS_PRECONDITION_FAILED"
+              glib:nick="precondition-failed"/>
+      <member name="request_entity_too_large"
+              value="413"
+              c:identifier="GST_RTSP_STS_REQUEST_ENTITY_TOO_LARGE"
+              glib:nick="request-entity-too-large"/>
+      <member name="request_uri_too_large"
+              value="414"
+              c:identifier="GST_RTSP_STS_REQUEST_URI_TOO_LARGE"
+              glib:nick="request-uri-too-large"/>
+      <member name="unsupported_media_type"
+              value="415"
+              c:identifier="GST_RTSP_STS_UNSUPPORTED_MEDIA_TYPE"
+              glib:nick="unsupported-media-type"/>
+      <member name="parameter_not_understood"
+              value="451"
+              c:identifier="GST_RTSP_STS_PARAMETER_NOT_UNDERSTOOD"
+              glib:nick="parameter-not-understood"/>
+      <member name="conference_not_found"
+              value="452"
+              c:identifier="GST_RTSP_STS_CONFERENCE_NOT_FOUND"
+              glib:nick="conference-not-found"/>
+      <member name="not_enough_bandwidth"
+              value="453"
+              c:identifier="GST_RTSP_STS_NOT_ENOUGH_BANDWIDTH"
+              glib:nick="not-enough-bandwidth"/>
+      <member name="session_not_found"
+              value="454"
+              c:identifier="GST_RTSP_STS_SESSION_NOT_FOUND"
+              glib:nick="session-not-found"/>
+      <member name="method_not_valid_in_this_state"
+              value="455"
+              c:identifier="GST_RTSP_STS_METHOD_NOT_VALID_IN_THIS_STATE"
+              glib:nick="method-not-valid-in-this-state"/>
+      <member name="header_field_not_valid_for_resource"
+              value="456"
+              c:identifier="GST_RTSP_STS_HEADER_FIELD_NOT_VALID_FOR_RESOURCE"
+              glib:nick="header-field-not-valid-for-resource"/>
+      <member name="invalid_range"
+              value="457"
+              c:identifier="GST_RTSP_STS_INVALID_RANGE"
+              glib:nick="invalid-range"/>
+      <member name="parameter_is_readonly"
+              value="458"
+              c:identifier="GST_RTSP_STS_PARAMETER_IS_READONLY"
+              glib:nick="parameter-is-readonly"/>
+      <member name="aggregate_operation_not_allowed"
+              value="459"
+              c:identifier="GST_RTSP_STS_AGGREGATE_OPERATION_NOT_ALLOWED"
+              glib:nick="aggregate-operation-not-allowed"/>
+      <member name="only_aggregate_operation_allowed"
+              value="460"
+              c:identifier="GST_RTSP_STS_ONLY_AGGREGATE_OPERATION_ALLOWED"
+              glib:nick="only-aggregate-operation-allowed"/>
+      <member name="unsupported_transport"
+              value="461"
+              c:identifier="GST_RTSP_STS_UNSUPPORTED_TRANSPORT"
+              glib:nick="unsupported-transport"/>
+      <member name="destination_unreachable"
+              value="462"
+              c:identifier="GST_RTSP_STS_DESTINATION_UNREACHABLE"
+              glib:nick="destination-unreachable"/>
+      <member name="internal_server_error"
+              value="500"
+              c:identifier="GST_RTSP_STS_INTERNAL_SERVER_ERROR"
+              glib:nick="internal-server-error"/>
+      <member name="not_implemented"
+              value="501"
+              c:identifier="GST_RTSP_STS_NOT_IMPLEMENTED"
+              glib:nick="not-implemented"/>
+      <member name="bad_gateway"
+              value="502"
+              c:identifier="GST_RTSP_STS_BAD_GATEWAY"
+              glib:nick="bad-gateway"/>
+      <member name="service_unavailable"
+              value="503"
+              c:identifier="GST_RTSP_STS_SERVICE_UNAVAILABLE"
+              glib:nick="service-unavailable"/>
+      <member name="gateway_timeout"
+              value="504"
+              c:identifier="GST_RTSP_STS_GATEWAY_TIMEOUT"
+              glib:nick="gateway-timeout"/>
+      <member name="rtsp_version_not_supported"
+              value="505"
+              c:identifier="GST_RTSP_STS_RTSP_VERSION_NOT_SUPPORTED"
+              glib:nick="rtsp-version-not-supported"/>
+      <member name="option_not_supported"
+              value="551"
+              c:identifier="GST_RTSP_STS_OPTION_NOT_SUPPORTED"
+              glib:nick="option-not-supported"/>
+    </enumeration>
+    <record name="RTSPTime" c:type="GstRTSPTime" doc="A time indication.">
+      <field name="type" writable="1">
+        <type name="RTSPTimeType" c:type="GstRTSPTimeType"/>
+      </field>
+      <field name="seconds" writable="1">
+        <type name="double" c:type="gdouble"/>
+      </field>
+    </record>
+    <record name="RTSPTimeRange" c:type="GstRTSPTimeRange" doc="A time range.">
+      <field name="unit" writable="1">
+        <type name="RTSPRangeUnit" c:type="GstRTSPRangeUnit"/>
+      </field>
+      <field name="min" writable="1">
+        <type name="RTSPTime" c:type="GstRTSPTime"/>
+      </field>
+      <field name="max" writable="1">
+        <type name="RTSPTime" c:type="GstRTSPTime"/>
+      </field>
+    </record>
+    <enumeration name="RTSPTimeType"
+                 doc="Possible time types."
+                 c:type="GstRTSPTimeType">
+      <member name="seconds" value="0" c:identifier="GST_RTSP_TIME_SECONDS"/>
+      <member name="now" value="1" c:identifier="GST_RTSP_TIME_NOW"/>
+      <member name="end" value="2" c:identifier="GST_RTSP_TIME_END"/>
+    </enumeration>
+    <bitfield name="RTSPTransMode"
+              doc="The transfer mode to use."
+              c:type="GstRTSPTransMode">
+      <member name="unknown" value="0" c:identifier="GST_RTSP_TRANS_UNKNOWN"/>
+      <member name="rtp" value="1" c:identifier="GST_RTSP_TRANS_RTP"/>
+      <member name="rdt" value="2" c:identifier="GST_RTSP_TRANS_RDT"/>
+    </bitfield>
+    <record name="RTSPTransport" c:type="_GstRTSPTransport">
+      <field name="trans" writable="1">
+        <type name="RTSPTransMode" c:type="GstRTSPTransMode"/>
+      </field>
+      <field name="profile" writable="1">
+        <type name="RTSPProfile" c:type="GstRTSPProfile"/>
+      </field>
+      <field name="lower_transport" writable="1">
+        <type name="RTSPLowerTrans" c:type="GstRTSPLowerTrans"/>
+      </field>
+      <field name="destination" writable="1">
+        <type name="utf8" c:type="gchar*"/>
+      </field>
+      <field name="source" writable="1">
+        <type name="utf8" c:type="gchar*"/>
+      </field>
+      <field name="layers" writable="1">
+        <type name="uint" c:type="guint"/>
+      </field>
+      <field name="mode_play" writable="1">
+        <type name="boolean" c:type="gboolean"/>
+      </field>
+      <field name="mode_record" writable="1">
+        <type name="boolean" c:type="gboolean"/>
+      </field>
+      <field name="append" writable="1">
+        <type name="boolean" c:type="gboolean"/>
+      </field>
+      <field name="interleaved" writable="1">
+        <type name="RTSPRange" c:type="GstRTSPRange"/>
+      </field>
+      <field name="ttl" writable="1">
+        <type name="uint" c:type="guint"/>
+      </field>
+      <field name="port" writable="1">
+        <type name="RTSPRange" c:type="GstRTSPRange"/>
+      </field>
+      <field name="client_port" writable="1">
+        <type name="RTSPRange" c:type="GstRTSPRange"/>
+      </field>
+      <field name="server_port" writable="1">
+        <type name="RTSPRange" c:type="GstRTSPRange"/>
+      </field>
+      <field name="ssrc" writable="1">
+        <type name="uint" c:type="guint"/>
+      </field>
+    </record>
+    <record name="RTSPUrl"
+            c:type="GstRTSPUrl"
+            doc="This structure contains the result of a parsed RTSP URL"
+            glib:type-name="GstRTSPUrl"
+            glib:get-type="gst_rtsp_url_get_type">
+      <field name="transports" writable="1">
+        <type name="RTSPLowerTrans" c:type="GstRTSPLowerTrans"/>
+      </field>
+      <field name="family" writable="1">
+        <type name="RTSPFamily" c:type="GstRTSPFamily"/>
+      </field>
+      <field name="user" writable="1">
+        <type name="utf8" c:type="gchar*"/>
+      </field>
+      <field name="passwd" writable="1">
+        <type name="utf8" c:type="gchar*"/>
+      </field>
+      <field name="host" writable="1">
+        <type name="utf8" c:type="gchar*"/>
+      </field>
+      <field name="port" writable="1">
+        <type name="uint16" c:type="guint16"/>
+      </field>
+      <field name="abspath" writable="1">
+        <type name="utf8" c:type="gchar*"/>
+      </field>
+      <field name="query" writable="1">
+        <type name="utf8" c:type="gchar*"/>
+      </field>
+      <method name="copy"
+              c:identifier="gst_rtsp_url_copy"
+              doc="Make a copy of @url."
+              version="0.10.22">
+        <return-value transfer-ownership="full" doc="after usage.">
+          <type name="RTSPUrl" c:type="GstRTSPUrl*"/>
+        </return-value>
+      </method>
+      <method name="free"
+              c:identifier="gst_rtsp_url_free"
+              doc="Free the memory used by @url.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </method>
+      <method name="get_request_uri"
+              c:identifier="gst_rtsp_url_get_request_uri"
+              doc="Get a newly allocated string describing the request URI for @url.">
+        <return-value transfer-ownership="full" doc="after usage.">
+          <type name="utf8" c:type="gchar*"/>
+        </return-value>
+      </method>
+      <method name="set_port"
+              c:identifier="gst_rtsp_url_set_port"
+              doc="Set the port number in @url to @port.">
+        <return-value transfer-ownership="full">
+          <type name="RTSPResult" c:type="GstRTSPResult"/>
+        </return-value>
+        <parameters>
+          <parameter name="port" transfer-ownership="none">
+            <type name="uint16" c:type="guint16"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_port"
+              c:identifier="gst_rtsp_url_get_port"
+              doc="Get the port number of @url.">
+        <return-value transfer-ownership="full">
+          <type name="RTSPResult" c:type="GstRTSPResult"/>
+        </return-value>
+        <parameters>
+          <parameter name="port" direction="out" transfer-ownership="full">
+            <type name="uint16" c:type="guint16*"/>
+          </parameter>
+        </parameters>
+      </method>
+    </record>
+    <enumeration name="RTSPVersion"
+                 doc="The supported RTSP versions."
+                 glib:type-name="GstRTSPVersion"
+                 glib:get-type="gst_rtsp_version_get_type"
+                 c:type="GstRTSPVersion">
+      <member name="invalid"
+              value="0"
+              c:identifier="GST_RTSP_VERSION_INVALID"
+              glib:nick="invalid"/>
+      <member name="1_0"
+              value="16"
+              c:identifier="GST_RTSP_VERSION_1_0"
+              glib:nick="1-0"/>
+      <member name="1_1"
+              value="17"
+              c:identifier="GST_RTSP_VERSION_1_1"
+              glib:nick="1-1"/>
+    </enumeration>
+    <record name="RTSPWatch"
+            c:type="GstRTSPWatch"
+            doc="Opaque RTSP watch object that can be used for asynchronous RTSP
+operations.">
+      <constructor name="new"
+                   c:identifier="gst_rtsp_watch_new"
+                   doc="Create a watch object for @conn. The functions provided in @funcs will be
+called with @user_data when activity happened on the watch.
+The new watch is usually created so that it can be attached to a
+maincontext with gst_rtsp_watch_attach().
+communication. Free with gst_rtsp_watch_unref () after usage."
+                   version="0.10.23">
+        <return-value transfer-ownership="full">
+          <type name="RTSPWatch" c:type="GstRTSPWatch*"/>
+        </return-value>
+        <parameters>
+          <parameter name="conn" transfer-ownership="none">
+            <type name="RTSPConnection" c:type="GstRTSPConnection*"/>
+          </parameter>
+          <parameter name="funcs" transfer-ownership="none">
+            <type name="RTSPWatchFuncs" c:type="GstRTSPWatchFuncs*"/>
+          </parameter>
+          <parameter name="user_data" transfer-ownership="none">
+            <type name="any" c:type="gpointer"/>
+          </parameter>
+          <parameter name="notify" transfer-ownership="none" scope="call">
+            <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <method name="reset"
+              c:identifier="gst_rtsp_watch_reset"
+              doc="Reset @watch, this is usually called after gst_rtsp_connection_do_tunnel()
+when the file descriptors of the connection might have changed."
+              version="0.10.23">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </method>
+      <method name="unref"
+              c:identifier="gst_rtsp_watch_unref"
+              doc="Decreases the reference count of @watch by one. If the resulting reference
+count is zero the watch and associated memory will be destroyed."
+              version="0.10.23">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </method>
+      <method name="attach"
+              c:identifier="gst_rtsp_watch_attach"
+              doc="Adds a #GstRTSPWatch to a context so that it will be executed within that context."
+              version="0.10.23">
+        <return-value transfer-ownership="none"
+                      doc="for the watch within the GMainContext.">
+          <type name="uint" c:type="guint"/>
+        </return-value>
+        <parameters>
+          <parameter name="context" transfer-ownership="none">
+            <type name="GLib.MainContext" c:type="GMainContext*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="write_data"
+              c:identifier="gst_rtsp_watch_write_data"
+              doc="Write @data using the connection of the @watch. If it cannot be sent
+immediately, it will be queued for transmission in @watch. The contents of
+callback.
+This function will take ownership of @data and g_free() it after use."
+              version="0.10.25">
+        <return-value transfer-ownership="full">
+          <type name="RTSPResult" c:type="GstRTSPResult"/>
+        </return-value>
+        <parameters>
+          <parameter name="data" transfer-ownership="none">
+            <array c:type="guint8*">
+              <type name="uint8"/>
+            </array>
+          </parameter>
+          <parameter name="size" transfer-ownership="none">
+            <type name="uint" c:type="guint"/>
+          </parameter>
+          <parameter name="id" direction="out" transfer-ownership="full">
+            <type name="uint" c:type="guint*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="send_message"
+              c:identifier="gst_rtsp_watch_send_message"
+              doc="Send a @message using the connection of the @watch. If it cannot be sent
+immediately, it will be queued for transmission in @watch. The contents of
+callback."
+              version="0.10.25">
+        <return-value transfer-ownership="full">
+          <type name="RTSPResult" c:type="GstRTSPResult"/>
+        </return-value>
+        <parameters>
+          <parameter name="message" transfer-ownership="none">
+            <type name="RTSPMessage" c:type="GstRTSPMessage*"/>
+          </parameter>
+          <parameter name="id" direction="out" transfer-ownership="full">
+            <type name="uint" c:type="guint*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="queue_data"
+              c:identifier="gst_rtsp_watch_queue_data"
+              doc="Queue @data for transmission in @watch. It will be transmitted when the
+connection of the @watch becomes writable.
+This function will take ownership of @data and g_free() it after use.
+The return value of this function will be used as the id argument in the
+message_sent callback."
+              version="0.10.24"
+              deprecated="Use gst_rtsp_watch_write_data()">
+        <return-value transfer-ownership="none">
+          <type name="uint" c:type="guint"/>
+        </return-value>
+        <parameters>
+          <parameter name="data" transfer-ownership="none">
+            <array c:type="guint8*">
+              <type name="uint8"/>
+            </array>
+          </parameter>
+          <parameter name="size" transfer-ownership="none">
+            <type name="uint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="queue_message"
+              c:identifier="gst_rtsp_watch_queue_message"
+              doc="Queue a @message for transmission in @watch. The contents of this
+message will be serialized and transmitted when the connection of the
+The return value of this function will be used as the id argument in the
+message_sent callback."
+              version="0.10.23"
+              deprecated="Use gst_rtsp_watch_send_message()">
+        <return-value transfer-ownership="none">
+          <type name="uint" c:type="guint"/>
+        </return-value>
+        <parameters>
+          <parameter name="message" transfer-ownership="none">
+            <type name="RTSPMessage" c:type="GstRTSPMessage*"/>
+          </parameter>
+        </parameters>
+      </method>
+    </record>
+    <record name="RTSPWatchFuncs"
+            c:type="GstRTSPWatchFuncs"
+            doc="connection must be saved.
+you usually pair the tunnelid of this connection with the saved one using
+gst_rtsp_connection_do_tunnel().
+the @error callback. Since 0.10.25
+Since 0.10.29
+Callback functions from a #GstRTSPWatch."
+            version="0.10.23">
+      <field name="message_received">
+        <type name="any" c:type="pointer"/>
+      </field>
+      <field name="message_sent">
+        <type name="any" c:type="pointer"/>
+      </field>
+      <field name="closed">
+        <type name="any" c:type="pointer"/>
+      </field>
+      <field name="error">
+        <type name="any" c:type="pointer"/>
+      </field>
+      <field name="tunnel_start">
+        <type name="any" c:type="pointer"/>
+      </field>
+      <field name="tunnel_complete">
+        <type name="any" c:type="pointer"/>
+      </field>
+      <field name="error_full">
+        <type name="any" c:type="pointer"/>
+      </field>
+      <field name="tunnel_lost">
+        <type name="any" c:type="pointer"/>
+      </field>
+      <field name="_gst_reserved" writable="1">
+        <array zero-terminated="0" c:type="gpointer" fixed-size="2">
+          <type name="any"/>
+        </array>
+      </field>
+    </record>
+    <function name="base64_decode_ip"
+              c:identifier="gst_rtsp_base64_decode_ip"
+              doc="Decode the base64 string pointed to by @data in-place. When @len is not #NULL
+it will contain the length of the decoded data.">
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="data" transfer-ownership="full">
+          <type name="utf8" c:type="gchar*"/>
+        </parameter>
+        <parameter name="len" direction="out" transfer-ownership="full">
+          <type name="size_t" c:type="gsize*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="base64_encode"
+              c:identifier="gst_rtsp_base64_encode"
+              doc="Encode a sequence of binary data into its Base-64 stringified representation.
+representing @data."
+              deprecated="Use g_base64_encode()">
+      <return-value transfer-ownership="full">
+        <type name="utf8" c:type="gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="data" transfer-ownership="none">
+          <type name="utf8" c:type="gchar*"/>
+        </parameter>
+        <parameter name="len" transfer-ownership="none">
+          <type name="size_t" c:type="gsize"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="connection_accept"
+              c:identifier="gst_rtsp_connection_accept"
+              doc="Accept a new connection on @sock and create a new #GstRTSPConnection for
+handling communication on new socket."
+              version="0.10.23">
+      <return-value transfer-ownership="full">
+        <type name="RTSPResult" c:type="GstRTSPResult"/>
+      </return-value>
+      <parameters>
+        <parameter name="sock" transfer-ownership="none">
+          <type name="int" c:type="gint"/>
+        </parameter>
+        <parameter name="conn" transfer-ownership="none">
+          <type name="RTSPConnection" c:type="GstRTSPConnection**"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="connection_create"
+              c:identifier="gst_rtsp_connection_create"
+              doc="Create a newly allocated #GstRTSPConnection from @url and store it in @conn.
+The connection will not yet attempt to connect to @url, use
+gst_rtsp_connection_connect().
+A copy of @url will be made.">
+      <return-value transfer-ownership="full">
+        <type name="RTSPResult" c:type="GstRTSPResult"/>
+      </return-value>
+      <parameters>
+        <parameter name="url" transfer-ownership="none">
+          <type name="RTSPUrl" c:type="GstRTSPUrl*"/>
+        </parameter>
+        <parameter name="conn" transfer-ownership="none">
+          <type name="RTSPConnection" c:type="GstRTSPConnection**"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="connection_create_from_fd"
+              c:identifier="gst_rtsp_connection_create_from_fd"
+              doc="Create a new #GstRTSPConnection for handling communication on the existing
+file descriptor @fd. The @initial_buffer contains any data already read from"
+              version="0.10.25">
+      <return-value transfer-ownership="full">
+        <type name="RTSPResult" c:type="GstRTSPResult"/>
+      </return-value>
+      <parameters>
+        <parameter name="fd" transfer-ownership="none">
+          <type name="int" c:type="gint"/>
+        </parameter>
+        <parameter name="ip" transfer-ownership="none">
+          <type name="utf8" c:type="gchar*"/>
+        </parameter>
+        <parameter name="port" transfer-ownership="none">
+          <type name="uint16" c:type="guint16"/>
+        </parameter>
+        <parameter name="initial_buffer" transfer-ownership="none">
+          <type name="utf8" c:type="gchar*"/>
+        </parameter>
+        <parameter name="conn" transfer-ownership="none">
+          <type name="RTSPConnection" c:type="GstRTSPConnection**"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="find_header_field"
+              c:identifier="gst_rtsp_find_header_field"
+              doc="Convert @header to a #GstRTSPHeaderField.
+header field is unknown.">
+      <return-value transfer-ownership="full">
+        <type name="RTSPHeaderField" c:type="GstRTSPHeaderField"/>
+      </return-value>
+      <parameters>
+        <parameter name="header" transfer-ownership="none">
+          <type name="utf8" c:type="gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="find_method"
+              c:identifier="gst_rtsp_find_method"
+              doc="Convert @method to a #GstRTSPMethod.
+method is unknown.">
+      <return-value transfer-ownership="full">
+        <type name="RTSPMethod" c:type="GstRTSPMethod"/>
+      </return-value>
+      <parameters>
+        <parameter name="method" transfer-ownership="none">
+          <type name="utf8" c:type="gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="header_allow_multiple"
+              c:identifier="gst_rtsp_header_allow_multiple"
+              doc="Check whether @field may appear multiple times in a message."
+              version="0.10.25">
+      <return-value transfer-ownership="none">
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="field" transfer-ownership="none">
+          <type name="RTSPHeaderField" c:type="GstRTSPHeaderField"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="header_as_text"
+              c:identifier="gst_rtsp_header_as_text"
+              doc="Convert @field to a string.">
+      <return-value transfer-ownership="none">
+        <type name="utf8" c:type="gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="field" transfer-ownership="none">
+          <type name="RTSPHeaderField" c:type="GstRTSPHeaderField"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="message_get_type"
+              c:identifier="gst_rtsp_message_get_type"
+              doc="Get the message type of @msg.">
+      <return-value transfer-ownership="full">
+        <type name="RTSPMsgType" c:type="GstRTSPMsgType"/>
+      </return-value>
+      <parameters>
+        <parameter name="msg" transfer-ownership="none">
+          <type name="RTSPMessage" c:type="GstRTSPMessage*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="method_as_text"
+              c:identifier="gst_rtsp_method_as_text"
+              doc="Convert @method to a string.">
+      <return-value transfer-ownership="none">
+        <type name="utf8" c:type="gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="method" transfer-ownership="none">
+          <type name="RTSPMethod" c:type="GstRTSPMethod"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="options_as_text"
+              c:identifier="gst_rtsp_options_as_text"
+              doc="Convert @options to a string."
+              version="0.10.23">
+      <return-value transfer-ownership="full" doc="after usage.">
+        <type name="utf8" c:type="gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="options" transfer-ownership="none">
+          <type name="RTSPMethod" c:type="GstRTSPMethod"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="range_free"
+              c:identifier="gst_rtsp_range_free"
+              doc="Free the memory alocated by @range.">
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="range" transfer-ownership="none">
+          <type name="RTSPTimeRange" c:type="GstRTSPTimeRange*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="range_parse"
+              c:identifier="gst_rtsp_range_parse"
+              doc="Parse @rangestr to a #GstRTSPTimeRange.">
+      <return-value transfer-ownership="full">
+        <type name="RTSPResult" c:type="GstRTSPResult"/>
+      </return-value>
+      <parameters>
+        <parameter name="rangestr" transfer-ownership="none">
+          <type name="utf8" c:type="gchar*"/>
+        </parameter>
+        <parameter name="range" transfer-ownership="none">
+          <type name="RTSPTimeRange" c:type="GstRTSPTimeRange**"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="range_to_string"
+              c:identifier="gst_rtsp_range_to_string"
+              doc="Convert @range into a string representation."
+              version="0.10.23">
+      <return-value transfer-ownership="full" doc="after usage.">
+        <type name="utf8" c:type="gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="range" transfer-ownership="none">
+          <type name="RTSPTimeRange" c:type="GstRTSPTimeRange*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="status_as_text"
+              c:identifier="gst_rtsp_status_as_text"
+              doc="Convert @code to a string.">
+      <return-value transfer-ownership="none">
+        <type name="utf8" c:type="gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="code" transfer-ownership="none">
+          <type name="RTSPStatusCode" c:type="GstRTSPStatusCode"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="strresult"
+              c:identifier="gst_rtsp_strresult"
+              doc="Convert @result in a human readable string.">
+      <return-value transfer-ownership="full" doc="after usage.">
+        <type name="utf8" c:type="gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="result" transfer-ownership="none">
+          <type name="RTSPResult" c:type="GstRTSPResult"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="transport_as_text"
+              c:identifier="gst_rtsp_transport_as_text"
+              doc="Convert @transport into a string that can be used to signal the transport in
+an RTSP SETUP response.
+is invalid.">
+      <return-value transfer-ownership="full">
+        <type name="utf8" c:type="gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="transport" transfer-ownership="none">
+          <type name="RTSPTransport" c:type="GstRTSPTransport*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="transport_free"
+              c:identifier="gst_rtsp_transport_free"
+              doc="Free the memory used by @transport.">
+      <return-value transfer-ownership="full">
+        <type name="RTSPResult" c:type="GstRTSPResult"/>
+      </return-value>
+      <parameters>
+        <parameter name="transport" transfer-ownership="none">
+          <type name="RTSPTransport" c:type="GstRTSPTransport*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="transport_get_manager"
+              c:identifier="gst_rtsp_transport_get_manager"
+              doc="Get the #GStreamer element that can handle the buffers transported over
+It is possible that there are several managers available, use @option to
+selected one.
+needed/available for @trans.">
+      <return-value transfer-ownership="full">
+        <type name="RTSPResult" c:type="GstRTSPResult"/>
+      </return-value>
+      <parameters>
+        <parameter name="trans" transfer-ownership="none">
+          <type name="RTSPTransMode" c:type="GstRTSPTransMode"/>
+        </parameter>
+        <parameter name="manager" transfer-ownership="none">
+          <array c:type="gchar**">
+            <type name="utf8"/>
+          </array>
+        </parameter>
+        <parameter name="option" transfer-ownership="none">
+          <type name="uint" c:type="guint"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="transport_get_mime"
+              c:identifier="gst_rtsp_transport_get_mime"
+              doc="Get the mime type of the transport mode @trans. This mime type is typically
+used to generate #GstCaps on buffers.">
+      <return-value transfer-ownership="full">
+        <type name="RTSPResult" c:type="GstRTSPResult"/>
+      </return-value>
+      <parameters>
+        <parameter name="trans" transfer-ownership="none">
+          <type name="RTSPTransMode" c:type="GstRTSPTransMode"/>
+        </parameter>
+        <parameter name="mime" transfer-ownership="none">
+          <array c:type="gchar**">
+            <type name="utf8"/>
+          </array>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="transport_init"
+              c:identifier="gst_rtsp_transport_init"
+              doc="Initialize @transport so that it can be used.">
+      <return-value transfer-ownership="full">
+        <type name="RTSPResult" c:type="GstRTSPResult"/>
+      </return-value>
+      <parameters>
+        <parameter name="transport" transfer-ownership="none">
+          <type name="RTSPTransport" c:type="GstRTSPTransport*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="transport_new"
+              c:identifier="gst_rtsp_transport_new"
+              doc="Allocate a new initialized #GstRTSPTransport. Use gst_rtsp_transport_free()
+after usage.">
+      <return-value transfer-ownership="full">
+        <type name="RTSPResult" c:type="GstRTSPResult"/>
+      </return-value>
+      <parameters>
+        <parameter name="transport" transfer-ownership="none">
+          <type name="RTSPTransport" c:type="GstRTSPTransport**"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="transport_parse"
+              c:identifier="gst_rtsp_transport_parse"
+              doc="Parse the RTSP transport string @str into @transport.">
+      <return-value transfer-ownership="full">
+        <type name="RTSPResult" c:type="GstRTSPResult"/>
+      </return-value>
+      <parameters>
+        <parameter name="str" transfer-ownership="none">
+          <type name="utf8" c:type="gchar*"/>
+        </parameter>
+        <parameter name="transport" transfer-ownership="none">
+          <type name="RTSPTransport" c:type="GstRTSPTransport*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="url_parse"
+              c:identifier="gst_rtsp_url_parse"
+              doc="Parse the RTSP @urlstr into a newly allocated #GstRTSPUrl. Free after usage
+with gst_rtsp_url_free().">
+      <return-value transfer-ownership="full">
+        <type name="RTSPResult" c:type="GstRTSPResult"/>
+      </return-value>
+      <parameters>
+        <parameter name="urlstr" transfer-ownership="none">
+          <type name="utf8" c:type="gchar*"/>
+        </parameter>
+        <parameter name="url" transfer-ownership="none">
+          <type name="RTSPUrl" c:type="GstRTSPUrl**"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="version_as_text"
+              c:identifier="gst_rtsp_version_as_text"
+              doc="Convert @version to a string.">
+      <return-value transfer-ownership="none">
+        <type name="utf8" c:type="gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="version" transfer-ownership="none">
+          <type name="RTSPVersion" c:type="GstRTSPVersion"/>
+        </parameter>
+      </parameters>
+    </function>
+  </namespace>
+</repository>
diff --git a/unmaintained/gstreamer/rtsp/ffi/ffi.factor b/unmaintained/gstreamer/rtsp/ffi/ffi.factor
new file mode 100644 (file)
index 0000000..a3989d7
--- /dev/null
@@ -0,0 +1,20 @@
+! Copyright (C) 2010 Anton Gorenko.
+! See http://factorcode.org/license.txt for BSD license.
+USING: alien alien.syntax alien.libraries combinators kernel
+system
+gobject-introspection glib.ffi gstreamer.ffi gstreamer.sdp.ffi ;
+IN: gstreamer.rtsp.ffi
+
+<<
+"gstreamer.rtsp" {
+    { [ os winnt? ] [ drop ] }
+    { [ os macosx? ] [ drop ] }
+    { [ os unix? ] [ "libgstrtsp-0.10.so" cdecl add-library ] }
+} cond
+>>
+
+! git error (there is _GstRTSPTransport only in .gir)
+C-TYPE: GstRTSPTransport
+
+GIR: vocab:gstreamer/rtsp/GstRtsp-0.10.gir
+
diff --git a/unmaintained/gstreamer/rtsp/rtsp.factor b/unmaintained/gstreamer/rtsp/rtsp.factor
new file mode 100644 (file)
index 0000000..72069f6
--- /dev/null
@@ -0,0 +1,5 @@
+! Copyright (C) 2010 Anton Gorenko.
+! See http://factorcode.org/license.txt for BSD license.
+USING: gstreamer.rtsp.ffi ;
+IN: gstreamer.rtsp
+
diff --git a/unmaintained/gstreamer/sdp/GstSdp-0.10.gir b/unmaintained/gstreamer/sdp/GstSdp-0.10.gir
new file mode 100644 (file)
index 0000000..16f62f6
--- /dev/null
@@ -0,0 +1,1056 @@
+<?xml version="1.0"?>
+<!-- This file was automatically generated from C sources - DO NOT EDIT!
+To affect the contents of this file, edit the original C definitions,
+and/or use gtk-doc annotations.  -->
+<repository version="1.0"
+            xmlns="http://www.gtk.org/introspection/core/1.0"
+            xmlns:c="http://www.gtk.org/introspection/c/1.0"
+            xmlns:glib="http://www.gtk.org/introspection/glib/1.0">
+  <include name="GLib" version="2.0"/>
+  <include name="GModule" version="2.0"/>
+  <include name="GObject" version="2.0"/>
+  <include name="Gst" version="0.10"/>
+  <include name="libxml2" version="2.0"/>
+  <package name="gstreamer-0.10"/>
+  <c:include name="gst/audio/gstsdp.h"/>
+  <c:include name="gst/audio/gstsdpmessage.h"/>
+  <namespace name="GstSdp"
+             version="0.10"
+             shared-library="libgstsdp-0.10.so.0"
+             c:prefix="Gst">
+    <constant name="BWTYPE_AS" value="AS">
+      <type name="utf8"/>
+    </constant>
+    <constant name="BWTYPE_CT" value="CT">
+      <type name="utf8"/>
+    </constant>
+    <constant name="BWTYPE_EXT_PREFIX" value="X-">
+      <type name="utf8"/>
+    </constant>
+    <constant name="BWTYPE_RS" value="RS">
+      <type name="utf8"/>
+    </constant>
+    <record name="SDPAttribute"
+            c:type="GstSDPAttribute"
+            doc="The contents of the SDP &quot;a=&quot; field which contains a key/value pair.">
+      <field name="key" writable="1">
+        <type name="utf8" c:type="gchar*"/>
+      </field>
+      <field name="value" writable="1">
+        <type name="utf8" c:type="gchar*"/>
+      </field>
+    </record>
+    <record name="SDPBandwidth"
+            c:type="GstSDPBandwidth"
+            doc="The contents of the SDP &quot;b=&quot; field which specifies the proposed bandwidth to
+be used by the session or media.">
+      <field name="bwtype" writable="1">
+        <type name="utf8" c:type="gchar*"/>
+      </field>
+      <field name="bandwidth" writable="1">
+        <type name="uint" c:type="guint"/>
+      </field>
+    </record>
+    <record name="SDPConnection"
+            c:type="GstSDPConnection"
+            doc="&quot;Internet&quot;.
+The contents of the SDP &quot;c=&quot; field which contains connection data.">
+      <field name="nettype" writable="1">
+        <type name="utf8" c:type="gchar*"/>
+      </field>
+      <field name="addrtype" writable="1">
+        <type name="utf8" c:type="gchar*"/>
+      </field>
+      <field name="address" writable="1">
+        <type name="utf8" c:type="gchar*"/>
+      </field>
+      <field name="ttl" writable="1">
+        <type name="uint" c:type="guint"/>
+      </field>
+      <field name="addr_number" writable="1">
+        <type name="uint" c:type="guint"/>
+      </field>
+    </record>
+    <record name="SDPKey"
+            c:type="GstSDPKey"
+            doc="The contents of the SDP &quot;k=&quot; field which is used to convey encryption
+keys.">
+      <field name="type" writable="1">
+        <type name="utf8" c:type="gchar*"/>
+      </field>
+      <field name="data" writable="1">
+        <type name="utf8" c:type="gchar*"/>
+      </field>
+    </record>
+    <record name="SDPMedia"
+            c:type="GstSDPMedia"
+            doc="The contents of the SDP &quot;m=&quot; field with all related fields.">
+      <field name="media" writable="1">
+        <type name="utf8" c:type="gchar*"/>
+      </field>
+      <field name="port" writable="1">
+        <type name="uint" c:type="guint"/>
+      </field>
+      <field name="num_ports" writable="1">
+        <type name="uint" c:type="guint"/>
+      </field>
+      <field name="proto" writable="1">
+        <type name="utf8" c:type="gchar*"/>
+      </field>
+      <field name="fmts" writable="1">
+        <type name="GLib.Array" c:type="GArray*"/>
+      </field>
+      <field name="information" writable="1">
+        <type name="utf8" c:type="gchar*"/>
+      </field>
+      <field name="connections" writable="1">
+        <type name="GLib.Array" c:type="GArray*"/>
+      </field>
+      <field name="bandwidths" writable="1">
+        <type name="GLib.Array" c:type="GArray*"/>
+      </field>
+      <field name="key" writable="1">
+        <type name="SDPKey" c:type="GstSDPKey"/>
+      </field>
+      <field name="attributes" writable="1">
+        <type name="GLib.Array" c:type="GArray*"/>
+      </field>
+      <constructor name="new"
+                   c:identifier="gst_sdp_media_new"
+                   doc="Allocate a new GstSDPMedia and store the result in @media.">
+        <return-value transfer-ownership="full">
+          <type name="SDPMedia" c:type="GstSDPResult"/>
+        </return-value>
+        <parameters>
+          <parameter name="media" transfer-ownership="none">
+            <type name="SDPMedia" c:type="GstSDPMedia**"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <method name="init"
+              c:identifier="gst_sdp_media_init"
+              doc="Initialize @media so that its contents are as if it was freshly allocated
+with gst_sdp_media_new(). This function is mostly used to initialize a media
+allocated on the stack. gst_sdp_media_uninit() undoes this operation.
+When this function is invoked on newly allocated data (with malloc or on the
+stack), its contents should be set to 0 before calling this function.">
+        <return-value transfer-ownership="full">
+          <type name="SDPResult" c:type="GstSDPResult"/>
+        </return-value>
+      </method>
+      <method name="uninit"
+              c:identifier="gst_sdp_media_uninit"
+              doc="Free all resources allocated in @media. @media should not be used anymore after
+this function. This function should be used when @media was allocated on the
+stack and initialized with gst_sdp_media_init().">
+        <return-value transfer-ownership="full">
+          <type name="SDPResult" c:type="GstSDPResult"/>
+        </return-value>
+      </method>
+      <method name="free"
+              c:identifier="gst_sdp_media_free"
+              doc="Free all resources allocated by @media. @media should not be used anymore after
+this function. This function should be used when @media was dynamically
+allocated with gst_sdp_media_new().">
+        <return-value transfer-ownership="full">
+          <type name="SDPResult" c:type="GstSDPResult"/>
+        </return-value>
+      </method>
+      <method name="as_text"
+              c:identifier="gst_sdp_media_as_text"
+              doc="Convert the contents of @media to a text string.">
+        <return-value transfer-ownership="full">
+          <type name="utf8" c:type="gchar*"/>
+        </return-value>
+      </method>
+      <method name="get_media"
+              c:identifier="gst_sdp_media_get_media"
+              doc="Get the media description of @media.">
+        <return-value transfer-ownership="none">
+          <type name="utf8" c:type="gchar*"/>
+        </return-value>
+      </method>
+      <method name="set_media"
+              c:identifier="gst_sdp_media_set_media"
+              doc="Set the media description of @media to @med.">
+        <return-value transfer-ownership="full">
+          <type name="SDPResult" c:type="GstSDPResult"/>
+        </return-value>
+        <parameters>
+          <parameter name="med" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_port"
+              c:identifier="gst_sdp_media_get_port"
+              doc="Get the port number for @media.">
+        <return-value transfer-ownership="none">
+          <type name="uint" c:type="guint"/>
+        </return-value>
+      </method>
+      <method name="get_num_ports"
+              c:identifier="gst_sdp_media_get_num_ports"
+              doc="Get the number of ports for @media.">
+        <return-value transfer-ownership="none">
+          <type name="uint" c:type="guint"/>
+        </return-value>
+      </method>
+      <method name="set_port_info"
+              c:identifier="gst_sdp_media_set_port_info"
+              doc="Set the port information in @media.">
+        <return-value transfer-ownership="full">
+          <type name="SDPResult" c:type="GstSDPResult"/>
+        </return-value>
+        <parameters>
+          <parameter name="port" transfer-ownership="none">
+            <type name="uint" c:type="guint"/>
+          </parameter>
+          <parameter name="num_ports" transfer-ownership="none">
+            <type name="uint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_proto"
+              c:identifier="gst_sdp_media_get_proto"
+              doc="Get the transport protocol of @media">
+        <return-value transfer-ownership="none">
+          <type name="utf8" c:type="gchar*"/>
+        </return-value>
+      </method>
+      <method name="set_proto"
+              c:identifier="gst_sdp_media_set_proto"
+              doc="Set the media transport protocol of @media to @proto.">
+        <return-value transfer-ownership="full">
+          <type name="SDPResult" c:type="GstSDPResult"/>
+        </return-value>
+        <parameters>
+          <parameter name="proto" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="formats_len"
+              c:identifier="gst_sdp_media_formats_len"
+              doc="Get the number of formats in @media.">
+        <return-value transfer-ownership="none">
+          <type name="uint" c:type="guint"/>
+        </return-value>
+      </method>
+      <method name="get_format"
+              c:identifier="gst_sdp_media_get_format"
+              doc="Get the format information at position @idx in @media.">
+        <return-value transfer-ownership="none">
+          <type name="utf8" c:type="gchar*"/>
+        </return-value>
+        <parameters>
+          <parameter name="idx" transfer-ownership="none">
+            <type name="uint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="add_format"
+              c:identifier="gst_sdp_media_add_format"
+              doc="Add the format information to @media.">
+        <return-value transfer-ownership="full">
+          <type name="SDPResult" c:type="GstSDPResult"/>
+        </return-value>
+        <parameters>
+          <parameter name="format" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_information"
+              c:identifier="gst_sdp_media_get_information"
+              doc="Get the information of @media">
+        <return-value transfer-ownership="none">
+          <type name="utf8" c:type="gchar*"/>
+        </return-value>
+      </method>
+      <method name="set_information"
+              c:identifier="gst_sdp_media_set_information"
+              doc="Set the media information of @media to @information.">
+        <return-value transfer-ownership="full">
+          <type name="SDPResult" c:type="GstSDPResult"/>
+        </return-value>
+        <parameters>
+          <parameter name="information" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="connections_len"
+              c:identifier="gst_sdp_media_connections_len"
+              doc="Get the number of connection fields in @media.">
+        <return-value transfer-ownership="none">
+          <type name="uint" c:type="guint"/>
+        </return-value>
+      </method>
+      <method name="get_connection"
+              c:identifier="gst_sdp_media_get_connection"
+              doc="Get the connection at position @idx in @media.">
+        <return-value transfer-ownership="none">
+          <type name="SDPConnection" c:type="GstSDPConnection*"/>
+        </return-value>
+        <parameters>
+          <parameter name="idx" transfer-ownership="none">
+            <type name="uint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="add_connection"
+              c:identifier="gst_sdp_media_add_connection"
+              doc="&quot;Internet&quot;.
+Add the given connection parameters to @media.">
+        <return-value transfer-ownership="full">
+          <type name="SDPResult" c:type="GstSDPResult"/>
+        </return-value>
+        <parameters>
+          <parameter name="nettype" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="addrtype" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="address" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="ttl" transfer-ownership="none">
+            <type name="uint" c:type="guint"/>
+          </parameter>
+          <parameter name="addr_number" transfer-ownership="none">
+            <type name="uint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="bandwidths_len"
+              c:identifier="gst_sdp_media_bandwidths_len"
+              doc="Get the number of bandwidth fields in @media.">
+        <return-value transfer-ownership="none">
+          <type name="uint" c:type="guint"/>
+        </return-value>
+      </method>
+      <method name="get_bandwidth"
+              c:identifier="gst_sdp_media_get_bandwidth"
+              doc="Get the bandwidth at position @idx in @media.">
+        <return-value transfer-ownership="none">
+          <type name="SDPBandwidth" c:type="GstSDPBandwidth*"/>
+        </return-value>
+        <parameters>
+          <parameter name="idx" transfer-ownership="none">
+            <type name="uint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="add_bandwidth"
+              c:identifier="gst_sdp_media_add_bandwidth"
+              doc="Add the bandwidth information with @bwtype and @bandwidth to @media.">
+        <return-value transfer-ownership="full">
+          <type name="SDPResult" c:type="GstSDPResult"/>
+        </return-value>
+        <parameters>
+          <parameter name="bwtype" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="bandwidth" transfer-ownership="none">
+            <type name="uint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_key"
+              c:identifier="gst_sdp_media_get_key"
+              doc="Get the encryption information from @media.">
+        <return-value transfer-ownership="none">
+          <type name="SDPKey" c:type="GstSDPKey*"/>
+        </return-value>
+      </method>
+      <method name="set_key"
+              c:identifier="gst_sdp_media_set_key"
+              doc="Adds the encryption information to @media.">
+        <return-value transfer-ownership="full">
+          <type name="SDPResult" c:type="GstSDPResult"/>
+        </return-value>
+        <parameters>
+          <parameter name="type" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="data" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="attributes_len"
+              c:identifier="gst_sdp_media_attributes_len"
+              doc="Get the number of attribute fields in @media.">
+        <return-value transfer-ownership="none">
+          <type name="uint" c:type="guint"/>
+        </return-value>
+      </method>
+      <method name="get_attribute"
+              c:identifier="gst_sdp_media_get_attribute"
+              doc="Get the attribute at position @idx in @media.">
+        <return-value transfer-ownership="none">
+          <type name="SDPAttribute" c:type="GstSDPAttribute*"/>
+        </return-value>
+        <parameters>
+          <parameter name="idx" transfer-ownership="none">
+            <type name="uint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_attribute_val"
+              c:identifier="gst_sdp_media_get_attribute_val"
+              doc="Get the first attribute value for @key in @media.">
+        <return-value transfer-ownership="none">
+          <type name="utf8" c:type="gchar*"/>
+        </return-value>
+        <parameters>
+          <parameter name="key" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_attribute_val_n"
+              c:identifier="gst_sdp_media_get_attribute_val_n"
+              doc="Get the @nth attribute value for @key in @media.">
+        <return-value transfer-ownership="none">
+          <type name="utf8" c:type="gchar*"/>
+        </return-value>
+        <parameters>
+          <parameter name="key" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="nth" transfer-ownership="none">
+            <type name="uint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="add_attribute"
+              c:identifier="gst_sdp_media_add_attribute"
+              doc="Add the attribute with @key and @value to @media.">
+        <return-value transfer-ownership="full">
+          <type name="SDPResult" c:type="GstSDPResult"/>
+        </return-value>
+        <parameters>
+          <parameter name="key" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="value" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+    </record>
+    <record name="SDPMessage"
+            c:type="GstSDPMessage"
+            doc="The contents of the SDP message.">
+      <field name="version" writable="1">
+        <type name="utf8" c:type="gchar*"/>
+      </field>
+      <field name="origin" writable="1">
+        <type name="SDPOrigin" c:type="GstSDPOrigin"/>
+      </field>
+      <field name="session_name" writable="1">
+        <type name="utf8" c:type="gchar*"/>
+      </field>
+      <field name="information" writable="1">
+        <type name="utf8" c:type="gchar*"/>
+      </field>
+      <field name="uri" writable="1">
+        <type name="utf8" c:type="gchar*"/>
+      </field>
+      <field name="emails" writable="1">
+        <type name="GLib.Array" c:type="GArray*"/>
+      </field>
+      <field name="phones" writable="1">
+        <type name="GLib.Array" c:type="GArray*"/>
+      </field>
+      <field name="connection" writable="1">
+        <type name="SDPConnection" c:type="GstSDPConnection"/>
+      </field>
+      <field name="bandwidths" writable="1">
+        <type name="GLib.Array" c:type="GArray*"/>
+      </field>
+      <field name="times" writable="1">
+        <type name="GLib.Array" c:type="GArray*"/>
+      </field>
+      <field name="zones" writable="1">
+        <type name="GLib.Array" c:type="GArray*"/>
+      </field>
+      <field name="key" writable="1">
+        <type name="SDPKey" c:type="GstSDPKey"/>
+      </field>
+      <field name="attributes" writable="1">
+        <type name="GLib.Array" c:type="GArray*"/>
+      </field>
+      <field name="medias" writable="1">
+        <type name="GLib.Array" c:type="GArray*"/>
+      </field>
+      <constructor name="new"
+                   c:identifier="gst_sdp_message_new"
+                   doc="Allocate a new GstSDPMessage and store the result in @msg.">
+        <return-value transfer-ownership="full">
+          <type name="SDPMessage" c:type="GstSDPResult"/>
+        </return-value>
+        <parameters>
+          <parameter name="msg" transfer-ownership="none">
+            <type name="SDPMessage" c:type="GstSDPMessage**"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <method name="init"
+              c:identifier="gst_sdp_message_init"
+              doc="Initialize @msg so that its contents are as if it was freshly allocated
+with gst_sdp_message_new(). This function is mostly used to initialize a message
+allocated on the stack. gst_sdp_message_uninit() undoes this operation.
+When this function is invoked on newly allocated data (with malloc or on the
+stack), its contents should be set to 0 before calling this function.">
+        <return-value transfer-ownership="full">
+          <type name="SDPResult" c:type="GstSDPResult"/>
+        </return-value>
+      </method>
+      <method name="uninit"
+              c:identifier="gst_sdp_message_uninit"
+              doc="Free all resources allocated in @msg. @msg should not be used anymore after
+this function. This function should be used when @msg was allocated on the
+stack and initialized with gst_sdp_message_init().">
+        <return-value transfer-ownership="full">
+          <type name="SDPResult" c:type="GstSDPResult"/>
+        </return-value>
+      </method>
+      <method name="free"
+              c:identifier="gst_sdp_message_free"
+              doc="Free all resources allocated by @msg. @msg should not be used anymore after
+this function. This function should be used when @msg was dynamically
+allocated with gst_sdp_message_new().">
+        <return-value transfer-ownership="full">
+          <type name="SDPResult" c:type="GstSDPResult"/>
+        </return-value>
+      </method>
+      <method name="as_text"
+              c:identifier="gst_sdp_message_as_text"
+              doc="Convert the contents of @msg to a text string.">
+        <return-value transfer-ownership="full">
+          <type name="utf8" c:type="gchar*"/>
+        </return-value>
+      </method>
+      <method name="get_version"
+              c:identifier="gst_sdp_message_get_version"
+              doc="Get the version in @msg.">
+        <return-value transfer-ownership="none">
+          <type name="utf8" c:type="gchar*"/>
+        </return-value>
+      </method>
+      <method name="set_version"
+              c:identifier="gst_sdp_message_set_version"
+              doc="Set the version in @msg.">
+        <return-value transfer-ownership="full">
+          <type name="SDPResult" c:type="GstSDPResult"/>
+        </return-value>
+        <parameters>
+          <parameter name="version" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_origin"
+              c:identifier="gst_sdp_message_get_origin"
+              doc="Get the origin of @msg.">
+        <return-value transfer-ownership="none">
+          <type name="SDPOrigin" c:type="GstSDPOrigin*"/>
+        </return-value>
+      </method>
+      <method name="set_origin"
+              c:identifier="gst_sdp_message_set_origin"
+              doc="Configure the SDP origin in @msg with the given parameters.">
+        <return-value transfer-ownership="full">
+          <type name="SDPResult" c:type="GstSDPResult"/>
+        </return-value>
+        <parameters>
+          <parameter name="username" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="sess_id" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="sess_version" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="nettype" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="addrtype" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="addr" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_session_name"
+              c:identifier="gst_sdp_message_get_session_name"
+              doc="Get the session name in @msg.">
+        <return-value transfer-ownership="none">
+          <type name="utf8" c:type="gchar*"/>
+        </return-value>
+      </method>
+      <method name="set_session_name"
+              c:identifier="gst_sdp_message_set_session_name"
+              doc="Set the session name in @msg.">
+        <return-value transfer-ownership="full">
+          <type name="SDPResult" c:type="GstSDPResult"/>
+        </return-value>
+        <parameters>
+          <parameter name="session_name" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_information"
+              c:identifier="gst_sdp_message_get_information"
+              doc="Get the information in @msg.">
+        <return-value transfer-ownership="none">
+          <type name="utf8" c:type="gchar*"/>
+        </return-value>
+      </method>
+      <method name="set_information"
+              c:identifier="gst_sdp_message_set_information"
+              doc="Set the information in @msg.">
+        <return-value transfer-ownership="full">
+          <type name="SDPResult" c:type="GstSDPResult"/>
+        </return-value>
+        <parameters>
+          <parameter name="information" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_uri"
+              c:identifier="gst_sdp_message_get_uri"
+              doc="Get the URI in @msg.">
+        <return-value transfer-ownership="none">
+          <type name="utf8" c:type="gchar*"/>
+        </return-value>
+      </method>
+      <method name="set_uri"
+              c:identifier="gst_sdp_message_set_uri"
+              doc="Set the URI in @msg.">
+        <return-value transfer-ownership="full">
+          <type name="SDPResult" c:type="GstSDPResult"/>
+        </return-value>
+        <parameters>
+          <parameter name="uri" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="emails_len"
+              c:identifier="gst_sdp_message_emails_len"
+              doc="Get the number of emails in @msg.">
+        <return-value transfer-ownership="none">
+          <type name="uint" c:type="guint"/>
+        </return-value>
+      </method>
+      <method name="get_email"
+              c:identifier="gst_sdp_message_get_email"
+              doc="Get the email with number @idx from @msg.">
+        <return-value transfer-ownership="none">
+          <type name="utf8" c:type="gchar*"/>
+        </return-value>
+        <parameters>
+          <parameter name="idx" transfer-ownership="none">
+            <type name="uint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="add_email"
+              c:identifier="gst_sdp_message_add_email"
+              doc="Add @email to the list of emails in @msg.">
+        <return-value transfer-ownership="full">
+          <type name="SDPResult" c:type="GstSDPResult"/>
+        </return-value>
+        <parameters>
+          <parameter name="email" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="phones_len"
+              c:identifier="gst_sdp_message_phones_len"
+              doc="Get the number of phones in @msg.">
+        <return-value transfer-ownership="none">
+          <type name="uint" c:type="guint"/>
+        </return-value>
+      </method>
+      <method name="get_phone"
+              c:identifier="gst_sdp_message_get_phone"
+              doc="Get the phone with number @idx from @msg.">
+        <return-value transfer-ownership="none">
+          <type name="utf8" c:type="gchar*"/>
+        </return-value>
+        <parameters>
+          <parameter name="idx" transfer-ownership="none">
+            <type name="uint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="add_phone"
+              c:identifier="gst_sdp_message_add_phone"
+              doc="Add @phone to the list of phones in @msg.">
+        <return-value transfer-ownership="full">
+          <type name="SDPResult" c:type="GstSDPResult"/>
+        </return-value>
+        <parameters>
+          <parameter name="phone" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_connection"
+              c:identifier="gst_sdp_message_get_connection"
+              doc="Get the connection of @msg.">
+        <return-value transfer-ownership="none">
+          <type name="SDPConnection" c:type="GstSDPConnection*"/>
+        </return-value>
+      </method>
+      <method name="set_connection"
+              c:identifier="gst_sdp_message_set_connection"
+              doc="&quot;Internet&quot;.
+Configure the SDP connection in @msg with the given parameters.">
+        <return-value transfer-ownership="full">
+          <type name="SDPResult" c:type="GstSDPResult"/>
+        </return-value>
+        <parameters>
+          <parameter name="nettype" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="addrtype" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="address" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="ttl" transfer-ownership="none">
+            <type name="uint" c:type="guint"/>
+          </parameter>
+          <parameter name="addr_number" transfer-ownership="none">
+            <type name="uint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="bandwidths_len"
+              c:identifier="gst_sdp_message_bandwidths_len"
+              doc="Get the number of bandwidth information in @msg.">
+        <return-value transfer-ownership="none">
+          <type name="uint" c:type="guint"/>
+        </return-value>
+      </method>
+      <method name="get_bandwidth"
+              c:identifier="gst_sdp_message_get_bandwidth"
+              doc="Get the bandwidth at index @idx from @msg.">
+        <return-value transfer-ownership="none">
+          <type name="SDPBandwidth" c:type="GstSDPBandwidth*"/>
+        </return-value>
+        <parameters>
+          <parameter name="idx" transfer-ownership="none">
+            <type name="uint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="add_bandwidth"
+              c:identifier="gst_sdp_message_add_bandwidth"
+              doc="Add the specified bandwidth information to @msg.">
+        <return-value transfer-ownership="full">
+          <type name="SDPResult" c:type="GstSDPResult"/>
+        </return-value>
+        <parameters>
+          <parameter name="bwtype" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="bandwidth" transfer-ownership="none">
+            <type name="uint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="times_len"
+              c:identifier="gst_sdp_message_times_len"
+              doc="Get the number of time information entries in @msg.">
+        <return-value transfer-ownership="none">
+          <type name="uint" c:type="guint"/>
+        </return-value>
+      </method>
+      <method name="get_time"
+              c:identifier="gst_sdp_message_get_time"
+              doc="Get time information with index @idx from @msg.">
+        <return-value transfer-ownership="none">
+          <type name="SDPTime" c:type="GstSDPTime*"/>
+        </return-value>
+        <parameters>
+          <parameter name="idx" transfer-ownership="none">
+            <type name="uint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="add_time"
+              c:identifier="gst_sdp_message_add_time"
+              doc="Add time information @start and @stop to @msg.">
+        <return-value transfer-ownership="full">
+          <type name="SDPResult" c:type="GstSDPResult"/>
+        </return-value>
+        <parameters>
+          <parameter name="start" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="stop" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="repeat" transfer-ownership="none">
+            <array c:type="gchar**">
+              <type name="utf8"/>
+            </array>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="zones_len"
+              c:identifier="gst_sdp_message_zones_len"
+              doc="Get the number of time zone information entries in @msg.">
+        <return-value transfer-ownership="none">
+          <type name="uint" c:type="guint"/>
+        </return-value>
+      </method>
+      <method name="get_zone"
+              c:identifier="gst_sdp_message_get_zone"
+              doc="Get time zone information with index @idx from @msg.">
+        <return-value transfer-ownership="none">
+          <type name="SDPZone" c:type="GstSDPZone*"/>
+        </return-value>
+        <parameters>
+          <parameter name="idx" transfer-ownership="none">
+            <type name="uint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="add_zone"
+              c:identifier="gst_sdp_message_add_zone"
+              doc="Add time zone information to @msg.">
+        <return-value transfer-ownership="full">
+          <type name="SDPResult" c:type="GstSDPResult"/>
+        </return-value>
+        <parameters>
+          <parameter name="adj_time" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="typed_time" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_key"
+              c:identifier="gst_sdp_message_get_key"
+              doc="Get the encryption information from @msg.">
+        <return-value transfer-ownership="none">
+          <type name="SDPKey" c:type="GstSDPKey*"/>
+        </return-value>
+      </method>
+      <method name="set_key"
+              c:identifier="gst_sdp_message_set_key"
+              doc="Adds the encryption information to @msg.">
+        <return-value transfer-ownership="full">
+          <type name="SDPResult" c:type="GstSDPResult"/>
+        </return-value>
+        <parameters>
+          <parameter name="type" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="data" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="attributes_len"
+              c:identifier="gst_sdp_message_attributes_len"
+              doc="Get the number of attributes in @msg.">
+        <return-value transfer-ownership="none">
+          <type name="uint" c:type="guint"/>
+        </return-value>
+      </method>
+      <method name="get_attribute"
+              c:identifier="gst_sdp_message_get_attribute"
+              doc="Get the attribute at position @idx in @msg.">
+        <return-value transfer-ownership="none">
+          <type name="SDPAttribute" c:type="GstSDPAttribute*"/>
+        </return-value>
+        <parameters>
+          <parameter name="idx" transfer-ownership="none">
+            <type name="uint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_attribute_val"
+              c:identifier="gst_sdp_message_get_attribute_val"
+              doc="Get the first attribute with key @key in @msg.">
+        <return-value transfer-ownership="none">
+          <type name="utf8" c:type="gchar*"/>
+        </return-value>
+        <parameters>
+          <parameter name="key" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_attribute_val_n"
+              c:identifier="gst_sdp_message_get_attribute_val_n"
+              doc="Get the @nth attribute with key @key in @msg.">
+        <return-value transfer-ownership="none">
+          <type name="utf8" c:type="gchar*"/>
+        </return-value>
+        <parameters>
+          <parameter name="key" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="nth" transfer-ownership="none">
+            <type name="uint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="add_attribute"
+              c:identifier="gst_sdp_message_add_attribute"
+              doc="Add the attribute with @key and @value to @msg.">
+        <return-value transfer-ownership="full">
+          <type name="SDPResult" c:type="GstSDPResult"/>
+        </return-value>
+        <parameters>
+          <parameter name="key" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="value" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="medias_len"
+              c:identifier="gst_sdp_message_medias_len"
+              doc="Get the number of media descriptions in @msg.">
+        <return-value transfer-ownership="none">
+          <type name="uint" c:type="guint"/>
+        </return-value>
+      </method>
+      <method name="get_media"
+              c:identifier="gst_sdp_message_get_media"
+              doc="Get the media description at index @idx in @msg.">
+        <return-value transfer-ownership="none">
+          <type name="SDPMedia" c:type="GstSDPMedia*"/>
+        </return-value>
+        <parameters>
+          <parameter name="idx" transfer-ownership="none">
+            <type name="uint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="add_media"
+              c:identifier="gst_sdp_message_add_media"
+              doc="Adds @media to the array of medias in @msg. This function takes ownership of
+the contents of @media so that @media will have to be reinitialized with
+gst_media_init() before it can be used again.">
+        <return-value transfer-ownership="full">
+          <type name="SDPResult" c:type="GstSDPResult"/>
+        </return-value>
+        <parameters>
+          <parameter name="media" transfer-ownership="none">
+            <type name="SDPMedia" c:type="GstSDPMedia*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="dump"
+              c:identifier="gst_sdp_message_dump"
+              doc="Dump the parsed contents of @msg to stdout.">
+        <return-value transfer-ownership="full">
+          <type name="SDPResult" c:type="GstSDPResult"/>
+        </return-value>
+      </method>
+    </record>
+    <record name="SDPOrigin"
+            c:type="GstSDPOrigin"
+            doc="if the originating host does not support the concept of user ids.
+session.
+&quot;Internet&quot;.
+created.
+The contents of the SDP &quot;o=&quot; field which gives the originator of the session
+(their username and the address of the user&apos;s host) plus a session id and
+session version number.">
+      <field name="username" writable="1">
+        <type name="utf8" c:type="gchar*"/>
+      </field>
+      <field name="sess_id" writable="1">
+        <type name="utf8" c:type="gchar*"/>
+      </field>
+      <field name="sess_version" writable="1">
+        <type name="utf8" c:type="gchar*"/>
+      </field>
+      <field name="nettype" writable="1">
+        <type name="utf8" c:type="gchar*"/>
+      </field>
+      <field name="addrtype" writable="1">
+        <type name="utf8" c:type="gchar*"/>
+      </field>
+      <field name="addr" writable="1">
+        <type name="utf8" c:type="gchar*"/>
+      </field>
+    </record>
+    <enumeration name="SDPResult"
+                 doc="Return values for the SDP functions."
+                 c:type="GstSDPResult">
+      <member name="ok" value="0" c:identifier="GST_SDP_OK"/>
+      <member name="einval" value="-1" c:identifier="GST_SDP_EINVAL"/>
+    </enumeration>
+    <record name="SDPTime"
+            c:type="GstSDPTime"
+            doc="representation of Network Time Protocol (NTP) time values in seconds
+representation of Network Time Protocol (NTP) time values in seconds
+The contents of the SDP &quot;t=&quot; field which specify the start and stop times for
+a conference session.">
+      <field name="start" writable="1">
+        <type name="utf8" c:type="gchar*"/>
+      </field>
+      <field name="stop" writable="1">
+        <type name="utf8" c:type="gchar*"/>
+      </field>
+      <field name="repeat" writable="1">
+        <type name="GLib.Array" c:type="GArray*"/>
+      </field>
+    </record>
+    <record name="SDPZone"
+            c:type="GstSDPZone"
+            doc="The contents of the SDP &quot;z=&quot; field which allows the sender to
+specify a list of time zone adjustments and offsets from the base
+time.">
+      <field name="time" writable="1">
+        <type name="utf8" c:type="gchar*"/>
+      </field>
+      <field name="typed_time" writable="1">
+        <type name="utf8" c:type="gchar*"/>
+      </field>
+    </record>
+    <function name="message_parse_buffer"
+              c:identifier="gst_sdp_message_parse_buffer"
+              doc="Parse the contents of @size bytes pointed to by @data and store the result in">
+      <return-value transfer-ownership="full">
+        <type name="SDPResult" c:type="GstSDPResult"/>
+      </return-value>
+      <parameters>
+        <parameter name="data" transfer-ownership="none">
+          <array c:type="guint8*">
+            <type name="uint8"/>
+          </array>
+        </parameter>
+        <parameter name="size" transfer-ownership="none">
+          <type name="uint" c:type="guint"/>
+        </parameter>
+        <parameter name="msg" transfer-ownership="none">
+          <type name="SDPMessage" c:type="GstSDPMessage*"/>
+        </parameter>
+      </parameters>
+    </function>
+  </namespace>
+</repository>
diff --git a/unmaintained/gstreamer/sdp/ffi/ffi.factor b/unmaintained/gstreamer/sdp/ffi/ffi.factor
new file mode 100644 (file)
index 0000000..f023bb2
--- /dev/null
@@ -0,0 +1,16 @@
+! Copyright (C) 2010 Anton Gorenko.
+! See http://factorcode.org/license.txt for BSD license.
+USING: alien alien.libraries combinators kernel system
+gobject-introspection glib.ffi ;
+IN: gstreamer.sdp.ffi
+
+<<
+"gstreamer.sdp" {
+    { [ os winnt? ] [ drop ] }
+    { [ os macosx? ] [ drop ] }
+    { [ os unix? ] [ "libgstsdp-0.10.so" cdecl add-library ] }
+} cond
+>>
+
+GIR: vocab:gstreamer/sdp/GstSdp-0.10.gir
+
diff --git a/unmaintained/gstreamer/sdp/sdp.factor b/unmaintained/gstreamer/sdp/sdp.factor
new file mode 100644 (file)
index 0000000..1cfdbfe
--- /dev/null
@@ -0,0 +1,5 @@
+! Copyright (C) 2010 Anton Gorenko.
+! See http://factorcode.org/license.txt for BSD license.
+USING: gstreamer.sdp.ffi ;
+IN: gstreamer.sdp
+
diff --git a/unmaintained/gstreamer/summary.txt b/unmaintained/gstreamer/summary.txt
new file mode 100644 (file)
index 0000000..4094ff9
--- /dev/null
@@ -0,0 +1 @@
+GStreamer binding
diff --git a/unmaintained/gstreamer/tag/GstTag-0.10.gir b/unmaintained/gstreamer/tag/GstTag-0.10.gir
new file mode 100644 (file)
index 0000000..f571459
--- /dev/null
@@ -0,0 +1,797 @@
+<?xml version="1.0"?>
+<!-- This file was automatically generated from C sources - DO NOT EDIT!
+To affect the contents of this file, edit the original C definitions,
+and/or use gtk-doc annotations.  -->
+<repository version="1.0"
+            xmlns="http://www.gtk.org/introspection/core/1.0"
+            xmlns:c="http://www.gtk.org/introspection/c/1.0"
+            xmlns:glib="http://www.gtk.org/introspection/glib/1.0">
+  <include name="GLib" version="2.0"/>
+  <include name="GModule" version="2.0"/>
+  <include name="GObject" version="2.0"/>
+  <include name="Gst" version="0.10"/>
+  <include name="GstBase" version="0.10"/>
+  <include name="libxml2" version="2.0"/>
+  <package name="gstreamer-0.10"/>
+  <package name="gstreamer-base-0.10"/>
+  <namespace name="GstTag"
+             version="0.10"
+             shared-library="libgsttag-0.10.so.0"
+             c:prefix="Gst">
+    <constant name="CDDA_CDDB_DISCID" value="discid">
+      <type name="utf8"/>
+    </constant>
+    <constant name="CDDA_CDDB_DISCID_FULL" value="discid-full">
+      <type name="utf8"/>
+    </constant>
+    <constant name="CDDA_MUSICBRAINZ_DISCID" value="musicbrainz-discid">
+      <type name="utf8"/>
+    </constant>
+    <constant name="CDDA_MUSICBRAINZ_DISCID_FULL"
+              value="musicbrainz-discid-full">
+      <type name="utf8"/>
+    </constant>
+    <constant name="CMML_CLIP" value="cmml-clip">
+      <type name="utf8"/>
+    </constant>
+    <constant name="CMML_HEAD" value="cmml-head">
+      <type name="utf8"/>
+    </constant>
+    <constant name="CMML_STREAM" value="cmml-stream">
+      <type name="utf8"/>
+    </constant>
+    <constant name="MUSICBRAINZ_ALBUMARTISTID"
+              value="musicbrainz-albumartistid">
+      <type name="utf8"/>
+    </constant>
+    <constant name="MUSICBRAINZ_ALBUMID" value="musicbrainz-albumid">
+      <type name="utf8"/>
+    </constant>
+    <constant name="MUSICBRAINZ_ARTISTID" value="musicbrainz-artistid">
+      <type name="utf8"/>
+    </constant>
+    <constant name="MUSICBRAINZ_TRACKID" value="musicbrainz-trackid">
+      <type name="utf8"/>
+    </constant>
+    <constant name="MUSICBRAINZ_TRMID" value="musicbrainz-trmid">
+      <type name="utf8"/>
+    </constant>
+    <class name="TagDemux"
+           c:type="GstTagDemux"
+           doc="Opaque #GstTagDemux structure."
+           version="0.10.15"
+           parent="Gst.Element"
+           abstract="1"
+           glib:type-name="GstTagDemux"
+           glib:get-type="gst_tag_demux_get_type"
+           glib:type-struct="TagDemuxClass">
+      <virtual-method name="identify_tag">
+        <return-value transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="buffer" transfer-ownership="none">
+            <type name="Gst.Buffer" c:type="GstBuffer*"/>
+          </parameter>
+          <parameter name="start_tag" transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </parameter>
+          <parameter name="tag_size" direction="out" transfer-ownership="full">
+            <type name="uint" c:type="guint*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="parse_tag">
+        <return-value transfer-ownership="full">
+          <type name="TagDemuxResult" c:type="GstTagDemuxResult"/>
+        </return-value>
+        <parameters>
+          <parameter name="buffer" transfer-ownership="none">
+            <type name="Gst.Buffer" c:type="GstBuffer*"/>
+          </parameter>
+          <parameter name="start_tag" transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </parameter>
+          <parameter name="tag_size" direction="out" transfer-ownership="full">
+            <type name="uint" c:type="guint*"/>
+          </parameter>
+          <parameter name="tags" transfer-ownership="none">
+            <type name="Gst.TagList" c:type="GstTagList**"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="merge_tags">
+        <return-value transfer-ownership="full">
+          <type name="Gst.TagList" c:type="GstTagList*"/>
+        </return-value>
+        <parameters>
+          <parameter name="start_tags" transfer-ownership="none">
+            <type name="Gst.TagList" c:type="GstTagList*"/>
+          </parameter>
+          <parameter name="end_tags" transfer-ownership="none">
+            <type name="Gst.TagList" c:type="GstTagList*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <field name="element">
+        <type name="Gst.Element" c:type="GstElement"/>
+      </field>
+      <field name="priv">
+        <type name="TagDemuxPrivate" c:type="GstTagDemuxPrivate*"/>
+      </field>
+      <field name="reserved">
+        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+          <type name="any"/>
+        </array>
+      </field>
+    </class>
+    <record name="TagDemuxClass"
+            c:type="GstTagDemuxClass"
+            glib:is-gtype-struct-for="TagDemux"
+            doc="determine its total size. Set to 0 if not interested in start tags.
+Subclasses should set this in their class_init function.
+determine its total size. Set to 0 if not interested in end tags.
+Subclasses should set this in their class_init function.
+tag. Buffer may be larger than the specified minimum size.
+Subclassed MUST override this vfunc in their class_init function.
+the identify_tag vfunc before. The parse_tag vfunc may change the size
+stored in *tag_size and return GST_TAG_DEMUX_RESULT_AGAIN to request a
+larger or smaller buffer. It is also permitted to adjust the tag_size to a
+smaller value and then return GST_TAG_DEMUX_RESULT_OK in one go.
+Subclassed MUST override the parse_tag vfunc in their class_init function.
+vfunc to allow prioritising of start or end tag according to user
+preference.  Note that both start_tags and end_tags may be NULL. By default
+start tags are prefered over end tags.
+The #GstTagDemuxClass structure.  See documentation at beginning of section
+for details about what subclasses need to override and do."
+            version="0.10.15">
+      <field name="parent_class">
+        <type name="Gst.ElementClass" c:type="GstElementClass"/>
+      </field>
+      <field name="min_start_size">
+        <type name="uint" c:type="guint"/>
+      </field>
+      <field name="min_end_size">
+        <type name="uint" c:type="guint"/>
+      </field>
+      <field name="identify_tag">
+        <callback name="identify_tag" c:type="identify_tag">
+          <return-value transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="demux" transfer-ownership="none">
+              <type name="TagDemux" c:type="GstTagDemux*"/>
+            </parameter>
+            <parameter name="buffer" transfer-ownership="none">
+              <type name="Gst.Buffer" c:type="GstBuffer*"/>
+            </parameter>
+            <parameter name="start_tag" transfer-ownership="none">
+              <type name="boolean" c:type="gboolean"/>
+            </parameter>
+            <parameter name="tag_size"
+                       direction="out"
+                       transfer-ownership="full">
+              <type name="uint" c:type="guint*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="parse_tag">
+        <callback name="parse_tag" c:type="parse_tag">
+          <return-value transfer-ownership="full">
+            <type name="TagDemuxResult" c:type="GstTagDemuxResult"/>
+          </return-value>
+          <parameters>
+            <parameter name="demux" transfer-ownership="none">
+              <type name="TagDemux" c:type="GstTagDemux*"/>
+            </parameter>
+            <parameter name="buffer" transfer-ownership="none">
+              <type name="Gst.Buffer" c:type="GstBuffer*"/>
+            </parameter>
+            <parameter name="start_tag" transfer-ownership="none">
+              <type name="boolean" c:type="gboolean"/>
+            </parameter>
+            <parameter name="tag_size"
+                       direction="out"
+                       transfer-ownership="full">
+              <type name="uint" c:type="guint*"/>
+            </parameter>
+            <parameter name="tags" transfer-ownership="none">
+              <type name="Gst.TagList" c:type="GstTagList**"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="merge_tags">
+        <callback name="merge_tags" c:type="merge_tags">
+          <return-value transfer-ownership="full">
+            <type name="Gst.TagList" c:type="GstTagList*"/>
+          </return-value>
+          <parameters>
+            <parameter name="demux" transfer-ownership="none">
+              <type name="TagDemux" c:type="GstTagDemux*"/>
+            </parameter>
+            <parameter name="start_tags" transfer-ownership="none">
+              <type name="Gst.TagList" c:type="GstTagList*"/>
+            </parameter>
+            <parameter name="end_tags" transfer-ownership="none">
+              <type name="Gst.TagList" c:type="GstTagList*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="reserved">
+        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+          <type name="any"/>
+        </array>
+      </field>
+    </record>
+    <record name="TagDemuxPrivate" c:type="GstTagDemuxPrivate">
+    </record>
+    <enumeration name="TagDemuxResult"
+                 doc="Result values from the parse_tag virtual function."
+                 version="0.10.15"
+                 glib:type-name="GstTagDemuxResult"
+                 glib:get-type="gst_tag_demux_result_get_type"
+                 c:type="GstTagDemuxResult">
+      <member name="broken_tag"
+              value="0"
+              c:identifier="GST_TAG_DEMUX_RESULT_BROKEN_TAG"
+              glib:nick="broken-tag"/>
+      <member name="again"
+              value="1"
+              c:identifier="GST_TAG_DEMUX_RESULT_AGAIN"
+              glib:nick="again"/>
+      <member name="ok"
+              value="2"
+              c:identifier="GST_TAG_DEMUX_RESULT_OK"
+              glib:nick="ok"/>
+    </enumeration>
+    <enumeration name="TagImageType"
+                 doc="tell functions such as gst_tag_image_data_to_image_buffer() that no
+Type of image contained in an image tag (specified as field in
+the image buffer&apos;s caps structure)"
+                 version="0.10.9"
+                 glib:type-name="GstTagImageType"
+                 glib:get-type="gst_tag_image_type_get_type"
+                 c:type="GstTagImageType">
+      <member name="none"
+              value="-1"
+              c:identifier="GST_TAG_IMAGE_TYPE_NONE"
+              glib:nick="none"/>
+      <member name="undefined"
+              value="0"
+              c:identifier="GST_TAG_IMAGE_TYPE_UNDEFINED"
+              glib:nick="undefined"/>
+      <member name="front_cover"
+              value="1"
+              c:identifier="GST_TAG_IMAGE_TYPE_FRONT_COVER"
+              glib:nick="front-cover"/>
+      <member name="back_cover"
+              value="2"
+              c:identifier="GST_TAG_IMAGE_TYPE_BACK_COVER"
+              glib:nick="back-cover"/>
+      <member name="leaflet_page"
+              value="3"
+              c:identifier="GST_TAG_IMAGE_TYPE_LEAFLET_PAGE"
+              glib:nick="leaflet-page"/>
+      <member name="medium"
+              value="4"
+              c:identifier="GST_TAG_IMAGE_TYPE_MEDIUM"
+              glib:nick="medium"/>
+      <member name="lead_artist"
+              value="5"
+              c:identifier="GST_TAG_IMAGE_TYPE_LEAD_ARTIST"
+              glib:nick="lead-artist"/>
+      <member name="artist"
+              value="6"
+              c:identifier="GST_TAG_IMAGE_TYPE_ARTIST"
+              glib:nick="artist"/>
+      <member name="conductor"
+              value="7"
+              c:identifier="GST_TAG_IMAGE_TYPE_CONDUCTOR"
+              glib:nick="conductor"/>
+      <member name="band_orchestra"
+              value="8"
+              c:identifier="GST_TAG_IMAGE_TYPE_BAND_ORCHESTRA"
+              glib:nick="band-orchestra"/>
+      <member name="composer"
+              value="9"
+              c:identifier="GST_TAG_IMAGE_TYPE_COMPOSER"
+              glib:nick="composer"/>
+      <member name="lyricist"
+              value="10"
+              c:identifier="GST_TAG_IMAGE_TYPE_LYRICIST"
+              glib:nick="lyricist"/>
+      <member name="recording_location"
+              value="11"
+              c:identifier="GST_TAG_IMAGE_TYPE_RECORDING_LOCATION"
+              glib:nick="recording-location"/>
+      <member name="during_recording"
+              value="12"
+              c:identifier="GST_TAG_IMAGE_TYPE_DURING_RECORDING"
+              glib:nick="during-recording"/>
+      <member name="during_performance"
+              value="13"
+              c:identifier="GST_TAG_IMAGE_TYPE_DURING_PERFORMANCE"
+              glib:nick="during-performance"/>
+      <member name="video_capture"
+              value="14"
+              c:identifier="GST_TAG_IMAGE_TYPE_VIDEO_CAPTURE"
+              glib:nick="video-capture"/>
+      <member name="fish"
+              value="15"
+              c:identifier="GST_TAG_IMAGE_TYPE_FISH"
+              glib:nick="fish"/>
+      <member name="illustration"
+              value="16"
+              c:identifier="GST_TAG_IMAGE_TYPE_ILLUSTRATION"
+              glib:nick="illustration"/>
+      <member name="artist_logo"
+              value="17"
+              c:identifier="GST_TAG_IMAGE_TYPE_BAND_ARTIST_LOGO"
+              glib:nick="artist-logo"/>
+      <member name="publisher_studio_logo"
+              value="18"
+              c:identifier="GST_TAG_IMAGE_TYPE_PUBLISHER_STUDIO_LOGO"
+              glib:nick="publisher-studio-logo"/>
+    </enumeration>
+    <function name="freeform_string_to_utf8"
+              c:identifier="gst_tag_freeform_string_to_utf8"
+              doc="or NULL
+Convenience function to read a string with unknown character encoding. If
+the string is already in UTF-8 encoding, it will be returned right away.
+If not it tries to detect byte-order-mark for UTF-16/32 cases and use that.
+Otherwise, the environment will be searched for a number of environment
+variables (whose names are specified in the NULL-terminated string array
+are specified, the current locale will be tried. If that also doesn&apos;t work,
+ISO-8859-1 is assumed (which will almost always succeed)."
+              version="0.10.13">
+      <return-value transfer-ownership="full">
+        <type name="utf8" c:type="gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="data" transfer-ownership="none">
+          <type name="utf8" c:type="gchar*"/>
+        </parameter>
+        <parameter name="size" transfer-ownership="none">
+          <type name="int" c:type="gint"/>
+        </parameter>
+        <parameter name="env_vars" transfer-ownership="none">
+          <array c:type="gchar**">
+            <type name="utf8"/>
+          </array>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="from_id3_tag"
+              c:identifier="gst_tag_from_id3_tag"
+              doc="Looks up the GStreamer tag for a ID3v2 tag.">
+      <return-value transfer-ownership="none">
+        <type name="utf8" c:type="gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="id3_tag" transfer-ownership="none">
+          <type name="utf8" c:type="gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="from_id3_user_tag"
+              c:identifier="gst_tag_from_id3_user_tag"
+              doc="Looks up the GStreamer tag for an ID3v2 user tag (e.g. description in
+TXXX frame or owner in UFID frame).">
+      <return-value transfer-ownership="none">
+        <type name="utf8" c:type="gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="type" transfer-ownership="none">
+          <type name="utf8" c:type="gchar*"/>
+        </parameter>
+        <parameter name="id3_user_tag" transfer-ownership="none">
+          <type name="utf8" c:type="gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="from_vorbis_tag"
+              c:identifier="gst_tag_from_vorbis_tag"
+              doc="Looks up the GStreamer tag for a vorbiscomment tag.">
+      <return-value transfer-ownership="none">
+        <type name="utf8" c:type="gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="vorbis_tag" transfer-ownership="none">
+          <type name="utf8" c:type="gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="get_language_code_iso_639_1"
+              c:identifier="gst_tag_get_language_code_iso_639_1"
+              doc="Returns two-letter ISO-639-1 language code given a three-letter ISO-639-2
+language code or two-letter ISO-639-1 language code (both are accepted for
+convenience).
+Language codes are case-sensitive and expected to be lower case.
+or NULL if no mapping is known. The returned string must not be
+modified or freed."
+              version="0.10.26">
+      <return-value transfer-ownership="none">
+        <type name="utf8" c:type="gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="lang_code" transfer-ownership="none">
+          <type name="utf8" c:type="gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="get_language_code_iso_639_2B"
+              c:identifier="gst_tag_get_language_code_iso_639_2B"
+              doc="Returns three-letter ISO-639-2 &quot;bibliographic&quot; language code given a
+two-letter ISO-639-1 language code or a three-letter ISO-639-2 language
+code (both are accepted for convenience).
+The &quot;bibliographic&quot; code is derived from the English name of the language
+(e.g. &quot;ger&quot; for German instead of &quot;de&quot; or &quot;deu&quot;). In most scenarios, the
+&quot;terminological&quot; codes are prefered.
+Language codes are case-sensitive and expected to be lower case.
+or NULL if no mapping is known. The returned string must not be
+modified or freed."
+              version="0.10.26">
+      <return-value transfer-ownership="none">
+        <type name="utf8" c:type="gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="lang_code" transfer-ownership="none">
+          <type name="utf8" c:type="gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="get_language_code_iso_639_2T"
+              c:identifier="gst_tag_get_language_code_iso_639_2T"
+              doc="Returns three-letter ISO-639-2 &quot;terminological&quot; language code given a
+two-letter ISO-639-1 language code or a three-letter ISO-639-2 language
+code (both are accepted for convenience).
+The &quot;terminological&quot; code is derived from the local name of the language
+(e.g. &quot;deu&quot; for German instead of &quot;ger&quot;). In most scenarios, the
+&quot;terminological&quot; codes are prefered over the &quot;bibliographic&quot; ones.
+Language codes are case-sensitive and expected to be lower case.
+or NULL if no mapping is known. The returned string must not be
+modified or freed."
+              version="0.10.26">
+      <return-value transfer-ownership="none">
+        <type name="utf8" c:type="gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="lang_code" transfer-ownership="none">
+          <type name="utf8" c:type="gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="get_language_codes"
+              c:identifier="gst_tag_get_language_codes"
+              doc="Returns a list of known language codes (in form of two-letter ISO-639-1
+codes). This is useful for UIs to build a list of available languages for
+tagging purposes (e.g. to tag an audio track appropriately in a video or
+audio editor).
+with g_strfreev() when no longer needed."
+              version="0.10.26">
+      <return-value transfer-ownership="full">
+        <array c:type="gchar**">
+          <type name="utf8"/>
+        </array>
+      </return-value>
+    </function>
+    <function name="get_language_name"
+              c:identifier="gst_tag_get_language_name"
+              doc="Returns the name of the language given an ISO-639 language code, such
+as often found in a GST_TAG_LANGUAGE tag. The name will be translated
+according to the current locale (if the library was built against the
+iso-codes package, otherwise the English name will be returned).
+Language codes are case-sensitive and expected to be lower case.
+not be mapped to a language name. The returned string must not be
+modified and does not need to freed; it will stay valid until the
+application is terminated."
+              version="0.10.26">
+      <return-value transfer-ownership="none">
+        <type name="utf8" c:type="gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="language_code" transfer-ownership="none">
+          <type name="utf8" c:type="gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="id3_genre_count"
+              c:identifier="gst_tag_id3_genre_count"
+              doc="Gets the number of ID3v1 genres that can be identified. Winamp genres are
+included.">
+      <return-value transfer-ownership="none">
+        <type name="uint" c:type="guint"/>
+      </return-value>
+    </function>
+    <function name="id3_genre_get"
+              c:identifier="gst_tag_id3_genre_get"
+              doc="Gets the ID3v1 genre name for a given ID.">
+      <return-value transfer-ownership="none">
+        <type name="utf8" c:type="gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="id" transfer-ownership="none">
+          <type name="uint" c:type="guint"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="image_data_to_image_buffer"
+              c:identifier="gst_tag_image_data_to_image_buffer"
+              doc="#GST_TAG_IMAGE_TYPE_NONE if no image type should be set at all (e.g.
+for preview images)
+Helper function for tag-reading plugins to create a #GstBuffer suitable to
+add to a #GstTagList as an image tag (such as #GST_TAG_IMAGE or
+#GST_TAG_PREVIEW_IMAGE) from the encoded image data and an (optional) image
+type.
+blob of binary image data, often accompanied by a MIME type or some other
+content type string (e.g. &apos;png&apos;, &apos;jpeg&apos;, &apos;jpg&apos;). Sometimes there is also an
+&apos;image type&apos; to indicate what kind of image this is (e.g. front cover,
+back cover, artist, etc.). The image data may also be an URI to the image
+rather than the image itself.
+In GStreamer, image tags are #GstBuffer&lt;!-- --&gt;s containing the raw image
+data, with the buffer caps describing the content type of the image
+(e.g. image/jpeg, image/png, text/uri-list). The buffer caps may contain
+an additional &apos;image-type&apos; field of #GST_TYPE_TAG_IMAGE_TYPE to describe
+the type of image (front cover, back cover etc.). #GST_TAG_PREVIEW_IMAGE
+tags should not carry an image type, their type is already indicated via
+the special tag name.
+This function will do various checks and typefind the encoded image
+data (we can&apos;t trust the declared mime type)."
+              version="0.10.20">
+      <return-value transfer-ownership="full">
+        <type name="Gst.Buffer" c:type="GstBuffer*"/>
+      </return-value>
+      <parameters>
+        <parameter name="image_data" transfer-ownership="none" doc="image">
+          <array c:type="guint8*">
+            <type name="uint8"/>
+          </array>
+        </parameter>
+        <parameter name="image_data_len" transfer-ownership="none">
+          <type name="uint" c:type="guint"/>
+        </parameter>
+        <parameter name="image_type" transfer-ownership="none">
+          <type name="TagImageType" c:type="GstTagImageType"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="list_add_id3_image"
+              c:identifier="gst_tag_list_add_id3_image"
+              doc="the APIC frame (0 = unknown/other)
+Adds an image from an ID3 APIC frame (or similar, such as used in FLAC)
+to the given tag list. Also see gst_tag_image_data_to_image_buffer() for
+more information on image tags in GStreamer."
+              version="0.10.20">
+      <return-value transfer-ownership="none">
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="tag_list" transfer-ownership="none">
+          <type name="Gst.TagList" c:type="GstTagList*"/>
+        </parameter>
+        <parameter name="image_data" transfer-ownership="none" doc="image">
+          <array c:type="guint8*">
+            <type name="uint8"/>
+          </array>
+        </parameter>
+        <parameter name="image_data_len" transfer-ownership="none">
+          <type name="uint" c:type="guint"/>
+        </parameter>
+        <parameter name="id3_picture_type"
+                   transfer-ownership="none"
+                   doc="specification for">
+          <type name="uint" c:type="guint"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="list_from_vorbiscomment_buffer"
+              c:identifier="gst_tag_list_from_vorbiscomment_buffer"
+              doc="of this vorbis comment or NULL if you don&apos;t need it.
+Creates a new tag list that contains the information parsed out of a
+vorbiscomment packet.
+given vorbiscomment buffer or NULL on error.">
+      <return-value transfer-ownership="full">
+        <type name="Gst.TagList" c:type="GstTagList*"/>
+      </return-value>
+      <parameters>
+        <parameter name="buffer" transfer-ownership="none">
+          <type name="Gst.Buffer" c:type="GstBuffer*"/>
+        </parameter>
+        <parameter name="id_data" transfer-ownership="none">
+          <array c:type="guint8*">
+            <type name="uint8"/>
+          </array>
+        </parameter>
+        <parameter name="id_data_length" transfer-ownership="none">
+          <type name="uint" c:type="guint"/>
+        </parameter>
+        <parameter name="vendor_string" transfer-ownership="none">
+          <array c:type="gchar**">
+            <type name="utf8"/>
+          </array>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="list_from_xmp_buffer"
+              c:identifier="gst_tag_list_from_xmp_buffer"
+              doc="Parse a xmp packet into a taglist."
+              version="0.10.29">
+      <return-value transfer-ownership="full">
+        <type name="Gst.TagList" c:type="GstTagList*"/>
+      </return-value>
+      <parameters>
+        <parameter name="buffer" transfer-ownership="none">
+          <type name="Gst.Buffer" c:type="GstBuffer*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="list_new_from_id3v1"
+              c:identifier="gst_tag_list_new_from_id3v1"
+              doc="Parses the data containing an ID3v1 tag and returns a #GstTagList from the
+parsed data.">
+      <return-value transfer-ownership="full">
+        <type name="Gst.TagList" c:type="GstTagList*"/>
+      </return-value>
+      <parameters>
+        <parameter name="data" transfer-ownership="none">
+          <array c:type="guint8*">
+            <type name="uint8"/>
+          </array>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="list_to_vorbiscomment_buffer"
+              c:identifier="gst_tag_list_to_vorbiscomment_buffer"
+              doc="Creates a new vorbiscomment buffer from a tag list.
+that could be converted from the given tag list.">
+      <return-value transfer-ownership="full">
+        <type name="Gst.Buffer" c:type="GstBuffer*"/>
+      </return-value>
+      <parameters>
+        <parameter name="list" transfer-ownership="none">
+          <type name="Gst.TagList" c:type="GstTagList*"/>
+        </parameter>
+        <parameter name="id_data" transfer-ownership="none">
+          <array c:type="guint8*">
+            <type name="uint8"/>
+          </array>
+        </parameter>
+        <parameter name="id_data_length" transfer-ownership="none">
+          <type name="uint" c:type="guint"/>
+        </parameter>
+        <parameter name="vendor_string" transfer-ownership="none">
+          <type name="utf8" c:type="gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="list_to_xmp_buffer"
+              c:identifier="gst_tag_list_to_xmp_buffer"
+              doc="Formats a taglist as a xmp packet."
+              version="0.10.29">
+      <return-value transfer-ownership="full">
+        <type name="Gst.Buffer" c:type="GstBuffer*"/>
+      </return-value>
+      <parameters>
+        <parameter name="list" transfer-ownership="none">
+          <type name="Gst.TagList" c:type="GstTagList*"/>
+        </parameter>
+        <parameter name="read_only" transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="parse_extended_comment"
+              c:identifier="gst_tag_parse_extended_comment"
+              doc="Convenience function to parse a GST_TAG_EXTENDED_COMMENT string and
+separate it into its components.
+If successful, @key, @lang and/or @value will be set to newly allocated
+strings that you need to free with g_free() when done. @key and @lang
+may also be set to NULL by this function if there is no key or no language
+code in the extended comment string."
+              version="0.10.10">
+      <return-value transfer-ownership="none">
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="ext_comment" transfer-ownership="none">
+          <type name="utf8" c:type="gchar*"/>
+        </parameter>
+        <parameter name="key" transfer-ownership="none">
+          <array c:type="gchar**">
+            <type name="utf8"/>
+          </array>
+        </parameter>
+        <parameter name="lang" transfer-ownership="none">
+          <array c:type="gchar**">
+            <type name="utf8"/>
+          </array>
+        </parameter>
+        <parameter name="value" transfer-ownership="none">
+          <array c:type="gchar**">
+            <type name="utf8"/>
+          </array>
+        </parameter>
+        <parameter name="fail_if_no_key" transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="register_musicbrainz_tags"
+              c:identifier="gst_tag_register_musicbrainz_tags">
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+    </function>
+    <function name="to_id3_tag"
+              c:identifier="gst_tag_to_id3_tag"
+              doc="Looks up the ID3v2 tag for a GStreamer tag.">
+      <return-value transfer-ownership="none">
+        <type name="utf8" c:type="gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="gst_tag" transfer-ownership="none">
+          <type name="utf8" c:type="gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="to_vorbis_comments"
+              c:identifier="gst_tag_to_vorbis_comments"
+              doc="Creates a new tag list that contains the information parsed out of a
+vorbiscomment packet.
+g_list_foreach (list, (GFunc) g_free, NULL) plus g_list_free (list)">
+      <return-value transfer-ownership="full">
+        <type name="GLib.List" c:type="GList*"/>
+      </return-value>
+      <parameters>
+        <parameter name="list" transfer-ownership="none">
+          <type name="Gst.TagList" c:type="GstTagList*"/>
+        </parameter>
+        <parameter name="tag" transfer-ownership="none">
+          <type name="utf8" c:type="gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="to_vorbis_tag"
+              c:identifier="gst_tag_to_vorbis_tag"
+              doc="Looks up the vorbiscomment tag for a GStreamer tag.">
+      <return-value transfer-ownership="none">
+        <type name="utf8" c:type="gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="gst_tag" transfer-ownership="none">
+          <type name="utf8" c:type="gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="vorbis_tag_add"
+              c:identifier="gst_vorbis_tag_add"
+              doc="Convenience function using gst_tag_from_vorbis_tag(), parsing
+a vorbis comment string into the right type and adding it to the
+given taglist @list.
+Unknown vorbiscomment tags will be added to the tag list in form
+of a #GST_TAG_EXTENDED_COMMENT (since 0.10.10 at least).">
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="list" transfer-ownership="none">
+          <type name="Gst.TagList" c:type="GstTagList*"/>
+        </parameter>
+        <parameter name="tag"
+                   transfer-ownership="none"
+                   doc="must be valid UTF-8">
+          <type name="utf8" c:type="gchar*"/>
+        </parameter>
+        <parameter name="value"
+                   transfer-ownership="none"
+                   doc="must be valid UTF-8">
+          <type name="utf8" c:type="gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+  </namespace>
+</repository>
diff --git a/unmaintained/gstreamer/tag/ffi/ffi.factor b/unmaintained/gstreamer/tag/ffi/ffi.factor
new file mode 100644 (file)
index 0000000..28eda35
--- /dev/null
@@ -0,0 +1,16 @@
+! Copyright (C) 2010 Anton Gorenko.
+! See http://factorcode.org/license.txt for BSD license.
+USING: alien alien.libraries combinators kernel system
+gobject-introspection glib.ffi gstreamer.ffi ;
+IN: gstreamer.tag.ffi
+
+<<
+"gstreamer.tag" {
+    { [ os winnt? ] [ drop ] }
+    { [ os macosx? ] [ drop ] }
+    { [ os unix? ] [ "libgsttag-0.10.so" cdecl add-library ] }
+} cond
+>>
+
+GIR: vocab:gstreamer/tag/GstTag-0.10.gir
+
diff --git a/unmaintained/gstreamer/tag/tag.factor b/unmaintained/gstreamer/tag/tag.factor
new file mode 100644 (file)
index 0000000..30c6c97
--- /dev/null
@@ -0,0 +1,5 @@
+! Copyright (C) 2010 Anton Gorenko.
+! See http://factorcode.org/license.txt for BSD license.
+USING: gstreamer.tag.ffi ;
+IN: gstreamer.tag
+
diff --git a/unmaintained/gstreamer/tags.txt b/unmaintained/gstreamer/tags.txt
new file mode 100755 (executable)
index 0000000..be30e2c
--- /dev/null
@@ -0,0 +1,3 @@
+bindings
+audio
+video
diff --git a/unmaintained/gstreamer/video/GstVideo-0.10.gir b/unmaintained/gstreamer/video/GstVideo-0.10.gir
new file mode 100644 (file)
index 0000000..ff905a0
--- /dev/null
@@ -0,0 +1,925 @@
+<?xml version="1.0"?>
+<!-- This file was automatically generated from C sources - DO NOT EDIT!
+To affect the contents of this file, edit the original C definitions,
+and/or use gtk-doc annotations.  -->
+<repository version="1.0"
+            xmlns="http://www.gtk.org/introspection/core/1.0"
+            xmlns:c="http://www.gtk.org/introspection/c/1.0"
+            xmlns:glib="http://www.gtk.org/introspection/glib/1.0">
+  <include name="GLib" version="2.0"/>
+  <include name="GModule" version="2.0"/>
+  <include name="GObject" version="2.0"/>
+  <include name="Gst" version="0.10"/>
+  <include name="GstBase" version="0.10"/>
+  <include name="libxml2" version="2.0"/>
+  <package name="gstreamer-0.10"/>
+  <package name="gstreamer-base-0.10"/>
+  <c:include name="gst/video/gstvideofilter.h"/>
+  <c:include name="gst/video/gstvideosink.h"/>
+  <c:include name="gst/video/video-enumtypes.h"/>
+  <c:include name="gst/video/video.h"/>
+  <namespace name="GstVideo"
+             version="0.10"
+             shared-library="libgstvideo-0.10.so.0"
+             c:prefix="Gst">
+    <constant name="BLUE_MASK_15" value="0x001f">
+      <type name="utf8"/>
+    </constant>
+    <constant name="BLUE_MASK_15_INT" value="31">
+      <type name="int"/>
+    </constant>
+    <constant name="BLUE_MASK_16" value="0x001f">
+      <type name="utf8"/>
+    </constant>
+    <constant name="BLUE_MASK_16_INT" value="31">
+      <type name="int"/>
+    </constant>
+    <constant name="BYTE1_MASK_24" value="0x00FF0000">
+      <type name="utf8"/>
+    </constant>
+    <constant name="BYTE1_MASK_24_INT" value="16711680">
+      <type name="int"/>
+    </constant>
+    <constant name="BYTE1_MASK_32" value="0xFF000000">
+      <type name="utf8"/>
+    </constant>
+    <constant name="BYTE1_MASK_32_INT" value="-16777216">
+      <type name="int"/>
+    </constant>
+    <constant name="BYTE2_MASK_24" value="0x0000FF00">
+      <type name="utf8"/>
+    </constant>
+    <constant name="BYTE2_MASK_24_INT" value="65280">
+      <type name="int"/>
+    </constant>
+    <constant name="BYTE2_MASK_32" value="0x00FF0000">
+      <type name="utf8"/>
+    </constant>
+    <constant name="BYTE2_MASK_32_INT" value="16711680">
+      <type name="int"/>
+    </constant>
+    <constant name="BYTE3_MASK_24" value="0x000000FF">
+      <type name="utf8"/>
+    </constant>
+    <constant name="BYTE3_MASK_24_INT" value="255">
+      <type name="int"/>
+    </constant>
+    <constant name="BYTE3_MASK_32" value="0x0000FF00">
+      <type name="utf8"/>
+    </constant>
+    <constant name="BYTE3_MASK_32_INT" value="65280">
+      <type name="int"/>
+    </constant>
+    <constant name="BYTE4_MASK_32" value="0x000000FF">
+      <type name="utf8"/>
+    </constant>
+    <constant name="BYTE4_MASK_32_INT" value="255">
+      <type name="int"/>
+    </constant>
+    <constant name="CAPS_GRAY8"
+              value="video/x-raw-gray, bpp = (int) 8, depth = (int) 8, width = ">
+      <type name="utf8"/>
+    </constant>
+    <constant name="CAPS_RGB_15"
+              value="video/x-raw-rgb, bpp = (int) 16, depth = (int) 15, endianness = (int) BYTE_ORDER, red_mask = (int) ">
+      <type name="utf8"/>
+    </constant>
+    <constant name="CAPS_RGB_16"
+              value="video/x-raw-rgb, bpp = (int) 16, depth = (int) 16, endianness = (int) BYTE_ORDER, red_mask = (int) ">
+      <type name="utf8"/>
+    </constant>
+    <constant name="FPS_RANGE" value="(fraction) [ 0, max ]">
+      <type name="utf8"/>
+    </constant>
+    <constant name="GREEN_MASK_15" value="0x03e0">
+      <type name="utf8"/>
+    </constant>
+    <constant name="GREEN_MASK_15_INT" value="992">
+      <type name="int"/>
+    </constant>
+    <constant name="GREEN_MASK_16" value="0x07e0">
+      <type name="utf8"/>
+    </constant>
+    <constant name="GREEN_MASK_16_INT" value="2016">
+      <type name="int"/>
+    </constant>
+    <constant name="RED_MASK_15" value="0x7c00">
+      <type name="utf8"/>
+    </constant>
+    <constant name="RED_MASK_15_INT" value="31744">
+      <type name="int"/>
+    </constant>
+    <constant name="RED_MASK_16" value="0xf800">
+      <type name="utf8"/>
+    </constant>
+    <constant name="RED_MASK_16_INT" value="63488">
+      <type name="int"/>
+    </constant>
+    <constant name="SIZE_RANGE" value="(int) [ 1, max ]">
+      <type name="utf8"/>
+    </constant>
+    <class name="VideoFilter"
+           c:type="GstVideoFilter"
+           parent="GstBase.BaseTransform"
+           abstract="1"
+           glib:type-name="GstVideoFilter"
+           glib:get-type="gst_video_filter_get_type"
+           glib:type-struct="VideoFilterClass">
+      <field name="element">
+        <type name="GstBase.BaseTransform" c:type="GstBaseTransform"/>
+      </field>
+      <field name="inited">
+        <type name="boolean" c:type="gboolean"/>
+      </field>
+    </class>
+    <record name="VideoFilterClass"
+            c:type="GstVideoFilterClass"
+            glib:is-gtype-struct-for="VideoFilter">
+      <field name="parent_class">
+        <type name="GstBase.BaseTransformClass"
+              c:type="GstBaseTransformClass"/>
+      </field>
+    </record>
+    <enumeration name="VideoFormat"
+                 doc="Enum value describing the most common video formats."
+                 glib:type-name="GstVideoFormat"
+                 glib:get-type="gst_video_format_get_type"
+                 c:type="GstVideoFormat">
+      <member name="unknown"
+              value="0"
+              c:identifier="GST_VIDEO_FORMAT_UNKNOWN"
+              glib:nick="unknown"/>
+      <member name="i420"
+              value="1"
+              c:identifier="GST_VIDEO_FORMAT_I420"
+              glib:nick="i420"/>
+      <member name="yv12"
+              value="2"
+              c:identifier="GST_VIDEO_FORMAT_YV12"
+              glib:nick="yv12"/>
+      <member name="yuy2"
+              value="3"
+              c:identifier="GST_VIDEO_FORMAT_YUY2"
+              glib:nick="yuy2"/>
+      <member name="uyvy"
+              value="4"
+              c:identifier="GST_VIDEO_FORMAT_UYVY"
+              glib:nick="uyvy"/>
+      <member name="ayuv"
+              value="5"
+              c:identifier="GST_VIDEO_FORMAT_AYUV"
+              glib:nick="ayuv"/>
+      <member name="rgbx"
+              value="6"
+              c:identifier="GST_VIDEO_FORMAT_RGBx"
+              glib:nick="rgbx"/>
+      <member name="bgrx"
+              value="7"
+              c:identifier="GST_VIDEO_FORMAT_BGRx"
+              glib:nick="bgrx"/>
+      <member name="xrgb"
+              value="8"
+              c:identifier="GST_VIDEO_FORMAT_xRGB"
+              glib:nick="xrgb"/>
+      <member name="xbgr"
+              value="9"
+              c:identifier="GST_VIDEO_FORMAT_xBGR"
+              glib:nick="xbgr"/>
+      <member name="rgba"
+              value="10"
+              c:identifier="GST_VIDEO_FORMAT_RGBA"
+              glib:nick="rgba"/>
+      <member name="bgra"
+              value="11"
+              c:identifier="GST_VIDEO_FORMAT_BGRA"
+              glib:nick="bgra"/>
+      <member name="argb"
+              value="12"
+              c:identifier="GST_VIDEO_FORMAT_ARGB"
+              glib:nick="argb"/>
+      <member name="abgr"
+              value="13"
+              c:identifier="GST_VIDEO_FORMAT_ABGR"
+              glib:nick="abgr"/>
+      <member name="rgb"
+              value="14"
+              c:identifier="GST_VIDEO_FORMAT_RGB"
+              glib:nick="rgb"/>
+      <member name="bgr"
+              value="15"
+              c:identifier="GST_VIDEO_FORMAT_BGR"
+              glib:nick="bgr"/>
+      <member name="y41b"
+              value="16"
+              c:identifier="GST_VIDEO_FORMAT_Y41B"
+              glib:nick="y41b"/>
+      <member name="y42b"
+              value="17"
+              c:identifier="GST_VIDEO_FORMAT_Y42B"
+              glib:nick="y42b"/>
+      <member name="yvyu"
+              value="18"
+              c:identifier="GST_VIDEO_FORMAT_YVYU"
+              glib:nick="yvyu"/>
+      <member name="y444"
+              value="19"
+              c:identifier="GST_VIDEO_FORMAT_Y444"
+              glib:nick="y444"/>
+      <member name="v210"
+              value="20"
+              c:identifier="GST_VIDEO_FORMAT_v210"
+              glib:nick="v210"/>
+      <member name="v216"
+              value="21"
+              c:identifier="GST_VIDEO_FORMAT_v216"
+              glib:nick="v216"/>
+      <member name="nv12"
+              value="22"
+              c:identifier="GST_VIDEO_FORMAT_NV12"
+              glib:nick="nv12"/>
+      <member name="nv21"
+              value="23"
+              c:identifier="GST_VIDEO_FORMAT_NV21"
+              glib:nick="nv21"/>
+      <member name="gray8"
+              value="24"
+              c:identifier="GST_VIDEO_FORMAT_GRAY8"
+              glib:nick="gray8"/>
+      <member name="gray16_be"
+              value="25"
+              c:identifier="GST_VIDEO_FORMAT_GRAY16_BE"
+              glib:nick="gray16-be"/>
+      <member name="gray16_le"
+              value="26"
+              c:identifier="GST_VIDEO_FORMAT_GRAY16_LE"
+              glib:nick="gray16-le"/>
+    </enumeration>
+    <record name="VideoRectangle"
+            c:type="GstVideoRectangle"
+            doc="Helper structure representing a rectangular area.">
+      <field name="x" writable="1">
+        <type name="int" c:type="gint"/>
+      </field>
+      <field name="y" writable="1">
+        <type name="int" c:type="gint"/>
+      </field>
+      <field name="w" writable="1">
+        <type name="int" c:type="gint"/>
+      </field>
+      <field name="h" writable="1">
+        <type name="int" c:type="gint"/>
+      </field>
+    </record>
+    <class name="VideoSink"
+           c:type="GstVideoSink"
+           doc="The video sink instance structure. Derived video sinks should set the"
+           parent="GstBase.BaseSink"
+           glib:type-name="GstVideoSink"
+           glib:get-type="gst_video_sink_get_type"
+           glib:type-struct="VideoSinkClass">
+      <function name="center_rect"
+                c:identifier="gst_video_sink_center_rect"
+                doc="Takes @src rectangle and position it at the center of @dst rectangle with or
+without @scaling. It handles clipping if the @src rectangle is bigger than
+the @dst one and @scaling is set to FALSE.">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="src" transfer-ownership="none">
+            <type name="VideoRectangle" c:type="GstVideoRectangle"/>
+          </parameter>
+          <parameter name="dst" transfer-ownership="none">
+            <type name="VideoRectangle" c:type="GstVideoRectangle"/>
+          </parameter>
+          <parameter name="result" transfer-ownership="none">
+            <type name="VideoRectangle" c:type="GstVideoRectangle*"/>
+          </parameter>
+          <parameter name="scaling" transfer-ownership="none">
+            <type name="boolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </function>
+      <virtual-method name="show_frame">
+        <return-value transfer-ownership="full">
+          <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
+        </return-value>
+        <parameters>
+          <parameter name="buf" transfer-ownership="none">
+            <type name="Gst.Buffer" c:type="GstBuffer*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <property name="show-preroll-frame" writable="1" construct="1">
+        <type name="boolean" c:type="gboolean"/>
+      </property>
+      <field name="element">
+        <type name="GstBase.BaseSink" c:type="GstBaseSink"/>
+      </field>
+      <field name="width">
+        <type name="int" c:type="gint"/>
+      </field>
+      <field name="height">
+        <type name="int" c:type="gint"/>
+      </field>
+      <field name="priv">
+        <type name="VideoSinkPrivate" c:type="GstVideoSinkPrivate*"/>
+      </field>
+      <field name="_gst_reserved">
+        <array zero-terminated="0" c:type="gpointer" fixed-size="3">
+          <type name="any"/>
+        </array>
+      </field>
+    </class>
+    <record name="VideoSinkClass"
+            c:type="GstVideoSinkClass"
+            glib:is-gtype-struct-for="VideoSink"
+            doc="#GstBaseSink::preroll vfuncs. Rendering during preroll will be
+suppressed if the &apos;show-preroll-frame&apos; property is set to #FALSE.
+The video sink class structure. Derived classes should override the"
+            version="0.10.25">
+      <field name="parent_class">
+        <type name="GstBase.BaseSinkClass" c:type="GstBaseSinkClass"/>
+      </field>
+      <field name="show_frame">
+        <callback name="show_frame" c:type="show_frame">
+          <return-value transfer-ownership="full">
+            <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
+          </return-value>
+          <parameters>
+            <parameter name="video_sink" transfer-ownership="none">
+              <type name="VideoSink" c:type="GstVideoSink*"/>
+            </parameter>
+            <parameter name="buf" transfer-ownership="none">
+              <type name="Gst.Buffer" c:type="GstBuffer*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="_gst_reserved">
+        <array zero-terminated="0" c:type="gpointer" fixed-size="3">
+          <type name="any"/>
+        </array>
+      </field>
+    </record>
+    <record name="VideoSinkPrivate" c:type="GstVideoSinkPrivate">
+    </record>
+    <function name="calculate_display_ratio"
+              c:identifier="gst_video_calculate_display_ratio"
+              doc="Given the Pixel Aspect Ratio and size of an input video frame, and the
+pixel aspect ratio of the intended display device, calculates the actual
+display ratio the video will be rendered with.
+dar_n and dar_d parameters.
+The return value is FALSE in the case of integer overflow or other error."
+              version="0.10.7">
+      <return-value transfer-ownership="none">
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="dar_n" direction="out" transfer-ownership="full">
+          <type name="uint" c:type="guint*"/>
+        </parameter>
+        <parameter name="dar_d" direction="out" transfer-ownership="full">
+          <type name="uint" c:type="guint*"/>
+        </parameter>
+        <parameter name="video_width" transfer-ownership="none">
+          <type name="uint" c:type="guint"/>
+        </parameter>
+        <parameter name="video_height" transfer-ownership="none">
+          <type name="uint" c:type="guint"/>
+        </parameter>
+        <parameter name="video_par_n" transfer-ownership="none">
+          <type name="uint" c:type="guint"/>
+        </parameter>
+        <parameter name="video_par_d" transfer-ownership="none">
+          <type name="uint" c:type="guint"/>
+        </parameter>
+        <parameter name="display_par_n" transfer-ownership="none">
+          <type name="uint" c:type="guint"/>
+        </parameter>
+        <parameter name="display_par_d" transfer-ownership="none">
+          <type name="uint" c:type="guint"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="event_new_still_frame"
+              c:identifier="gst_video_event_new_still_frame"
+              doc="Creates a new Still Frame event. If @in_still is %TRUE, then the event
+represents the start of a still frame sequence. If it is %FALSE, then
+the event ends a still frame sequence.
+To parse an event created by gst_video_event_new_still_frame() use
+gst_video_event_parse_still_frame()."
+              version="0.10.26">
+      <return-value transfer-ownership="full">
+        <type name="Gst.Event" c:type="GstEvent*"/>
+      </return-value>
+      <parameters>
+        <parameter name="in_still" transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="event_parse_still_frame"
+              c:identifier="gst_video_event_parse_still_frame"
+              doc="Parse a #GstEvent, identify if it is a Still Frame event, and
+return the still-frame state from the event if it is.
+If the event represents the start of a still frame, the in_still
+variable will be set to TRUE, otherwise FALSE. It is OK to pass NULL for the
+in_still variable order to just check whether the event is a valid still-frame
+event.
+Create a still frame event using gst_video_event_new_still_frame()"
+              version="0.10.26">
+      <return-value transfer-ownership="none">
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="event" transfer-ownership="none">
+          <type name="Gst.Event" c:type="GstEvent*"/>
+        </parameter>
+        <parameter name="in_still" direction="out" transfer-ownership="full">
+          <type name="boolean" c:type="gboolean*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="format_convert"
+              c:identifier="gst_video_format_convert"
+              doc="Converts among various #GstFormat types.  This function handles
+GST_FORMAT_BYTES, GST_FORMAT_TIME, and GST_FORMAT_DEFAULT.  For
+raw video, GST_FORMAT_DEFAULT corresponds to video frames.  This
+function can be to handle pad queries of the type GST_QUERY_CONVERT."
+              version="0.10.16">
+      <return-value transfer-ownership="none">
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="format" transfer-ownership="none">
+          <type name="VideoFormat" c:type="GstVideoFormat"/>
+        </parameter>
+        <parameter name="width" transfer-ownership="none">
+          <type name="int" c:type="int"/>
+        </parameter>
+        <parameter name="height" transfer-ownership="none">
+          <type name="int" c:type="int"/>
+        </parameter>
+        <parameter name="fps_n" transfer-ownership="none">
+          <type name="int" c:type="int"/>
+        </parameter>
+        <parameter name="fps_d" transfer-ownership="none">
+          <type name="int" c:type="int"/>
+        </parameter>
+        <parameter name="src_format" transfer-ownership="none">
+          <type name="Gst.Format" c:type="GstFormat"/>
+        </parameter>
+        <parameter name="src_value" transfer-ownership="none">
+          <type name="int64" c:type="gint64"/>
+        </parameter>
+        <parameter name="dest_format" transfer-ownership="none">
+          <type name="Gst.Format" c:type="GstFormat"/>
+        </parameter>
+        <parameter name="dest_value" direction="out" transfer-ownership="full">
+          <type name="int64" c:type="gint64*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="format_from_fourcc"
+              c:identifier="gst_video_format_from_fourcc"
+              doc="Converts a FOURCC value into the corresponding #GstVideoFormat.
+If the FOURCC cannot be represented by #GstVideoFormat,
+#GST_VIDEO_FORMAT_UNKNOWN is returned."
+              version="0.10.16">
+      <return-value transfer-ownership="full">
+        <type name="VideoFormat" c:type="GstVideoFormat"/>
+      </return-value>
+      <parameters>
+        <parameter name="fourcc" transfer-ownership="none">
+          <type name="uint32" c:type="guint32"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="format_get_component_height"
+              c:identifier="gst_video_format_get_component_height"
+              doc="Calculates the height of the component.  See
+of the component index."
+              version="0.10.16">
+      <return-value transfer-ownership="none">
+        <type name="int" c:type="int"/>
+      </return-value>
+      <parameters>
+        <parameter name="format" transfer-ownership="none">
+          <type name="VideoFormat" c:type="GstVideoFormat"/>
+        </parameter>
+        <parameter name="component" transfer-ownership="none">
+          <type name="int" c:type="int"/>
+        </parameter>
+        <parameter name="height" transfer-ownership="none">
+          <type name="int" c:type="int"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="format_get_component_offset"
+              c:identifier="gst_video_format_get_component_offset"
+              doc="Calculates the offset (in bytes) of the first pixel of the component
+with index @component.  For packed formats, this will typically be a
+small integer (0, 1, 2, 3).  For planar formats, this will be a
+(relatively) large offset to the beginning of the second or third
+component planes.  See @gst_video_format_get_row_stride for a description
+of the component index."
+              version="0.10.16">
+      <return-value transfer-ownership="none">
+        <type name="int" c:type="int"/>
+      </return-value>
+      <parameters>
+        <parameter name="format" transfer-ownership="none">
+          <type name="VideoFormat" c:type="GstVideoFormat"/>
+        </parameter>
+        <parameter name="component" transfer-ownership="none">
+          <type name="int" c:type="int"/>
+        </parameter>
+        <parameter name="width" transfer-ownership="none">
+          <type name="int" c:type="int"/>
+        </parameter>
+        <parameter name="height" transfer-ownership="none">
+          <type name="int" c:type="int"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="format_get_component_width"
+              c:identifier="gst_video_format_get_component_width"
+              doc="Calculates the width of the component.  See
+of the component index."
+              version="0.10.16">
+      <return-value transfer-ownership="none">
+        <type name="int" c:type="int"/>
+      </return-value>
+      <parameters>
+        <parameter name="format" transfer-ownership="none">
+          <type name="VideoFormat" c:type="GstVideoFormat"/>
+        </parameter>
+        <parameter name="component" transfer-ownership="none">
+          <type name="int" c:type="int"/>
+        </parameter>
+        <parameter name="width" transfer-ownership="none">
+          <type name="int" c:type="int"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="format_get_pixel_stride"
+              c:identifier="gst_video_format_get_pixel_stride"
+              doc="Calculates the pixel stride (number of bytes from one pixel to the
+pixel to its immediate left) for the video component with an index
+of @component.  See @gst_video_format_get_row_stride for a description
+of the component index."
+              version="0.10.16">
+      <return-value transfer-ownership="none">
+        <type name="int" c:type="int"/>
+      </return-value>
+      <parameters>
+        <parameter name="format" transfer-ownership="none">
+          <type name="VideoFormat" c:type="GstVideoFormat"/>
+        </parameter>
+        <parameter name="component" transfer-ownership="none">
+          <type name="int" c:type="int"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="format_get_row_stride"
+              c:identifier="gst_video_format_get_row_stride"
+              doc="Calculates the row stride (number of bytes from one row of pixels to
+the next) for the video component with an index of @component.  For
+YUV video, Y, U, and V have component indices of 0, 1, and 2,
+respectively.  For RGB video, R, G, and B have component indicies of
+0, 1, and 2, respectively.  Alpha channels, if present, have a component
+index of 3.  The @width parameter always represents the width of the
+video, not the component."
+              version="0.10.16">
+      <return-value transfer-ownership="none">
+        <type name="int" c:type="int"/>
+      </return-value>
+      <parameters>
+        <parameter name="format" transfer-ownership="none">
+          <type name="VideoFormat" c:type="GstVideoFormat"/>
+        </parameter>
+        <parameter name="component" transfer-ownership="none">
+          <type name="int" c:type="int"/>
+        </parameter>
+        <parameter name="width" transfer-ownership="none">
+          <type name="int" c:type="int"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="format_get_size"
+              c:identifier="gst_video_format_get_size"
+              doc="Calculates the total number of bytes in the raw video format.  This
+number should be used when allocating a buffer for raw video."
+              version="0.10.16">
+      <return-value transfer-ownership="none" doc="of raw video format">
+        <type name="int" c:type="int"/>
+      </return-value>
+      <parameters>
+        <parameter name="format" transfer-ownership="none">
+          <type name="VideoFormat" c:type="GstVideoFormat"/>
+        </parameter>
+        <parameter name="width" transfer-ownership="none">
+          <type name="int" c:type="int"/>
+        </parameter>
+        <parameter name="height" transfer-ownership="none">
+          <type name="int" c:type="int"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="format_has_alpha"
+              c:identifier="gst_video_format_has_alpha"
+              doc="Returns TRUE or FALSE depending on if the video format provides an
+alpha channel."
+              version="0.10.16">
+      <return-value transfer-ownership="none">
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="format" transfer-ownership="none">
+          <type name="VideoFormat" c:type="GstVideoFormat"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="format_is_gray"
+              c:identifier="gst_video_format_is_gray"
+              doc="Determine whether the video format is a grayscale format."
+              version="0.10.29">
+      <return-value transfer-ownership="none">
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="format" transfer-ownership="none">
+          <type name="VideoFormat" c:type="GstVideoFormat"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="format_is_rgb"
+              c:identifier="gst_video_format_is_rgb"
+              doc="Determine whether the video format is an RGB format."
+              version="0.10.16">
+      <return-value transfer-ownership="none">
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="format" transfer-ownership="none">
+          <type name="VideoFormat" c:type="GstVideoFormat"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="format_is_yuv"
+              c:identifier="gst_video_format_is_yuv"
+              doc="Determine whether the video format is a YUV format."
+              version="0.10.16">
+      <return-value transfer-ownership="none">
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="format" transfer-ownership="none">
+          <type name="VideoFormat" c:type="GstVideoFormat"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="format_new_caps"
+              c:identifier="gst_video_format_new_caps"
+              doc="Creates a new #GstCaps object based on the parameters provided."
+              version="0.10.16">
+      <return-value transfer-ownership="full">
+        <type name="Gst.Caps" c:type="GstCaps*"/>
+      </return-value>
+      <parameters>
+        <parameter name="format" transfer-ownership="none">
+          <type name="VideoFormat" c:type="GstVideoFormat"/>
+        </parameter>
+        <parameter name="width" transfer-ownership="none">
+          <type name="int" c:type="int"/>
+        </parameter>
+        <parameter name="height" transfer-ownership="none">
+          <type name="int" c:type="int"/>
+        </parameter>
+        <parameter name="framerate_n" transfer-ownership="none">
+          <type name="int" c:type="int"/>
+        </parameter>
+        <parameter name="framerate_d" transfer-ownership="none">
+          <type name="int" c:type="int"/>
+        </parameter>
+        <parameter name="par_n" transfer-ownership="none">
+          <type name="int" c:type="int"/>
+        </parameter>
+        <parameter name="par_d" transfer-ownership="none">
+          <type name="int" c:type="int"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="format_new_caps_interlaced"
+              c:identifier="gst_video_format_new_caps_interlaced"
+              doc="Creates a new #GstCaps object based on the parameters provided."
+              version="0.10.23">
+      <return-value transfer-ownership="full">
+        <type name="Gst.Caps" c:type="GstCaps*"/>
+      </return-value>
+      <parameters>
+        <parameter name="format" transfer-ownership="none">
+          <type name="VideoFormat" c:type="GstVideoFormat"/>
+        </parameter>
+        <parameter name="width" transfer-ownership="none">
+          <type name="int" c:type="int"/>
+        </parameter>
+        <parameter name="height" transfer-ownership="none">
+          <type name="int" c:type="int"/>
+        </parameter>
+        <parameter name="framerate_n" transfer-ownership="none">
+          <type name="int" c:type="int"/>
+        </parameter>
+        <parameter name="framerate_d" transfer-ownership="none">
+          <type name="int" c:type="int"/>
+        </parameter>
+        <parameter name="par_n" transfer-ownership="none">
+          <type name="int" c:type="int"/>
+        </parameter>
+        <parameter name="par_d" transfer-ownership="none">
+          <type name="int" c:type="int"/>
+        </parameter>
+        <parameter name="interlaced" transfer-ownership="none">
+          <type name="boolean" c:type="gboolean"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="format_parse_caps"
+              c:identifier="gst_video_format_parse_caps"
+              doc="Determines the #GstVideoFormat of @caps and places it in the location
+pointed to by @format.  Extracts the size of the video and places it
+in the location pointed to by @width and @height.  If @caps does not
+represent one of the raw video formats listed in #GstVideoFormat, the
+function will fail and return FALSE."
+              version="0.10.16">
+      <return-value transfer-ownership="none">
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="caps" transfer-ownership="none">
+          <type name="Gst.Caps" c:type="GstCaps*"/>
+        </parameter>
+        <parameter name="format" transfer-ownership="none">
+          <type name="VideoFormat" c:type="GstVideoFormat*"/>
+        </parameter>
+        <parameter name="width" direction="out" transfer-ownership="full">
+          <type name="int" c:type="int*"/>
+        </parameter>
+        <parameter name="height" direction="out" transfer-ownership="full">
+          <type name="int" c:type="int*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="format_parse_caps_interlaced"
+              c:identifier="gst_video_format_parse_caps_interlaced"
+              doc="Extracts whether the caps represents interlaced content or not and places it
+in @interlaced."
+              version="0.10.23">
+      <return-value transfer-ownership="none">
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="caps" transfer-ownership="none">
+          <type name="Gst.Caps" c:type="GstCaps*"/>
+        </parameter>
+        <parameter name="interlaced" direction="out" transfer-ownership="full">
+          <type name="boolean" c:type="gboolean*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="format_to_fourcc"
+              c:identifier="gst_video_format_to_fourcc"
+              doc="Converts a #GstVideoFormat value into the corresponding FOURCC.  Only
+a few YUV formats have corresponding FOURCC values.  If @format has
+no corresponding FOURCC value, 0 is returned."
+              version="0.10.16">
+      <return-value transfer-ownership="none">
+        <type name="uint32" c:type="guint32"/>
+      </return-value>
+      <parameters>
+        <parameter name="format" transfer-ownership="none">
+          <type name="VideoFormat" c:type="GstVideoFormat"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="frame_rate"
+              c:identifier="gst_video_frame_rate"
+              doc="A convenience function to retrieve a GValue holding the framerate
+from the caps on a pad.
+The pad needs to have negotiated caps containing a framerate property.
+do not contain a framerate.">
+      <return-value transfer-ownership="none">
+        <type name="GObject.Value" c:type="GValue*"/>
+      </return-value>
+      <parameters>
+        <parameter name="pad" transfer-ownership="none">
+          <type name="Gst.Pad" c:type="GstPad*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="get_size"
+              c:identifier="gst_video_get_size"
+              doc="Inspect the caps of the provided pad and retrieve the width and height of
+the video frames it is configured for.
+The pad needs to have negotiated caps containing width and height properties.">
+      <return-value transfer-ownership="none">
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="pad" transfer-ownership="none">
+          <type name="Gst.Pad" c:type="GstPad*"/>
+        </parameter>
+        <parameter name="width" direction="out" transfer-ownership="full">
+          <type name="int" c:type="gint*"/>
+        </parameter>
+        <parameter name="height" direction="out" transfer-ownership="full">
+          <type name="int" c:type="gint*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="parse_caps_chroma_site"
+              c:identifier="gst_video_parse_caps_chroma_site"
+              doc="Extracts the chroma site used by the caps.  Possible values are
+&quot;mpeg2&quot; for MPEG-2 style chroma siting (co-sited horizontally,
+halfway-sited vertically), &quot;jpeg&quot; for JPEG and Theora style
+chroma siting (halfway-sited both horizontally and vertically).
+Other chroma site values are possible, but uncommon.
+When no chroma site is specified in the caps, it should be assumed
+to be &quot;mpeg2&quot;.
+determined."
+              version="0.10.29">
+      <return-value transfer-ownership="none">
+        <type name="utf8" c:type="char*"/>
+      </return-value>
+      <parameters>
+        <parameter name="caps" transfer-ownership="none">
+          <type name="Gst.Caps" c:type="GstCaps*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="parse_caps_color_matrix"
+              c:identifier="gst_video_parse_caps_color_matrix"
+              doc="Extracts the color matrix used by the caps.  Possible values are
+&quot;sdtv&quot; for the standard definition color matrix (as specified in
+Rec. ITU-R BT.470-6) or &quot;hdtv&quot; for the high definition color
+matrix (as specified in Rec. ITU-R BT.709)
+determined."
+              version="0.10.29">
+      <return-value transfer-ownership="none">
+        <type name="utf8" c:type="char*"/>
+      </return-value>
+      <parameters>
+        <parameter name="caps" transfer-ownership="none">
+          <type name="Gst.Caps" c:type="GstCaps*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="parse_caps_framerate"
+              c:identifier="gst_video_parse_caps_framerate"
+              doc="Extracts the frame rate from @caps and places the values in the locations
+pointed to by @fps_n and @fps_d.  Returns TRUE if the values could be
+parsed correctly, FALSE if not.
+This function can be used with #GstCaps that have any media type; it
+is not limited to formats handled by #GstVideoFormat."
+              version="0.10.16">
+      <return-value transfer-ownership="none">
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="caps" transfer-ownership="none">
+          <type name="Gst.Caps" c:type="GstCaps*"/>
+        </parameter>
+        <parameter name="fps_n" direction="out" transfer-ownership="full">
+          <type name="int" c:type="int*"/>
+        </parameter>
+        <parameter name="fps_d" direction="out" transfer-ownership="full">
+          <type name="int" c:type="int*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="parse_caps_pixel_aspect_ratio"
+              c:identifier="gst_video_parse_caps_pixel_aspect_ratio"
+              doc="Extracts the pixel aspect ratio from @caps and places the values in
+the locations pointed to by @par_n and @par_d.  Returns TRUE if the
+values could be parsed correctly, FALSE if not.
+This function can be used with #GstCaps that have any media type; it
+is not limited to formats handled by #GstVideoFormat."
+              version="0.10.16">
+      <return-value transfer-ownership="none">
+        <type name="boolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="caps" transfer-ownership="none">
+          <type name="Gst.Caps" c:type="GstCaps*"/>
+        </parameter>
+        <parameter name="par_n" direction="out" transfer-ownership="full">
+          <type name="int" c:type="int*"/>
+        </parameter>
+        <parameter name="par_d" direction="out" transfer-ownership="full">
+          <type name="int" c:type="int*"/>
+        </parameter>
+      </parameters>
+    </function>
+  </namespace>
+</repository>
diff --git a/unmaintained/gstreamer/video/ffi/ffi.factor b/unmaintained/gstreamer/video/ffi/ffi.factor
new file mode 100644 (file)
index 0000000..474c48b
--- /dev/null
@@ -0,0 +1,19 @@
+! Copyright (C) 2010 Anton Gorenko.
+! See http://factorcode.org/license.txt for BSD license.
+USING: alien alien.c-types alien.libraries combinators kernel
+system
+gobject-introspection glib.ffi gobject.ffi gstreamer.ffi ;
+IN: gstreamer.video.ffi
+
+<<
+"gstreamer.video" {
+    { [ os winnt? ] [ drop ] }
+    { [ os macosx? ] [ drop ] }
+    { [ os unix? ] [ "libgstvideo-0.10.so" cdecl add-library ] }
+} cond
+>>
+
+IMPLEMENT-STRUCTS: GstVideoRectangle ;
+
+GIR: vocab:gstreamer/video/GstVideo-0.10.gir
+
diff --git a/unmaintained/gstreamer/video/video.factor b/unmaintained/gstreamer/video/video.factor
new file mode 100644 (file)
index 0000000..fde33e9
--- /dev/null
@@ -0,0 +1,5 @@
+! Copyright (C) 2010 Anton Gorenko.
+! See http://factorcode.org/license.txt for BSD license.
+USING: gstreamer.video.ffi ;
+IN: gstreamer.video
+